Shell 脚本中实现切换用户并执行命令操作

方法一

cat test.sh

#!/bin/bash
su - test <<EOF
pwd;
exit;
EOF

执行结果:

[root@xiexianbin_cn ~]# sh test.sh 
Last failed login: Fri May 11 22:28:05 CST 2018 from 54.223.70.254 on ssh:notty
There were 4 failed login attempts since the last successful login.
/home/test
[root@xiexianbin_cn ~]# 

方法二

su - test -c "pwd"

执行结果:

[root@xiexianbin_cn ~]# su - test -c "pwd"
/home/test
[root@xiexianbin_cn ~]# 

说明

切换用户只执行一条命令的可以用:

su - test -c command

切换用户执行一个shell文件可以用:

su - test -s /bin/bash shell.sh

完毕。