Как заставить pam_exec.so создать новый набор данных ZFS домашнего каталога для каждого пользователя, который входит в систему через GDM/LDAP? Я использую Ubuntu 20.04, используя GDM и nslcd для аутентификации LDAP.
Библиотека pam mkhomedir еще не имеет встроенной поддержки ZFS, поэтому я подал запрос на эту функцию на github. Пока это не будет реализовано, мне придется взломать это вместе.
ОБНОВЛЕНИЕ: это работает при входе в LDAP с терминала, просто в настоящее время он не работает с gdm (или lightdm).
ОБНОВЛЕНИЕ 2: Заработало! Обновил этот пост соответствующим образом.
Я добавил следующую строку в конец /etc/pam.d/common-session
необязательный сеанс pam_exec.so /usr/local/bin/mkzfshome.sh
/usr/местные/бен/mkzfshome.sh
#!/бин/баш
если [ "$PAM_USER" != "gdm" ] && [ ! -d "/home/$PAM_USER" ] ; тогда
zfs create -o mountpoint=/home/$PAM_USER astarray/home/$PAM_USER
chown $PAM_USER:1001 /home/$PAM_USER
chmod go-rwx /home/$PAM_USER
фи
В итоге мы использовали lightdm вместо gdm, поэтому замените gdm на lightdm, если вы тоже используете lightdm.
Для запуска mkzfshome.sh требуются разрешения sudo/root, поэтому мы настроим sudo, чтобы дать всем членам группы isdads-user разрешение на запуск этого скрипта от имени пользователя root и без ввода пароля, запустив visudo и добавив такую строку:
%isdads-user ALL=(ALL) NOPASSWD: /usr/local/bin/mkzfshome.sh
В файл sudoers, где isdads-user — это группа, членами которой являются все ваши пользователи, которым нужно запускать mkzfshome.sh при входе в систему.