通过第二个组的成员身份隐式地将用户添加到 UNIX 中的组中

通过第二个组的成员身份隐式地将用户添加到 UNIX 中的组中

我的机器上有两个组,groupa并且groupb-groupa我有两个用户,user1auser2a

我想授予groupa特权成员访问groupb资源(运行命令、查看文件等)的权限。我认为这可能涉及使用visudo,但我可能错了。

我想要实现的目标相当于:

usermod -a -G groupb user1a
usermod -a -G groupb user2a

但要在组级别上进行,以便如果将来user3a添加groupa,用户也会自动拥有权限groupb

正如您可能已经猜到的那样,Unix 管理不是我的主要操作领域!

我该怎么办?

提前致谢

富有的

答案1

您无法像在 Active Directory 中那样立即创建嵌套组。上一个问题得到了一个指向的答案Linux 受托人

答案2

我认为这是不可能的,除非通过为 useradd 定义自己的包装器并强制使用它,或者通过 cron 脚本定期检查 groupa 的成员并在必要时将它们添加到 groupb。

答案3

使用 sudo 实现这一点需要用户在所有命令前加上前缀sudo -g groupb。用户不会属于该groupb组,用户只具有切换到该组并运行命令的权限。 visudo是编辑 sudoers 文件的命令,该文件控制谁被允许使用 sudo 做什么。

执行此操作至少需要 1.7.0 并打开安全漏洞适用于 1.7.4p3 及以下版本

%groupa ALL = (:groupb) ALL

手动将用户添加到两个组可能更好。PAM 向导可能能够自动执行该过程,但它仅适用于使用 PAM 识别用户而不是直接读取 /etc/group 和 /etc/passwd 的登录 shell 或应用程序

相关内容