用root执行一个脚本,中间切换tomcat用户执行另外一个脚本,目前写法:
echo "root执行代码块"
su - tomcat
sh /test.sh
echo "root执行代码"
这种写法实际不会真正切换用户,还是用的root执行。
有两种方式可以实现:
1.使用EOF
echo "root执行代码块"
su - tomcat<<EOF
cd /home/tomcat
sh test.sh
exit
EOF
echo "root执行代码"
EOF模块内可以写多条命令,不过用户的环境变量好像加载不了。
2.使用su - tomcat -c "具体命令"
echo "root执行代码块"
su - tomcat -c "cd /home/tomcat && sh ./test.sh"
echo "root执行代码"
这样就可以切换到tomcat用户执行,完成后返回当前用户。