유닉스 시스템에서는 피치못할 이유로 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를 제공하는 유틸리티도 사용하면 안된다.
2005/07/04 10:21 2005/07/04 10:21
개별 패키지 설치는 한두개 의존성만 해결하면 손쉽게 설치할 수 있지만
만약 KDE이나 GNOME을 설치 안했다가 설치할려면 골치좀 썩습니다.
이런 문제를 redhat 9.0에서는 완전히 해결했습니다.

1. 시디를 가지고 있을때
이건 간단한데 redhat-config-packages 를 실행하면 됩니다.

2. 하드디스크에 iso이미지를 가지고 있을때
실제 제가 열려드리고 싶은 부분은 이부분인데 위의 redhat-config-packages을 콘솔에서 실행합니다.
# redhat-config-packages --isodir=PATH

다음 과정은 1과 같습니다.
redhat-config-packages는 실제 /usr/share/redhat-config-packages/MainWindow.py를 구동시킵니다.
redhat-config-packages는 단지 MainWindow.py에 실행퍼미션을 주고 실행시키는 역활을 합니다.
2005/07/04 10:21 2005/07/04 10:21
프로그램을 데몬처럼 실행하고 싶을 때는 다음과 같이 하면 됩니다.

명령어 &

여기서 '&'는 백그라운드로 실행하라는 뜻입니다.
그런데, 로그아웃하면 프로그램이 함께 끝나 버리게 됩니다.

이럴때에는 nohup 이란 명령어를 사용하면 됩니다.

nohup 명령어 &

이렇게 하면 로그아웃을 하더라도 프로그램은 백그라운드로 계속 실행됩니다.
2005/07/04 10:20 2005/07/04 10:20