Wie man prüft, ob eine bestimmte Benutzer-Shell in Linux festgelegt ist

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie die Standard-Shell für einen bestimmten Benutzer in Linux überprüfen können. Die Shell ist der Kommandozeileninterpreter, der Ihre Befehle verarbeitet, und verschiedene Benutzer können unterschiedliche Standard-Shells haben.

Sie werden die Datei /etc/passwd untersuchen, um die Standard-Shell eines Benutzers zu ermitteln, verstehen, wie Sie die auf dem System verfügbaren Shells mit dem Befehl chsh -l auflisten können, und die Shell-Informationen eines Benutzers mit dem Befehl getent passwd überprüfen. Dieses Lab vermittelt grundlegende Kenntnisse für das Verständnis von Benutzerkonfigurationen in Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/BasicSystemCommandsGroup -.-> linux/man("Manual Access") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") subgraph Lab Skills linux/help -.-> lab-558766{{"Wie man prüft, ob eine bestimmte Benutzer-Shell in Linux festgelegt ist"}} linux/man -.-> lab-558766{{"Wie man prüft, ob eine bestimmte Benutzer-Shell in Linux festgelegt ist"}} linux/cat -.-> lab-558766{{"Wie man prüft, ob eine bestimmte Benutzer-Shell in Linux festgelegt ist"}} end

Überprüfen der Benutzer-Shell mit cat /etc/passwd

In diesem Schritt lernen Sie, wie Sie die Standard-Shell für einen Benutzer in Linux überprüfen können. Die Shell ist der Kommandozeileninterpreter, der Ihre Befehle verarbeitet. Verschiedene Benutzer können unterschiedliche Standard-Shells haben.

Die Datei /etc/passwd enthält Informationen über alle Benutzer auf dem System. Jede Zeile in dieser Datei repräsentiert einen Benutzer und ist in Feldern strukturiert, die durch Doppelpunkte (:) getrennt sind. Das letzte Feld jeder Zeile gibt die Standard-Shell des Benutzers an.

Wir können den Befehl cat verwenden, um den Inhalt der Datei /etc/passwd anzuzeigen.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist. Denken Sie daran, dass Sie das Symbol für das Xfce Terminal auf der linken Seite Ihres Desktops finden können.

Geben Sie jetzt den folgenden Befehl ein und drücken Sie die Eingabetaste:

cat /etc/passwd

Dieser Befehl gibt den gesamten Inhalt der Datei /etc/passwd in Ihrem Terminal aus. Sie werden viele Zeilen sehen, die jeweils einem Benutzerkonto auf dem System entsprechen.

Suchen Sie die Zeile, die mit labex: beginnt. Dies ist der Eintrag für Ihren aktuellen Benutzer. Die Zeile sieht in etwa so aus (Teile können variieren):

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

Die Felder sind:

  1. Benutzername: labex
  2. Passwort-Platzhalter: x (der tatsächliche Passwort-Hash wird aus Sicherheitsgründen woanders gespeichert)
  3. Benutzer-ID (UID): 5000
  4. Gruppen-ID (GID): 5000
  5. Benutzerinformationen (GECOS): LabEx user,,,
  6. Homedirectory: /home/labex
  7. Standard-Shell: /usr/bin/zsh

In diesem Fall ist die Standard-Shell für den Benutzer labex /usr/bin/zsh. Dies bestätigt, dass die Shell, die Sie derzeit verwenden, tatsächlich zsh ist.

Das Verständnis der Datei /etc/passwd ist grundlegend für die Linux-Systemadministration. Sie bietet eine schnelle Möglichkeit, grundlegende Informationen über Benutzer zu erhalten, einschließlich ihrer Standard-Shell und ihres Homeverzeichnisses.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Auflisten der verfügbaren Shells mit chsh -l

Im vorherigen Schritt haben Sie gesehen, dass Ihre Standard-Shell /usr/bin/zsh ist. Aber welche anderen Shells sind auf diesem System verfügbar?

Linux-Systeme haben oft mehrere Shells installiert. Sie können die verfügbaren Shells mit dem Befehl chsh und der Option -l auflisten.

Der Befehl chsh wird normalerweise verwendet, um die Anmeldeshell eines Benutzers zu ändern. Die Option -l ermöglicht es Ihnen jedoch, die Shells aufzulisten, die in der Datei /etc/shells aufgeführt sind. Diese Datei enthält eine Liste der gültigen Anmeldeshells auf dem System.

Geben Sie in Ihrem Terminal den folgenden Befehl ein und drücken Sie die Eingabetaste:

chsh -l

Dieser Befehl gibt eine Liste von Pfaden aus, die jeweils eine auf dem System verfügbare Shell darstellen. Die Ausgabe sieht in etwa so aus:

/bin/sh
/bin/bash
/usr/bin/rc
/usr/bin/rbash
/usr/bin/nologin
/bin/false
/usr/bin/zsh
/usr/bin/ksh
/usr/bin/dash

Sie können /usr/bin/zsh in dieser Liste sehen, was bestätigt, dass es sich um eine gültige Shell auf diesem System handelt. Sie können auch andere gängige Shells wie /bin/bash (Bourne Again SHell) und /bin/sh (Bourne SHell) sehen.

Das Verständnis, welche Shells verfügbar sind, ist nützlich, wenn Sie jemals Ihre Standard-Shell ändern müssen oder wenn Sie auf Skripte stoßen, die für eine bestimmte Shell geschrieben wurden.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Überprüfen der Shell mit getent passwd

In den vorherigen Schritten haben Sie gelernt, wie Sie die Datei /etc/passwd direkt anzeigen und die verfügbaren Shells auflisten können. Jetzt verwenden wir einen anderen Befehl, getent, um Benutzerinformationen, einschließlich der Shell, abzurufen.

Der Befehl getent ist ein Hilfsprogramm, das Einträge aus Name Service Switch (NSS)-Datenbanken abruft. Diese können /etc/passwd, /etc/group und andere umfassen. Es ist eine standardisierte Methode, um Benutzerinformationen abzurufen, im Vergleich zum direkten Lesen der Datei /etc/passwd, da es auch netzwerkbasierte Benutzerdatenbanken abfragen kann.

Um den Eintrag für den Benutzer labex aus der passwd-Datenbank abzurufen, geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

getent passwd labex

Dieser Befehl fordert speziell den Eintrag für den Benutzer labex aus der passwd-Datenbank an. Die Ausgabe wird ähnlich der Zeile sein, die Sie gesehen haben, als Sie cat /etc/passwd verwendet haben:

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

Wiederum bestätigt das letzte Feld /usr/bin/zsh die Standard-Shell für den Benutzer labex.

Die Verwendung von getent wird oft in Skripten bevorzugt oder wenn Systeme abgefragt werden, die möglicherweise zentrale Authentifizierungssysteme (wie LDAP) anstelle von nur lokalen Dateien verwenden. Für einfache Überprüfungen auf einem lokalen System funktionieren sowohl cat /etc/passwd als auch getent passwd <username>.

Sie haben nun erfolgreich drei verschiedene Methoden verwendet, um Benutzer-Shells in Linux zu verstehen: das direkte Anzeigen von /etc/passwd, das Auflisten der verfügbaren Shells mit chsh -l und das Abfragen von Benutzerinformationen mit getent.

Klicken Sie auf Weiter, um dieses Lab abzuschließen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie die Standard-Shell eines Benutzers in Linux überprüfen können. Sie haben den Befehl cat /etc/passwd verwendet, um Benutzerinformationen anzuzeigen, wobei Sie sich speziell auf das letzte Feld jeder Zeile konzentriert haben, das die Standard-Shell angibt. Diese Methode bietet eine direkte Möglichkeit, die für jeden Benutzer auf dem System konfigurierte Shell zu identifizieren, indem Sie die Struktur der Datei /etc/passwd untersuchen.