
Я сейчас пытаюсь немного заблокировать своих пользователей. Я создал несколько пользователей:
www.foo
www.bar
и группа:
apacheadmins
Оба www.foo
, и www.bar
являются членами группы apacheadmins
. В настоящее время у них нет доступа к sudo, но я хотел бы предоставить им доступ к sudo для:
service httpd configcheck
service httpd restart
service httpd graceful
Я добавил следующие строки, используя visudo в самом низу файла sudoers:
### Setting permissions for www.* users
Cmnd_Alias APACHECMDS = /sbin/service httpd configcheck, /sbin/service httpd graceful, /sbin/service httpd restart
%apacheusers ALL = NOPASSWD: APACHECMDS
Я хотел бы, чтобы эти пользователи могли использовать эти команды без запроса пароля, но у них есть только доступ к ключам, и в настоящее время им не назначены пароли.
Всякий раз, когда я сохраняю изменения, открываю новый сеанс bash как www.foo
или 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
чтобы решить эту проблему.