
GDM/LDAP를 통해 로그인하는 각 사용자에 대해 새 홈 디렉토리 ZFS 데이터 세트를 생성하려면 pam_exec.so를 어떻게 얻나요? 저는 LDAP 인증을 위해 GDM과 nslcd를 사용하여 Ubuntu 20.04를 실행하고 있습니다.
pam의 mkhomedir 라이브러리에는 아직 ZFS에 대한 기본 지원이 없으므로 이에 대한 기능 요청을 github에 제출했습니다. 그것이 구현될 때까지 나는 이것을 직접 해킹해야 할 것입니다.
업데이트: 이는 터미널에서 LDAP에 로그인할 때 작동하지만 현재 gdm(또는 lightdm)에서는 작동하지 않습니다.
업데이트 2: 작동했습니다! 이 게시물을 적절하게 업데이트했습니다.
/etc/pam.d/common-session 끝에 다음 줄을 추가했습니다.
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
우리는 결국 gdm 대신 lightdm을 사용하게 되었으므로 lightdm도 사용하고 있다면 gdm을 lightdm으로 바꾸십시오.
mkzfshome.sh를 실행하려면 sudo/root 권한이 필요하므로 isdads-user 그룹의 모든 구성원에게 visudo를 실행하고 다음과 같은 줄을 추가하여 비밀번호를 입력하지 않고 루트로 이 스크립트를 실행할 수 있는 권한을 부여하도록 sudo를 구성합니다.
%isdads-user ALL=(ALL) NOPASSWD: /usr/local/bin/mkzfshome.sh
sudoers 파일에서 isdads-user는 로그인 시 mkzfshome.sh를 실행해야 하는 모든 사용자가 속한 그룹입니다.