Computer >> 컴퓨터 >  >> 소프트웨어 >> 소프트웨어

리눅스 sudo 명령어를 대체할 수 있는 Windows용 도구 5가지

리눅스를 직접 사용해 본 경험이 있거나 주변에 리눅스 사용자가 있다면 sudo 명령어를 한 번쯤 들어보셨을 것입니다. sudo는 사실상 모든 리눅스 배포판의 핵심 구성 요소로, 다른 사용자의 권한으로 명령어를 실행할 수 있게 해주는 도구입니다. 특히 최고 관리자 권한인 root 사용자로 명령을 실행할 때 가장 많이 활용됩니다.

일부 리눅스 배포판에서는 su 명령어로 root 계정에 직접 로그인할 수도 있지만, 이 방식은 보안상 매우 위험하다고 여겨져 실제로 사용하는 경우는 드뭅니다. 위험성이 워낙 크기 때문에 우분투(Ubuntu) 같은 배포판에서는 root 로그인이 기본적으로 비활성화되어 있으며, root 권한이 필요할 때는 반드시 sudo 명령어를 사용해야 합니다.

그렇다면 Windows는 어떨까요? 안타깝게도 대부분의 사용자는 관리자(Administrator) 권한으로 Windows에 로그인하고 있습니다. 이는 리눅스의 root 사용자와 동일한 수준의 권한입니다. Microsoft는 이러한 위험을 줄이기 위해 UAC(사용자 계정 컨트롤)라는 기능을 도입했습니다.

UAC 덕분에 사용자가 관리자 권한을 가지고 있더라도, 해당 계정에서 실행되는 프로그램은 사용자가 직접 승인하지 않는 한 관리자 권한을 상속받지 못합니다. 이를 통해 관리자 계정으로 로그인한 사용자가 악성코드나 스파이웨어에 감염되는 것을 상당 부분 예방할 수 있습니다.

리눅스 사용자에게 sudo가 있다면, Windows 사용자에게는 무엇이 있을까요? 상승된 권한으로 명령을 실행할 수 있는 대안이 존재할까요? 결론부터 말하면 Windows에도 sudo와 유사한 역할을 하는 도구들이 여럿 존재합니다. 이 글에서는 Windows에서 활용할 수 있는 sudo 대안 5가지를 소개합니다.

참고: 일부 도구는 오래전에 개발된 것이라 최신 버전의 Windows에서 정상적으로 작동하지 않을 수도 있습니다.

1. Windows 기본 명령어: runas

Windows에는 리눅스의 sudo와 가장 직접적으로 대응되는 runas 명령어가 내장되어 있습니다. runas를 사용하면 다른 사용자 또는 관리자 권한으로 프로그램, 스크립트, 명령어를 실행할 수 있습니다. 기본 문법은 다음과 같습니다.

runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program

예를 들어 관리자 권한의 명령 프롬프트를 열고 싶다면 아래처럼 입력합니다.

runas /noprofile /user:Administrator cmd

/noprofile 옵션은 현재 사용자 프로필을 불러오지 않겠다는 의미입니다. 사용자 환경 변수에 접근해야 한다면 이 옵션을 빼면 됩니다. 메모장을 관리자 권한으로 실행해 텍스트 파일을 열고 싶다면 다음과 같이 입력할 수 있습니다.

runas /user:Administrator "notepad my_file.txt"

runas 명령어의 자세한 사용법은 Microsoft Technet 문서에서 확인할 수 있습니다.

다만 runas 사용 시 주의할 점이 있습니다. 프로그램을 설치하거나 설정을 변경하면, 그 변경 사항은 현재 로그인한 계정이 아니라 명령을 실행하는 대상 계정에 적용됩니다. 예를 들어 일반 사용자 X로 로그인한 상태에서 관리자 Y의 자격 증명으로 runas를 실행하면, 변경 내역은 X가 아닌 Y(관리자)의 설정에 반영됩니다.

마찬가지로 EXE 파일을 마우스 오른쪽 버튼으로 클릭해 '관리자 권한으로 실행'하면, 프로그램은 현재 로그인한 프로필이 아니라 기본 제공 Administrator 프로필에 설치됩니다. 프로필 문제 없이 진짜 sudo처럼 권한만 상승시키고 싶다면 아래 소개하는 다음 도구를 확인해 보세요.

2. Sudo for Windows – SourceForge 버전

Sudo for Windows는 설치형 무료 프로그램으로, 리눅스의 sudo와 거의 동일한 경험을 Windows에서 제공합니다. 개발자의 설명에 따르면 유일한 차이점은 "사용자의 프로필과 생성된 객체의 소유권을 유지한다"는 점입니다. 프로그램 설치나 내 문서(My Documents) 같은 사용자 위치 변경 작업 시 상승된 권한을 자주 사용하는 분들에게 매우 유용한 기능입니다.

이 도구는 관리자 권한을 부여하면서도, 모든 변경 사항을 명령 실행에 사용한 계정이 아닌 현재 프로필에 저장해 줍니다. 참고로 이 프로그램은 .NET 2.0이 필요한데, .NET 2.0은 단독으로 다운로드할 수 없으므로 2.0을 포함하고 있는 .NET Framework 3.5를 설치해야 합니다.

Sudo for Windows를 설치한 후에는, 상승된 권한을 허용할 사용자 계정을 프로그램이 생성한 Sudoers 그룹에 추가해야 합니다. '내 컴퓨터' 또는 '내 PC'를 마우스 오른쪽 버튼으로 클릭하고 관리(Manage)를 선택한 뒤, 사용자 및 그룹을 확장하고 그룹을 클릭하면 Sudoers 그룹이 보입니다.

Sudoers를 더블클릭한 후 추가(Add) 버튼을 누릅니다. 다음 대화상자에서 고급(Advanced) 버튼을 클릭하고 지금 찾기(Find Now)를 누르면 시스템의 모든 사용자와 그룹 목록이 표시됩니다. 추가하려는 사용자를 더블클릭하면 됩니다.

추가할 사용자 수만큼 이 과정을 반복한 뒤 확인을 누르면, 멤버 목록에 등록된 사용자들이 표시됩니다. 이후에는 sudo GUI와 명령어를 모두 사용할 수 있습니다. 프로그램을 마우스 오른쪽 버튼으로 클릭하면 Sudo 옵션이 나타나고, 명령 프롬프트에서 sudo를 입력해 상승된 권한으로 명령을 실행할 수도 있습니다.

전반적으로 꽤 쓸만하고 잘 작동하는 도구입니다. 다만 이 프로그램은 마우스 우클릭이나 명령 프롬프트를 통해 프로그램이나 프로세스를 실행(launch)하는 용도에 적합하며, 명령줄 앱 자체를 실행하기 위한 용도는 아닙니다. 예를 들어 sudo mkdir "c:\Program Files\new"처럼 명령줄 명령에 sudo를 붙이는 방식은 이 도구로는 동작하지 않습니다. 이런 기능이 필요하다면 이름은 같지만 다른 개발자가 만든 도구를 사용해야 하는데, 바로 아래에서 소개합니다.

3. Sudo for Windows – Luke Sampson 버전

또 다른 개발자 Luke Sampson이 만든 Sudo for Windows는 명령줄 앱까지 실행할 수 있는 버전입니다. 앞서 든 예시인 C:\Program Files 폴더 생성으로 돌아가 보겠습니다. 기본 상태에서는 이 작업이 불가능합니다.

PowerShell에서든 명령 프롬프트에서든 권한 오류가 발생하지만, 이 Sudo for Windows를 설치한 후 명령어 앞에 sudo만 붙이면 오류 없이 완벽하게 실행됩니다.

설치 방법은 간단합니다. PowerShell을 연 뒤 아래 명령어를 순서대로 입력하세요.

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

set-executionpolicy unrestricted -s cu -f

scoop install sudo

모든 과정이 정상적으로 완료되면 각 명령어 입력 후 PowerShell에 성공 메시지가 출력됩니다.

설치가 끝났습니다! 이제 명령어 앞에 sudo를 붙여 사용하기만 하면 됩니다. 다만 한 가지 번거로운 점은 UAC 창이 여전히 뜬다는 것이며, 작동하려면 '예'를 클릭해야 합니다. 이런 사소한 불편함에도 불구하고 얻는 이득은 충분히 가치가 있습니다.

4. Elevate

Elevate는 UAC와 함께 작동하는 프로그램으로, sudo와 완전히 동일하게 동작하지는 않습니다. Elevate는 runas 명령어처럼 실행 사용자를 관리자로 전환합니다. 하지만 명령줄 작업이나 배치 파일(batch file) 작업에서 특히 유용합니다.

Elevate의 주요 목적은 UAC를 우회하는 것이 아니라, 권한이 상승되지 않은 셸(non-elevated shell)에서 상승된 상태의 프로세스를 시작하고, 명령이 완료된 후에도 정상적으로 작업을 이어가는 것입니다. '우클릭 후 관리자 권한으로 명령 프롬프트 실행'하는 과정을 스크립트로 처리할 필요가 없기 때문에, 스크립팅 작업에서 Elevate는 큰 강점을 발휘합니다.

5. Elevation PowerToys for Windows

명령줄 작업이 많거나 스크립트·배치 파일을 자주 다루는 사용자라면 Elevation PowerToys for Windows 페이지에서 유용한 도구와 스크립트를 다수 찾을 수 있습니다.

이 스크립트 도구들은 명령줄에서 프로그램의 권한을 상승시키거나 관리자 권한으로 스크립트를 실행할 때 UAC로 인해 겪게 되는 불편함을 해소하기 위해 만들어졌습니다.

마무리

위에서 소개한 도구들을 활용하면 Windows에서도 마치 sudo를 사용하는 듯한 경험을 할 수 있습니다. 리눅스의 sudo를 완벽하게 대체하는 도구는 없지만, 상당히 근접한 선택지는 여러 가지가 존재합니다. Windows에서 프로그램, 명령어, 스크립트의 권한을 상승시키기 위해 다른 도구를 사용하고 계신다면 댓글로 공유해 주세요!