Ein Benutzer, der über eine gültige Shell und kein Passwort verfügt, kann sich immer noch mit nicht-passwortbasierten Methoden anmelden, wobei die gebräuchlichste Methode ein SSH-Schlüssel ist. Zum Ausführen von Cron-Jobs ist eine gültige Shell erforderlich. Auch für su bin -c 'wibble' ist eine gültige Shell erforderlich funktionieren (zumindest unter Linux, su bin -s /bin/sh -c 'wibble' geht auch).
Im Fall von bin , führen die meisten Systeme niemals einen Befehl als bin aus im Normalbetrieb, also die Shell auf /bin/false setzen wäre ok.
Es besteht kein Risiko eines direkten Angriffs, der bin zulässt um sich über SSH anzumelden, da dies die Erstellung von /bin/.ssh/authorized_keys erfordern würde als Benutzer bin oder als Wurzel. Mit anderen Worten, der einzige Weg, um hineinzukommen, ist, drin zu sein. Eine gültige Shell zu haben, erhöht jedoch das Risiko einer Fehlkonfiguration. Es kann auch einige Remote-Angriffe mit anderen Diensten als SSH zulassen; Beispielsweise meldet ein Benutzer, dass ein Angreifer ein Passwort für daemon festlegen könnte remote über Samba, dann verwenden Sie dieses Passwort, um sich über SSH anzumelden.
Sie können die SSH-Lücke schließen, indem Sie die Namen der Systembenutzer in einem DenyUsers auflisten Direktive in /etc/ssh/sshd_config (Sie können leider keinen Zahlenbereich verwenden). Oder Sie können umgekehrt eine AllowGroups eingeben Direktive und lassen Sie nur die Gruppen zu, die physische Benutzer enthalten (z. B. users wenn Sie allen Ihren physischen Benutzern diese Gruppenmitgliedschaft gewähren).
Zu diesem Problem wurden Fehler in Debian (#274229, #330882, #581899) eingereicht, die derzeit offen und als „Wunschliste“ klassifiziert sind. Ich neige dazu, zuzustimmen, dass dies Fehler sind und Systembenutzer /bin/false haben sollten als ihre Shell, es sei denn, es erscheint notwendig, etwas anderes zu tun.
Um diese müssen Sie sich als Benutzer keine Gedanken machen. Sie sind „Benutzer“ im Sinne von Sicherheitsgruppen, keine Benutzer im Sinne von „Login-and-Use“-Personen. Wenn Sie in „/etc/shadow“ nachsehen, werden Sie feststellen, dass all diese „Benutzer“ keine Passwörter haben (entweder „x“ oder „!“ anstelle eines langen gesalzenen Hash). Das bedeutet, dass sich diese Benutzer auf keinen Fall anmelden können.
Allerdings weiß ich nicht, ob es eine gute Idee ist, "/bin/sh" für alle diese Benutzer in "/bin/false" zu ändern. Da Programme unter diesen Gruppen ausgeführt werden, können sie möglicherweise nicht die erforderlichen Befehle ausführen. Ich würde sie als "/bin/sh".
belassenSie brauchen sich um diese Benutzer keine Sorgen zu machen. Kümmern Sie sich nur um die Benutzer, die Sie erstellen (und solche mit Hashes in "/etc/shadow")