Bre*_*gan 35 ubuntu su bash svn
我正在致力于自动创建 subversion 存储库和相关网站,如我写的这篇博文中所述。我在向 www-data 用户运行以下命令的部分遇到了问题:
svnadmin create /svn/repository
Run Code Online (Sandbox Code Playgroud)
在脚本的开头有一个检查,以确保它以 root 或 sudo 身份运行,并且该命令之后的所有内容都需要以 root 身份运行。有没有一种好方法可以将那个命令作为 www-data 运行然后切换回 root 来完成?
小智 69
'su' 可能是请求密码,而 www-data 没有密码。我推荐命令sudo
:
sudo -u www-data command
Run Code Online (Sandbox Code Playgroud)
条件是你的用户必须是root,或者在sudoers文件中配置
joh*_*n64 34
只需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
用户的无登录政策)
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
用户的无登录政策)
归档时间: |
|
查看次数: |
88271 次 |
最近记录: |