Мне нужно выполнить скрипт через php (php5.xx), сервер работает под управлением apache2 (Ubuntu 10.04). Сценарий должен быть выполнен от имени другого пользователя.
Я добавил следующие строки в файл /etc/sudoers
:
Cmnd_Alias SECURE_SVN_UPDATE = /path_to_script/just_svn_update.sh
#www-data ALL=(ALL,!root,!#0) NOPASSWD: SECURE_SVN_UPDATE
www-data ALL=(ALL) NOPASSWD: SECURE_SVN_UPDATE
(Я пробовал обе строки)
И в PHP я звоню
exec("sudo -u theuser SECURE_SVN_UPDATE")
Я получаю ошибку
sudo: no tty present and no askpass program specified
Я пробовал настройку
Defaults visiblepw
в файле sudoers
, но после этого при запуске команды из PHP выдается ошибка:
sudo: 3 incorrect password attempts
.
Может кто-нибудь, пожалуйста, скажите мне, как исправить это ИЛИ метод достижения этого без ущерба для безопасности. (Я хочу, чтобы apache мог выполнять только этот скрипт от имени другого пользователя, больше ничего).