Soluzione 1:
Supponendo che i gruppi siano disponibili per il sistema Linux, consiglio di modificare /etc/security/access.conf
per Ubuntu, le distribuzioni RedHat (e i loro fork) e probabilmente un mucchio di altri. Ciò non richiede la modifica dei file PAM ed è un posto ben standard per farlo. Di solito ci sono esempi nel file, commentati.
Soluzione 2:
(Sto parlando di samba 3 qui, nessuna esperienza su samba 4 ora.)
Non è necessario modificare quei file /etc/pam.d/xxx. pam_winbind.conf è il file che desideri, di solito si trova in /etc/security/pam_winbind.conf .
È il file di configurazione del modulo pam_winbind e funziona sia per CentOS/Redhat che per Debian/Ubuntu. Puoi leggere la pagina man di pam_winbind.conf come riferimento.
Ecco un file di esempio.
#
# 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
Soluzione 3:
Attualmente uso il AllowGroups
direttiva in /etc/ssh/sshd_config
per limitare chi può accedere. Specifica uno o più gruppi AD su quella riga e quelle persone saranno le uniche in grado di accedere.
Tieni presente che funziona solo se i tuoi utenti sono solo accedere al server da remoto tramite ssh. Se cantano a livello locale, dovrai trovare un'altra soluzione.
Soluzione 4:
Sì, ci sono alcuni modi per farlo a seconda di ciò che stai cercando di realizzare esattamente.
Il primo metodo può essere eseguito tramite la configurazione di samba. Ciò consentirà solo a questi utenti di connettersi a Samba, altri utenti possono comunque accedere tramite altri servizi (ssh, termine locale, ecc.). Con questo, vorrai aggiungere una riga alla tua sezione [global] in smb.conf:
valid users = @groupA @groupB
L'altro metodo consiste nel modificare le regole PAM. Diverse distribuzioni hanno lievi differenze qui, ma in generale ci sono regole PAM per servizio e regole comuni, puoi decidere cosa è meglio. Ti consigliamo di aggiungere una restrizione dell'account utilizzando il modulo pam_require. Un esempio sul mio laptop (Fedora 13) sarebbe modificare la sezione dell'account in /etc/pam.d/system-auth in:
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
Per semplificare l'amministrazione, potresti voler creare un nuovo gruppo in AD allo scopo di tenere traccia degli utenti che possono accedere a questo server.