Continuiamo oggi il percorso nel mondo della sistemistica in ambito GNU/Linux. A proposito: è da poche ore disponibile una nuova versione del kernel, la 5.6. Dopo l’analisi del filesystem /proc, la guida su come utilizzare al meglio grep e l’automazione tramite cron ed anacron, introduciamo altri due elementi di sicuro interesse in ambito sysadmin: passwd e la sua controparte shadow.
Passwd e shadow: gestione degli utenti in GNU/Linux
Uno dei file presenti sin dalle prime versioni di Unix è sicuramente passwd, che possiamo trovare al percorso /etc/passwd. Questo file è da sempre considerato il database degli utenti abilitati in un sistema GNU/Linux, ed è così chiamato poiché, storicamente, conteneva anche le password degli utenti stessi. Proviamo ad analizzarne il contenuto lanciando il seguente comando grep “vostro_nome_utente” /etc/passwd, il cui output nel mio caso sarà:
alessandro:x:1000:1000:Alessandro,,,:/home/alessandro:/bin/bash
Ogni riga contenuta all’interno di questo file sarà quindi costituita da sette campi, una loro descrizione dettagliata può essere trovata attraverso man passwd. Per ora concentriamoci sui primi due. Il primo indica proprio il nome utente, nel secondo, invece, possiamo trovare o meno una lettera X, in base alla presenza di una shadow password per l’utente cui si riferisce. Le password, come potevamo aspettarci, non sono quindi memorizzate in chiaro. Questo file, inoltre, è accessibile da chiunque, diversa è la situazione per /etc/shadow. In questo caso infatti, per analizzarlo avremo bisogno dei privilegi di amministratore. Lanciamo quindi il comando sudo grep “vostro_nome_utente” /etc/shadow ed avremo:
alessandro:$$$$CIFRATURA$$$$:15695:0:99999::::
Dal secondo campo si nota che nemmeno in questo caso è possibile leggere la password in chiaro, bensì solo la chiave cifrata. Ogni volta che il sistema richiederà un’autenticazione ne viene calcolato l’hash e poi eseguita una verifica della corrispondenza. Una curiosità: il terzo campo indica il giorno in cui la password di quell’utente è stata cambiata l’ultima volta, espresso in numero di giorni a partire dal 1° gennaio 1970.
Posso usare Vim o Emacs per editare i file passwd e shadow?
L’editing di questi due file è sicuramente molto interessante, ed essendo due file testuali possono essere modificati usando un qualsiasi editor. Un esempio banale potrebbe essere quello di disabilitare l’accesso all’utente root, sostituendo in shadow il relativo hash con il carattere ! oppure *.
In realtà esiste un comando appositamente pensato per i sysadmin. Il problema, in uno scenario con molti utenti, è che un utente potrebbe provare a modificare la propria password nello stesso istante in cui il root sta effettuando a sua volta delle modifiche. In tal caso la password non verrebbe aggiornata e l’utente non potrebbe più accedere al sistema.
Vipw invece è dotato di una funzione particolare, ovvero procede a blindare la modifica del file passwd da parte di altri utenti mentre il sysadmin sta operando, risolvendo così a monte eventuali conflitti. L’opzione più importante è sicuramente -s, con la quale si procede specularmente alla modifica del file shadow.
Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.