Solution 1 :
En supposant que les groupes sont disponibles pour le système Linux, je recommande de modifier /etc/security/access.conf
pour Ubuntu, les distributions RedHat (et leurs forks) et probablement un tas d'autres. Cela ne nécessite pas de modifier les fichiers PAM, et c'est un endroit bien standard pour le faire. Il y a généralement des exemples dans le fichier, commentés.
Solution 2 :
(Je parle de samba 3 ici, aucune expérience sur samba 4 maintenant.)
Il n'est pas nécessaire de modifier ces fichiers /etc/pam.d/xxx. pam_winbind.conf est le fichier que vous voulez, il se trouve généralement dans /etc/security/pam_winbind.conf .
C'est le fichier de configuration du module pam_winbind, et il fonctionne à la fois pour CentOS/Redhat et Debian/Ubuntu. Vous pouvez lire la page de manuel de pam_winbind.conf pour référence.
Voici un exemple de fichier.
#
# 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
Solution 3 :
J'utilise actuellement le AllowGroups
directive en /etc/ssh/sshd_config
pour limiter qui peut se connecter. Spécifiez un ou plusieurs groupes AD sur cette ligne, et ces personnes seront les seules à pouvoir se connecter.
Gardez à l'esprit que cela ne fonctionne que si vos utilisateurs sont seulement accéder au serveur à distance via ssh. S'ils chantent localement, vous devrez trouver une autre solution.
Solution 4 :
Oui, il existe plusieurs façons de procéder en fonction de ce que vous essayez d'accomplir exactement.
La première méthode peut être effectuée via la configuration de samba. Cela permettra uniquement à ces utilisateurs de se connecter à Samba, les autres utilisateurs pourront toujours se connecter via d'autres services (ssh, local term, etc.). Avec cela, vous voudrez ajouter une ligne à votre section [global] dans smb.conf :
valid users = @groupA @groupB
L'autre méthode consiste à modifier les règles PAM. Différentes distributions ont de légères différences ici, mais en général, il existe des règles PAM par service ainsi que des règles communes, vous pouvez décider ce qui est le mieux. Vous voudrez ajouter une restriction de compte en utilisant le module pam_require. Un exemple sur mon ordinateur portable (Fedora 13) serait de modifier la section compte dans /etc/pam.d/system-auth en :
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
Pour simplifier l'administration, vous pouvez créer un nouveau groupe dans AD dans le but de suivre les utilisateurs qui peuvent se connecter à ce serveur.