
現在、ユーザーを少し制限しようとしています。いくつかのユーザーを作成しました:
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
。