用于写入的Unix目录权限

用于写入的Unix目录权限,unix,permissions,Unix,Permissions,假设我有一个文件夹“root”。我拥有这个文件夹,我将它设置为其他文件夹(包括用户“user2”,权限为r-x) 在根目录中,我有另一个文件夹“bin”。我将“bin”的所有者更改为用户“user2”,并授予他rwx权限 user2能否在文件夹“bin”中创建新文件?没有为“根”写作会影响他的写作能力吗 另外,user2是否可以从“根目录”中删除整个文件夹“bin”?(我不希望他能够这样做-他只需要在文件夹bin中创建/删除文件!) 他可以在箱子里面写字,但不能在箱子外面写字。除非您修改其权限,

假设我有一个文件夹“root”。我拥有这个文件夹,我将它设置为其他文件夹(包括用户“user2”,权限为r-x)

在根目录中,我有另一个文件夹“bin”。我将“bin”的所有者更改为用户“user2”,并授予他rwx权限

  • user2能否在文件夹“bin”中创建新文件?没有为“根”写作会影响他的写作能力吗
  • 另外,user2是否可以从“根目录”中删除整个文件夹“bin”?(我不希望他能够这样做-他只需要在文件夹bin中创建/删除文件!)

  • 他可以在箱子里面写字,但不能在箱子外面写字。除非您修改其权限,否则其rwx权限的范围位于该文件夹中

  • 对。由于
    user2
    拥有
    root
    的访问(
    x
    )权限并拥有
    bin
    ,因此他可以在
    root/bin
    中创建文件。如果权限当前不包括所有者的写入权限,则所有者(
    user2
    )可以更改目录权限,以便权限包括写入权限

  • 否。因为
    user2
    root
    中没有写入权限,
    user2
    无法从
    root
    中删除
    bin


  • 理解你所说的,你有这样的想法:

    drwxr-xr-x  10 root     root          22 Dec 26 23:04 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
    
    drwx--x--x  10 root     root          22 Dec 26 23:04 root
    
    其中“根”的内容如下:

    drwxr-xr-x  10 root     root          22 Dec 26 23:04 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
    
    drwx--x--x  10 root     root          22 Dec 26 23:04 root
    
    “root”上的权限必须至少为555(r-xr-xr-x),因为如果您的“root”目录权限为500或550(见下文),则该权限将不起作用,因为“user2”将不允许进入目录“root”(如果“user2”是“root”组的成员,则有例外情况,例如550将起作用)

    要理解所有这些安全方面的内容,您首先必须认识到目录实际上是一个文件。目录和文件之间的主要区别在于“x”权限的含义。如果用户没有“读取”权限,则无法查看目录中的文件。那么,让我们将访问权限设置为711,如下所示:

    drwxr-xr-x  10 root     root          22 Dec 26 23:04 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
    
    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”目录名称的“file”(即“root”目录)。它由“root”用户拥有,该用户是唯一允许在其中写入内容的用户。

    这应该很容易为您自己尝试。。。创建一个测试目录,看看会发生什么。感谢您的详细解释和示例!:)