Tomcat的权限问题


9

我按照Ubuntu指南安装了Tomcat 7 。服务器正在工作,并给我“它可以工作!” 上的页面http://localhost:8080/

现在,我想使用Netbeans设置自己的Web应用程序。我使用Java EE 6和Tomcat 7 生成了一个新的Web项目。用户在/var/lib/tomcat7/conf/tomcat-users.xml文件上的配置正确。

当我运行项目时,一切似乎都很好,但是当我打开浏览器时,它显示500错误

文件权限:

lucio@lucio-pc:/$ ll /var/lib/tomcat7/logs
lrwxrwxrwx 1 root root 17 jul 24 18:07 /var/lib/tomcat7/logs -> ../../log/tomcat7/
lucio@lucio-pc:/$ ll /var/log/tomcat7/
total 136
drwxr-x---  2 tomcat7 adm      4096 ago 28 10:50 ./
drwxrwxr-x 15 root    syslog   4096 ago 28 09:29 ../
-rw-r--r--  1 tomcat7 tomcat7   800 ago 26 17:23 catalina.2014-08-26.log.gz
-rw-r--r--  1 tomcat7 tomcat7  5173 ago 27 21:59 catalina.2014-08-27.log
-rw-r--r--  1 tomcat7 tomcat7 31285 ago 28 10:36 catalina.2014-08-28.log
-rw-r--r--  1 tomcat7 root    44192 ago 28 10:36 catalina.out
-rw-r--r--  1 tomcat7 tomcat7    45 ago 26 16:19 localhost.2014-08-26.log.gz
-rw-r--r--  1 tomcat7 tomcat7     0 ago 27 11:15 localhost.2014-08-27.log
-rw-r--r--  1 tomcat7 tomcat7   433 ago 28 09:49 localhost.2014-08-28.log
-rw-r--r--  1 tomcat7 tomcat7  7435 ago 26 17:23 localhost_access_log.2014-08-26.txt
-rw-r--r--  1 tomcat7 tomcat7     0 ago 27 11:15 localhost_access_log.2014-08-27.txt
-rw-r--r--  1 tomcat7 tomcat7 15186 ago 28 09:58 localhost_access_log.2014-08-28.txt

我不明白为什么无法访问文件,您可以看到用户和组tomcat7对文件具有权限。JVM的用户是否需要对文件的特权?

我也尝试过更改文件所有权(如此处所述)但它完全没有改变。


/etc/default/tomcat7文件具有:

TOMCAT7_USER=tomcat7
TOMCAT7_GROUP=tomcat7

所以我想它正在以tomcat7用户身份运行。


我将用户添加到该tomcat7组中:

sudo usermod -aG tomcat7 $USER

然后重新启动计算机,但是问题仍然存在。


tomcat是否以tomcat7用户身份运行?
muru

自从我使用tomcat以来已经很久了,但是我有两件事发生:您是否需要加入tomcat7组才能允许程序访问日志?而且,似乎它真的想访问in中的临时文件/var/lib/tomcat7/temp。存在吗?可能是相同的权限问题。也许您只需要将自己添加到tomcat7组即可。
马蒂·弗里德

另外,您需要使文件组可写才能使用我的想法。还有更多的信息在这里,可以帮助。
马蒂·弗里德

看来运行tomcat7的用户(人类或应用程序)没有访问/ var / lib / tomcat7 /的权限,尤其是没有访问logs文件夹的权限。
MickyInTheSky14年

Answers:


9

我注意到这里有两个问题。

错误日志中的两行对我来说很突出:

SEVERE: Cannot find specified temporary folder at /var/lib/tomcat7/temp  

和:

java.io.FileNotFoundException: /var/lib/tomcat7/conf/tomcat-users.xml (Permission denied)

经过对Lucio的诊断,我发现该tomcat-users.xml文件不是Tomcat拥有的,而是root。通过运行以下命令将权限更改为适当的权限:

sudo chown tomcat7:tomcat7 /var/lib/tomcat7/conf/tomcat-users.xml

另外,创建/var/lib/tomcat7/temp具有tomcat权限的文件夹,如下所示:

sudo mkdir /var/lib/tomcat7/temp && sudo chown -R tomcat7:tomcat7 /var/lib/tomcat7/temp

最后,修复日志应由用户/组/var/lib/tomcat7/logs拥有tomcat7。该/var/log/tomcat7/还应所拥有的tomcat7用户和组。


对我来说,更改tomcat-user.xml文件权限就足够了。为日志做同样的事情没有用,但是应用程序无论如何都在运行:-)
Lucio
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.