
GDM/LDAP 経由でログインする各ユーザーに対して、pam_exec.so で新しいホーム ディレクトリ ZFS データセットを作成するにはどうすればよいですか? 私は Ubuntu 20.04 を実行しており、LDAP 認証に GDM と nslcd を使用しています。
pam の mkhomedir ライブラリにはまだ ZFS のネイティブ サポートがないため、この機能のリクエストを github に提出しました。これが実装されるまでは、自分でハッキングする必要があります。
更新: これは、ターミナルから LDAP にログインするときには機能しますが、現在 gdm (または lightdm) では機能しません。
更新2: 動作するようになりました! この投稿を適切に更新しました。
/etc/pam.d/common-sessionの末尾に次の行を追加しました。
session optional pam_exec.so /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 権限が必要なので、visudo を実行して次のような行を追加し、isdads-user グループのすべてのメンバーにこのスクリプトを root として、パスワードを入力せずに実行するための権限を与えるように sudo を設定します。
%isdads-user ALL=(ALL) NOPASSWD: /usr/local/bin/mkzfshome.sh
sudoers ファイルへ。ここで、isdads-user は、ログイン時に mkzfshome.sh を実行する必要があるすべてのユーザーがメンバーになっているグループです。