- Windows 11 Insider Preview Build 26052에서 Windows용 Sudo의 출시를 발표
- Windows용 Sudo는 사용자가 권한이 없는 콘솔 세션에서 직접 권한을 높인 명령을 실행할 수 있는 새로운 방법
- 이제 "관리자 권한으로 실행" 을 찾지 않아도 됨
- GitHub에서 오픈소스로 공개
- Windows용 Sudo가 제공하지 않는 추가 기능이 필요한 경우, Gerardo Grignoli의 gsudo를 확인할 것을 권장
Windows용 Sudo 활성화 방법
- Windows 설정의 '개발자를 위한 설정' 페이지로 이동하여 "Sudo 활성화" 옵션을 켜서 Windows용 Sudo를 활성화할 수 있음
- 또는 권한이 높은 콘솔 세션에서 다음 명령을 실행하여 활성화할 수 있음:
sudo config --enable
Windows용 Sudo 구성 방법
- Windows용 Sudo는 현재 세 가지 구성 옵션을 지원함: 새 창에서 실행(forceNewWindow), 입력 비활성화(disableInput), 인라인 실행(normal)
- 구성 옵션을 변경하려면 Windows 설정의 '개발자를 위한 설정' 페이지에서 드롭다운 메뉴를 사용하거나, 권한이 높은 콘솔 세션에서 명령을 실행함.
구성 옵션 1: 새 창에서
- 이 구성에서는 Sudo for Windows가 새로운 권한이 높은 콘솔 창을 열고 그 창에서 명령을 실행함.
- 예를 들어,
sudo netstat -ab
를 실행하면 새 창이 열리고 그 창에서 명령이 실행됨.
구성 옵션 2: 입력 비활성화
- 이 구성에서는 Sudo for Windows가 현재 창에서 권한이 높은 프로세스를 실행하지만, 새 프로세스는 stdin이 닫힌 상태로 생성됨.
- 즉, 새 프로세스는 사용자 입력을 받아들이지 않으므로, 권한 상승 후 추가 입력이 필요한 프로세스에는 작동하지 않음.
구성 옵션 3: 인라인
- 이 구성은 다른 운영 체제에서의 sudo와 가장 유사한 동작을 함.
- Sudo for Windows는 현재 창에 연결된 stdin, stdout, stderr를 가진 상태로 권한이 높은 프로세스를 실행함.
- 이는 새로운 권한이 높은 프로세스가 입력을 받고 현재 창으로 출력을 보낼 수 있음을 의미함.
작동 원리
- 명령줄에서 sudo를 사용하여 프로세스의 권한을 상승시킬 때, 사용자가 권한 상승을 확인하는 UAC 대화 상자가 나타남.
- 사용자가 권한 상승을 확인하면, 사용자가 선택한 구성 옵션에 따라 프로세스가 권한이 상승됨.
-
sudo
명령의 선택적 매개변수를 확인하려면 콘솔에서 sudo -h
를 실행함.
새 창에서
- 이 구성에서 sudo.exe는 새로운 권한이 높은 콘솔 창을 열고 그 창에서 명령을 실행함.
- 새 창은 현재 창과 동일한 작업 디렉토리와 환경 변수로 시작됨.
- 이 구성은 runas 명령과 유사한 흐름을 가짐.
입력 비활성화와 인라인
- 이 구성에서 sudo.exe는 새로운 권한이 높은 프로세스를 시작하고, 권한이 높은 sudo.exe 프로세스를 시작하며, 원래 권한이 없는 sudo.exe는 새로운 권한이 높은 프로세스와 RPC 연결을 설정함.
- 다시 말해, 권한이 없는 sudo 인스턴스에서 권한이 높은 인스턴스로 정보가 전달됨.
- 특히, 권한이 없는 프로세스의 콘솔 핸들이 권한이 높은 프로세스로 전달되어, 권한이 높은 프로세스가 권한이 없는 프로세스로부터 입력을 읽고 권한이 없는 프로세스로 출력을 쓸 수 있게 함.
- 그러나 "입력 비활성화" 구성에서는 권한이 높은 프로세스에 콘솔의 입력 핸들이 전달되지 않으므로 사용자로부터 입력을 읽을 수 없음.
다음 단계
- 팀은 Windows용 Sudo를 오픈소스화하는 작업을 진행 중이며, 향후 몇 달 안에 계획에 대한 자세한 내용을 공유할 예정임.
- GitHub 리포지토리에서 직접 피드백을 공유해달라고 요청함.
GN⁺의 의견:
- Windows용 Sudo의 출시는 Windows 사용자들에게 리눅스 스타일의 권한 관리 경험을 제공하는 중요한 발전임.
- 이 도구는 개발자들이 보다 효율적으로 작업할 수 있도록 도와주며, 오픈소스화를 통해 커뮤니티의 기여를 받을 수 있음.
- 보안 측면에서 "인라인" 구성의 사용 시 주의가 필요하며, 향후 문서화 작업을 통해 이러한 보안 문제에 대한 더 많은 정보를 제공할 예정이라는 점이 흥미로움.