Answers:
只需su - www-data -c 'svnadmin create /svn/repository'在由root运行的脚本中使用即可。因此,只有www-data用户可以运行此命令。
未来观众的更新:
如果出现"This account is currently not available"错误,请考虑使用:
su - www-data -s /bin/bash -c 'svnadmin create /svn/repository'
(@Petr关于-s标志的有价值的提及,以适应www-data用户的非登录策略)
This account is currently not available.
su - www-data -s /bin/bash -c 'your_command',使这项工作。用户www-data具有外壳程序,/usr/sbin/nologin因此如果没有该-s参数,它将导致错误消息。
使用“ su”可能是要求输入密码,而www-data没有密码。我推荐命令sudo:
sudo -u www-data command
条件是您的用户必须是root用户,或者必须在sudoers文件中配置
2可能的方法:
1)sudo命令:
在大多数情况下,您将可以访问该sudo命令,因此解决方案很简单:
sudo -u target_user target_command
2)su命令(如果未安装sudo Ex. alpine-linux images):
su - target_user -c 'target_command'
如果您收到“此帐户当前不可用”错误,则该用户具有有效的不登录(shell访问)策略。如果是这样,请考虑使用:
su - target_user -s /bin/bash -c 'target_command'
(基于@Petr关于-s标志的有价值的评论,以适应www-data用户的不登录策略)