日期:2014-05-16  浏览次数:20753 次

linux 下发布web应用的权限问题
服务器是linux服务器,上面布置一个tomcat应用服务器。

如果用root运行tomcat的start.sh那么tomcat运行的程序文件访问的权限就跟root一样.
 
我觉得,我无法理解这句话,请求帮助。
比方说,我在tomcat 下的webapps下发布一个应用testA
按照上面的说法,如果tomcat的start.sh是用root帐号启动的话,为啥 testA应用的文件访问权限就跟root一样呢?

------解决方案--------------------
start.sh里面最核心的一句是调用catalina.sh
catalina.sh里面最终调用的是启动java进程的命令
你用root去执行start.sh的话,java进程是运行在root下面的。

如果想避免这种失误,可以修改一下脚本。
start.sh最后一行:
exec "$PRGDIR"/"$EXECUTABLE" start "$@"

改成这样:
exec sudo -u tomcat "$PRGDIR"/"$EXECUTABLE" start "$@"