passwd 프롬프트 없이 sudoers에서 그룹에 'service httpd Graceful' 권한을 부여하려면 어떻게 해야 합니까?

passwd 프롬프트 없이 sudoers에서 그룹에 'service httpd Graceful' 권한을 부여하려면 어떻게 해야 합니까?

현재 사용자를 약간 잠그려고 노력하고 있습니다. 일부 사용자를 만들었습니다.

  • www.foo
  • www.bar

그리고 그룹:

  • apacheadmins

www.foo, 및 모두 그룹 www.bar의 구성원입니다 apacheadmins. 현재 sudo 액세스 권한이 없지만 다음에 대한 sudo 액세스 권한을 부여하고 싶습니다.

  • service httpd configcheck
  • service httpd restart
  • service httpd graceful

sudoers 파일 맨 아래에 visudo를 사용하여 다음 줄을 추가했습니다.

### Setting permissions for www.* users
Cmnd_Alias APACHECMDS = /sbin/service httpd configcheck, /sbin/service httpd graceful, /sbin/service httpd restart
%apacheusers ALL = NOPASSWD: APACHECMDS

이러한 사용자가 암호 프롬프트 없이 이러한 명령을 사용할 수 있기를 바랍니다. 하지만 해당 사용자는 키로만 액세스할 수 있고 현재 암호가 할당되어 있지 않습니다.

변경 사항을 저장할 때마다 www.foo또는 으로 새 bash 세션을 열 때마다 www.bar여전히 비밀번호 프롬프트가 표시됩니다.

나는 그것을 조금 가지고 놀았고 전체 경로를 지정하면 작동하도록 할 수 있습니다. 즉:

sudo service httpd graceful작동하지 않습니다. sudo /sbin/service httpd graceful작동합니다.

전체 경로를 지정하지 않고 이 작업을 수행할 수 있습니까?

편집하다: 나는 다음을 사용하고 있습니다 :

[foo@bar~]$ uname -a
Linux bar 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
[foo@bar~]$ cat /etc/redhat-release
CentOS release 5.4 (Final)

답변1

문제는 사용자 $PATH변수에 가 포함되어 있지 않아 실제로 명령을 찾지 못한다는 /sbin것 입니다.sudo

$ sudo service acpid status
[sudo] password for mgorven: 
$ sudo /sbin/service acpid status
acpid (pid 3185) is running...
$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin
$ export PATH=$PATH:/sbin:/usr/sbin
$ sudo service acpid status
acpid (pid 3185) is running...

/sbin이 문제를 해결하려면 사용자에게 추가하세요 $PATH.

관련 정보