我有一些使用Windows Active Directory 身份验证的Linux机器,运行良好(Samba + Winbind)。
但是我现在想做的是只允许某些人或某些组使用 Active Directory 凭据登录。目前,任何拥有有效 AD 帐户的人都可以登录。我想将其限制为仅几个组。这可行吗?
答案1
假设这些组可用于 Linux 系统,我建议/etc/security/access.conf
针对 Ubuntu、RedHat 发行版(及其分支)以及其他一些发行版进行编辑。这不需要编辑 PAM 文件,并且是执行此操作的标准位置。文件中通常会有注释掉的示例。
答案2
我目前使用AllowGroups
指令来/etc/ssh/sshd_config
限制谁可以登录。在该行上指定一个或多个 AD 组,这些人将是唯一能够登录的人。
请记住,这仅当您的用户仅有的通过 ssh 远程访问服务器。如果他们在本地登录,则需要寻找其他解决方案。
答案3
(我这里谈论的是 Samba 3,现在没有使用 Samba 4 的经验。)
无需编辑那些 /etc/pam.d/xxx 文件。pam_winbind.conf是您想要的文件,它通常位于/etc/security/pam_winbind.conf。
它是 pam_winbind 模块的配置文件,适用于 CentOS/Redhat 和 Debian/Ubuntu。您可以阅读pam_winbind.conf 的手册页以供参考。
这是一个示例文件。
#
# pam_winbind configuration file
#
# /etc/security/pam_winbind.conf
#
[global]
# turn on debugging
;debug = no
# turn on extended PAM state debugging
;debug_state = no
# request a cached login if possible
# (needs "winbind offline logon = yes" in smb.conf)
cached_login = yes
# authenticate using kerberos
;krb5_auth = no
# when using kerberos, request a "FILE" krb5 credential cache type
# (leave empty to just do krb5 authentication but not have a ticket
# afterwards)
;krb5_ccache_type =
# make successful authentication dependend on membership of one SID
# (can also take a name)
# require_membership_of = SID,SID,SID
require_membership_of = S-1-5-21-4255311587-2195296704-2687208041-1794
# password expiry warning period in days
;warn_pwd_expire = 14
# omit pam conversations
;silent = no
# create homedirectory on the fly
mkhomedir = yes
答案4
我很难让上述任何一个功能在 RHEL 7 中发挥作用。下面是我能做到的工作。
/etc/sssd/sssd.conf
更改
access_provider = ad
为access_provider = simple
+simple_allow_groups = @[email protected], @[email protected]
维苏多
%[email protected] ALL=(ALL) ALL
重新启动 sssd 服务。