如何授予“apache”运行“svn update”的权限

如何授予“apache”运行“svn update”的权限

我想从 php 脚本中触发“svn update”命令,该脚本的用户是“apache”。我如何为 apache 用户分配执行“svn update”的权限?

答案1

我会在 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 命令的 shell 脚本,并仅允许 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

相关内容