it-swarm.it

Come disabilito completamente un account?

Come disabilito completamente un account? passwd -l non consentirà a nessuno di accedere a un account utilizzando una password, ma è comunque possibile accedere tramite chiavi private/pubbliche. Come disabiliterei completamente l'account? Come correzione rapida ho rinominato il file in authorized_keys_lockme. C'è un altro modo?

49
user4069

Il modo corretto secondo usermod(8) è:

usermod --lock --expiredate 1970-01-02 <username>

(In realtà, l'argomento di --expiredate può essere qualsiasi data prima della data corrente nel formato YYYY-MM-DD.)


Spiegazione:

  • --lock blocca la password dell'utente. Tuttavia, l'accesso con altri metodi (ad es. Chiave pubblica) è ancora possibile.

  • --expiredate YYYY-MM-DD disabilita l'account alla data specificata. Secondo man shadow 5 1970-01-01 è un valore ambiguo e non deve essere utilizzato.

L'ho provato sulla mia macchina. Non è possibile accedere con password o chiave pubblica dopo aver eseguito questo comando.


Per riattivare l'account in un secondo momento è possibile eseguire:

usermod --unlock --expiredate '' <username>
61
Christoph Wurm

Blocca la password e modifica Shell in /bin/nologin.

Sudo usermod --lock --Shell /bin/nologin username

(O più concisamente, Sudo usermod -L -s /bin/nologin username.)

10
mattdm

Ecco un altro modo semplice. È possibile impostare l'account utente scaduto. Ciò impedirà l'accesso sia basato su password sia basato su ssh per l'account, ma non tocca la password.

Per bloccare l'account:

# chage -E 0 username

L'account utente "nome utente" verrà bloccato sul sistema. Per riattivare l'account utente, procedere come segue.

Per sbloccare l'account:

# chage -E -1 username

L'account utente "nome utente" verrà riattivato sul tuo sistema con la stessa password di prima. Il binario "chage" fa parte del pacchetto shadow-utils su Red Hat Linux o passwd pacchetto su Debian Linux.

4
miklosq

Non ho un rappresentante sufficiente per commentare la risposta di Legate, ma volevo condividere che questa risposta ci ha aiutato con un altro caso d'uso:

1.) l'account in questione è un account di servizio locale che esegue un'applicazione, non un account utente finale.

2.) gli utenti finali ssh in come se stessi e Sudo /bin/su <user> diventare utente e amministrare l'applicazione a causa di un requisito di audit trail che l'account del servizio non può avere accesso diretto.

3.) l'account del servizio deve avere una Shell valida (/bin/bash, non /sbin/nologin), perché una piattaforma di pianificazione aziendale (l'agente viene eseguito come root localmente) deve essere in grado di su - <user> e non ha il su -s /bin/bash <user> capacità di una shell completa ed è necessaria per eseguire i lavori in remoto per operazioni batch più grandi che comprendono più server e database.


Così...

passwd -l <user>
Non soddisfa i vincoli perché l'autenticazione con chiave pubblica ignora PAM e consente comunque l'accesso diretto.

usermod -s /sbin/nologin <user>
Non soddisfa i vincoli perché interrompe lo scheduler aziendale

usermod --lock --expiredate 1970-01-01 <user>
Questo è il nostro vincitore. Accesso remoto disabilitato, ma root può ancora su <user>, così come altri utenti tramite Sudo, quindi lo scheduler funziona correttamente e gli utenti finali autorizzati possono diventare l'account del servizio di destinazione secondo necessità.

Grazie per la soluzione!

3
user1880028

Per eliminarlo del tutto usa userdel.

Si noti che se si elimina un account esiste il rischio che il suo ID utente venga comunque utilizzato nel file system da qualche parte e che un nuovo utente erediti la proprietà di tali file se rientra nello stesso ID utente.

Si desidera modificare il proprietario di tutti i file di proprietà dell'utente eliminato.

Se desideri aggiungere nuovamente l'utente in un secondo momento, salva le sue righe da /etc/passwd (e su Solaris /etc/shadow) a file temporanei come /etc/passwd_deleted.

In questo modo quando lo aggiungi di nuovo puoi utilizzare lo stesso ID utente e la stessa password (che è crittografata in uno dei file sopra)

Disclaimer: ho imparato UNIX da solo, quindi non sarei sorpreso se c'è un modo migliore per disabilitare temporaneamente l'utente. In realtà non so nemmeno di cosa stai parlando le chiavi private/pubbliche. Inoltre sono sicuro che esiste un comando find che può essere utilizzato per cercare i file con quel userid userid

1
Bryan Field

Qualcuno ha provato a farlo tramite ssh_config? Forse questo potrebbe aiutare http://www.techrepublic.com/blog/opensource/set-up-user-accounts-quickly-and-securely/86

Inoltre, assicurarsi che PasswordAuthentication sia impostato su no, per forzare tutti gli accessi a utilizzare le chiavi pubbliche.

0
icasimpan