权限字符串中的“+”和“s”

权限字符串中的“+”和“s”

如果 ls -l 命令给我一个权限字符串,例如

rwsr-s--x

's' 是什么意思?我找到的唯一消息来源提到它有时可能存在,但没有详细说明。

“+”而不是“-”是什么意思?我发现提到了“扩展许可”,但没有明确的内容。

答案1

正如关于该主题的非常好的和全面的维基百科页面所解释的:

+(加)后缀表示可以授予附加权限的访问控制列表。详细信息可通过 获得man getfacl

此外,还有三个权限三元组:

  • 第一三合会: 楼主可以做什么
  • 第二个三合会:小组成员可以做什么
  • 第三个三合会:其他用户可以做什么

至于三合会的人物:

  • 第一个字符
    • r:可读
  • 第二个字符
    • w: 可写
  • 第三个字符
    • X: 可执行文件
    • s或者t:可执行文件和setuid/setgid/sticky
    • S或者时间:setuid/setgid 或粘性,但不可执行

setuid/setgid基本上意味着,如果您有权运行该程序,您将像该程序的所有者用户和/或所有者组一样运行它。当您需要运行需要 root 访问权限但也需要为非 root 用户工作(例如更改密码)的程序时,这非常有用。

粘性位根据您运行的系统或风格以及它的年龄,可能有不同的含义,但是linux维基页面指出:

[...]Linux 内核忽略文件上的粘滞位。 [...] 当在目录上设置粘滞位时,该目录中的文件只能由 root 或目录所有者或文件所有者取消链接或重命名。

答案2

了解 UNIX 权限及其属性的解释s

+出现在标准权限之后,是用于指示文件具有“备用访问方法”的可能字符之一。对于 GNU,ls该字符可以为空(默认),.以指示适用于文件的安全上下文,或+指示任何其他备用访问方法,通常是 ACL(您可以使用 来查看getfacl)。

POSIX定义用于备用访问方法标志的位置,但可能的值留给每个实现:

可选的备用访问方法标志如果没有与文件关联的替代或附加访问控制方法,则应为空字符串;否则,它应该是一个包含单个可打印字符的字符串,该字符不是空白的

相关内容