Unter der Linux-Betriebssystemumgebung eine Shell kann als ein Programm beschrieben werden, das Benutzereingaben von der Computertastatur in Form von Befehlen aufnimmt und sie mit dem Ziel interpretiert, sofortige Ausführungsergebnisse zu liefern oder zu einer anderen Programmausführungsinstanz zu führen.
Wenn Sie sich mit Linux vertraut machen, erhalten Sie die Gelegenheit, viele Linux-orientierte Shell-Umgebungen wie bash, ksh, fish, sh und zsh kennenzulernen und mit ihnen zu interagieren. Aufgrund der Popularität von Bash Shell , besteht eine hohe Wahrscheinlichkeit, dass Sie es jetzt als Standard-Shell auf Ihrem Linux-System verwenden.
Warum die Standard-Shell in Linux ändern?
Die Entscheidung, die Standard-Linux-Shell zu ändern, ist aus folgenden Gründen sinnvoll:
- Ein Linux-Shell-ähnliches nologin Shell deaktiviert/blockiert problemlos die normale Benutzeranmeldung, daher ein Schlüsselaspekt der Benutzerverwaltung von Linux.
- Ein Shell-Wrapper-Programm/Skript ermöglicht es, die Ausführung von Benutzerbefehlen zu verzögern, bis der Benutzer sie protokolliert. In diesem Fall ist die Benutzeranmelde-Shell spezifisch für den Shell-Wrapper.
- In einem gemeinsam genutzten Netzwerk erfüllen Sie bestimmte Benutzeranforderungen, wie z. B. diejenigen, die mit Administratorrechten verbunden sind, wenn Sie die Standard-Shell von Linux ändern.
Gültige Login-Shells im Linux-System auflisten
Bevor Sie erwägen, die Standard-Shell in Ihrem Linux-System zu ändern, listen Sie zunächst die gültigen Login-Shells auf, die Ihrem Linux-Betriebssystem zur Verfügung stehen:
$ cat /etc/shells
Bevor wir fortfahren und demonstrieren, wie wir von einer Linux-Shell zu einer anderen wechseln können, beachten Sie Folgendes:
- Nur aufgelistete Shells in /etc/shells Datei kann von normalen und eingeloggten Linux-Benutzern umgeschaltet werden.
- Shells, die nicht in /etc/shells aufgeführt sind Datei kann nur von einem Root/Sudoer-Benutzer ausgeführt/ausgeführt werden.
- Linux OS-Konten mit eingeschränkten Login-Shells können nur geändert werden, wenn Sie sich als Root-/Sudoer-Benutzer anmelden.
Möglichkeiten zum Ändern der Standard-Linux-Shell
Wir werden uns die folgenden Ansätze ansehen, um die Standard-Shell zu ändern unter Linux.
Methode 1:Verwenden des usermod-Dienstprogramms
Die primäre Verwendung des usermod Das Dienstprogramm dient ausschließlich zur Änderung der Details des Linux-Benutzerkontos, die in /etc/passwd gespeichert sind Datei. Mit dem Benutzermod Befehl zusammen mit dem -s
oder --shell
Befehlsoption ermöglicht es, die Standard-Linux-Shell zu ändern.
Der folgende Befehl prüft die Kontoinformationen wie die Standard-Shell für den Benutzer dnyce .
$ grep dnyce /etc/passwd
Wie Sie sehen können, ist die dnyce Der Benutzer verwendet Bash als Standard-Linux-Shell. Um von /bin/bash zu wechseln nach /bin/dash , führen Sie den folgenden Befehl aus:
$ sudo usermod --shell /bin/dash dnyce
Methode 2:Verwenden des chsh-Dienstprogramms
Die chsh Utility-Befehl verwendet auch den -s
oder --shell
Optionen beim Ändern der Standard-Linux-Shell.
Lassen Sie uns die aktuelle Shell von /bin/dash ändern nach /bin/rbash .
$ sudo chsh --shell /bin/rbash dnyce
Methode 3:Verwenden der /etc/passwd-Datei
Öffnen Sie /etc/passwd Datei und bearbeiten Sie sie in Ihrer bevorzugten Standard-Linux-Shell.
$ sudo nano /etc/passwd
Speichern Sie die Datei und bestätigen Sie die vorgenommenen Änderungen mit dem folgenden Befehl:
$ grep dnyce /etc/passwd
Wir haben die Notwendigkeit erkannt, die Standard-Linux-Shell zu ändern, und einige praktische Methoden implementiert, um die genannten Ziele zu erreichen.