Answers:
假设这些组可用于Linux系统,我建议编辑/etc/security/access.conf
Ubuntu,RedHat发行版(及其分支)以及可能的其他版本。这不需要编辑PAM文件,这是一个很好的标准位置。文件中通常有示例,已注释掉。
(我在这里谈论的是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
是的,有几种方法可以完成此操作,具体取决于您要完成的工作。
第一种方法可以通过samba配置完成。这将仅允许这些用户连接到Samba,其他用户仍可以通过其他服务(ssh,本地术语等)登录。这样,您将需要在smb.conf的[global]部分添加一行:
valid users = @groupA @groupB
另一种方法是通过修改PAM规则。不同的发行版在这里会有细微的差异,但是通常来说,每个服务都有PAM规则以及通用规则,您可以决定最好的。您将要使用pam_require模块添加帐户限制。我的笔记本电脑(Fedora 13)上的一个示例是将/etc/pam.d/system-auth中的account部分修改为:
account required pam_unix.so
account required pam_require.so @groupA @groupB
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
为了简化管理,您可能需要在AD中创建一个新组,以跟踪可以登录到该服务器的用户。
我已经实现了仅允许一个AD_USER或AD_GROUP通过AD身份验证通过ssh登录linux系统。
详细信息如下所示:(请注意步骤7和8)