关于 Linux 文件权限的疑惑

2014-10-27 15:38:01 +08:00
 andybest
文件目录结构为:
drwxr-xr-x 6 root root 4096 Sep 29 02:21 /home
drwxr-xr-x 6 student student 4096 Sep 29 02:23 /home/student
-rwxr-xr-x 6 student student 0 Sep 29 02:23 /home/123.jpg
-rwxrwxrwx 6 student student 0 Oct 27 15:32 /home/t.jpg

可以看出目录 /home/student 与文件 /home/123.jpg 和 /home/t.jpg 隶属于 student 帐号
但我登录 student 帐号无法删除以上任何一个目录/文件,甚至包括文件权限 777 的 /home/t.jpg :
rm: cannot remove `t.jpg': Permission denied

请问这是为什么?明明文件的隶属者是 student ,甚至文件权限为 777 ,但仍然无法修改/删除文件?
2349 次点击
所在节点    问与答
9 条回复
jiazhoulvke
2014-10-27 15:43:01 +08:00
因为图片的上级目录/home属于root的
rrfeng
2014-10-27 15:46:13 +08:00
删除文件需要拥有父目录的写权限。创建文件同理
ggiiss
2014-10-27 15:48:06 +08:00
文件的是否可删除是取决与所在文件夹是否有可写权限
mybin
2014-10-27 16:20:23 +08:00
因为你对 /home 没有写的权限
kkxxxxxxx
2014-10-27 16:57:38 +08:00
你本来就是r-x没有删除权啊
ansemz
2014-10-27 17:07:11 +08:00
lsattr看一下是不是有i属性?
julyclyde
2014-10-27 20:51:22 +08:00
下属文件,是目录(这个特殊文件)的内容
删除或者新增文件,就是修改目录(这个特殊文件)的内容,需要目录的w权限
rrrrutdk
2014-10-28 09:46:36 +08:00
因为大多数文件系统都在目录节点中存储子文件列表,
删除其下的文件会同时修改目录节点的这个列表。

按字面理解你应该有权删除那两个图片,但是无权限修改目录节点的列表,所以被拒绝。

那两个图片应该是root用户放置再chown到你的账号的。
julyclyde
2014-10-28 11:22:13 +08:00
@rrrrutdk 其实不存在“删除那两个图片”的说法。硬连接数为0自动被释放。删除硬连接就是修改目录内容,和文件本身无关

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/141838

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX