Utilizzare una password per l'amministrazione e un'altra per l'accesso al sistema


10

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.


1
Perché non fare solo 2 account, uno per il normale utilizzo e l'altro permesso di usare sudo.
Luis Alvarado,

no, ne ho bisogno in un solo account
Varun Sridharan,

Perché hai bisogno che questo sia un account? Puoi creare un account separato con accesso sudo ma senza una cartella home separata quindi aggiungere questo utente allo stesso gruppo dell'utente normale e impostarlo per utilizzare la stessa cartella home consudo usermod -d /path/to/new/home
Warren Hill

@Varun Ho aggiornato la mia risposta con i passaggi che funzionano per me dall'ultima volta che hai commentato. Potresti controllarlo e fammi sapere se funziona per te?
Aaron D,

Risposte:


16

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.passwdcome 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/sudofile. 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-authper accertarti che stia utilizzando il nuovo metodo di autenticazione.

Avvertenza : sarà necessario modificare il /etc/pam.d/sudofile 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.


ho bisogno di correre su Ubuntu c'è un altro modo
Varun Sridharan,

Ho aggiornato la risposta: ho testato questo metodo e fa quello che vuoi, se ho capito bene la tua domanda. Per favore, provalo
Aaron D,

1
+50 taglia. @AaronD la tua risposta ha risolto la mia domanda . Grazie!!!
Robbie Wxyz,

Sono contento che l'abbia trovato utile!
Aaron D,

1

C'è una soluzione molto più semplice alla domanda originale ed è il modo in cui corro:

  • creare un utente non amministratore
  • creare un utente amministratore

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.