[보안] sudo 를 이용하여 루트 작업 하기
sudo를 이용하여 루트권한으로 작업하기
2000년 1월 10일 김영민 (blhole
at hotmail.com)
# sudo의 홈페이지
: http://www.courtesan.com/sudo/
# sudo는 뭐하는 놈인가?
정확한 약자는 잘 모르지만 SuperUser DO 정도가 아닐까 한다. 즉 이것을 이용하면…
* 관리자의 측면
내가 관리자다. 그런데 한 개인사용자가 루트권한으로만 할 수 있는 일을 하고 싶어한
다.
처음 한 번은 그냥 루트로 로그인 해주고 감시하에 사용하게 했다.
그런데, 이 개인사용자가 하루가 멀다하고 찾아온다. 난 귀찮아졌다.
이 때 sudo를 이용할 수 있다.
* 일반 사용자 측면
내가 꼭 하고 싶은 일이 있는데, 이것은 꼭 루트권한이 있어야 한다.
처음 몇 번은 관리자에게 찾아가 아부해가며 작업을 했으나, 이건 너무나 귀찮은 일이
다.
이 때 관리자에게 sudo를 설치해 달라고 하면 깜짝 놀랄까?
sudo는 위와 같은 상황에서 프로그램 설치후 약간의 환경설정을 통해 관리자, 이용자
모두 편리하게 사용할 수 있는 프로그램이다.
# sudo의 설치
* 위의 홈페이지에서 최신 소스를 받아온다. 현재는 sudo-1.6.1.tar.gz 다.
* 압축을 푼후 디렉토리로 이동한후 INSTALL화일을 읽는다.
* 읽기가 물론 귀찮을 것이다. 그냥
$ ./configure
$ make
$ make install
레드헷 6.1에서 잘 된다. 문제가 있는 분들은 INSTALL, README, TODO화일등을
꼼꼼이 읽어보기 바란다.
# 설정하기
여기서는 간단하게 특정 프로그램을 일반사용자가 사용할 수 있도록 하는 간단한 설정만
을 살펴본다.
복잡한 설정은 다른 설정을 참조하기 바란다.
컴파일시 아무런 설정옵션도 주지 않았다면 /usr/local/sbin/visudo 라는 실행화일이
있을 것이다.
이것을 이용해서 설정한다.
참고로 압축을 푼 디렉토리에 sample.sudoers화일을 보면 가능한 설정들의 예가 나
와 있다.
visudo를 실행한후 편집기(vi)가 뜨면 sample.sudoers화일처럼 써 주면 된다.
가장 간단한 예 한가지만을 보여주고 이 글을 마치려한다.
rootALL=(ALL) ALL
kdhong ALL = /usr/bin/cdrecord
위 처럼 두 줄을 써 주면 root는 모든 호스트에서 모든 작업을 할 수 있고 kdhong은
모든 호스트에서 cd를 구울 수 있다.
이렇게 설정한 후 kdhong은 다음과 같은 명령으로 cd를 구울 수 있다.
[kdhong]$ sudo cdrecord -v speed=2 blank=fast dev=0,0 test.raw
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these two things:
#1) Respect the privacy of others.
#2) Think before you type.
Password:
kdhong의 비밀번호를 입력하면 루트권한으로 작업이 수행된다.