ฉันจะรับ pam_exec.so เพื่อสร้างชุดข้อมูล home dir ZFS ใหม่สำหรับผู้ใช้แต่ละคนที่เข้าสู่ระบบผ่าน GDM/LDAP ได้อย่างไร ฉันใช้ Ubuntu 20.04 โดยใช้ GDM และ nslcd สำหรับ LDAP auth
ไลบรารี mhomedir ของ pam ยังไม่มีการสนับสนุนดั้งเดิมสำหรับ ZFS ดังนั้นฉันจึงได้ยื่นคำขอคุณสมบัติสำหรับสิ่งนี้บน GitHub จนกว่าจะนำไปใช้ได้ ฉันจะต้องแฮ็กข้อมูลนี้ด้วยตัวเอง
UPDATE: สิ่งนี้ใช้งานได้เมื่อเข้าสู่ระบบ LDAP จากเทอร์มินัล แต่ปัจจุบันใช้งานกับ gdm (หรือ lightdm) ไม่ได้
UPDATE2: ใช้งานได้แล้ว! ปรับปรุงโพสต์นี้อย่างเหมาะสม
ฉันเพิ่มบรรทัดต่อไปนี้ต่อท้าย /etc/pam.d/common-session
เซสชันทางเลือก pam_exec.so /usr/local/bin/mkzfshome.sh
/usr/local/bin/mkzfshome.sh
#!/bin/bash
ถ้า [ "$PAM_USER" != "gdm" ] && [ ! -d "/home/$PAM_USER" ] ; แล้ว
zfs สร้าง -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 สามารถเรียกใช้สคริปต์นี้ในฐานะ root และไม่ต้องป้อนรหัสผ่านโดยการเรียกใช้ visudo และเพิ่มบรรทัด เช่น:
%isdads-user ALL=(ALL) NOPASSWD: /usr/local/bin/mkzfshome.sh
ไปยังไฟล์ sudoers โดยที่ isdads-user เป็นกลุ่มที่ผู้ใช้ทั้งหมดของคุณที่จะต้องเรียกใช้ mkzfshome.sh เมื่อเข้าสู่ระบบเป็นสมาชิก