В настоящее время я пытаюсь немного заблокировать своих пользователей. Я создал несколько пользователей:

  • 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 ответ1

0

Проблема в том, что пользовательская $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 чтобы решить эту проблему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .