Можно ли заставить пользователя веб-сервера, в моем случае lighttpd
, запускать определенный скрипт, который должен запускаться с разрешениями sudo
?
Я только хочу, чтобы пользователь lighttpd
мог запускать этот сценарий с разрешениями sudo
.
Сценарий, назовем его createFolder.sh
, создает папку из шаблона на верхнем уровне общего ресурса. Пользователи не имеют разрешений на запись на верхнем уровне общего ресурса, но должны иметь разрешение на запись во вновь созданной структуре папок. Таким образом, скрипт устанавливает правильные разрешения для подпапок, и отсюда возникает необходимость использования sudo
(chown
, chmod
и setfacl
).
Причина, по которой я хотел бы использовать для этого веб-интерфейс, заключается в том, что пользователи могут вставлять данные для имени папки и параметров, которые будут определять точную структуру папки.
Я подумал, что будет так же просто, как добавить запись в /etc/sudoers
чтобы позволить пользователю lighttpd
запускать createFolder.sh
без пароля. Похоже, я ошибся, так как получаю следующую ошибку:
sudo: невозможно mkdir /var /db /sudo /lighttpd: разрешение отклонено
Мы верим, что вы получили обычную лекцию от местного системного администратора. Обычно это сводится к этим трем вещам:
1) Уважать частную жизнь других.
2) Подумайте, прежде чем печатать.
3) С большой силой приходит большая ответственность.sudo: tty отсутствует и не задана программа askpass
Если бы можно было настроить сценарий на постоянную работу от имени пользователя с необходимыми правами, он бы разобрался с ним, но я не смог найти, как это сделать или возможно ли это.
Как примечание, я изучил Linux самостоятельно, и даже если я чувствую уверенность в своих силах, я не специалист и всегда стремлюсь к улучшению.
Я использую коробку CentOS 7.
РЕДАКТИРОВАТЬ: я решил проблему с помощью inotify для запуска моего сценария createFolder.sh
при изменении текстового файла. Смотрите правильный ответ и его комментарии. Спасибо, что указали мне правильное направление, ребята.