在 CentOS7 中将所有网络用户添加到特定主机的本地组

在 CentOS7 中将所有网络用户添加到特定主机的本地组

如何将网络 (sssd-ldap) 用户添加到本地组?
更具体地说,如何将所有登录系统的网络用户添加到本地组?

authconfig 似乎没有添加 pam_group 的设置(与 pam_access 不同),默认情况下 pam_group 不存在。我可以手动编辑各种 pam 文件,但如果再次运行 authconfig,这可能会导致麻烦。

从某种意义上说,我正在寻找这个问题,尽管我使用的是 rfc2703bis 模式(但这并没有什么区别)。

不同于这个问题,我希望将用户添加到预先存在的本地组,例如libvirttcpdump

我知道我可以/etc/group为每个新用户进行编辑,但我正在寻找更强大的功能。确保 pam 堆栈包含 pam_group 不会那么麻烦。
这实际上是我已经在做的事情,但每次在目录中添加或删除用户时都必须重新运行 ansible play 来执行此操作,这有点麻烦。

使用group: files [SUCCESS=merge] sss似乎还不是一个选项,因为它是在 中添加的glibc 2.24,而 CentOS7 使用glibc-2.17-106.el7_2.8并且我找不到此功能的任何反向移植说明。但它仍然不是一个闲置选项。

答案1

我不确定它的代码中是否authconfig有调用pam-auth-update,但如果你添加了配置/usr/lib/pam-configs并运行authconfig,那么path-auth-update它应该读取文件并在/etc/pam.d/文件中的适当位置注入 pam_group。请参阅此回答

/usr/share/pam-config/load-groups 中的类似下面的内容应该可以起作用。

Name: activate /etc/security/group.conf
Default: yes

Priority: 900
Auth-Type: Primary Auth:
        optional                        pam_group.so

优先级数字越高,触发越早,并且 pam_group 实际上并不验证密码,因此与其他一些示例(例如官方 Ubuntu 示例)相反,您可以将其关闭。

答案2

只需在那里编辑/etc/groups并添加您的用户即可:)

我有自己的 LDAP 用户,也是该组的成员mock,因此我可以在 chroot 中构建 RPM:

$ grep mock /etc/group
mock:x:135:jhrozek

唯一的缺点是您需要注销并重新登录,因为只有在登录时才建立群组。

相关内容