下面显示了tomcat在删除owner是自己的文档时出错了,提示Permission denied.

这是因为用户tomcat在该文档的父目录权限里并没有w的权限.虽然tomcat是该文档的owner,但是删除该文档也是对父目录的修改,因此在用户没有父目录的w权限里,提示权限不足

drwxr-xr-x   2 root  root   4096 Nov 21 21:02 tomcat
drwxr-xr-x. 13 root  root   4096 May 30 21:42 usr
drwxr-xr-x. 19 root  root   4096 Jul 15 02:29 var
[root@wang ~]# touch /tomcat/xxx
[root@wang ~]# chown tomcat:tomcat /tomcat/xxx 
[root@wang ~]# ll /tomcat/xxx
-rw-r--r-- 1 tomcat tomcat 0 Nov 21 21:03 /tomcat/xxx
[root@wang ~]# su - tomcat
[tomcat@wang ~]$ rm -rf /tomcat/xxx 
rm: cannot remove `/tomcat/xxx': Permission denied
[tomcat@wang ~]$

linux 父目录权限影响子目录文件操作_第1张图片

修改父目录的权限,将w的权限给予用户tomcat

[root@wang tomcat]# chmod 757 /tomcat

从下图中可见,用户tomcat对于xxx文档的父目录/tomcat有w的权限,所以删除成功了

drwxr-xrwx    2 root  root   4096 Nov 21 21:03 tomcat
drwxr-xr-x.  13 root  root   4096 May 30 21:42 usr
drwxr-xr-x.  19 root  root   4096 Jul 15 02:29 var
[root@wang tomcat]# su - tomcat
[tomcat@wang ~]$ rm /tomcat/xxx 
[tomcat@wang ~]$ ll /tomcat/
total 0
[tomcat@wang ~]$

也可以直接把父目录的owner转给tomcat,最快的方法,这里还用了递归,其实不用也可以

[root@wang tomcat]# chown -R tomcat:tomcat /tomcat