两组独立权限,一个目录?

两组独立权限,一个目录?

对此不熟悉,将尽力使其尽可能简单。我有一个 IT 团队和一个营销团队。我希望两个组都可以访问同一目录(即 Retail)。我想做的是让 IT 完全控制零售和营销读/写。

如果我要使用 sudo chmod,我最终会授予这两个组相同的权限。是否有另一种方法可以解决此问题,或者甚至可以为不同的组授予属于同一目录的不同权限?

答案1

您可能需要目录上的 ACL(访问控制列表)。看那些解释来自 Arch Linux 的 wiki 或那些来自Ubuntu的帮助。两者的混合:

  1. 安装: acl 软件包是 systemd 的依赖项,应该已经安装。可能需要从存储库安装 acl 实用程序。在服务器版本中,必须执行此操作,但在桌面版本中,默认安装 acl。

    $ sudo apt-get install acl
    
  2. 启用 ACL :必须使用 acl 选项挂载文件系统。您可以使用 fstab 使其永久保留在您的系统上。使用以下命令检查 ext* 格式分区的选项:

    # tune2fs -l /dev/sdXY | grep "Default mount options:
    

    默认安装选项:user_xattr acl

    如果需要,请将选项 acl 添加到要在 中启用 ACL 的分区/etc/fstab。例如:

    ...
    UUID=07aebd28-24e3-cf19-e37d-1af9a23a45d4  /home  ext4  defaults,acl  0  2
    ...
    

    如有必要,请重新挂载启用了 ACL 的分区以使它们生效。例如:

    $ sudo mount -o remount /home
    
  3. 设置 ACL :设置组的权限(组是组名称或 ID):

    # setfacl -m "g:group:permissions" <file/dir>
    
  4. 显示访问控制列表:

    # getfacl <file/dir>
    

答案2

抱歉,我应该只rwx针对 IT 和rw营销部门说

虽然您可以使用 ACL 来做到这一点,但它并不是很有用。

您需要x访问目录中任何文件的权限,因此rw-意义不大。使用 just r(不使用x),您可以列出目录中文件的名称(但可能不是它们的所有者、大小等),而不w使用则x完全无用。

另请注意,创建并删除文件受权限w控制在目录上,并且该所有者文件那里没关系。例外情况是在目录上设置了“粘性位”( chmod +t) 时,在这种情况下用户只能删除自己拥有的文件。

如果您正在寻找高于此的功能,例如处理其他用户的文件(无论其权限如何)的可能性,那么除了 root 之外没有其他选择。

看:

(从技术上讲,这与成为 root 无关,而是具有允许绕过访问权限的特定功能的进程。但它不能针对每个目录进行设置,因此任何具有该功能的进程实际上都是 root。)

答案3

第一个选项是使用扩展 ACL。我不喜欢这个。我发现由于 ACL 扩展,解决问题的时间更长,而且我发现它们通常不太易于管理。支持者可能不同意并指出它们非常适合这些类型的要求。但我怀疑他们是否在凌晨 3 点被叫来解决问题。

您需要了解需要什么样的访问权限。在标准 Unix/Linux 中,有

Type of access       For directory         For files
r   Read access      can list the dir      can read the file

w   write access     can create, remove    can write to the file
                      rename files in
                      the dir

x  execute           can cd to the dir     can execute the file as 
                                           program

如果你看看 Windows 完全控制,这意味着

  • 调整
  • 执行
  • 更改属性/权限
  • 取得所有权

修改是其他权限(读、写、修改、执行和更改文件属性)的容器,所以我们不会看它。

阅读和写作应该分配给两组,所以这不应该成为一个讨论。如果您的小组需要在目录中执行任何操作,他们也都需要x

通过授予目录的写访问权限,可以更改文件的权限。大多数可更改的属性(名称、时间戳)也可以通过对目录进行写入来更改。但这些应该都不是问题。

更改文件的所有权需要 root 访问权限(可能通过 sudo)。这不是您授予普通用户的东西。

因此,这意味着这两个组的正常访问权限之间没有真正的区别(除非您可能允许 IT 人员这样做sudo chown)。

这也意味着您不需要复杂的 ACL。

相关内容