Solución 1:
Suponiendo que los grupos estén disponibles para el sistema Linux, recomiendo editar /etc/security/access.conf
para Ubuntu, distribuciones de RedHat (y sus bifurcaciones) y probablemente un montón de otras. Esto no requiere editar archivos PAM, y es un buen lugar estándar para hacerlo. Normalmente hay ejemplos en el archivo, comentados.
Solución 2:
(Estoy hablando de samba 3 aquí, no tengo experiencia en samba 4 ahora).
No es necesario editar esos archivos /etc/pam.d/xxx. pam_winbind.conf es el archivo que desea, por lo general se encuentra en /etc/security/pam_winbind.conf .
Es el archivo de configuración del módulo pam_winbind y funciona tanto para CentOS/Redhat como para Debian/Ubuntu. Puede leer la página man de pam_winbind.conf como referencia.
Aquí hay un archivo de ejemplo.
#
# 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
Solución 3:
Actualmente uso el AllowGroups
directiva en /etc/ssh/sshd_config
para limitar quién puede iniciar sesión. Especifique uno o más grupos de AD en esa línea, y esas personas serán las únicas que podrán iniciar sesión.
Tenga en cuenta que esto solo funciona si sus usuarios son solo acceder al servidor de forma remota a través de ssh. Si están cantando localmente, tendrás que encontrar otra solución.
Solución 4:
Sí, hay algunas formas de hacer esto dependiendo de lo que esté tratando de lograr exactamente.
El primer método se puede hacer a través de la configuración de samba. Esto solo permitirá que estos usuarios se conecten a Samba, otros usuarios aún pueden iniciar sesión a través de otros servicios (ssh, término local, etc.). Con esto, querrá agregar una línea a su sección [global] en smb.conf:
valid users = @groupA @groupB
El otro método es modificando las reglas PAM. Las diferentes distribuciones tienen ligeras diferencias aquí, pero en términos generales, existen reglas PAM por servicio, así como reglas comunes, puede decidir cuál es la mejor. Querrá agregar una restricción de cuenta usando el módulo pam_require. Un ejemplo en mi computadora portátil (Fedora 13) sería modificar la sección de la cuenta en /etc/pam.d/system-auth a:
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
Para simplificar la administración, es posible que desee crear un nuevo grupo en AD con el fin de realizar un seguimiento de los usuarios que pueden iniciar sesión en este servidor.