将Tomcat7作为tomcat7(或任何其他)用户运行

什么是确保Tomcat7实例作为tomcat7(或任何其他)用户运行的推荐方法?

我想我可以修改tomcat7-instance/bin/startup.shtomcat7-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,所以我需要做一些额外的事情才能让一切运行起来:

  1. 您需要在编辑文件/etc/default/tomcat7之前停止tomcat服务。 更改用户和组后,将无法再使用旧用户停止服务。
  2. 更改文件/etc/default/tomcat7的用户和组

  3. 您需要更改文件夹/var/log/tomcat7及其所有文件的所有权。 请注意,保留adm组是一个优点,以便所有adm用户都可以读取日志。

    sudo chown -R newuser:adm /var/log/tomcat7

  4. 更改文件夹/var/lib/tomcat7/webapps所有权

    sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps

  5. 如果在Ubuntu 14.04上的端口80/443上运行,则需要更改authbind文件的所有权:

    sudo chown newuser /etc/authbind/byport/80

    sudo chown newuser /etc/authbind/byport/443

  6. 更改工作文件夹的所有权

    sudo chown newuser:adm /var/cache/tomcat7

    sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina

  7. 使配置文件可读。 这里有两个选项:通过以下方式将新用户添加到tomcat7组:

    sudo usermod -a -G tomcat7 newuser

    …或更改配置文件的所有权:

    sudo chown -R :newgroup /var/lib/tomcat7/conf/*

  8. 如果您有其他Web应用程序正在访问的文件,例如日志文件配置文件等,那么您还需要更改这些文件的所有权。

  9. 现在,所有应该准备好再次使用新用户启动服务。