[server] 리눅스 : 아파치를 재시작 할 수있는 권한을 부여하는 방법?

특정 조건에서 아파치 httpd를 다시 시작 해야하는 루트가 아닌 사용자로 스크립트를 실행 중입니다.

사용자가 그렇게 할 수있는 가장 간단한 방법은 무엇입니까?

Ubuntu Server 8.04 LTS를 사용하고 있습니다.



답변

짧은 답변:

를 사용 visudo하여 sudoers 파일에 다음을 추가하고 username을 올바른 username으로 바꿉니다.

username ALL = /etc/init.d/apache2

이렇게하기 전에 비밀번호를 입력하지 않으려면 다음을 사용하십시오.

username ALL = NOPASSWD: /etc/init.d/apache2

그런 다음 ‘username’사용자는 실행 sudo /etc/init.d/apache2 start(또는 중지, 재시작 등) 할 수 있습니다.

긴 대답 : 아직 사용하지 않은 경우 별도의 사용자를 설정 한 다음 사용자 또는 그룹이 원하는 명령을 실행할 수 있도록 / etc / sudoers 파일을 구성 할 수 있습니다.

예를 들어, 사용자 ‘ben’이 암호를 묻는 프롬프트로 모든 명령을 실행할 수있게하려면 다음을 수행하십시오.

ben ALL= ALL

‘ben’이 하나의 명령 (예 🙂 만 실행하도록하려면 rm다음을 수행하십시오.

ben ALL= /bin/rm

사용자로 스크립트를 실행 중이고 비밀번호를 묻지 않으려면 다음과 같이 ‘NOPASSWD’옵션을 사용하십시오.

ben ALL=NOPASSWD: /bin/commandname options

다음과 같이 그룹 이름 앞에 백분율 기호를 붙여 그룹에 대해 동일한 작업을 수행 할 수 있습니다.

%supportstaff          ALL= NOPASSWD: /bin/commandname


답변

짧은 대답 : sudo.

호출은 다음과 유사합니다. sudo /etc/init.d/apache2 restart

가장 쉬운 방법은 visudo/ etc / sudoers 파일을 설정하는 것입니다. 참조 man sudoersman visudo자세한 내용은.


답변

apache2ctl에 랩퍼를 작성하고 웹 관리 그룹에 그룹 소유권을 지정하고 suid 비트를 설정하여이를 수행 할 수도 있습니다. 이것은 visudo보다 덜 일반적인 솔루션이지만 사용자 기능 및 오류 검사에 대한 사용자 지정 제한을 허용합니다.

나는이 도구를 내 필요에 맞게 작성하고 github에서 공유했습니다 : https://github.com/josiahjohnston/ltd_apache2ctl


답변