Come posso cancellare una password e bloccare l'account in un solo passaggio?

5

Ho un'installazione minima del server su una macchina remota con una password di root impostata su un valore temporaneo, ma scelto.

Ho aggiunto un utente amministratore separato. Questo utente ha una chiave autorizzata per SSH, nessun accesso password e sudo senza password.

Vorrei rimuovere qualsiasi traccia della password di root e bloccare l'utente root.

Questo può essere fatto con passwd -d root && passwd -l root . Tuttavia, questo lascia una finestra tra le due operazioni per un cattivo comportamento. Come puoi prendere entrambe le azioni in un solo passaggio?

Questa è più una questione accademica che pratica. La mia soluzione è sed -e -i -e 's/^root:\([^:]*\)\(.*\)$/root:!!/' /etc/shadow , ma sembra che ci debba essere un'operazione meno idonea di errori e incline.

    
posta ToBeReplaced 27.05.2015 - 20:22
fonte

2 risposte

4

Potresti provare:

usermod -p '!!' root

usermod con i parametri -p prende il valore grezzo per scommettere impostato come password crittografata nei file /etc/shadow .

L'uso tradizionale di questo parametro è di dare a usermod una password già crittografata, ma accetta anche il '!!' che segnala l'account come bloccato.

Alla fine, questo comando rimuoverà la password corrente e lascerà solo i punti esclamativi che impostano l'account root come bloccato in passwd way¹, tutto in una mossa usando un comando sicuro e standard, soddisfacendo così la richiesta.

¹: Secondo a questo discussione , non esiste uno standard stabilito sul modo di bloccare un account. Quindi usermod -L usa solo un singolo punto esclamativo ( ! ) davanti alla password con hash per bloccarlo, mentre passwd -l ne usa due ( !! ).

    
risposta data 27.05.2015 - 20:56
fonte
1

Per eliminare e bloccare un account con passwd (1) in un comando, specifica semplicemente -d e -l nella stessa invocazione:

passwd -dl root

    
risposta data 28.09.2018 - 01:44
fonte

Leggi altre domande sui tag