Chociaż prawdopodobnie nie ma sensu zmieniać nazw plików /etc/passwd
i /etc/shadow
, jeśli chcesz zwiększyć bezpieczeństwo, możesz przyjrzeć się PAM (wtykowym modułom uwierzytelniającym) i NSS (Name Service Switch). Jak tutaj.
Za pomocą PAM można dodawać moduły uwierzytelniające, które zamiast odczytywać swoje informacje uwierzytelniające ze standardowych plików, odczytują je z innego źródła, np. Z ldap lub bazy danych. Użycie tego oznaczałoby /etc/shadow
prawie całkowite wyeliminowanie.
NSS uzupełnia PAM, uniezależniając część rozpoznawania nazw (np. Do których grup należy ten użytkownik) od standardowych plików ( /etc/passwd
, /etc/groups
). Użycie go oznaczałoby, że plik passwd potencjalnie będzie zawierał tylko opcję awaryjną dla roota i nic więcej. Użycie kluczy SSH do sprawdzenia poprawności logowania roota wyeliminowałoby również potrzebę posiadania hasła roota w pliku cienia (chociaż może być pożądane, jeśli połączenie SSH zostanie przerwane).
Alternatywnie, jeśli nie chcesz uwierzytelniać użytkowników za pomocą oddzielnej bazy danych lub hosta LDAP, możesz również utworzyć własne moduły PAM i NSS, które odczytują ich dane z niestandardowego pliku, chociaż nie polecam tej opcji.
Kiedy chcesz spróbować ich użyć, nigdy nie zapomnij zachować rezerwy na znaną, działającą warstwę uwierzytelniania, w przeciwnym razie możesz zablokować się poza systemem, nawet z rootem.
Pamiętaj, że nie wszystkie aplikacje obsługują PAM (wiele z nich jednak). NSS może jednak służyć do implementacji uwierzytelniania dla aplikacji, które nie obsługują PAM, a niektóre witryny, które czytałem o NSS, faktycznie sugerują takie podejście. Oznacza to jednak, że moduł NSS dostarczy (potencjalnie) zaszyfrowane hasło każdemu, kto może uzyskać dostęp do warstwy uwierzytelniania NSS, co prawie zawsze jest czymś, czego chcesz uniknąć (jest to w zasadzie to samo, co zapewnienie dostępu do pliku cienia użytkownika innego niż root) )! Jeśli więc wybierasz to podejście, zawsze upewnij się, że NSS jest używany tylko do dostarczenia użytkownikowi podstawowych danych (takich jak zawartość /etc/passwd
), a PAM jest używany jako warstwa uwierzytelniająca.