Sudo

한국 데비안 사용자 모임
Redneval (토론 | 기여)님의 2009년 6월 4일 (목) 18:14 판 (새 문서: 제목 : sudo 난이도 : 초급 사전지식 : 필요없음 작성자 : redneval 라이선스 : GFDL 처음 작성일자 : 2009년 6월 == 목적 == 리눅스에서는 (보안...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 가기 검색하러 가기
제목 : sudo
난이도 : 초급
사전지식 : 필요없음
작성자 : redneval
라이선스 : GFDL
처음 작성일자 : 2009년 6월


목적

리눅스에서는 (보안상 이유로) root 외에 관리자 계정을 만들어서 사용할 것을 권장하고 있습니다.

본 문서에서는, sudo 명령어를 사용할 수 있도록 하는 방법을 설명하겠습니다.

설명의 편의상 관리자 계정으로 사용할 아이디가 debianadmin 이라고 가정하고 설명하겠습니다.


설치

sudo 를 사용하기위해서는 sudo 꾸러미를 설치해야합니다.

터미널을 열고 다음 명령어를 입력합니다.

su
apt-get install sudo


설정

그 다음에는 /etc/sudoers 파일을 편집해야합니다.

visudo 명령어를 사용하여 편집하는 것이 원칙입니다.

하지만 본 문서는 초급자용으로 만들어졌기 때문에, gedit 으로 편집하는 방법을 설명하겠습니다.

터미널을 열고 다음 명령어를 입력합니다.

su
chmod +w /etc/sudoers
gedit /etc/sudoers

만약 그래픽 환경을 사용할 수 없거나, 터미널 환경에서 편집하려는 경우에는 gedit 대신에 nano 라는 편집기를 사용하면 됩니다.

즉, gedit /etc/sudoers 대신에 nano /etc/sudoers 를 사용합니다.

(참고로, nano 로 편집이 끝나면 [Control-X], [Y], [Enter] 를 입력하여, 파일을 저장하고 nano 프로그램을 종료할 수 있습니다.)


sudoers 파일의 내용을 살펴보면, 다음과 같은 줄이 있습니다.

root ALL=(ALL) ALL
구분 설명 (의미)
root `root에게 sudo의 권한을 준다.'라는 의미입니다.
첫번째 ALL `어떤 호스트에서 실행되고 있는지 여부와 상관없이 sudo를 사용할 수 있다.'라는 의미입니다.
두번째 (ALL) sudo 명령어를 사용하면, 마치 다른 사용자로 로그인한 것처럼 명령어를 실행할 수 있습니다.

기본적으로 sudo 명령어를 실행하면 root 로 로그인한 것처럼 명령어가 실행되지만,

예를 들어 다음과 같이 -u 옵션을 사용하는 경우에는,

sudo -u debianadmin mkdir test_dir

test_dir 라는 디렉터리는 debianadmin 의 소유로 됩니다.

마치 debianadmin 으로 로그인하여 mkdir test_dir 명령어를 실행한 것처럼 동작하기 때문입니다.

두번째 (ALL)은 `-u 옵션으로 어떠한 사용자로든 사용할 수 있다.'라는 의미입니다.

(ALL) 대신에 (root) 로 바꾸면, -u 옵션으로 root 밖에 사용할 수 없게 됩니다.

또한 (ALL) 을 빼버리면 (root) 와 같습니다. 즉, 다음 둘은 동일합니다.

root ALL=ALL
root ALL=(root) ALL

참고로, 일반적인 데스크탑 용도로 사용한다면, sudo 명령어의 -u 옵션을 사용해야하는 경우는 거의 없기 때문에

이 부분은 신경쓰지 않아도 됩니다.

세번째 ALL `어떠한 명령어인지 여부와 상관없이 sudo를 사용할 수 있다.'라는 의미입니다.

종합해보면, root는 어떤 컴퓨터에서 실행하건, 어떤 사용자로든, 어떠한 명령어건 상관없이

모든 작업을 sudo 를 이용하여 할 수 있게 설정한 것입니다.


이번에는 새로운 설정을 /etc/sudoers에 추가해봅시다.

두 가지 방법을 설명해 놓았는데, 잘 모르겠으면 첫번째 방법을 사용합시다.

구분 방법
기본적인 방법

(추천)

사용자 ID가 debianadmin 인 경우에는 다음을 /etc/sudoers 에 추가합니다.
debianadmin ALL=(ALL) ALL

그렇게 하면 debianadmin 라는 사용자는 sudo 명령어를 통해서 root 의 권한을 획득할 수 있습니다.

암호입력 생략

(비추천)

sudo 명령어를 사용하면 암호를 물어봅니다. 암호입력하는 단계를 생략하고 싶다면 다음을 /etc/sudoers 에 추가합니다.
debianadmin ALL=(ALL) NOPASSWD: ALL

다만, 암호입력을 생략하는 방식은 보안상 문제가 발생할 수 있기 때문에 사용하지 않는 것이 좋습니다.


(더욱 자세한 설명은 man sudoers 를 참조하기 바랍니다.)


마무리

sudoers 파일 편집이 끝났으면 다음 명령어를 입력합니다.

chmod -w /etc/sudoers


사용방법

끝났으면 su 명령어로 debianadmin 로 로그인해봅시다.

su debianadmin

이제부터는 root 권한이 필요한 작업은 sudo 명령어를 통해 가능합니다.

예를 들어 재부팅을 하려면 root 권한이 있는 상태에서 reboot 명령을 사용해야하는데,

su
reboot

그 대신에, 다음과 같이 명령어 앞에 sudo 를 붙이면 됩니다.

sudo reboot


본 문서의 라이선스

GNU 자유 문서 사용 허가서 1.2판 또는 자유 소프트웨어 재단에서 발행한 이후 판의 규정에 따라 본 문서를 복제하거나 개작 및 배포할 수 있습니다.

본 문서에는 변경 불가 부분이 없으며, 앞 표지 구절과 뒷 표지 구절도 없습니다.