将Tomcat7作为tomcat7(或任何其他)用户运行
什么是确保Tomcat7实例作为tomcat7(或任何其他)用户运行的推荐方法?
我想我可以修改tomcat7-instance/bin/startup.sh
和tomcat7-instance/bin/shutdown.sh
并在顶部添加’su tomcat7’。
在Tomcat6中,我认为它是环境变量TOMCAT6_USER
。
最常见的方法是使用apt-get
安装标准的tomcat7
包,并使用以下命令启动它:
sudo service tomcat7 start
默认用户和组在/etc/default/tomcat7
中配置,如本摘录中所示:
# Run Tomcat as this user ID. Not setting this or leaving it blank will use the # default of tomcat7. TOMCAT7_USER=tomcat7 # Run Tomcat as this group ID. Not setting this or leaving it blank will use # the default of tomcat7. TOMCAT7_GROUP=tomcat7
编辑:请阅读下面的评论! 此解决方案可能不适用于所有情况。
接受的答案很棒但是因为我在Ubuntu 14.04上运行Tomcat 7,所以我需要做一些额外的事情才能让一切运行起来:
- 您需要在编辑文件
/etc/default/tomcat7
之前停止tomcat服务。 更改用户和组后,将无法再使用旧用户停止服务。 -
更改文件
/etc/default/tomcat7
的用户和组 -
您需要更改文件夹
/var/log/tomcat7
及其所有文件的所有权。 请注意,保留adm组是一个优点,以便所有adm用户都可以读取日志。sudo chown -R newuser:adm /var/log/tomcat7
-
更改文件夹
/var/lib/tomcat7/webapps
所有权sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps
-
如果在Ubuntu 14.04上的端口80/443上运行,则需要更改authbind文件的所有权:
sudo chown newuser /etc/authbind/byport/80
sudo chown newuser /etc/authbind/byport/443
-
更改工作文件夹的所有权
sudo chown newuser:adm /var/cache/tomcat7
sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina
-
使配置文件可读。 这里有两个选项:通过以下方式将新用户添加到tomcat7组:
sudo usermod -a -G tomcat7 newuser
…或更改配置文件的所有权:
sudo chown -R :newgroup /var/lib/tomcat7/conf/*
-
如果您有其他Web应用程序正在访问的文件,例如日志文件配置文件等,那么您还需要更改这些文件的所有权。
- 现在,所有应该准备好再次使用新用户启动服务。