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

Fer*_*uun 1 ls permissions authorization

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

rwsr-s--x
Run Code Online (Sandbox Code Playgroud)

“的”是什么意思?我发现的唯一来源提到它有时会出现,但没有详细说明。

“+”而不是“-”是什么意思?我发现提到了“扩展许可”,但不清楚。

use*_*791 5

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

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

此外,还有三个权限三合会:

  • 第一个三合会:所有者可以做什么
  • 第二个三合会:小组成员可以做什么
  • 第三个三元组:其他用户可以做什么

至于三合会的人物:

  • 第一个字符
    • r : 可读
  • 第二个字符
    • w : 可写
  • 第三个字符
    • x : 可执行文件
    • st:可执行文件和 setuid/setgid/sticky
    • ST : setuid/setgid 或粘性,但不可执行

的setuid / setgid程序基本上意味着,如果你要运行该程序的许可,您可以运行它,如果你是拥有用户和/或项目的所属组。当您需要运行需要 root 访问但也需要为非 root 用户工作(例如更改密码)的程序时,这很有用。

粘滞位可能有不同的含义取决于你所运行的系统或风味和多大它是,但linuxwiki页面指出:

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