Mặc dù có thể không sử dụng để đổi tên tệp /etc/passwd
và /etc/shadow
tệp, nhưng nếu bạn muốn thêm bảo mật, bạn có thể muốn xem PAM (mô-đun xác thực có thể cắm) và NSS (Chuyển đổi dịch vụ tên). Giống như ở đây.
PAM có thể được sử dụng để thêm các mô-đun xác thực, thay vì đọc phần xác thực của chúng từ các tệp tiêu chuẩn, hãy đọc nó từ một nguồn khác, như từ ldap hoặc cơ sở dữ liệu. Sử dụng nó có nghĩa là /etc/shadow
có thể gần như hoàn thành loại bỏ.
NSS bổ sung cho PAM bằng cách thực hiện một số độ phân giải tên (giống như nhóm người dùng này thuộc về nhóm nào) độc lập với các tệp tiêu chuẩn ( /etc/passwd
, /etc/groups
). Sử dụng nó có nghĩa là tệp passwd của bạn có khả năng chỉ chứa tùy chọn dự phòng cho root, và không có gì nữa. Sử dụng các khóa SSH để xác thực đăng nhập gốc cũng sẽ loại bỏ yêu cầu phải có mật khẩu gốc bên trong tệp bóng (mặc dù có thể mong muốn nếu kết nối SSH bị hỏng).
Ngoài ra, nếu bạn không muốn xác thực người dùng của mình thông qua một cơ sở dữ liệu hoặc máy chủ ldap riêng biệt, bạn cũng có thể tạo các mô-đun PAM và NSS của riêng mình, để đọc dữ liệu của họ từ một tệp không chuẩn, mặc dù tôi không khuyến nghị tùy chọn này.
Khi bạn muốn thử sử dụng chúng, đừng bao giờ quên giữ một loại dự phòng cho một lớp xác thực đang hoạt động, đã biết, nếu không bạn có thể tự khóa mình khỏi hệ thống, ngay cả với root.
Lưu ý rằng không phải tất cả các ứng dụng đều hỗ trợ PAM (tuy nhiên rất nhiều trong số chúng làm được). Tuy nhiên, NSS có thể được sử dụng để triển khai xác thực cho các ứng dụng không hỗ trợ PAM và một số trang web tôi đã đọc về NSS thực sự đề xuất phương pháp này. Tuy nhiên, điều này có nghĩa là mô-đun NSS sẽ cung cấp mật khẩu băm (có khả năng) cho bất kỳ ai có thể truy cập lớp xác thực NSS, đây hầu như luôn là điều bạn muốn tránh (về cơ bản giống như cho phép truy cập đọc không phải root vào tệp bóng )! Vì vậy, nếu bạn đang thực hiện phương pháp này, luôn đảm bảo rằng NSS chỉ được sử dụng để cung cấp cho người dùng dữ liệu cơ bản (như nội dung của /etc/passwd
) và PAM được sử dụng làm lớp xác thực.