" rw - "中的第三个符号是什么?档案模式意味着什

时间:2015-06-24 08:48:20

标签: bash file-permissions ls

我无法理解ls关于具有rw-模式的文件的手册。这是引用:

  
      
  1. 如果是r,则文件可读; if - ,它不可读。

  2.   
  3. 如果是,则文件是可写的; if - ,它不可写。

  4.   
  5. 以下第一项适用:

         

    S如果在所有者权限中,该文件不可执行且设置了set-user-ID模式。如果在组权限中,该文件不可执行且设置了set-group-ID模式。

         

    s如果在所有者权限中,该文件是可执行的,并且设置了set-user-ID模式。如果在组权限中,该文件是可执行的并且设置了setgroup-ID模式。

         

    x文件是可执行的,或者目录是可搜索的。

         

    - 该文件既不可读,可写,可执行,也不是set-user-ID,也不是set-group-ID模式,也不粘。

  6.   

特别是,似乎两个粗体部分相互矛盾:根据第一部分,由于模式以r开头,因此文件是可读的,但根据最后一个,文件是可读。但是,显然情况并非如此。

那么,第三部分对文件的含义是什么"既不可读也不可写......"?

2 个答案:

答案 0 :(得分:2)

您的ls手册页不是标准。 POSIX standard man page for ls以这种方式执行字。以下是相关摘录:

  

每个字段应有三个字符位置:

     
      
  1. 如果是“r”,则文件可读; if' - ',文件不可读。

  2.   
  3. 如果是'w',则文件是可写的;如果' - ',则文件不可写。

  4.   
  5. 以下第一项适用:

         

    取值

              如果在< 所有者权限>中,该文件不可执行,并且设置了set-user-ID模式。         如果在< 组权限>中,该文件不可执行且设置了set-group-ID模式。

         

    取值

              如果在< 所有者权限>中,该文件是可执行的,并且设置了set-user-ID模式。如果         在< 组权限>中,文件是可执行的,并且设置了set-group-ID模式。

         

    Ť

              如果在< 其他权限>并且文件是目录,搜索权限不是         授予他人,并设置限制删除标志。

         

              如果在< 其他权限>并且文件是目录,授予搜索权限         对其他人,并设置限制删除标志。

         

    X

              该文件是可执行的或目录是可搜索的。

         

    -

              “S”,“s”,“T”,“t”或“x”的属性均不适用。

  6.   

我认为这更有意义。

类型未在权限位中表示 - 您只查看ls(1)报告的内容,而不是如何存储。传统上,模式和类型一起使用32位,但这取决于文件系统,并且在许多情况下它现在是64位。 inode中的权限仅为9位。

请参阅man 2 stat并搜索st_mode。它是ls(1)可能使用的低级C例程。在某些平台上,它也可用作命令行程序man 1 stat

答案 1 :(得分:0)

报价中的每个编号点依次适用于三个字符中的每一个。

  

如果第一个字符为' r',则该文件可读

     

如果第二个字符为' w',则文件可写

     

如果第三个字符是' x / s / S',则该文件具有列出的属性

     

如果字符是' - ',则该文件没有该属性。

前三个字符(在目录标识符之后)适用于用户权限,后三个字符适用于权限,第三个字符适用于其他所有人。