Come si fa a sapere se un utente è "autorizzato ad accedere" su Linux?


12

La domanda è semplice, voglio elencare tutti gli account utente che possono accedere al mio sistema, ma non sono sicuro che tutti gli utenti in / etc / passwd siano utenti "in grado di accedere"?

Dettagli:

Riesco a vedere gli utenti le cui shell sono impostate su /usr/sbin/nologine /bin/falsedentro /etc/passwd, significa che non possono accedere?

So anche che posso impostare la password crittografata dell'utente su *o !in /etc/shadowper disabilitare un account, quindi anche "utente disabilitato" dovrebbe essere trattato come utente "impossibile accedere", giusto?

Risposte:


13

Molto dipende dalla definizione di "accesso" - tecnicamente qualsiasi utente che esiste in /etc/passwd& /etc/shadowè un "utente valido" e potrebbe teoricamente accedere con il giusto insieme di circostanze.

I metodi di cui stai parlando rientrano nelle seguenti grandi categorie:

  • Utenti con account "bloccati"
    Un utente la cui password è impostata su *, !o qualche altro hash che non corrisponderà mai viene "bloccato" (nei giorni di sole la convenzione era spesso *LK*, per "bloccato").
    Questi utenti non possono accedere digitando una password , ma possono comunque accedere utilizzando altri meccanismi di autenticazione (chiavi SSH, ad esempio).

  • Utenti con una shell "non interattiva"
    Un utente il cui account ha una "shell non interattiva" ( /bin/false, /sbin/nologin) non può accedere in modo interattivo , ovvero non può ricevere un prompt della shell per eseguire i comandi (ciò impedisce anche a SSH esecuzione del comando se l'utente dispone di chiavi SSH sul sistema).
    Questi utenti potrebbero comunque essere in grado di accedere per fare cose come leggere / inviare e-mail (tramite POP / IMAP e SMTP AUTH). L'impostazione di una shell non interattiva per gli utenti che non dovrebbero mai aver bisogno di utilizzare la shell (e per la maggior parte degli "account di servizio") è generalmente considerata una buona pratica.

Quindi, in base ai tuoi criteri di "accesso", potresti voler controllare una o entrambe queste cose.


6

C'è una differenza tra disabilitare l'utente e impostare la shell su / bin / false o simile.

L'impostazione della shell su / bin / false impedisce all'utente di ottenere una shell, ma può comunque accedere al sistema se gli utenti locali vengono utilizzati per qualcos'altro (autenticazione della posta, ftp e così via). La disabilitazione dell'utente gli rende impossibile utilizzare qualsiasi servizio del server che utilizza utenti locali.


quindi, in realtà tutti gli utenti in / etc / passwd sono utenti "potrebbero accedere", ma alcuni di essi sono disabilitati (*!) e alcuni sono limitati (/ bin / false)?
Harryz,

3

Oltre a quanto sopra, gli utenti possono essere bloccati da un sistema anche se l'immissione della password sembra corretta utilizzando diversi metodi.

/etc/security/access.conf può essere utilizzato per limitare chi può accedere.

Esistono molti moduli PAM che possono essere configurati per limitare utenti specifici o modificare il comportamento di accesso in base alle esigenze. (ovvero nessuna home directory sul server non consente l'accesso).

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.