Skip to main content

WIE MAN: So verwenden Sie den Linux-Befehl - Unix-Befehl: login - 2020

The Complete Linux Course: Beginner to Power User! (August 2020).

Anonim

Login wird verwendet, wenn Sie sich bei einem System anmelden. Es kann auch verwendet werden, um jederzeit von einem Benutzer zu einem anderen zu wechseln (die meisten modernen Shells unterstützen jedoch diese Funktion).

Wenn kein Argument angegeben wird,Anmeldung fordert zur Eingabe des Benutzernamens auf.

Wenn der Benutzer nicht root ist und wenn / etc / nologin vorhanden ist, wird der Inhalt dieser Datei auf dem Bildschirm ausgegeben und die Anmeldung wird beendet. Dies wird normalerweise verwendet, um Anmeldungen zu verhindern, wenn das System heruntergefahren wird.

Wenn für den Benutzer in / etc / usertty spezielle Zugriffsbeschränkungen festgelegt sind, müssen diese erfüllt werden. Andernfalls wird der Anmeldeversuch abgelehnt und eine Syslog-Nachricht wird generiert. Siehe den Abschnitt "Besondere Zugriffsbeschränkungen".

Wenn der Benutzer root ist, muss die Anmeldung bei einem in / etc / securetty aufgeführten tty erfolgen. Fehler werden mit der Syslog-Funktion protokolliert.

Nachdem diese Bedingungen überprüft wurden, wird das Passwort abgefragt und überprüft (wenn für diesen Benutzernamen ein Passwort erforderlich ist). Zehn Versuche sind vorher erlaubtAnmeldung stirbt, aber nach den ersten drei wird die Antwort sehr langsam. Anmeldefehler werden über die Syslog-Funktion gemeldet. Diese Funktion wird auch verwendet, um erfolgreiche Root-Anmeldungen zu melden.

Wenn die Datei .hushlogin vorhanden ist, wird ein "ruhiger" Login durchgeführt (dies deaktiviert das Prüfen von E-Mails und das Drucken des letzten Login-Zeitpunkts und der Nachricht des Tages). Wenn / var / log / lastlog existiert, wird andernfalls die letzte Anmeldezeit gedruckt (und die aktuelle Anmeldung wird aufgezeichnet).

Es werden zufällige Verwaltungsaufgaben wie das Festlegen der UID und der GID des tty ausgeführt. Die TERM-Umgebungsvariable wird beibehalten, sofern sie existiert (andere Umgebungsvariablen werden beibehalten, wenn der-option wird eingesetzt). Dann werden die Umgebungsvariablen HOME, PATH, SHELL, TERM, MAIL und LOGNAME gesetzt. Der Standardwert für PATH ist / usr / local / bin: / bin: / usr / bin: . für normale Benutzer und nach / sbin: / bin: / usr / sbin: / usr / bin für root. Wenn dies kein "stilles" Login ist, wird die Nachricht des Tages gedruckt, und die Datei mit dem Namen des Benutzers in / var / spool / mail wird geprüft, und eine Nachricht wird gedruckt, wenn die Länge nicht Null ist.

Die Benutzer-Shell wird dann gestartet. Wenn für den Benutzer in / etc / passwd keine Shell angegeben ist, dann / bin / sh wird eingesetzt. Wenn kein Verzeichnis in angegeben ist / etc / passwd, dann / wird verwendet (das Home-Verzeichnis wird für das geprüft .hushlogin Datei beschrieben).

Optionen

  • -p: Wird von getty (8) verwendet, um dies zu sagenAnmeldung die Umwelt nicht zerstören
  • -f: Wird verwendet, um eine zweite Anmeldungsauthentifizierung zu überspringen. Dies funktioniert insbesondere nicht für root und scheint unter Linux nicht gut zu funktionieren.
  • -h: Wird von anderen Servern verwendet (d. H. telnetd (8) ), um den Namen des entfernten Hosts anAnmeldung so dass es in utmp und wtmp platziert werden kann. Nur der Superuser darf diese Option verwenden.

Besondere Zugriffsbeschränkungen

Die Datei / etc / securetty listet die Namen der ttys auf, bei denen sich root anmelden darf. In jeder Zeile muss ein Name eines tty-Geräts ohne das Präfix / dev / angegeben werden. Wenn die Datei nicht vorhanden ist, kann sich root bei einem beliebigen tty anmelden.

Auf den meisten modernen Linux-Systemen werden PAM (Pluggable Authentication Modules) verwendet. Auf Systemen, die PAM nicht verwenden, gibt die Datei / etc / usertty zusätzliche Zugriffsbeschränkungen für bestimmte Benutzer an. Wenn diese Datei nicht vorhanden ist, werden keine zusätzlichen Zugriffsbeschränkungen auferlegt. Die Datei besteht aus einer Abfolge von Abschnitten. Es gibt drei mögliche Abschnittsarten: KLASSEN, GRUPPEN und BENUTZER. Ein CLASSES-Abschnitt definiert Klassen von Ttys und Hostnamen-Mustern, ein GROUPS-Abschnitt definiert zulässige Ttys und Hosts auf Gruppenbasis und ein USERS-Abschnitt definiert zulässige Ttys- und Hosts auf Benutzerbasis.

Jede Zeile in dieser Datei darf nicht länger als 255 Zeichen sein. Kommentare beginnen mit dem Zeichen # und reichen bis zum Ende der Zeile.

Der Abschnitt KLASSEN

Ein Abschnitt CLASSES beginnt mit dem Wort CLASSES am Anfang einer Zeile in Großbuchstaben. Jede nachfolgende Zeile bis zum Beginn eines neuen Abschnitts oder Ende der Datei besteht aus einer Folge von Wörtern, die durch Tabulatoren oder Leerzeichen getrennt sind. Jede Zeile definiert eine Klasse von Systemen und Host-Mustern.

Das Wort am Anfang einer Zeile wird als Sammelname für die am Ende der Zeile angegebenen ttys- und Hostmuster definiert. Dieser Kollektivname kann in allen nachfolgenden GROUPS- oder USERS-Abschnitten verwendet werden. Bei der Definition einer Klasse darf kein solcher Klassenname vorkommen, um Probleme mit rekursiven Klassen zu vermeiden.

Ein Beispiel für den Abschnitt KLASSEN:

KLASSENmyclass1 tty1 tty2myclass2 tty3 @ .foo.com

Dies definiert die Klassen myclass1 und myclass2 wie die entsprechenden rechten Seiten.

Die GRUPPEN-Sektion

Ein GROUPS-Abschnitt definiert zulässige Systeme und Hosts auf Unix-Gruppenbasis. Wenn ein Benutzer Mitglied einer Unix-Gruppe gemäß / etc / passwd und / etc / group ist und eine solche Gruppe in einem GROUPS-Abschnitt in / etc / usertty erwähnt wird, wird dem Benutzer der Zugriff gewährt, falls die Gruppe dies ist.

Ein GROUPS-Abschnitt beginnt am Anfang einer Zeile mit dem Wort GROUPS in Großbuchstaben. Jede folgende Zeile ist eine Folge von Wörtern, die durch Leerzeichen oder Tabulatoren getrennt sind. Das erste Wort in einer Zeile ist der Name der Gruppe und der Rest der Wörter in der Zeile gibt die Systeme und Hosts an, auf die Mitglieder dieser Gruppe Zugriff haben. Diese Spezifikationen können die Verwendung von Klassen einschließen, die in früheren CLASSES-Abschnitten definiert wurden.

Ein Beispiel für GRUPPEN.

GRUPPENsys tty1 @ .bar.eduStud myclass1 tty4

In diesem Beispiel werden diese Mitglieder der Gruppe angegeben sys kann sich bei tty1 und von Hosts in der bar.edu-Domäne anmelden. Benutzer in der Gruppe Zucht kann sich von hosts / ttys, die in der Klasse myclass1 angegeben sind, oder von tty4 anmelden.

Die USERS-Sektion

Ein USERS-Abschnitt beginnt mit dem Wort USERS in Großbuchstaben am Zeilenanfang. Jede folgende Zeile ist eine Folge von Wörtern, die durch Leerzeichen oder Tabulatoren voneinander getrennt sind. Das erste Wort in einer Zeile ist ein Benutzername, und dieser Benutzer darf sich an den ttys und den Hosts anmelden, die im Rest der Zeile erwähnt werden. Diese Spezifikationen können Klassen einschließen, die in vorherigen CLASSES-Abschnitten definiert wurden. Wenn am Anfang der Datei kein Abschnittskopf angegeben ist, wird der erste Abschnitt standardmäßig als USERS-Abschnitt definiert.

Ein Beispiel für den Abschnitt USERS:

NUTZERzacho tty1 @ 130.225.16.0 / 255.255.255.0blau tty3 myclass2

Dies erlaubt dem Benutzer Zacho Melden Sie sich nur bei tty1 und von Hosts mit IP-Adressen im Bereich an 130.225.16.0 - 130.225.16.255 und Benutzer Blau darf sich von tty3 aus anmelden und was auch immer in der Klasse angegeben ist myclass2 .

Es kann eine Zeile in einem USERS-Abschnitt geben, die mit einem Benutzernamen von beginnt * . Dies ist eine Standardregel, die auf alle Benutzer angewendet wird, die keiner anderen Zeile entsprechen.

Wenn sowohl eine USERS-Zeile als auch eine GROUPS-Zeile mit einem Benutzer übereinstimmen, wird dem Benutzer der Zugriff von der Vereinigung aller in diesen Spezifikationen genannten ttys / hosts ermöglicht.

Ursprünge

Die bei der Spezifikation von Klassen, Gruppen und Benutzerzugriffen verwendeten tty- und Host-Pattern-Spezifikationen werden als Origin bezeichnet. Eine Ursprungszeichenfolge kann eines der folgenden Formate haben:

  • Der Name eines tty-Geräts ohne das Präfix / dev /, zum Beispiel tty1 oder ttyS0 .
  • Die Zeichenfolge @localhost bedeutet, dass der Benutzer vom lokalen Host zum selben Host telnet / rlogin darf. Dadurch kann der Benutzer beispielsweise den Befehl ausführen: xterm -e / bin / login.
  • Ein Domänennamensuffix wie @ .some.dom. Dies bedeutet, dass der Benutzer von jedem Host, dessen Domänenname das Suffix .some.dom hat, rlogin / telnet verwenden kann.
  • Ein Bereich von IPv4-Adressen, der als @ xxxx / yyyy geschrieben wird, wobei xxxx die IP-Adresse in der üblichen Dezimalschreibweise mit gepunkteten Quad-Bytes ist und yyyy eine Bitmaske in derselben Notation, die angibt, welche Bits in der Adresse mit der IP-Adresse des Remote-Hosts verglichen werden sollen . Zum Beispiel, @130.225.16.0/255.255.254.0 bedeutet, dass der Benutzer von jedem Host, dessen IP-Adresse im Bereich liegt, rlogin / telnet kann 130.225.16.0 - 130.225.17.255 .

Jedem der oben genannten Ursprünge kann eine Zeitangabe gemäß der Syntax vorangestellt werden:

timespec :: = '' ':' * ''day :: = 'mon' | 'tue' | "heiraten" | 'thu' | 'fr' ' 'saß' | 'Sonne'Stunde :: = '0' | '1' | … | '23'Hourspec :: = | '-'Tag oder Stunde :: = |

Zum Beispiel den Ursprung Mo: Di: Mi: Do: Fr: 8-17 tty3 bedeutet, dass der Login montags bis freitags zwischen 8 und 17:59 (17:59 Uhr) am tty3 erlaubt ist. Dies zeigt auch, dass ein Stundenbereich von a bis b alle Momente zwischen a: 00 und b: 59 umfasst. Eine einzelne Stundenangabe (z. B. 10) bedeutet die Zeitspanne zwischen 10 und 10:59.

Wenn Sie kein Zeitpräfix für ein tty oder einen Host angeben, ist die Anmeldung von diesem Ursprung aus jederzeit zulässig. Wenn Sie ein Zeitpräfix angeben, müssen Sie unbedingt einen Satz von Tagen sowie eine oder mehrere Stunden oder Stundenbereiche angeben. Eine Zeitangabe darf kein Leerzeichen enthalten.

Wenn keine Standardregel angegeben ist, können sich Benutzer, die keiner Zeile / etc / usertty entsprechen, von jedem beliebigen Standort aus anmelden, wie es das Standardverhalten ist.

Wichtig: Verwenden Sie dieMannBefehl ( % Mann ), um zu sehen, wie ein Befehl auf Ihrem Computer verwendet wird.