Sebbene sia probabilmente inutile rinominare i file /etc/passwd
e /etc/shadow
, se si desidera maggiore sicurezza, è possibile esaminare PAM (moduli di autenticazione collegabili) e NSS (Name Service Switch). Come qui.
PAM può essere utilizzato per aggiungere moduli di autenticazione che, invece di leggere la loro anomalia di autenticazione dai file standard, la leggono da un'altra fonte, come da LDAP o da un database. Usarlo significherebbe che /etc/shadow
può essere quasi completamente eliminato.
NSS integra PAM rendendo parte della risoluzione dei nomi (come i gruppi a cui appartiene questo utente) indipendente dai file standard ( /etc/passwd
, /etc/groups
). Usarlo significherebbe che il tuo file passwd conterrà potenzialmente solo un'opzione di fallback per root e nient'altro. L'uso delle chiavi SSH per convalidare l'accesso root eliminerebbe anche la necessità di avere una password di root all'interno del file shadow (anche se potrebbe essere desiderato se la connessione SSH si interrompe).
In alternativa, se non desideri autenticare i tuoi utenti tramite un database separato o un host ldap, puoi anche creare i tuoi moduli PAM e NSS, che leggono i loro dati da un file non standard, anche se non consiglierei questa opzione.
Quando vuoi provare a usarli, non dimenticare di mantenere una sorta di fallback su un livello di autenticazione noto e funzionante, altrimenti puoi bloccarti fuori dal sistema, anche con root.
Nota che non tutte le applicazioni supportano PAM (molte di esse lo fanno comunque). Tuttavia, NSS può essere utilizzato per implementare l'autenticazione per le app che non supportano PAM e alcuni siti che ho letto su NSS suggeriscono effettivamente questo approccio. Ciò significa tuttavia che il modulo NSS fornirà la password (potenzialmente) con hash a chiunque possa accedere al livello di autenticazione NSS, che è quasi sempre qualcosa che si desidera evitare (è praticamente lo stesso che dare accesso in lettura non root al file shadow )! Quindi, se segui questo approccio, assicurati sempre che NSS sia usato solo per fornire all'utente i dati di base (come il contenuto di /etc/passwd
) e che PAM sia usato come livello di autenticazione.