运行切换到用户的远程shell脚本不会返回到发行本地服务器shell

当我运行这样的脚本时:

ssh -t [email protected] '/tmp/somescript.sh' 

脚本被定义为:

 #!/bin/sh mkdir -p /data/workday/cred chown -R myuser:myuser /data su myuser - # <------- NOTICE THIS ! ! ! ! rpm -Uvp --force --nodeps --prefix /data/place /data/RPMs/myrpm.rpm 

注意上面的su命令。

如果我注释掉su命令,脚本就会远程运行,然后我的shell提示符返回到我来自的地方(与上面运行ssh命令的服务器相同)

但是,如上所述,保留脚本将导致脚本成功完成,但shell提示符保留在远程服务器上

我怎样才能防止呢? 确保rpm命令的颁发者是一个不同于超级用户的用户?

用sudo运行rpm命令:

 #!/bin/sh mkdir -p /data/workday/cred chown -R myuser:myuser /data sudo -u myuser rpm -Uvp --force --nodeps --prefix /data/place /data/RPMs/myrpm.rpm 

su启动一个shell。 当你退出这个shell,那么rpm命令将会执行。 如果你正在改变用户执行rpm命令,那么

 su -c 'rpm -Uvp --force --nodeps --prefix /data/place /data/RPMs/myrpm.rpm' myuser