BASH脚本,用于单一命令的www-data

我正在自动创buildSubversion版本库和相关网站,正如我在这篇博文中所描述的。 我遇到的问题正好在我su到www-data用户运行以下命令的部分:

svnadmin create /svn/repository 

在脚本的开始处有一个检查,确保它以root或sudo身份运行,并且一个命令之后的所有内容都需要以root用户身份运行。 有没有一种很好的方式来运行一个命令作为万维网数据,然后切换回到根完成?

在你的脚本运行的脚本中使用su - www-data -c 'svnadmin create /svn/repository' 。 所以只有这个命令是由www-data用户运行的。

用'su'可能是请求密码,www-data没有密码。 我推荐命令sudo

  sudo -u www-data command 

条件是您的用户必须是root用户,或者在sudoers文件中进行configuration

使用su

  su [options] [username] The options which apply to the su command are: -c, --command COMMAND Specify a command that will be invoked by the shell using its -c.