유닉스 시스템에서는 피치못할 이유로 SUID, SUDO등을 이용해 일반 사용자계정이 root권한을 얻어야 할경우가 있습니다.
그 경우 빈번히 쓰는것이 chmod를 이용한 SUID를 설정하는 방법입니다만..
예전 시스템들 (레드햇 5.2이전, 솔라리스7이전)은 잘 되지만 최근 시스템들은 SUID를 설정하여도 잘되지 않습니다.
보안상의 문제점으로 많이 막아놓고 있는데요...
이럴경우 SUDO는 손쉽게 설정파일을 통한 제어를 가능하게 해줍니다.
먼저 SUDO패키지를 설치하고..
/etc/sudoers파일을 visudo를 이용해 편집합니다.
반드시 visudo를 이용해야 하며 sudo를 이용하면 안됩니다.
간단히 popori계정이 ftp데몬을 실행시킬경우
popori ALL=/etc/init.d/proftpd start,/etc/init.d/proftpd stop
와 같이 적어주고
/usr/local/bin/sudo /etc/init.d/proftp start/stop명령으로 가능합니다.
하지만 nobody와 같이 특별한 계정은 위의 명령외에 NOPASSWD란 옵션이 추가로 필요합니다.
아마도 시스템계정이라 그런것 같은데요...
nobody ALL=NOPASSWD: /etc/init.d/httpd restart
와 같이 적어주고 sudo를 통해 apache의 restart/start/stop이 가능합니다.
이런 패키지들은 보안상의 많은 문제점을 만들고 있지만.. 아주 유용하게 사용이 가능하고..
아래와 같은 주의사항을 지켜 만들어서 사용하면 좋지 않을까한다.
*주의*
sudo와 함께 사용하기 위한 명령어는 신중하게 선택되어야 한다. 특히 쉘 스크립트 사용하지 말고 인터랙티브 프로그램(편집기나 게임)을 실행하는 쉘 명령어를 실행하기 위한 shell escape를 제공하는 유틸리티도 사용하면 안된다.
그 경우 빈번히 쓰는것이 chmod를 이용한 SUID를 설정하는 방법입니다만..
예전 시스템들 (레드햇 5.2이전, 솔라리스7이전)은 잘 되지만 최근 시스템들은 SUID를 설정하여도 잘되지 않습니다.
보안상의 문제점으로 많이 막아놓고 있는데요...
이럴경우 SUDO는 손쉽게 설정파일을 통한 제어를 가능하게 해줍니다.
먼저 SUDO패키지를 설치하고..
/etc/sudoers파일을 visudo를 이용해 편집합니다.
반드시 visudo를 이용해야 하며 sudo를 이용하면 안됩니다.
간단히 popori계정이 ftp데몬을 실행시킬경우
popori ALL=/etc/init.d/proftpd start,/etc/init.d/proftpd stop
와 같이 적어주고
/usr/local/bin/sudo /etc/init.d/proftp start/stop명령으로 가능합니다.
하지만 nobody와 같이 특별한 계정은 위의 명령외에 NOPASSWD란 옵션이 추가로 필요합니다.
아마도 시스템계정이라 그런것 같은데요...
nobody ALL=NOPASSWD: /etc/init.d/httpd restart
와 같이 적어주고 sudo를 통해 apache의 restart/start/stop이 가능합니다.
이런 패키지들은 보안상의 많은 문제점을 만들고 있지만.. 아주 유용하게 사용이 가능하고..
아래와 같은 주의사항을 지켜 만들어서 사용하면 좋지 않을까한다.
*주의*
sudo와 함께 사용하기 위한 명령어는 신중하게 선택되어야 한다. 특히 쉘 스크립트 사용하지 말고 인터랙티브 프로그램(편집기나 게임)을 실행하는 쉘 명령어를 실행하기 위한 shell escape를 제공하는 유틸리티도 사용하면 안된다.