在Linux中,目录的“写入”权限是否等效于“执行”?


16

执行权限对文件(包括脚本等)有意义,但是涉及目录时,该write (w)权限与的工作方式相同execute (x),对吗?

这意味着,如果我们授予目录写权限,那么通常也要检查该目录的“ x”(执行),对吗?


2
您的问题现在难以理解。目前尚不清楚您在哪里谈论文件的权限以及在哪里谈论包含该文件的目录的权限。
吉尔(Gilles)'所以

1
如果您有新问题,可以单独张贴吗?
Michael Mrozek

1
您的意思是“拥有文件的全部阅读权限”?您只需要什么?要读取文件?是。要修改文件...否,除非您是该文件的所有者。
gabe。

除了省略“可以读取,可以重命名/删除目录中的文件”的操作外,您的“ 000:无法删除”实际上是不正确的。如果目录碰巧已经是空的,则可以删除它(如果可以写入其父目录)。如果不为空,则不能删除它,直到它为空(将其
设为

您对这个问题的编辑使弄清楚要问的内容确实令人困惑,并且似乎没有为未来的访问者增加任何价值。我恢复为@Gilles回答的原始简单问题表格。如果您有新问题,可以问另一个问题。请尝试使每个问题都集中在一个问题上。
Caleb)

Answers:


49

目录的执行权限允许访问目录中的文件。读取权限允许枚举目录条目。写入权限允许在其中创建和删除条目。

在没有执行权限的情况下具有目录的读取或写入权限是没有用的。具有执行但不具有读取权限有时会很有用:它仅在知道文件名的情况下才允许访问文件,这是一种原始密码保护。

因此,在实践中,目录的有用权限是:

  • ---:无权访问
  • --x:可以访问名称已知的文件(有时有用)
  • r-x:普通的只读访问
  • rwx:正常的读写访问

另请参阅具有+ x权限的目录,没有它的父母。什么时候有用?并且不要父目录的访问权限的子目录时,要紧吗?


@吉尔斯是对的​​!在Linux上对此进行一些研究,发现:1)如果目录没有用户的'x'权限,则是stat或lstat系统调用失败。即使当用户对目录具有“ r”权限时也可以获取目录条目(名称,索引节点),这将导致没有获取目录条目的元数据。2)有关其他信息,请参见Linux上的man 7 path_resolution。
Kedar Mhaswade 2013年

2
w-x也可以有其用途。例如,对于公共FTP站点来说,拥有一个可公开写入但只能由服务器管理员读取的uploadincoming文件夹曾经是非常普遍的做法。
jmbpiano

什么会rw-做,r--不能为目录呢?这个答案提到了更改修改时间的能力,但是在我的Linux ZFS系统上,这不是正确的,即使我的目录只有,我也可以更改修改时间r--
CMCDragonkai

@CMCDragonkai是的,更改元数据是基于所有权的,它与权限无关。我认为rw-除了列出条目之外,您不能对目录执行任何操作(如果您拥有其父目录,则可以移动/删除该目录,不需要对该目录的任何许可)。
吉尔斯(Gillles)“所以-别再作恶了”

@吉尔斯:是的。使用rw-dir时,即使rw-我尝试更改该文件,也无法在其中创建新文件或更改现有文件。我也不能touch归档。我使用的是Arch Linux 4.14.13。
马提亚斯·布劳恩
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.