So erstellen Sie ZFS-Home-Verzeichnisse mit pam_exec

So erstellen Sie ZFS-Home-Verzeichnisse mit pam_exec

Wie bringe ich pam_exec.so dazu, für jeden Benutzer, der sich über GDM/LDAP anmeldet, ein neues Home-Dir-ZFS-Dataset zu erstellen? Ich verwende Ubuntu 20.04 und verwende GDM und nslcd für die LDAP-Authentifizierung.

Pams mkhomedir-Bibliothek bietet noch keine native Unterstützung für ZFS, daher habe ich auf GitHub eine entsprechende Funktionsanfrage eingereicht. Bis diese implementiert ist, muss ich das selbst zusammenhacken.

UPDATE: Dies funktioniert, wenn Sie sich vom Terminal aus bei LDAP anmelden, es funktioniert derzeit nur nicht mit gdm (oder lightdm).

UPDATE2: Funktioniert! Dieser Beitrag wurde entsprechend aktualisiert.

Ich habe die folgende Zeile am Ende von /etc/pam.d/common-session hinzugefügt

session     optional        pam_exec.so /usr/local/bin/mkzfshome.sh

/usr/local/bin/mkzfshome.sh

#!/bin/bash
if [ "$PAM_USER" != "gdm" ] && [ ! -d "/home/$PAM_USER" ] ; then
    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

Wir haben letztendlich lightdm statt gdm verwendet, ersetzen Sie also gdm durch lightdm, wenn Sie auch lightdm verwenden.

Zum Ausführen von mkzfshome.sh sind Sudo-/Root-Berechtigungen erforderlich. Daher konfigurieren wir Sudo so, dass alle Mitglieder der Benutzergruppe isdads die Berechtigung erhalten, dieses Skript als Root und ohne Eingabe eines Kennworts auszuführen. Dazu führen wir visudo aus und fügen eine Zeile wie die folgende hinzu:

%isdads-user ALL=(ALL) NOPASSWD: /usr/local/bin/mkzfshome.sh

Zur sudoers-Datei, wobei isdads-user eine Gruppe ist, der alle Ihre Benutzer angehören, die beim Anmelden mkzfshome.sh ausführen müssen.

verwandte Informationen