Trong những ngày qua tôi đã thiết lập một số hệ thống Linux với xác thực LDAP và mọi thứ đều hoạt động tốt, nhưng vẫn còn một số điều tôi không thể thực sự hiểu về NSS và PAM, sau rất nhiều nghiên cứu.
Trích dẫn:
NSS cho phép quản trị viên chỉ định danh sách các nguồn nơi tệp xác thực, tên máy chủ và thông tin khác sẽ được lưu trữ và tìm kiếm
và
PAM là một tập hợp các thư viện cung cấp nền tảng xác thực có thể định cấu hình cho các ứng dụng và hệ điều hành bên dưới
Điều tôi không hiểu là cách PAM và NSS hoạt động và tương tác với nhau. Trong cuốn sách này , kiến trúc được giải thích khá tốt: Tôi định cấu hình PAM để sử dụng pam_ldap
cho tài khoản LDAP và pam_unix
cho tài khoản cục bộ, sau đó tôi định cấu hình nsswitch.conf
để tìm nạp thông tin từ các tệp cục bộ và LDAP.
Nếu tôi đã hiểu chính xác thì LDAP được sử dụng hai lần: lần đầu tiên pam_ldap
và sau đó bởi NSS được gọi là từ pam_unix
. Có đúng không? LDAP có thực sự được sử dụng hai lần? Nhưng tại sao tôi cần cấu hình cả NSS và PAM? Giải thích của tôi là PAM thực hiện các nhiệm vụ khác với NSS và nó được sử dụng bởi các chương trình khác. Nhưng, sau đó, chỉ nên sử dụng NSS hoặc chỉ PAM, như tôi đã đọc trong trang này .
Vì vậy, tôi đã thử nghiệm một chút và lần đầu tiên tôi đã cố gắng xóa LDAP khỏi nsswitch.conf
(và xác thực đã dừng hoạt động như thể chỉ pam_ldap là không đủ để thực hiện công việc). Sau đó, tôi kích hoạt lại LDAP trong NSS và tôi đã xóa nó khỏi cấu hình PAM (lần này mọi thứ đều hoạt động tốt, như thể pam_ldap
là vô dụng và NSS là đủ để xác thực người dùng).
Có ai có thể giúp tôi làm rõ điều này? Rất cám ơn trước.
CẬP NHẬT
Tôi vừa mới thử một cái gì đó. Tôi đã xóa lại tất cả các pam_ldap
mục trong tất cả các trường cấu hình pam và tôi cũng đã xóa shadow: ldap
khỏi đó nsswitch.conf
. Như bây giờ trong tất cả các hệ thống chỉ có các dòng: passwd: ldap files
và group: ldap files
trong nsswitch.conf
. Chà ... đăng nhập với người dùng LDAP hoạt động hoàn hảo, hai dòng (cộng /etc/ldap.conf
) đó là đủ để định cấu hình xác thực LDAP.
Từ kiến thức PAM của tôi độc lập với NSS, nhưng các thử nghiệm của tôi cho thấy không phải vậy. Vì vậy, tôi tự hỏi mình có thể vô hiệu hóa hoàn toàn NSS và chỉ sử dụng PAM không?
getent shadow | grep LDAPUSER
grep LDAPUSER /etc/shadow