Làm cách nào để tôi có được pam_exec.so để tạo bộ dữ liệu ZFS thư mục nhà mới cho mỗi người dùng đăng nhập qua GDM/LDAP? Tôi đang chạy Ubuntu 20.04, sử dụng GDM và nslcd cho LDAP auth.
thư viện mkhomedir của pam chưa có hỗ trợ riêng cho ZFS nên tôi đã gửi yêu cầu tính năng này trên github. Cho đến khi điều đó được thực hiện, tôi sẽ phải tự mình hack cái này.
CẬP NHẬT: Điều này đang hoạt động khi đăng nhập vào LDAP từ thiết bị đầu cuối, hiện tại nó không hoạt động với gdm (hoặc lightdm).
CẬP NHẬT2: Nó đã hoạt động! Cập nhật bài viết này một cách thích hợp.
Tôi đã thêm dòng sau vào cuối /etc/pam.d/common-session
phiên tùy chọn pam_exec.so /usr/local/bin/mkzfshome.sh
/usr/local/bin/mkzfshome.sh
#!/bin/bash
nếu [ "$PAM_USER" != "gdm" ] && [ != "gdm" ] && [ ! -d "/home/$PAM_USER" ] ; sau đó
tạo zfs -o mountpoint=/home/$PAM_USER astarray/home/$PAM_USER
chown $PAM_USER:1001 /home/$PAM_USER
chmod go-rwx /home/$PAM_USER
fi
Cuối cùng, chúng tôi đã sử dụng lightdm thay vì gdm, vì vậy hãy thay thế gdm bằng lightdm nếu bạn cũng đang sử dụng lightdm.
Chạy mkzfshome.sh yêu cầu quyền sudo/root, vì vậy chúng tôi sẽ định cấu hình sudo để cấp cho tất cả các thành viên của nhóm người dùng isdads quyền chạy tập lệnh này với quyền root và không cần nhập mật khẩu bằng cách chạy visudo và thêm một dòng như:
%isdads-user TẤT CẢ=(TẤT CẢ) NOPASSWD: /usr/local/bin/mkzfshome.sh
Đối với tệp sudoers, trong đó isdads-user là một nhóm mà tất cả người dùng của bạn sẽ cần chạy mkzfshome.sh khi đăng nhập đều là thành viên.