sudo

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
sudo
Sudo on Ubuntu.png
터미널에서의 sudo
개발자 Todd C. Miller
최근 버전 1.8.0 / 2011년 2월 27일
운영 체제 유닉스 계열
종류 권한 부여
라이선스 ISC-style[1]
웹사이트 www.sudo.ws

sudo 명령어는 유닉스유닉스 계열 운영 체제에서 다른 사용자의 보안권한과 관련된 프로그램을 구동할 수 있게 해주는 프로그램이다. 이것은 substitute user do (다른 사용자의 권한으로 명령을 이행하라, 는 뜻이다.) 의 줄임말이다. 기본적으로 Sudo는 사용자 비밀번호를 요구하지만 루트 비밀번호(root password)가 필요할 수 도 있고, 한 터미널에 한번만 입력하고 그 다음부터는 비밀번호가 필요 없다.[2] Sudo는 각 명령줄에 사용할 수 있으며 일부 상황에서는 관리자 권한을 위한 슈퍼유저 로그인(superuser login)을 완벽히 대신하며, 주로 우분투 리눅스애플맥 오에스 텐 에서 볼 수 있다.[3][4]

이 프로그램을 처음 쓴 사람은 Bob Coggeshall 과 Cliff Spencer 이며, 그들은 이 프로그램을 뉴욕의 버팔로 대학의 컴퓨터과학부에서 "1980년 근처에" 썼다. 현재 버전은 활발히 개발중이며 OpenBSD의 개발자 Todd C Miller가 유지하고 있고 BSD 라이선스로 배포되고 있다. [5]

2009년에 난감하게도 MS가 sudo 명령어를 특허로 등록했다는 것이 밝혀져 큰 파장을 일으켰으나 [6], 그 청구항들은 sudo의 개념이라기보다는 특정한 GUI에 대해 좁게 고안된 것이었다 [7].

예제[편집]

sudo 명령어를 실행하기 전에, 사용자들은 비밀번호를 입력한다. 한 번 승인되고 만약 /etc/sudoers 설정 파일이 그 유저를 승인한다면, 명령은 실행된다. kdesu, kdesudo, gksu, gksudo[8]와 같이 GUI환경에서 사용할 수 있는 몇몇 명령어 들이 있다.[9] 다음은 접근이 거부된 예이다.

 snorri@rimu:~$ sudo emacs /etc/resolv.conf

 We assume you have received the usual lecture from the local System
 Administrator. It usually boils down to these three things:

 #1) Respect the privacy of others.
 #2) Think before you type.
 #3) With great power comes great responsibility.

 Password:
 snorri is not in the sudoers file. This incident will be reported.

아래의 로그는 실패한 시도와, snorri를 /ect/sudoers: 에 추가한 뒤에 성공한 시도이다.

 snorri@rimu:~$ sudo tail /var/log/auth.log
 Aug 5 06:00:28 localhost sudo: snorri : user NOT in sudoers ; TTY=pts/1 ; PWD =/home/snorri ; USER=root ; COMMAND=/usr/bin/emacs /etc/resolv.conf
 Aug 5 06:01:15 localhost su[15573]: (pam_unix) session opened for user root by snorri(uid=1000)
 Aug 5 06:02:09 localhost sudo: snorri : TTY=pts/1 ; PWD=/home/snorri ; USER=root ; COMMAND=/usr/bin/emacs /etc/resolv.conf
 Aug 5 06:02:49 localhost sudo: snorri : TTY=pts/1 ; PWD=/home/snorri ; USER=root ; COMMAND=/usr/bin/tail /var/log/auth.log

runas, su, 그리고 sudo[편집]

윈도는 runas라고 불리는 명령어를 가지고 있다. 이것의 기능은 비슷하나, runas도 아니고 UAC(사용자 계정 컨트롤)도 아닌 것이 sudo이다. - 그들은 권한을 추가하기 보다는 다른 사용자를 가장한다.

runas와 su:

  • 권한이 부여된 유저가 그들 고유의 글을 이용하여 높은 권한의 프로세스를 실행하는 것을 허락치 않는다.
  • 사용자의 프로파일과 객체의 소유권을 보존하지 않는다.

runas명령어는 sudo가 아니라 유닉스의 su와 더 동등하다. sudo가 su에 비해 더 우수한 이유는 su는 사용자의 고유 신분에 기반해 권한이동을 엑세스 하고, 가장 중요한 것은 sudo는 비밀번호 공유가 필요 없기 때문이다. runas나 su를 특권 계정을 엑세스하기 위해 사용하는 것은 관리자-가능 계정의 비밀번호를 유포하는것이 필요하기 때문에, sudo에는 없는 보안상의 약점을 가지고 있다.

각주[편집]

  1. Sudo License
  2. “Manpage for sudo”. 2007년 11월 4일에 확인함. 
  3. RootSudo - Community Ubuntu Documentation
  4. MacDevCenter.com - Top Ten Mac OS X Tips for Unix Geeks
  5. Miller, Todd C. “A Brief History of Sudo”. 2007년 3월 5일에 확인함. 
  6. Lilly, Paul. “Microsoft has Patented "sudo." Yes, the Command”. 2009년 11월 13일에 확인함. 
  7. http://blog.seattlepi.com/microsoft/2009/11/12/did-microsoft-just-sneakily-patent-an-open-source-tool/
  8. 맥 오에스 텐 역시 권한부여 서비스가 있다.
  9. Introduction to Authorization Services Programming Guide

읽을거리[편집]

  • visudo, /etc/sudoers파일을 수정하여 사용하는 vi기반 프로그램.

바깥 고리[편집]