저는 리눅스의 ㄹ 자도 모르는 입장인데, 회사에서 서버관리를 하려면 리눅스를 알아야 하기 때문에 요즘 조금씩 공부하고 있습니다. 그런데 체계적으로 공부하기 보다는 알고싶은거 그때그때 찾아보면서 익히고 있는데요

이 글은 제 블로그에서의 리눅스 첫 글이자 여러분께 질문드리는 글이기도 합니다. 제목과 같이 root 계정이 아닌 일반 계정에서 http 데몬을 실행시키는 방법인데, 제가 찾은 방법 외에 다른 방법이 더 있는지, 그리고 이 방법에 어떠한 문제점들이 있는지 아낌없는 조언 부탁드립니다.


1. setuid

첫번째 방법은 setuid를 활용하는 것인데요, 보안상 별로 좋지 못한 방법 같습니다.

예제) chmod u+s /usr/sbin/httpd


제가 대충 이해하기로는 저렇게 하면 /usr/sbin/httpd 파일을 실행하면 누구나 이 파일의 소유자인 root 계정의 권한으로 실행을 할 수 있게 된다는 것입니다. 따라서 아무나 http 데몬을 실행하거나 중지시킬 수 있기 때문에 보안상 별로 좋지 못한 방법이 되겠습니다.

되돌리려면 u-s 하시면 되겠죠.

예제) chmod u-s /usr/sbin/httpd


2. sudoers

두번째 방법은 sudoers 파일을 수정하는 것인데요, 사용법이 이게 맞는지는 모르겠으나 제 생각대로 해보니 일단은 잘 되기 때문에 이 방법을 올려봅니다.

일단 root 계정에서 /etc/sudoers 파일을 수정합니다. 주석을 보니까

user MACHINE=COMMANDS

라인이 있더라구요. 그래서 이렇게 한줄 추가해봤습니다.

예제) snoopy ALL=/usr/sbin/httpd


이렇게 파일을 수정한 다음 snoopy 계정에서 sudo로 httpd를 실행시키니 잘 되더군요.


이 방법은 http 데몬을 구동할 수 있는 권한을 root 이 외에 snoopy 계정에만 부여하는 것이니 첫번째 방법보다 보안상 훨씬 더 안전한 방법으로 보입니다.



이 글은 여기까지구요, 위 방법보다 더 좋은 방법이 있다면 조언 부탁드립니다. 그리고 리눅스 먼저 공부하신 선배로서 저같은 초보자에게 조언해주실 말씀 있다면 대 환영입니다. ^^