728x90
반응형
- 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 사용자들에게 리눅스 스타일의 권한 관리 경험을 제공하는 중요한 발전임.
- 이 도구는 개발자들이 보다 효율적으로 작업할 수 있도록 도와주며, 오픈소스화를 통해 커뮤니티의 기여를 받을 수 있음.
- 보안 측면에서 "인라인" 구성의 사용 시 주의가 필요하며, 향후 문서화 작업을 통해 이러한 보안 문제에 대한 더 많은 정보를 제공할 예정이라는 점이 흥미로움.
- sudo 명령어가 Windows에 도입되고 있음. 이는 리눅스의 sudo를 단순 포팅한 것이 아니라, 운영 체제 간 권한 구조의 차이를 고려한 새로운 구현임. 사용자가 같은 터미널 창에서 관리자 권한으로 명령을 실행할 수 있는 경험을 제공하는 것이 목표임.
- PowerShell이 curl과 wget을 완전히 다른 명령어로 대체했던 일과 비슷한 느낌을 받음. 이는 인수가 호환되지 않는다는 점에서 문제가 될 수 있음.
- Nirsoft의 elevate가 잘 작동했지만, 시스템에 더 통합된 기능을 가지는 것이 좋음.
- sudo가 거의 한 사람에 의해 유지되고 있다는 점이 흥미로움.
- sudo의 우수한 사용성에 대해 글을 쓰면서 리눅스/유닉스 계열 운영 체제를 언급하지 않는 것은 이상함.
- Microsoft에서 근무할 때, UAC(User Account Control)를 보안 경계로 간주하지 않았음. 이 기능이 어떻게 출시될 수 있었는지, 혹은 UAC를 이제 보안 경계로 간주하는지 궁금함.
- psutils의 sudo.ps1을 scoop을 통해 설치하여 사용 중임. UAC 프롬프트가 있지만 대화형 작업에는 적합함.
- "Windows 12"가 리눅스 기반으로 실행되는 윈도우 매니저 + 데스크탑이 되기를 바람. 이는 Windows 95/7/8/10/11과의 호환성을 유지하기 위해 기존 버그를 세심하게 재현할 것임.
- PowerShell 명령어의 방향을 고려할 때, 이 새로운 sudo 구현이 매우 복잡한 명령어가 될 것으로 예상됨.
- Windows에서 sudo가 새로운 기능으로 도입되었지만, 현재로서는 보안에 취약한 것으로 보임. 시간이 지나면서 개선될 것으로 예측됨.
https://devblogs.microsoft.com/commandline/introducing-sudo-for-windows/
728x90
'06.CAOS' 카테고리의 다른 글
반도체 - 메모리 - Gate-All-Around (GAA) (0) | 2024.02.20 |
---|---|
반도체 - 메모리 - MBCFET(Multi Bridge Channel FET) (0) | 2024.02.20 |
반도체 - 메모리 - CXL(Compute Express Link) (1) | 2024.02.07 |
클라우드 컴퓨팅 - 인프라 성능관리 - Scale-Up / Scale-Out - 오토 스케일링 (Auto Scaling) (0) | 2024.02.02 |
반도체 - 메모리 I/O - DMA (Direct Memory Access) (0) | 2024.02.02 |