GNU/Linux >> Linux Esercitazione >  >> Linux

Perché l'utente "bin" ha bisogno di una shell di login?

Un utente che ha una shell valida e nessuna password può comunque accedere con metodi non basati su password, il più comune è una chiave ssh. È necessaria una shell valida per eseguire i lavori cron. Una shell valida è necessaria anche per su bin -c 'wibble' per funzionare (almeno su Linux, su bin -s /bin/sh -c 'wibble' funzionerà anche).

Nel caso di bin , la maggior parte dei sistemi non esegue mai un comando come bin nel funzionamento normale, quindi impostando la shell su /bin/false andrebbe bene.

Non c'è rischio di alcun attacco diretto che consenta bin per accedere tramite SSH, perché ciò richiederebbe la creazione di /bin/.ssh/authorized_keys come utente bin o come radice. In altre parole, l'unico modo per entrare è essere dentro. Tuttavia, avere una shell valida aumenta il rischio di configurazione errata. Può anche consentire alcuni attacchi remoti con servizi diversi da SSH; ad esempio un utente segnala che un utente malintenzionato potrebbe impostare una password per daemon da remoto tramite Samba, quindi utilizza quella password per accedere tramite SSH.

Puoi tappare il buco SSH elencando i nomi degli utenti del sistema in un DenyUsers direttiva in /etc/ssh/sshd_config (sfortunatamente non è possibile utilizzare un intervallo numerico). Oppure, al contrario, puoi inserire un AllowGroups e consentire solo ai gruppi che contengono utenti fisici (ad es. users se concedi a tutti i tuoi utenti fisici tale appartenenza al gruppo).

Ci sono bug segnalati su questo problema in Debian (#274229, #330882, #581899), attualmente aperti e classificati come “wishlist”. Tendo a concordare sul fatto che si tratta di bug e che gli utenti del sistema dovrebbero avere /bin/false come shell a meno che non sembri necessario fare diversamente.


Non devi preoccuparti di quelli come utenti. Sono "utenti" nel senso di gruppi di sicurezza, non utenti nel senso di persone "accedi e usa". Se guardi in "/etc/shadow", vedrai che tutti questi "utenti" non hanno password (o "x" o "!" invece di un lungo hash salato). Ciò significa che questi utenti non possono accedere, qualunque cosa succeda.

Detto questo, non so se sia una buona idea cambiare "/bin/sh" in "/bin/false" per tutti questi utenti. Poiché i programmi vengono eseguiti in questi gruppi, potrebbe non consentire loro di eseguire i comandi di cui hanno bisogno. Li lascerei come "/bin/sh".

Non è necessario che tu ti preoccupi per questi utenti. Preoccupati solo degli utenti che crei (e di quelli con gli hash in "/etc/shadow")


Linux
  1. Perché l'utente root ha bisogno dell'autorizzazione Sudo?

  2. Se i processi ereditano l'ambiente del genitore, perché abbiamo bisogno dell'esportazione?

  3. Linux:perché Archlinux mantiene alcuni utenti/gruppi dopo la disinstallazione del pacchetto?

  4. Perché la Regex in Bash funziona solo se è una variabile e non direttamente??

  5. Perché /bin/sh punta a /bin/dash e non a /bin/bash??

Gli effetti dell'aggiunta di utenti a un sistema Linux

Qual è la differenza tra Login e Non-Login Shell

Perché $shlvl inizia al livello 2 nelle shell non di accesso ma al livello 1 nelle shell di accesso in Rhel 7?

Perché è necessario inserire #!/bin/bash all'inizio di un file di script?

Qual è il comando *nix per visualizzare la shell di login predefinita di un utente

Perché è necessario inizializzare un dispositivo raid 10?