shell脚本切换用户执行命令

用root执行一个脚本,中间切换tomcat用户执行另外一个脚本,目前写法:

echo "root执行代码块"
su - tomcat
sh /test.sh

echo "root执行代码"

这种写法实际不会真正切换用户,还是用的root执行。

有两种方式可以实现:

1.使用EOF

echo "root执行代码块"
su - tomcat<

 EOF模块内可以写多条命令,不过用户的环境变量好像加载不了。

2.使用su - tomcat -c "具体命令"

echo "root执行代码块"
su - tomcat -c "cd /home/tomcat && sh ./test.sh"

echo "root执行代码"

这样就可以切换到tomcat用户执行,完成后返回当前用户。

你可能感兴趣的:(Linux,linux)