Tomcat7没有写权限

标签 tomcat tomcat7 centos7 file-permissions selinux

我从官方来源在我的 CentOs 7 机器上安装了 Tomcat 7.0.76,但根本无法让 Tomcat 具有写入权限。每当我的代码中的某些内容想要写入磁盘或创建目录时,我都会收到权限被拒绝的错误。

例如,如果我想创建一个目录,我会得到这个错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'application': Invocation of init method failed; nested exception is org.ehcache.StateTransitionException: Directory couldn't be created: /usr/share/tomcat/myDir

当我自己创建目录并想写入此目录中的文件时,出现此错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'application': Invocation of init method failed; nested exception is org.ehcache.StateTransitionException: Location isn't writable: /usr/share/tomcat/myDir

我已经试过了:

chown -R tomcat:tomcat /usr/share/tomcat
chmod -R 775  /usr/share/tomcat/

tomcat服务在tomcat用户下运行

$ top | grep tomcat
 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
2725 tomcat    20   0   21,7g   2,2g  24612 S   0,9  7,1   2:28.16 java

这就是 ll 的输出

$ ll  /usr/share/tomcat/
insgesamt 8,0K
drwxrwxr-x. 2 tomcat tomcat 4,0K 24. Mai 18:48 bin
lrwxrwxrwx. 1 tomcat tomcat   11 24. Mai 18:48 conf -> /etc/tomcat
lrwxrwxrwx. 1 tomcat tomcat   22 24. Mai 18:48 lib -> /usr/share/java/tomcat
lrwxrwxrwx. 1 tomcat tomcat   15 24. Mai 18:48 logs -> /var/log/tomcat
drwxrwxr-x. 5 tomcat tomcat 4,0K 24. Mai 19:54 resources
lrwxrwxrwx. 1 tomcat tomcat   22 24. Mai 18:48 temp -> /var/cache/tomcat/temp
lrwxrwxrwx. 1 tomcat tomcat   23 24. Mai 18:48 webapps -> /var/lib/tomcat/webapps
lrwxrwxrwx. 1 tomcat tomcat   22 24. Mai 18:48 work -> /var/cache/tomcat/work

注意:我在另一台具有相同 Tomcat 版本的 CentOs 7 机器上部署了相同的 .war 文件,一切正常。

最佳答案

SELinux可能对此权限被拒绝负责。尝试使用 setenforce permissive 禁用它,如果它解决了您的问题,请正确调整 SELinux 策略。在这种情况下,您可能只需要在它工作的第一台服务器上进行复制,除非这台服务器禁用了 SELinux,但请记住在生产中建议禁用它。

关于Tomcat7没有写权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50526895/

相关文章:

node.js - 部署的 node.js 应用程序未显示在默认 IP 地址上,而 nginx 默认页面工作正常

java - 没有 Maven 的 Spring MyBatis

java - Tomcat v7.0 Server at localhost 所需的几个端口已被使用

java - Java 版本容易受到闰秒的影响吗?

java - 'hibernate.dialect' 未设置 hibernate4 tomcat7 时连接不能为空

linux - Startx 和 VNC 无法在 AWS Lightsail CentOS7 上运行

c++ - 在 CentOs 7 上安装 gcc 7.4.0 不会更新我的 libstdc++ 版本

tomcat - 在 Spring Boot 应用程序 getConnection() 中使用 @autowired 数据源

JSF 1.2 Tomcat 重新部署错误

tomcat - CDI + tomcat 兼容性