可能重复:
以其他用户身份运行 shell 脚本
在编写脚本以自动初始化 SVN 镜像存储库 ( svnsync ) 时,我再次遇到了尝试以另一个用户的权限启动另一个脚本的问题。
#!/bin/sh
# This outer script is always run with root privileges ("sudo create-repo.sh")
# Create repository, set privileges, etc
[...]
# Set up remote mirror; this works fine! (SSH key authentication)
ssh svnsync@anotherserver /var/lib/svn/init-mirror.sh $REPO
# Set up local mirror as "svnsync" user
# ???
如何以不同用户的身份在同一台机器上调用其他脚本?请注意,外部脚本始终以 root 身份执行,因此su
以 anyuser 身份运行应该不是问题。
我试过类似的东西:
su svnsync; /path/to/init-mirror.sh $REPO; exit
并得到奇怪的结果。你应该怎么做?当远程如此简单时,它可能在本地是可能的,对吧?(现在,让我们假设不能以相同的“svnsync”用户运行外部脚本。)
我认为问题标题很烂,所以如果可以的话,请帮我改写。
以不同用户身份运行 shell 脚本的副本。我想你可以自己关闭它吗?