uid不一致導致tomcat對目錄沒有寫許可權

wang_0720發表於2013-11-05
編輯告知網站後臺上傳圖片出錯,檢視日誌報錯如下:
http-8080-48 ERROR 2013-10-15 09:32:03 /usr/local/tomcat/webapps/EtnetChinaUI/public/images/dynamic/column/articles/27000/4bf7f10b4d6f4e4786b445ceb0da442d_155x104.jpg (Permission denied)
java.io.FileNotFoundException: /usr/local/tomcat/webapps/EtnetChinaUI/public/images/dynamic/column/articles/2700/4bf7f10b4d6f4e4786b445ceb0da442d_155x104.jpg (Permission denied)
dynamic下是動態生成的目錄,檢視目錄許可權為nagios不是tomcat,故而tomcat不能寫入。再看看其他web伺服器,目錄許可權都是tomcat。幾臺web是共享nfs的目錄,在nfs上共享出來的目錄許可權是tomcat。
[root@10 ~]# ll tomcat/
total 4
drwxr-xr-x 17 tomcat tomcat 4096 Dec 28  2012 images
tomcat uid為
[root@10 ~]# cat /etc/passwd|grep tomcat
tomcat:x:502:502::/home/tomcat:/bin/bash
[root@10 ~]#
其他有寫入許可權的web伺服器tomcat uid也為502
[root@localhost ~]# cat /etc/passwd|grep tomcat
tomcat:x:502:502::/home/tomcat:/bin/bash
[root@localhost ~]#
沒有寫入許可權的web伺服器tomcat uid為
[root@localhost ~]# cat /etc/passwd|grep tomcat
tomcat:x:501:501::/home/tomcat:/bin/bash
[root@localhost ~]#
沒有寫入許可權的web伺服器nagios uid為
[root@localhost ~]# cat /etc/passwd|grep nagios
nagios:x:502:502::/home/nagios:/sbin/nologin
[root@localhost ~]#
由於該伺服器(沒有寫入許可權的伺服器)tomcat uid和nfs的tomcat uid不一致,導致掛載目錄的所屬使用者變成了非tomcat,tomcat對掛載目錄沒有了寫入許可權。
解決方法:
在問題伺服器上將nagios,tomcat使用者先刪除再重建,重建時指定tomcat uid為502和nfs上的tomcat uid保持一致。
userdel -r tomcat
useradd -u 502 -s /bin/bash -d /home/tomcat tomcat

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27181165/viewspace-775738/,如需轉載,請註明出處,否則將追究法律責任。

相關文章