目录的权限如何影响其中的文件?

目录的权限如何影响其中的文件?

我刚刚了解到一些令我震惊的事情,因为我不知道这是事实。

如果我有一个具有以下权限的目录:

user@host:~$ ls -la testdir
total 8
drwxrwxrwx  2 user user 4096 Mar  3 20:36 .
drwx------ 34 user user 4096 Mar  3 20:36 ..
-rw-r--r--  1 user user    0 Mar  3 20:36 testfile 1
-rw-r--r--  1 user user    0 Mar  3 20:36 testfile 2

即使文件testfile 1testfile 2仅拥有者的写入权限每个人都可以在上面写字。

到目前为止,我认为目录的权限只影响目录本身

现在我的问题是——如果一切似乎都是由文件所在的目录权限设置的,那么文件的文件权限有什么用呢?

====编辑1====

另一方面查看这些权限:

[user@geruetzel2 default]$ ls -la
total 24
drwxr-xr-x.  2 root root   41 Dec 19 23:07 .
drwxr-xr-x. 96 root root 8192 Mar  3 20:28 ..
-rw-r--r--.  1 root root  354 Dec 19 23:07 grub
-rw-r--r--.  1 root root 1756 Nov 30 19:57 nss
-rw-------.  1 root root  119 Mar  6  2015 useradd

cat useradd如果我在这里以非root身份执行,我会得到一个没有权限错误。这是为什么?该目录具有“其他”的读取权限,因此它应该是可读的?我给出的两个示例之间似乎存在差异,但我没有看到不同行为的原因。

答案1

目录权限“仅”影响目录的内容。因此,任何对目录具有写权限的人都可以删除该目录中的文件或文件夹,即使文件或文件夹的权限设置为没有写访问权限。如果您使用或任何其他文本编辑器
打开该文件夹,可能会更容易理解。vi在 Unix 和 Linux 中“一切皆文件”。

例如,如果您使用 编辑文件vi,它不会就地编辑该文件,而是制作副本并在保存时删除原始文件。
另一方面,不拥有该文件的用户无法echo直接进入该文件。

答案2

不可以,没有权限的文件无法写入。 -- 但可以删除它们并创建同名的新文件。为此,您需要它们所在目录的写权限。

带有目录...

  • x未经许可 你几乎什么都不能做
    • 独自r一人你可以仅有的非递归地列出其内容,仅显示名称,您甚至无法区分条目是目录还是文件,也无法打开任何条目
  • 独自x一人你可以
    • cd进入那个目录
    • 访问所有文件和子目录读写包括权限设置(根据他们的自己的权限),如果您知道他们的名字
  • 独自w一人你什么也做不了(!?)
  • 你需要x w
    • 添加条目(即创建文件/目录)
    • 删除条目(即删除文件或空目录)
      • 您需要文件本身的零权限才能执行此操作
      • 非空目录永远无法删除...
      • ...并且缺少子目录的权限可能会阻止父目录的所有者删除其内容,即递归删除
  • dir1/dir2/dir3/file根据您的需要 进行操作
    • xdir1,dir2dir3
    • dir3和/或 的一些权限file,具体取决于操作

相关内容