NSS avec PostgreSQL
NSS permet aux utilisateurs stockés dans la base de données VHFFS d’être reconnus par le système, ce sont ainsi des utilisateurs unix standard. Cela permet par exemple, d’autoriser leur connexion par ssh lorsqu’ils désireront se connecter au serveur cvs ou alors, de pouvoir reconnaître leurs fichiers avec le serveur FTP pure-ftpd.
Installation :
- Installez les paquets debian
aptitude install libnss-pgsql1 nscd
libnss-pgsql a quelques bugs qui empêchent son bon fonctionnement. D’où l’obligation d’utiliser nscd, sinon, les utilisateurs de vhffs ne peuvent se connecter à la machine avec ssh.
Une alternative consiste à configurer nss avec sqlite.
- Créez le fichier de configuration :
cp /usr/share/doc/libnss-pgsql1/examples/nss-pgsql.conf /etc/nss-pgsql.conf
puis éditez le fichier /etc/nss-pgsql.conf comme suit :
# example configfile for PostgreSQL NSS module # these are entries as used with the BOFHMS tool (sf.net/projects/bofhms) host = localhost port = 5432 database = vhffs login = vhffs passwd = ******* passwdtable = vhffs_shadow grouptable = vhffs_groups # you can use anything postgres accepts as table expression groupmembertable = vhffs_passwd JOIN vhffs_user_group ON vhffs_passwd.uid=vhffs_user_group.uid JOIN vhffs_groups ON vhffs_groups.gid=vhffs_user_group.gid passwd_name = username passwd_passwd = passwd passwd_uid = uid passwd_dir = homedir passwd_shell = shell passwd_gecos = username passwd_gid = gid group_name = groupname group_passwd = passwd group_gid = gid group_member = username queryids = SELECT ug.gid FROM vhffs_passwd p INNER JOIN vhffs_user_group ug ON ug.uid = p.uid WHERE p.username = '%s' AND ug.gid != %d querypasswd = SELECT username, passwd, uid, gid, username, homedir, shell FROM vhffs_passwd querygroup = SELECT groupname, passwd, gid FROM vhffs_groups querymembers = SELECT u.username FROM vhffs_users u INNER JOIN vhffs_user_group ug ON ug.uid = u.uid WHERE ug.gid = %d
puis éditez le fichier /etc/nsswitch.conf et modifiez les lignes :
passwd: compat pgsql group: compat pgsql shadow: compat pgsql
Pour tester les utilisateurs Vhffs:
getent group id username