Cum fac ca pam_exec.so să creeze un nou set de date home dir ZFS pentru fiecare utilizator care se conectează prin GDM/LDAP? Rulez Ubuntu 20.04, folosind GDM și nslcd pentru autentificarea LDAP.
Biblioteca mkhomedir a lui pam nu are încă suport nativ pentru ZFS, așa că am depus o cerere de caracteristici pentru aceasta pe github. Până când va fi implementat, va trebui să piratez asta împreună.
UPDATE: Acest lucru funcționează atunci când vă conectați la LDAP de la terminal, pur și simplu nu funcționează în prezent cu gdm (sau lightdm).
UPDATE2: Am înțeles! Am actualizat această postare în mod corespunzător.
Am adăugat următoarea linie la sfârșitul /etc/pam.d/common-session
sesiune opțională pam_exec.so /usr/local/bin/mkzfshome.sh
/usr/local/bin/mkzfshome.sh
#!/bin/bash
if [ "$PAM_USER" != "gdm" ] && [ ! -d "/home/$PAM_USER" ] ; atunci
zfs create -o mountpoint=/home/$PAM_USER astarray/home/$PAM_USER
chown $PAM_USER:1001 /home/$PAM_USER
chmod go-rwx /home/$PAM_USER
fi
Am ajuns să folosim lightdm în loc de gdm, așa că înlocuiți gdm cu lightdm dacă utilizați și lightdm.
Rularea mkzfshome.sh necesită permisiuni sudo/root, așa că vom configura sudo pentru a oferi tuturor membrilor grupului de utilizatori isdads permisiunea de a rula acest script ca root și fără a introduce o parolă, rulând visudo și adăugând o linie precum:
%isdads-user ALL=(ALL) NOPASSWD: /usr/local/bin/mkzfshome.sh
În fișierul sudoers, unde isdads-user este un grup din care sunt membri toți utilizatorii dvs. care vor trebui să ruleze mkzfshome.sh la conectare.