Я хочу, чтобы пользователь мог перезапустить службу php5-fpm. В visudo у меня есть следующее:
username ALL=NOPASSWD: /etc/init.d/php5-fpm
Когда я su
пользователю и запустить sudo /etc/init.d/php5-fpm stop
, Ничего не произошло. Отзывов нет, и служба все еще работает.
Что мне нужно сделать, чтобы разрешить username
контролировать службу? Запуск Ubuntu 13.10.
Изменить: смотреть в auth.log
я вижу
sudo: username : TTY=pts/1 ; PWD=/var/log ; USER=root ; COMMAND=/etc/init.d/php5-fpm stop
Как следует из комментариев rootlash, я считаю, что что-то в двоичном файле PHP-FPM требует root, которого нет у этого пользователя (возможно, открытие портов?). Я решил, что этот пользователь коснется файла, который пользователь root проверяет раз в минуту (cron), и, если он найден, перезапускает службу, а затем удаляет файл.
Не идеально, но работает, чтобы это произошло.
Можете ли вы изменить, как показано ниже в Visudo?
username ALL=NOPASSWD: /etc/init.d/php5-fpm stop
username ALL=NOPASSWD: /etc/init.d/php5-fpm stop, /etc/init.d/php5-fpm start
У вас работает SELinux или один из других менеджеров безопасности? Если это так, даже если команда запускается от имени пользователя root, пользователь может по-прежнему иметь свой тег безопасности и не иметь доступа для выполнения файлов в / etc.
Вы можете временно отключить SELinux и проверить, начинает ли команда работать. Что касается SELinux, я считаю, что вы можете использовать команду "setenforce", чтобы временно отключить его.
Вы пробовали sudo service php5-fpm stop / start?
если это сработает, просто добавьте пользователя ALL: NOPASSWD: / sbin / service
в файл / etc / sudoers