假设我有一个文件夹“root”。我拥有这个文件夹,并且我为其他人(包括用户“user2”,权限是 rx)
在根目录中,我有另一个文件夹“bin”。我将“bin”的所有者更改为用户“user2”,并授予他 rwx 权限。
- user2 能否在“bin”文件夹中创建新文件?不写“root”会影响他这样做的能力吗?
- 另外,user2可以从“root”中删除整个文件夹“bin”吗?(我不希望他能够这样做 - 他只需要在文件夹 bin 中创建/删除文件!)
假设我有一个文件夹“root”。我拥有这个文件夹,并且我为其他人(包括用户“user2”,权限是 rx)
在根目录中,我有另一个文件夹“bin”。我将“bin”的所有者更改为用户“user2”,并授予他 rwx 权限。
是的。因为user2
拥有 access( x
) 权限root
并拥有bin
,所以他可以在root/bin
. 如果权限当前不包括所有者的写权限,所有者 ( user2
) 可以更改目录权限,使权限包含写权限。
不可以。因为user2
在 中没有写入权限root
,user2
所以无法bin
从中删除root
。
他可以在 bin 内写字,但不能在 bin 外写字。除非您另外修改他的权限,否则他的 rwx 权限范围位于该文件夹中。
了解您所说的内容是这样的:
drwxr-xr-x 10 root root 22 Dec 26 23:04 root
其中“root”的内容是这样的:
cd root
ls -la
drwxr-xr-x 10 root root 22 Dec 26 23:04 .
drwxr-xr-x 29 root root 34 Oct 24 06:13 ..
drwx------ 2 user2 root 3 Oct 23 10:28 bin
“root”的权限必须至少为 555 (r-xr-xr-x),因为如果您的“root”目录权限为 500 或 550(见下文),它将无法工作,因为不允许“user2”输入目录“root”(有例外,如果“user2”是“root”组的成员,则 550 会起作用)。
# This would not work, user2 cannot enter the "root" directory
drwx------ 10 root root 22 Dec 26 23:04 root
要了解所有这些安全性内容,您首先必须意识到目录实际上是简单的文件。目录和文件的主要区别在于“x”权限的含义。如果用户没有“读取”权限,他就看不到目录中的文件。所以,让我们访问 711,如下所示:
drwx--x--x 10 root root 22 Dec 26 23:04 root
现在让我们尝试查看目录中有哪些文件。你不能:
$ ls -la root
root: Permission denied
total 3
但是,你可以输入它(因为“x”执行正确)但你仍然看不到里面:
$ cd root
$ ls -la
.: Permission denied
total 3
但是如果你知道里面有一个你可以访问的目录,你可以输入它:
$ cd bin # Ps. Here we assume we did the 'cd root' above already
$ ls -la
total 6
drwxr-xr-x 2 user2 root 2 Mar 14 14:57 .
drwx--x--x 3 root root 3 Mar 14 14:57 ..
而“user2”作为所有者可以做任何他想做的事情。“bin”的访问权限甚至可以是“700”,只要你是所有者,就可以进入。因为访问权限是 755(在我们的示例中),所以任何人都可以进入目录“bin”,但只有“user2”可以在其中创建文件。修改或读取这些可能的文件将取决于“user2”赋予它们的访问权限。
“user2”不能删除“bin”目录,即使他拥有它,因为他不拥有写入“bin”目录名称的“文件”(即“根”目录)。那是“root”用户拥有的,他是唯一允许在那里写的用户。