3P by neo 3달전 | favorite | 댓글 1개
  • 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 사용자들에게 리눅스 스타일의 권한 관리 경험을 제공하는 중요한 발전임.
  • 이 도구는 개발자들이 보다 효율적으로 작업할 수 있도록 도와주며, 오픈소스화를 통해 커뮤니티의 기여를 받을 수 있음.
  • 보안 측면에서 "인라인" 구성의 사용 시 주의가 필요하며, 향후 문서화 작업을 통해 이러한 보안 문제에 대한 더 많은 정보를 제공할 예정이라는 점이 흥미로움.
Hacker News 의견
  • sudo 명령어가 Windows에 도입되고 있음. 이는 리눅스의 sudo를 단순 포팅한 것이 아니라, 운영 체제 간 권한 구조의 차이를 고려한 새로운 구현임. 사용자가 같은 터미널 창에서 관리자 권한으로 명령을 실행할 수 있는 경험을 제공하는 것이 목표임.
  • PowerShell이 curlwget을 완전히 다른 명령어로 대체했던 일과 비슷한 느낌을 받음. 이는 인수가 호환되지 않는다는 점에서 문제가 될 수 있음.
  • Nirsoft의 elevate가 잘 작동했지만, 시스템에 더 통합된 기능을 가지는 것이 좋음.
  • sudo가 거의 한 사람에 의해 유지되고 있다는 점이 흥미로움.
  • sudo의 우수한 사용성에 대해 글을 쓰면서 리눅스/유닉스 계열 운영 체제를 언급하지 않는 것은 이상함.
  • Microsoft에서 근무할 때, UAC(User Account Control)를 보안 경계로 간주하지 않았음. 이 기능이 어떻게 출시될 수 있었는지, 혹은 UAC를 이제 보안 경계로 간주하는지 궁금함.
  • psutilssudo.ps1scoop을 통해 설치하여 사용 중임. UAC 프롬프트가 있지만 대화형 작업에는 적합함.
  • "Windows 12"가 리눅스 기반으로 실행되는 윈도우 매니저 + 데스크탑이 되기를 바람. 이는 Windows 95/7/8/10/11과의 호환성을 유지하기 위해 기존 버그를 세심하게 재현할 것임.
  • PowerShell 명령어의 방향을 고려할 때, 이 새로운 sudo 구현이 매우 복잡한 명령어가 될 것으로 예상됨.
  • Windows에서 sudo가 새로운 기능으로 도입되었지만, 현재로서는 보안에 취약한 것으로 보임. 시간이 지나면서 개선될 것으로 예측됨.