代码之家  ›  专栏  ›  技术社区  ›  MrMartin

Linux目录权限

  •  0
  • MrMartin  · 技术社区  · 6 年前

    我的网站在第三方服务器上运行,我遇到了具有以下权限的目录:

    folder1 drwsr-s---
    folder2 drwxr-s---
    folder3 drwxr-x---
    

    我熟悉 d , the r , the w , the x (对于文件夹),以及 - . 编辑时(在filezilla中),所有这些似乎都等于 chmod 750 .

    man chmod 告诉我 s 代表 “执行时设置用户或组ID” . 那是什么意思?它怎么会映射到同一个地图上呢? chmod 代码?我应该在服务器上担心这个问题吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Swiss    6 年前

    “s”位被称为“setuid”和“setgid”位。它的作用取决于文件类型。

    在一个目录上,如您的示例中所示,这些位为该目录中创建的所有文件设置默认用户或组。

    例如,如果您有一个由foo:foo拥有的目录,并且设置了setuid和setgid位,那么在该目录中创建的所有文件都将由foo:foo拥有,不管是谁创建的。

    在您的示例中,为每个目录设置了“setgid”位。这意味着,对于在这些目录中创建的每个文件,所有者将是创建该文件的用户,但组将被设置为与目录的组(而不是用户的主组)匹配。