切换到新用户时需要脚本继续

时间:2014-05-30 16:09:14

标签: shell unix su

所以我有这个脚本会把你带到一个新系统,切换到一个新用户,然后我需要它在该用户下执行另外三个命令。这就是我现在设置的方式。

ssh -t $7 'cd /home/install/ ; su -c bash install ; tar -xvf [tarball] ; cd [directory] ; ./execute install ; bash'

它的作用是将我的用户切换到安装用户,但是在那里它不会执行以下任何命令。只有在我退出安装并返回root用户后,才会运行这些最终命令。

所以对于一个tldr;我需要一种方法来运行最后三个命令作为安装用户。

感谢您的时间! :)

2 个答案:

答案 0 :(得分:0)

使用sudo代替su,这正是您真正需要的。

答案 1 :(得分:0)

你有两个问题: 你的报价被解读了 2.您没有正确使用su

如果您希望su以该用户身份执行命令,则必须在STD​​IN中提供命令,例如echo 'cd; ls' | su user。但是,要做到这一点,你需要逃避一些事情。

如果要以用户安装运行的命令是:

cmd1; cmd2; cmd3

因此,您可以像su那样提供它:

echo 'cmd1; cmd2; cmd3' | su install

但是,你也希望通过ssh执行它,这意味着你必须在第一个序列中转义引号:

ssh user@host 'echo \'cmd1; cmd2; cmd3\' | su install'