如何创建 UNIX 组的层次结构,如下所示?

Ken*_*war 4 linux ldap acl permissions

我需要创建 UNIX 组的层次结构。像下面这样:

A
|\
| \
B  c
|\
D e
|\
f g
Run Code Online (Sandbox Code Playgroud)

...其中 A、B 和 D 是 UNIX 组,而 c、e、f 和 g 是作为这些特定组成员的 UNIX 帐户。我用谷歌搜索了很多,但似乎这是不可能的。

目前,我们有以下几点:

  1. A 组有成员 c。
  2. B 组有成员 e。
  3. D组有成员f,g。

更新:

@John 的帖子让我意识到我需要重新构建我的需求以消除歧义。

我需要的是:

  1. 只允许组 B 的成员访问目录(因此 B 是该文件夹的组所有者)。由于组 D 是 B 的子组,因此 D 的成员将是组 B 的成员并且也可以访问该目录。
  2. 但组 B 的成员需要与组 A 的成员具有相同的权限。(因此,如果组 A 是目录组所有者,则组 B 自动成为目录组所有者)。

    顺便说一下,这是一个现实世界的问题,我可以完全控制 B 组及其成员;对其他团体及其成员的控制有限或无法控制。因此,我无法创建新组并向 A 组或 D 组中的成员授予成员资格。

Sup*_*gic 5

使用普通的 unix 权限,你不能这样做。

使用 ACL,您可以(或应该可以)。

您需要使用支持 ACL 的文件系统。大多数现代 linux 文件系统都可以。

基本命令是 setfacl

在您的示例中,如果 B 组拥有目录 /B,您将为 D 组添加访问权限,如下所示:

setfacl -m group:B:rwx,group:D:rwx /B
Run Code Online (Sandbox Code Playgroud)

这只是最基本的例子,但可能会理解这个想法。这确实需要仔细和明确地设置访问控制,但可以做的不仅仅是基本的 unix 权限。不过,它的功能远不如完整的 AD 组策略等。

这里有一些一般的 ACL 文档