it-swarm.it

Disabilita l'accesso di un utente senza disabilitare l'account

Diciamo che creo un utente chiamato "fasullo" usando il comando adduser. Come posso assicurarmi che questo utente NON sia un'opzione di accesso valida, senza disabilitare l'account. In breve, desidero che l'account sia accessibile tramite su - bogus, ma non desidero che sia accessibile tramite un prompt di accesso normale.

Cercando in giro, sembra che debba disabilitare la password di quell'utente, ma facendo passwd -d bogus non ha aiutato. In effetti, ha peggiorato le cose, perché ora potrei accedere a fasullo senza nemmeno digitare una password.

C'è un modo per disabilitare gli accessi regolari per un determinato account?

Nota: per essere chiari, so come rimuovere un utente dalle opzioni di menu delle schermate di accesso grafiche come gdm, ma questi metodi nascondono semplicemente l'account senza disabilitare effettivamente l'accesso. Sto cercando un modo per disabilita completamente l'accesso regolare, inclusa la modalità testo.

92
Malabarba
passwd -l user

è quello che vuoi.

Ciò bloccherà l'account utente. Ma sarai ancora in grado di farlo

su - user

ma dovrai su - user come root.

In alternativa, puoi realizzare la stessa cosa anteponendo un ! alla password dell'utente in /etc/shadow (questo è tutto passwd -l fa dietro le quinte). E passwd -u annullerà questo.

105
Chad Feller

La pagina man di passwd(1) dice di passwd -l:

Si noti che ciò non disabilita l'account. L'utente potrebbe comunque essere in grado di accedere utilizzando un altro token di autenticazione (ad esempio una chiave SSH). Per disabilitare l'account, gli amministratori dovrebbero usare usermod - scaduto 1 (questo imposta la data di scadenza dell'account al 2 gennaio 1970).

Così

usermod --expiredate 1 [LOGIN]

mi sembra il modo giusto di disabilitare un account che un utente non dovrebbe più essere in grado di utilizzare (ad es. perché ha lasciato l'azienda).

39

Esistono due metodi per impedire a un utente di accedere:

  1. puoi bloccare l'utente modificando /etc/passwd
  2. inviando direttamente il comando passwd con il -l interruttore

Nel secondo caso l'utente può accedere utilizzando un altro token di autenticazione (ad esempio una chiave SSH).

Metodo # 1

  1. Trova dove si trova nologin:/bin/nologin o/bin/sbin/nologin
  2. Apri un terminale e accedi come root
  3. Genere vi /etc/passwd

Ora sei nel file passwd premi Ins per modificare il file.

Cambia la riga sotto con l'opzione nologin (/bin/bash significa che l'utente è in grado di accedere).

root:x:0:0:root:/root:/bin/bash

a questo. nologin significa che l'utente non è in grado di accedere.

root:x:0:0:root:/root:/bin/nologin

(o con/bin/sbin/nologin)

  1. Chiudi il vi Esc:wq

Metodo # 2

Per bloccare l'utente: passwd -l username

Per sbloccare l'utente: passwd -u username

28
Mansur Ul Hasan

È abbastanza semplice, devi semplicemente apportare alcune modifiche in /etc/passwd file.

Devi semplicemente cambiare la Shell che è generalmente di default /bin/bash Vale a dire che puoi accedere usando questa shell cambiarlo in /bin/nologin o /bin/false. Si consiglia di cambiarlo in /bin/nologin perché /bin/false non è aggiornato.

7

Impostato /bin/false come Shell in /etc/passwd

4
danadam

Quando blocciamo l'utente utilizzando il passwd -l user command, "!! "sono indicati in /etc/shadow file. Ma siamo ancora in grado di passare a un utente Shell dall'account root, ma non siamo in grado di passare all'account utente da altri utenti normali che accedono a Shell.

Possiamo anche disabilitare l'account fornendo /bin/nologin o /bin/false in a /etc/passwd file. Quindi l'utente potrebbe non essere in grado di accedere.

0
Sushil Musande