GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist der Unterschied zwischen /bin/false und /sbin/nologin als Shell des nologin-Benutzers?

Manchmal benötigen wir ein Benutzerkonto mit einem Passwort zur Authentifizierung bei einem System, aber keine interaktive Shell mit diesem Benutzernamen. Dadurch wird verhindert, dass das Benutzerkonto für die Anmeldung beim System mit diesem Passwort verwendet wird. In diesen Szenarien können wir die Shell des Benutzers auf /sbin/nologin setzen oder /bin/false . Wenn der Benutzer versucht, sich am System anzumelden, schließt die nologin-Shell die Verbindung des Benutzers.

Ein Beispiel für eine solche Situation könnte ein Mailserver sein, wo ein Benutzerkonto benötigt wird, um E-Mails und Kennwörter zu speichern, damit sich der Benutzer beim E-Mail-Client authentifizieren und seine E-Mails abrufen kann; Wenn jedoch die /sbin/nologin-Shell zugewiesen ist, kann sich der Benutzer nicht mit diesem Konto beim System anmelden.

Da beide Befehle einen Wert ungleich Null zurückgeben, gibt es keinen so großen Unterschied. Ursprünglich wurde /bin/false für einen allgemeinen Befehl erstellt, da er immer einen Wert ungleich Null zurückgibt. Dann scheint es als Shell des nologin-Benutzers verwendet zu werden, bevor /sbin/nologin.

erstellt wird

Andererseits wurde /sbin/nologin für die Shell des nologin-Benutzers erstellt, es hat eine Funktion, um eine Nachricht in /etc/nologin.txt zu geben . Die Verwendung von /sbin/nologin wird für die Shell des nologin-Benutzers empfohlen, da es in /etc/shells enthalten ist .

$ man -k nologin
nologin(5)               - disallow logins
nologin(8)               - politely refuse a login
pam_nologin(8)           - No Login PAM module
$ man -k false
...
false(1)                 - Return false value


Linux
  1. Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0?

  2. Bash =~ Regex und Https://regex101.com/?

  3. Auf welchen Systemen unterscheidet sich //foo/bar von /foo/bar?

  4. Linux – Zusammenführen von /usr/bin und /usr/sbin in /bin (gnu/linux)?

  5. Was ist der Unterschied zwischen #!/usr/bin/env bash und #!/usr/bin/bash?

Was bedeuten /usr/sbin, /usr/local/sbin und /usr/local/bin?

Wann muss ich #!/bin/bash und wann #!/bin/sh verwenden?

Unterschied zwischen /bin und /usr/bin

/bin Inhalt nach /usr/bin verschoben, rückgängig machen möglich?

Sollten Websites gemäß der empfohlenen Verwendung in /var/ oder /usr/ leben?

#!/bin/sh vs. #!/bin/bash für maximale Portabilität