パスワードプロンプトなしで、sudoers でグループに「service httpd graceful」権限を与えるにはどうすればよいですか?

パスワードプロンプトなしで、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変数に が含まれていないため/sbinsudo実際にコマンドが見つからないことです。

$ 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

関連情報