我有一台开发机器,我以前安装过Tomcat,只是作为开发工作的同一用户运行它。我在$CATALINA_HOME/webapps
中删除了一个符号链接到我构建WAR的目录,每次我更新构建tomcat后跟着符号链接并提取新的WAR。从来没有任何问题。
但是为了准备将它移动到生产机器,我创建了一个具有受限权限的新用户,并将tomcat设置为以该用户身份运行,就像出于安全原因一样。
现在tomcat不再遵循符号链接了,即使我将其用户的所有权归还给WAR文件并将权限设置为777.我没有看到catalina.out
或每日日志中出现的任何内容继续,或者。
将测试周期复制到测试周期还有一步,所以这不是太关键,但我仍然对于发生了什么感到好奇。
webapps目录的权限:
drwxr-xr-x 3 tomcat tomcat 4096 Dec 11 14:34 webapps
我正在构建的目录的权限:
drwxrwxr-x 11 tomcat tomcat 4096 Dec 11 14:34 target
WAR文件maven的权限产生:
-rw-rw-r-- 1 tomcat tomcat 16822856 Dec 11 14:34 [webapp].war
我创建的符号链接的权限:
lrwxrwxrwx 1 tomcat tomcat 60 Dec 11 17:33 [webapp].war -> [webapp directory]/[webapp].war
答案 0 :(得分:7)
我怀疑 tomcat 用户对包含真实WAR文件的其中一个嵌套文件夹没有遍历权限。正如你所说,他拥有 tomcat 文件夹的权限,因此他可以启动Tomcat,他可以看到符号链接存在。
也许您的构建过程在私有文件夹中创建WAR文件,假设用户 glazius 的主文件夹,这样可以防止 tomcat 用户读取文件如果文件附加了正确的权限。
您可以轻松使用:
ls -Cf
在 webapps 文件夹中检查符号链接颜色:如果它是红色 tomcat ,则用户无法访问该文件,如果它是蓝色的,则应该已经没有任何问题。
如果为红色,请确保WAR文件的每个文件夹都具有其他组的遍历(x)权限。例如,如果路径是 /home/glazius/workspace/target/webapp.war ,请执行以下命令:
chmod o+x /home/glazius
chmod o+x /home/glazius/workspace
chmod o+x /home/glazius/workspace/target
答案 1 :(得分:1)
授予新用户$CATALINA_HOME/work
的写入权限。