Windows용 Sudo

Windows용 Sudo는 사용자가 Windows의 평가되지 않은 콘솔 세션에서 관리자 권한 명령(관리자 권한)을 직접 실행하는 새로운 방법입니다.

데모 비디오와 Windows용 Sudo 작동 방식에 대한 심층 분석이 포함된 공지를 읽어봅니다.

필수 조건

Windows용 Sudo 명령을 사용하려면 Windows 11 Insider Preview 빌드 26052 이상을 실행해야 합니다. (Windows 업데이트 확인). Windows 참가자 프로그램에 참여하기.

참고 항목

Windows용 Sudo는 아직 Windows 10에서 사용할 수 없지만 향후에 제공될 수 있습니다.

Windows용 Sudo를 사용하도록 설정하는 방법

Windows용 Sudo를 사용하도록 설정하려면 Settings > For DevelopersSudo 사용 설정을 켜기로 설정합니다

Enable Sudo

Warning

특정 구성에서 사용하도록 설정하면 Windows용 Sudo를 권한 벡터의 잠재적 에스컬레이션으로 사용할 수 있습니다. 컴퓨터에서 sudo 명령을 사용하도록 설정할 때 보안 고려 사항을 알고 있어야 합니다.

Windows용 Sudo를 구성하는 방법

Windows용 Sudo는 현재 세 가지 구성 옵션을 지원합니다. 명령줄을 사용하여 Settings > For Developers 메뉴에서 구성 설정 또는 프로그래밍 방식으로 구성을 설정할 수 있습니다. 구성 옵션은 다음과 같습니다.

  • 새 창 (forceNewWindow): forceNewWindow 구성 옵션은 Windows용 Sudo의 기본 구성 옵션입니다. 이 구성에서 새 창에서 명령을 실행하는 데 sudo을 사용합니다. 이는 runas /user:admin 명령의 동작과 유사합니다.

  • 입력 닫힘 (disableInput): disableInput 구성 옵션은 현재 창에서 관리자 권한 프로세스를 실행하지만 입력 핸들은 닫혀 있습니다. 즉, 상승된 프로세스는 현재 콘솔 창에서 입력을 받을 수 없습니다. 이는 관리자 권한으로 명령을 실행하려고 하지만 명령이 현재 콘솔 창에서 입력을 수신하도록 허용하지 않으려는 시나리오에 유용합니다. 이 구성 옵션은 inline 구성 옵션의 일부 편의성을 제공하는 동시에 관련 보안 위험을 일부 완화합니다.

  • 인라인 (normal): normal 구성 옵션은 sudo가 다른 운영 체제에서 동작하는 방식과 가장 유사합니다. 이 구성은 현재 창에서 상승된 프로세스를 실행하고 프로세스가 현재 콘솔 세션에서 입력을 받을 수 있도록 합니다. 이는 관리자 권한으로 명령을 실행하려고 하지만 명령이 현재 콘솔 창에서 입력을 수신하도록 허용하려는 시나리오에 유용합니다. 이 구성 옵션은 가장 편리한 기능을 제공하지만 관련 보안 위험에 익숙한 경우에만 이 옵션을 선택해야 합니다.

다음을 사용하여 Settings > For Developers 메뉴에서 이러한 구성 중에서 선택하거나 관리자 권한 명령줄(관리 콘솔)에서 프로그래밍 방식으로 구성을 변경할 수 있습니다.

  • sudo config --enable <configuration_option>

또는 <configuration_option>forceNewWindow, disableInput, 또는 normal로 업데이트합니다.

Windows용 Sudo 사용 방법

Windows용 Sudo를 사용하려면 관리자 권한으로 실행하려는 명령 앞에 sudo를 추가하면 됩니다. 예를 들어 관리자 권한으로 netstat -ab를 실행하려면 콘솔 창에서 sudo netstat -ab를 실행합니다.

sudo는 관리자 수준 권한으로 실행되도록 대상 프로세스를 상승하기 때문에 계속할지 확인하는 프롬프트가 열립니다.

보안 고려사항

입력 닫힘 (inputClosed) 또는 인라인 (normal) 또는 구성에서 sudo 실행과 관련된 위험이 있습니다. 악성 프로세스가 승격되지 않은 sudo.exe와 승격된 sudo.exe 프로세스가 설정한 연결을 사용하여 승격된 프로세스를 구동하려고 시도할 수 있습니다.

inputClosed 구성 옵션은 입력 핸들을 닫아 위험을 완화합니다. 현재 콘솔 창에서 입력 핸들을 분리하면 승격되지 않은 프로세스가 승격된 프로세스에 입력을 보낼 수 없습니다.

inline 구성 옵션은 현재 창에서 관리자 권한 프로세스를 실행하고 프로세스는 현재 콘솔 세션에서 입력을 받을 수 있습니다. 승격되지 않은 프로세스는 동일한 콘솔 창 내에서 승격된 프로세스에 입력을 보내거나 이 구성의 현재 창에 있는 출력에서 정보를 가져올 수 있습니다.

FAQ

Windows용 Sudo는 기존 runas 명령과 어떻게 다른가요?

sudo 명령은 현재 승격되지 않은 명령줄 컨텍스트에서 관리자 권한으로 명령을 빠르게 승격시키는 방법을 제공하며 다른 운영 체제에서 온 일부 사용자에게 익숙합니다. 이 runas 명령은 선택한 경우 관리자를 포함하여 모든 사용자로 프로그램을 실행하는 방법을 제공합니다. 이 시점에서 Windows의 sudo 명령은 다른 사용자로 프로그램 실행을 지원하지 않습니다. sudorunas 사이의 다른 주요 차이점은 다음과 같습니다.

  • runas를 사용하면 관리자를 포함한 다른 사용자로 프로그램을 실행할 수 있습니다. 이 기능은 sudo 명령에 대한 로드맵에 있지만 아직 존재하지 않습니다.

  • sudo을 사용하면 프로세스를 신속하게 승격시킬 수 있습니다(관리자 권한).

    • runas 관리자 흐름과 유사한 새 창에서 이 작업을 수행할 수 있습니다.
    • disableInput and normal 구성 옵션을 사용하여 승격된 프로세스를 현재 콘솔 창에 연결하도록 선택할 수 있습니다. 이 기능은 runas에서 지원되지 않습니다.
  • runas는 명령줄에서 사용자에게 암호를 묻는 메시지를 표시할 수 있습니다.

  • sudo는 확인 프롬프트를 사용하여 운영 체제를 무단 변경으로부터 보호하도록 설계된 UAC(사용자 계정 컨트롤) 보안 기능을 통해서만 승격될 수 있습니다.

특정 사용 사례를 고려하여 요구 사항에 가장 적합한 명령을 사용하도록 계획해야 합니다. 또한 inputClosednormal 모드에서 sudo를 실행하는 경우 보안에 미치는 영향을 고려해야 합니다. 다른 sudo 구성과 관련된 위험에 익숙하고 익숙하지 않은 경우 기본 forceNewWindow 구성 옵션을 사용하는 것이 좋습니다.

Windows 오픈 소스 리포지토리용 Sudo

Windows용 Sudo는 오픈 소스 기여 및 피드백을 환영합니다. GitHub에서 Windows용 Sudo에 대한 소스 코드를 찾을 수 있습니다.

추가 기능

Windows용 Sudo에서 제공하지 않는 추가 기능을 찾고 있다면 다양한 추가 기능과 구성 옵션이 있는 Gerardo Grignoli의 gsudo를 검사하거나 커뮤니티에서 다른 솔루션을 찾아보세요.