Gsudo는 Windows와 동등한 sudo
이며, 원래 UNIX/Linux Sudo와 유사한 사용자 경험이 있습니다. 현재 콘솔 창 또는 새로 권한을 사용하여 명령 (또는 현재 쉘을 다시 시작) 할 수 있습니다.
gsudo
(또는 sudo
별칭)를 귀하의 명령으로 전제하면 상승합니다. PowerShell의 경우이 구문을 사용하십시오 : gsudo { ScriptBlock }
하나의 UAC 팝업이 매번 나타납니다. GSUDO 캐시를 활성화하면 팝업이 적을 수 있습니다.
현재 쉘을 감지하고 기본 쉘 명령으로 명령을 높입니다. ( Cmd
, PowerShell
, WSL
, git-bash
, MinGW
, Cygwin
, Yori
, Take Command
, BusyBox
& NuShell
지원합니다.)
Gsudo- 창문을위한 sudo
PowerShell / PowerShell Core의 사용
WSL의 사용 (Linux 용 Windows 서브 시스템)
PowerShell 모듈
목차
데모
특징
설치
용법
구성
자격 증명 캐시
알려진 문제
FAQ
Gsudo를 지원하십시오! ?
확장 된 문서 : https://gerardog.github.io/gsudo/
( gsudo config CacheMode auto
포함)
높은 명령은 현재 콘솔에 표시됩니다. 새 창이 없음 ( -n
지정하지 않는 한)
자격 증명 캐시 : gsudo
사용자가 캐시를 활성화하기 위해 선택하면 하나의 UAC 팝업 만 표시 할 수 있습니다.
현재 쉘 ( CMD
, PowerShell
, WSL
, Bash for Windows
(git-bash/mingw/msys2/cygwin), Yori
, Take Command
및 NuShell
)를 감지하고 명령을 올바르게 높이십시오.
스크립트에서 사용되는 지원 :
출력 stdout /stderr는 파이프 또는 캡처 할 수 있습니다 (예 : gsudo dir | findstr /c:"bytes free" > FreeSpace.txt
) 및 종료 코드 ( %errorlevel%
). gsudo
상승하지 않으면 출구 코드는 999가됩니다.
gsudo
이미 높은 콘솔에서 호출되면 명령을 실행합니다 (실패하지 않음). 따라서 gsudo
실행하거나 이미 고가 콘솔에서 gsudo
사용하는 스크립트를 실행하는 경우 걱정할 필요가 없습니다. (고도가 필요하지 않으므로 UAC 팝업이 나타나지 않습니다)
gsudo !!
마지막으로 실행 된 명령을 높입니다. CMD, Git-Bash, Mingw, Cygwin에서 작업
특종 사용 : scoop install gsudo
Winget 사용 : winget install gerardog.gsudo
초콜릿 사용 : choco install gsudo
이 라인 실행 : (스크립트) :
PowerShell -Command "Set -ExecutionPolicy Remotesigned -Scope Process; [net.servicepointmanager] :: SecurityProtocol = 'TLS12'; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/mas
가지고 다닐 수 있는:
최신 릴리스에서 gsudo.portable.zip
다운로드하십시오
ZIP 파일에서 컴퓨터의 적절한 디렉토리로 프로세서 아키텍처 (x64, x86 또는 arm64)에 해당하는 폴더를 추출하십시오.
선택적으로, 해당 디렉토리가 시스템에 액세스 할 수없는 경우 시스템의 경로 환경 변수에 추가하십시오.
PATH
환경 변수가 새로 고침되도록 설치 한 후 모든 콘솔 창을 다시 시작하십시오 .
참고 : gsudo.exe
는 휴대용입니다. 경로에 추가하는 것을 제외하고는 Windows 서비스가 필요하거나 시스템 변경이 수행되지 않습니다.
gsudo [옵션] # 현재 쉘 elfatedgsudo [옵션] {command} [args] # runs {command}가 고상한 권한 gsudo 캐시 [on | Off | 도움말] # 자격 증명 캐시 세션을 시작/중지합니다. (UAC 팝업이 적음) Gsudo 상태 [-json | 필터] # 현재 사용자, 캐시 및 콘솔 상태 표시 .gsudo !! # 마지막 명령을 관리자로 다시 실행합니다. (YMMV)
새로운 창 옵션 : -n | -새로운 #은 새 콘솔/창에서 명령을 시작하고 즉시 반환합니다. -W | -Wait # 새 콘솔에서 명령이 끝날 때까지 기다립니다. -KeepShell # 명령을 실행 한 후 높은 쉘을 열어 두십시오. -KeepWindow # 새 콘솔에서 명령을 실행 한 후 콘솔/창을 닫기 전에 키 프레스를 요청하십시오. 보안 옵션 : -U | --user {USR} # 지정된 사용자로 실행됩니다. 비밀번호를 묻습니다. '-i medium'이 아니라면 Local Admins는 UAC를 보여줍니다. -I | --integrity {v} # 무결성 수준 지정 : 신뢰할 수없는, 낮음, 중간, 중간 플러스, 높음 (기본값), 시스템 -S | -System # 로컬 시스템 계정 (NT AuthoritySystem)으로 실행됩니다. -TI # NT ServicetRustedInstaller의 회원으로 실행됩니다 -K # 모든 캐시 된 자격 증명을 죽입니다. 다음에 GSUDO가 실행되면 UAC 팝업이 나타납니다. 쉘 관련 옵션 : -D | -디렉터 # 스키트 쉘 감지. CMD 쉘 또는 CMD {명령}을 가정합니다. -loadprofile # powerShell 명령을 높이면 사용자 프로파일을로드 할 때 :-loglevel {val} # 최소 로그 레벨 설정 표시 : 모두, 디버그, 정보, 경고, 오류, 없음 -debug # 디버그 모드 활성화. --copyns # 연결 네트워크를 고가 사용자에게 드라이브합니다. 경고 : Verbose, Interactive는 자격 증명을 요구합니다 --copyev # (더 이상) 복사 환경 변수를 높은 프로세스에 복사합니다. (기본 콘솔 모드에서 필요하지 않음) -chdir {dir} # 명령을 실행하기 전에 현재 디렉토리를 {dir}로 변경합니다.
참고 : 설치자가 만든 sudo
별칭은 어디서나 사용할 수 있습니다.
예 :
GSUDO # 현재 콘솔 창에서 현재 쉘을 높이십시오 (CMD/PowerShell/PWSH Core/Yori/Take Command/Git -Bash/Cygwin) GSUDO -N # 새로운 콘솔에서 상승 된 현재 쉘을 시작합니다. ./do-something.ps1 # 새 창에서 시작하여 ExitgSudo fotepad %windir %windir %windir %system32driversetchosts # 시작 Wind findstr /c : "바이트 무료"> freespace.txt gsudo config loglevel "error" # 감소 된 Logginggsudo 구성 프롬프트 구성 "$ p [extated] $ g" # 사용자 정의 고상 프롬프트 구성 구성 - -레즈셋 # 기본 값에 대한 재설정 # uac 팝업 (uac 팝업) : gsudo config cachemode 자동
gsudo
PowerShell에서 호출 된 경우 감지하고 PS 명령을 높이십시오 ( -d
CMD 명령을 높이는 데 사용되지 않는 한).
상승 명령은 다른 프로세스에서 실행되므로 부모 $variables
및 범위에 액세스 할 수 없습니다.
명령 또는 스크립트 블록을 높이려면 : {Curly Braces}에 랩핑하십시오 .
# 구문 : gsudo {scriptBlock} gsudo [옵션] {scriptBlock} [-args $ argument1 [..., $ argumentn]];# 예제 : gsudo {write-output "hello world"}# -args $ mystring = "hello world"gsudo { 쓰기 출력 $ args [0]}-args $ mystring # 출력은 속성이있는 psobjects로 직렬화됩니다. $ services = gsudo {get-service 'wsearch', 'winmgmt'} Writ | gsudo {$ input.creationtime}
대체 구문 :
# 전달 값 (참조 별 변수가 아님)`$를 사용하여 :`.. ie $ mystring = "hello world"Invoke-Gsudo {쓰기 출력 $ 사용 : mystring} # 구문 : Invoke-Gsudo [-scriptBlock] <ScriptBlock> [[-argumentList] <객체 []>] [-inputoBject <sobject>] [-로드 프라이 파일 | -Noprofile] [-Credential <scredential>]
- PowerShell function. - Performs auto serialization of inputs & outputs. - You can prefix variables with the `$using:` scope modifier (like `$using:variableName`) and their serialized value is applied. - Use `-LoadProfile` or `-NoProfile` to override profile loading or not. - Use `-Credential` option for Run As User (same as `-u` but for `Get-Credentials`). - Better forwarding of your current context to the elevated instance (current Location, $ErrorActionPreference)
사용법 : gsudo '문자열 리터럴'# 변수 대체 예 : $ file = 'c : my secret.txt'; $ allgorithm = 'md5'; $ hash = gsudo "(get -filehash '$ file'-Algorithm $ allgorithm) .hash"# 또는 $ hash = gsudo "(get -filehash" "$ file" "-Algorithm $ algorithm) .해시시"
명령으로 문자열 문자를 허용합니다.
문자열 목록을 반환합니다.
선택 사항 : gsudoModule.psd1
을 PowerShell 프로파일로 가져옵니다.
# $ 프로필에 다음 줄을 추가하십시오. import-module "gsudomodule"# 또는 run : write-output "`nimport-module`"gsudomodule` ""| 추가 컨텐츠 $ 프로필
그렇게하려면이 라인을 프로필에 추가합니다 ( gsudoModule
가져온 후) :
세트 알리아 프롬프트 Gsudoprompt
PowerShell 프롬프트 (예 : OH-MY-Posh를 설치함으로써)를 아직 사용자 정의하지 않은 경우 현재 프로세스가 상승했음을 나타내는 빨간색 #
쉽게 추가 할 수 있습니다.
gsudo 캐시가 활성화되면 Test-IsGsudoCacheAvailable
반환합니다 (UAC가없는 고도가 가능함).
Test-IsProcessElevated
: 현재 프로세스가 상승하면 TRUE를 반환합니다.
Test-IsAdminMember
: 현재 사용자가 Local Administrators
그룹의 구성원 인 경우 True를 반환합니다.
PowerShell의 Gsudo에 Syntax 자동 완성을 추가합니다. 또한, 그것은 이전의 3 가지 명령을 제안하여 워크 플로우를 그 어느 때보 다 매끄럽게 만듭니다!
gsudo !!
PowerShell에서 마지막으로 실행 된 명령을 높이기 위해.
함수 추가 :
WSL에서는 고도와 root
다른 개념입니다. root
WSL을 완전히 관리하지만 Windows 시스템은 허용하지 않습니다. WSL의 기본 su
또는 sudo
사용하여 root
액세스를 얻으십시오. Windows 상자에서 관리자 권한을 얻으려면 WSL.EXE 프로세스를 높이야합니다. gsudo
그것을 허용합니다 (UAC 팝업이 나타납니다).
WSL BASH에서 gsudo
Prepend하여 CMD 명령 에 대한 WSL 명령 또는 gsudo -d
높이십시오.
# 기본 shellpc를 높이십시오 : ~ $ gsudo # 고상한 WSL CommandPC : ~ $ gsudo mkdir/mnt/c/wind PC : ~ $ gsudo -d "Notepad C : Wind whenecho "success"; elif [$ retval -eq $ ((999 % 256))]; 그런 다음 # gsudo 실패 종료 코드 (999)는 WSL (999 Mod 256)에서 231로 읽습니다. "Gsudo가 높아지지 못했습니다!"; Elseecho "COMBEL EXIT CODE $ retval"; fi;
GSUDO 구성 # 현재 구성 설정 및 값 표시. gsudo config {key} [-global] [value] # 사용자 설정 읽기 또는 쓰기 gsudo config {key} [-global]--reset # 기본값에 구성 구성을 재설정 -글로벌 # 모든 사용자에게 영향을 미칩니다 (사용자 설정 오버라이드)
활성화되고 활성화 된 경우 Credentials Cache
사용하면 하나의 UAC 팝업만으로 부모 프로세스에서 여러 번 상승 할 수 있습니다. 고도없이 5 분 후에 캐시 세션은 자동으로 닫힙니다 ( gsudo config CacheDuration
통해 구성 가능한 시간 초과).
이것은 매우 편리하지만 잠재적 인 보안 위험을 이해하는 것이 중요합니다. Gsudo 자체가 안전하더라도 고유의 취약점은 호스트 프로세스에 있습니다. 시스템이 악의적 인 프로세스에 의해 이미 손상된 경우, 허용 프로세스 (예 : CMD/PowerShell)를 조작하고 활성 GSUDO 캐시 인스턴스가 UAC 프롬프트를 트리거하지 않고 권한을 높이도록 강요 할 수 있습니다.
이 위험은 자격 증명 캐시를 사용하기위한 트레이드 오프입니다. 캐시는 시스템에서 실행되는 악의적 인 프로세스가 없다고 확신하는 한 사용하기에 안전합니다.
Credentials Cache
모드는 다음과 같습니다.
Explicit:
(기본값) 캐시 세션이 수동으로 시작되지 않는 한 모든 고도에는 UAC 팝업이 표시됩니다 ...
캐시 세션 실행을 시작하거나 중지하려면 : gsudo cache {on | off}
이것은 기본 모드입니다. (이 값으로 되돌리기 위해 gsudo config CacheMode Explicit
사용하십시오).
Auto:
Unix-Sudo와 유사합니다. 첫 번째 고도는 UAC 팝업을 보여주고 캐시 세션을 자동으로 시작합니다 .
이 모드를 사용하려면 gsudo config CacheMode Auto
실행하십시오.
Disabled:
모든 고도에는 UAC 팝업이 표시되고 캐시 세션을 시작하려고 시도하면 오류가 발생합니다.
이 모드를 사용하려면 gsudo config CacheMode Disabled
실행하십시오.
어쨌든 gsudo -k
로 모든 캐시 세션을 중지 할 수 있습니다.
자세히 알아보십시오
고가 인스턴스는 비기지 공간에 연결된 네트워크 주식에 액세스 할 수 없습니다. 이것은 gsudo
문제가 아니라 Windows의 작동 방식입니다. --copyNS
사용하여 네트워크 공유를 고가 세션에 복제하지만 이는 양방향은 아니며 대화식이 아닙니다 (사용자/암호로 프롬프트 할 수 있음).
gsudo.exe
네트워크 공유에 배치되어 serversharegsudo {command}
로 호출 할 수 있지만 현재 폴더가 네트워크 드라이브 인 경우 작동하지 않습니다. 예를 들어 servershare
Z:
에지 Z:>gsudo do-something
하지 마십시오.
문제 섹션에서 문제를보고하십시오.
sudo
대신 gsudo
라는 이유는 무엇입니까?
gsudo
만들었을 때 Chocolatey
및 Scoop
같은 대부분의 Windows 인기 패키지 관리자에 다른 sudo
패키지가 있었으므로 다른 이름을 선택할 다른 선택이 없었습니다. gsudo
설치 프로그램은 sudo
에 대한 별칭을 생성하므로 명령 줄에서 sudo
사용하여 gsudo
호출하십시오.
.Net Framework 4.6
에서 .Net Core 7.0
으로 마이그레이션 한 이유는 무엇입니까?
V1.4.0부터 .Net 7.0
NativeAot을 사용하여 구축되었습니다. 더 빨리로드되고 메모리를 적게 사용하며 .NET 런타임이 설치되지 않고 머신에서 실행됩니다. 사전 버전 <v1.3.0
은 모든 Windows 10/11 설치에 포함 되었기 때문에 .NET 4.6을 사용했습니다.
gsudo
*nix sudo
의 포트입니까?
아니요. gsudo
사용자의 기대에 관해 원래 sudo를 상기시킵니다. 많은 sudo
기능은 *nix
특이 적이며 Windows
가질 수 없습니다. 다른 기능 (예 : sudoers
)은 잠재적으로 구현 될 수 있지만이 시점에는 없습니다.
요구 사항은 무엇입니까? Windows 7/8에서 작동합니까?
Win7 SP1에서 작동합니다. 일부 기능은 TrustedInstaller로 향상되는 것과 같은 Windows 10/11에서만 작동 할 수 있습니다.
GSUDO를 사용한 후 이전 보안 수준으로 어떻게 돌아가려면?
Unix/Linux sudo
와 같은 방식으로 : gsudo
현재 프로세스를 변경하지 않고 대신 다른 권한/무결성 수준의 새로운 프로세스를 시작합니다. 이전 수준으로 돌아가려면 새로운 프로세스를 끝내십시오. Command Prompt
또는 PowerShell
의 경우 exit
입력하십시오.
우리에게 별을주세요!
소셜 네트워크에서 gsudo
언급하여 단어를 전파하는 데 도움이됩니다!
스폰서 또는 기부