Использование Ubuntu 16.04LTSПредоставление пользователю гостя запустить скрипт с повышенными привилегиями
Я пытаюсь, чтобы позволить пользователю гостя, который не имеет SUDO полномочия перегружать Nginx всякий раз, когда им нужно, выполнив простой скрипт:
#!/bin/sh
nginx -s reload
, который имеет разрешения -r-xr-xr-x
и позволяет им сделать это с добавлением строки в файле sudoers:
root ALL=(ALL:ALL) ALL
guest ALL=NOPASSWD: /path/to/script.sh
Это все еще дает разрешение на отклонение ошибок.
nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (13: Permission denied)
Я не хочу, чтобы дать свои права гостевых пользователей SUDO, но для того, чтобы перезарядить Nginx Я обычно нужно использовать sudo nginx -s reload
Edit: решаемые мой вопрос - я overthinking проблему, пытаясь выполните команды, которые нужны моим гостевым пользователям через скрипт. Также не получается, как работает/etc/sudoers. Это видео помогло: https://www.youtube.com/watch?v=YSSIm0g00m4
Как корень я сделал sudoers.d файл, visudo -f /etc/sudoers.d/guests
, чтобы правильно дать мои гости SUDO полномочия по Nginx и только Nginx:
Cmnd_Alias NGINX = /usr/local/nginx/sbin/nginx
Cmnd_Alias GUESTS_CMND = NGINX
%guests ALL=GUESTS_CMND
больше [ubuntu.se] или [sf] вопрос, чем программирование - проголосовали за движение. – Filburt
Вы пытались setuid to root? –
И как гость запускает этот скрипт? –