Come posso fornire a un utente una password per l'utilizzo normale durante l'accesso e un'altra password per l'amministrazione del sistema e l' accesso sudo ? Voglio che un utente abbia due password.
sudo usermod -d /path/to/new/home
Come posso fornire a un utente una password per l'utilizzo normale durante l'accesso e un'altra password per l'amministrazione del sistema e l' accesso sudo ? Voglio che un utente abbia due password.
sudo usermod -d /path/to/new/home
Risposte:
C'è un modo per farlo sovrascrivendo le impostazioni PAM (Pluggable Authentication Module) per il servizio sudo. Fallo a grande rischio per la tua macchina - non solo copiare e incollare a meno che tu non capisca cosa fa il comando e tieni sempre aperto un terminale di root - test test test! - prima di disconnettersi, nel caso in cui sia necessario tornare indietro e riparare qualcosa.
Consiglio di leggere alcune informazioni su come funziona PAM in modo da sapere cosa fare se si rompe. Consiglio anche alla maggior parte degli utenti di affrontare questo problema da un'angolazione diversa (creando un account utente separato per l'amministrazione) perché la soluzione potrebbe essere suscettibile agli attacchi della tabella hash sulla tua password se non hai impostato correttamente le tue autorizzazioni.
Se sei determinato a procedere, dovrai installare un nuovo modulo PAM. pam_pwdfile utilizza il file di tipo / etc / passwd vecchio stile per l'autenticazione, che è ottimo per usare password diverse per servizi diversi. Non fornisce il riconoscimento dell'account: è possibile creare coppie nome utente / password per gli utenti che non esistono sul sistema. Dal momento che lo useremo per sudo, non importa, dato che lasceremo che sudo controlli l'account esiste nel solito modo.
sudo apt-get install libpam-pwdfile
Consiglio anche di prendere un pratico editor di file htpasswd. Benjamin Schweizer ha creato un pratico editor in Python che funziona bene. Prendi da http://benjamin-schweizer.de/htpasswd_editor.html e installa la sua dipendenza:
sudo apt-get install python-newt
Genera un file in formato htpasswd usando lo strumento - sudo python htpasswd_editor sudo.passwd
. Inserisci un nome utente e una password usando lo stesso nome utente che utilizzerai per sudo, uno per ogni utente che lo utilizzerà. Copialo in un posto sicuro (durante il test lo inserisco in /etc/sudo.passwd) e lo rendo illeggibile per gli utenti normali: chmod 660 /etc/sudo.passwd
come root.
Assicurarsi che il file sia di proprietà di root e illeggibile per altri utenti. Questa è una vulnerabilità poiché il file contiene una password con hash e se è leggibile o scrivibile da altri utenti, infrange gravemente la tua sicurezza. È per questo motivo che non consiglio questo metodo su una macchina che deve essere protetta.
Infine, modifica il /etc/pam.d/sudo
file. Aggiungi la seguente riga sopra le altre @include ...
righe:
auth required pam_pwdfile.so pwdfile /etc/sudo.passwd
Ovviamente sostituendo l'ultimo argomento con il percorso del file htpasswd generato. Commenta la riga successiva: #@include common-auth
per accertarti che stia utilizzando il nuovo metodo di autenticazione.
Avvertenza : sarà necessario modificare il /etc/pam.d/sudo
file da un terminale root. Non chiudere questo senza test! In tal caso, potresti non essere in grado di accedere nuovamente (se hai rotto qualcosa) e dovresti eseguire l'avvio da un disco di ripristino per ripristinare il sistema. Provare prima di disconnettersi aprendo un nuovo terminale e provare a utilizzare sudo
. Dovresti scoprire che non funzionerà più con la tua normale password di accesso, ma richiede invece la nuova password che hai usato quando hai generato il file passwd. Per aggiornare il file, utilizzare di nuovo lo strumento utile.
C'è una soluzione molto più semplice alla domanda originale ed è il modo in cui corro:
Accedi sempre come utente non amministratore e ogni volta che l'utente non amministratore deve fare qualcosa di "admin", basta:
fab-user@fab-ux:/media/Data/Temp
$ su - fab-root
Password:
fab-root@fab-ux:~
$ sudo smartctl --all /dev/sdc
Sì, non è quello che vuoi ma è ciò di cui hai effettivamente bisogno