如何从另一个脚本调用一个bash脚本,作为一个不同的用户?

可能重复:
以不同的用户身份运行一个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 svnsync; /path/to/init-mirror.sh $REPO; exit 

并得到奇怪的结果。 你应该怎么做? 当它很容易远程时,它可能在本地,对吧? (现在,让我们假装运行外部脚本,因为同一个“svnsync”用户不是一个选项。)

我认为问题标题很糟糕,所以如果可以的话,请帮助我解释一下。

重复以不同的用户身份运行一个shell脚本 。 我想你可以自己closures它?