Я хочу запустить команду "svn update" из php-скрипта, пользователь которого называется "apache". Как я могу назначить разрешения для пользователя Apache для выполнения "обновления SVN"?
1 ответ
3
Я хотел бы создать команду в файле sudoers, а затем использовать sudo -u user-who-owns-svn-repo svn update
в вашем PHP-скрипте.
Изменения в /etc/sudores
будут похожи на:
Cmnd_Alias SVN = /usr/local/bin/svn
apache ALL=(ALL,!root,!#0) NOPASSWD: SVN
Смотрите руководство Sudoers для получения дополнительной информации.
Если вам нужны более строгие элементы управления, создайте сценарии оболочки, которые имеют определенные команды SVN и разрешают доступ к ним только Apache. Например:
Файл /path/to/my/project/update.sh
:
#!/bin/bash
svn update /path/to/my/project/svn-files
Файл /etc/sudores
:
Cmnd_Alias SVN = /path/to/my/project/update.sh
apache ALL=(ALL,!root,!#0) NOPASSWD: SVN
(и не забудьте chmod +x path/to/my/project/update.sh
)