Wie man die Bash-Eingabeaufforderung für eine bestimmte Benutzergruppe in Linux ändert
Wir haben bereits angesehen, wie man den standardmäßigen BASH-Prompt anpasst in Linux. In diesem Tutorial werden wir lernen, wie man den Bash-Prompt für eine bestimmte Benutzergruppe in Linux- und Unix-ähnlichen Systemen ändert.
Bevor benutzerdefinierte BASH-Eingabeaufforderungen für Benutzergruppen eingerichtet werden, ist es wichtig, die Vor- und Nachteile dieses Ansatzes zu verstehen.
Vorteile und Nachteile der gruppenspezifischen Eingabeaufforderung
Die Verwendung einer gruppenspezifischen Eingabeaufforderung in Linux kann in bestimmten Szenarien vorteilhaft sein, bringt jedoch auch einige Überlegungen mit sich. Hier sind die Vor- und Nachteile:
Vorteile
1. Einfachere Identifizierung von Benutzerrollen:
- Durch die Anpassung der Eingabeaufforderung basierend auf der Gruppenmitgliedschaft wird es einfacher, die Rolle oder Umgebung zu erkennen, in der man arbeitet. Zum Beispiel informiert eine
developer-Eingabeaufforderung den Benutzer sofort darüber, dass er zur Entwickler-Gruppe oder -Umgebung gehört.
2. Reduzierung von Fehlern:
- Benutzerdefinierte Eingabeaufforderungen können dazu beitragen, Fehler zu reduzieren, insbesondere in Umgebungen, in denen Benutzer zwischen mehreren Rollen oder Servern wechseln. Zum Beispiel kann eine spezielle Eingabeaufforderung für
admin-Benutzer sie an das höhere Berechtigungsniveau erinnern und Vorsicht fördern.
3. Verbesserte Benutzererfahrung:
- Für Benutzer, die mehreren Gruppen angehören, bietet ein individuell angepasster Prompt eine klare, visuelle Anzeige ihrer aktuellen Gruppe, wodurch die Benutzererfahrung verbessert wird, indem das Terminal informativer und benutzerfreundlicher wird.
4. Nützlich in Mehrbenutzersystemen:
- Auf Systemen mit vielen Benutzern können solche Anpassungen dabei helfen, den Typ der angemeldeten Benutzer und ihre Zugriffsrechte schnell zu identifizieren, was für Systemadministratoren von Vorteil ist.
Nachteile
1. Komplexität im Management:
- Die Implementierung und Verwaltung benutzerdefinierter Eingabeaufforderungen kann Komplexität hinzufügen, insbesondere auf Systemen mit einer großen Anzahl von Benutzern oder Gruppen. Es erfordert zusätzliche Skripterstellung und Konfiguration.
2. Potenzial für Fehlkonfiguration:
- Wenn solche Skripte nicht richtig eingerichtet sind, können sie zu Fehlkonfigurationen führen. Zum Beispiel kann das falsche Anhängen an
.bashrczu unerwünschten Wiederholungen oder sogar zu Syntaxfehlern führen, die die Umgebung des Benutzers beeinträchtigen könnten.
3. Sicherheitsaspekte:
- Das automatische Anhängen an Konfigurationsdateien wie
.bashrckönnte ein Sicherheitsrisiko darstellen, wenn es nicht korrekt gehandhabt wird. Es ist wichtig sicherzustellen, dass solche Skripte nicht unbeabsichtigt Sicherheitslücken öffnen.
4. Abhängigkeit von der Gruppenzugehörigkeit:
- Diese Methode hängt von der Gruppenmitgliedschaft des Benutzers ab, die sich im Laufe der Zeit ändern kann. Sie erfordert, dass die Gruppenmitgliedschaften ordnungsgemäß verwaltet und aktuell sind.
5. Übermäßige Abhängigkeit von visuellen Hinweisen:
- Benutzer könnten sich zu sehr auf diese visuellen Hinweise verlassen und aufgrund des Prompts allein falsche Annahmen über ihre Berechtigungen oder ihre Umgebung treffen, was zu Fehlern führen könnte, insbesondere wenn die Prompt-Konfiguration Probleme aufweist.
Zusammenfassend kann die Anpassung der Eingabeaufforderung basierend auf der Gruppenmitgliedschaft nützlich sein, um die Benutzererfahrung zu verbessern und Fehler in einer Multi-User- oder Multi-Rollen-Umgebung zu reduzieren. Sie erfordert jedoch eine sorgfältige Umsetzung und Verwaltung, um Komplexität, Fehlkonfigurationen und potenzielle Sicherheitsprobleme zu vermeiden.
Lassen Sie uns fortfahren und sehen, wie man die Eingabeaufforderung für eine bestimmte Benutzergruppe in Linux- und Unix-ähnlichen Systemen ändert.
Die folgenden Schritte wurden auf einem Ubuntu 22.04 LTS System getestet. Wir hoffen, dass diese Methode auch auf anderen Linux-Distributionen funktionieren könnte.
Bash-Eingabeaufforderung für bestimmte Benutzergruppe ändern
Zu Demonstrationszwecken werde ich eine neue Gruppe namens 'developers' und einen neuen Benutzer namens 'senthil' erstellen. Und dann werde ich den Benutzer 'senthil' zur Gruppe 'developers' hinzufügen.
Infolgedessen wird jedes Mal, wenn sich der Benutzer 'senthil' anmeldet, die Eingabeaufforderung automatisch in 'developer-senthil@ubuntu2204:~$' geändert. Sehen wir uns Schritt für Schritt an, wie man das macht.
Schritt 1 - Erstellen einer Gruppe in Linux
Gruppe erstellen:
Führen Sie den folgenden Befehl aus, um eine neue Gruppe mit dem Namen developers zu erstellen:
$ sudo groupadd developersDieser Befehl erstellt eine neue Gruppe namens developers. Möglicherweise müssen Sie Ihr Passwort eingeben, falls Sie dazu aufgefordert werden.
Schritt 2 - Hinzufügen eines neuen Benutzers und Zuweisen zur Gruppe
Neuen Benutzer erstellen:
Um einen neuen Benutzer namens senthil zu erstellen, verwenden Sie den Befehl:
$ sudo adduser senthilSie werden aufgefordert, ein Passwort für den neuen Benutzer festzulegen und einige optionale Benutzerinformationen auszufüllen. Füllen Sie diese nach Bedarf aus.
Fügen Sie den Benutzer zur Gruppe hinzu:
Um senthil zur developers-Gruppe hinzuzufügen, verwenden Sie:
$ sudo usermod -aG developers senthil
Die -aG-Option fügt den Benutzer zur Gruppe hinzu, während seine bestehenden Gruppenmitgliedschaften beibehalten werden.
Schritt 3 - Benutzerdefinierten Bash-Prompt für bestimmte Benutzergruppe festlegen
Wenn Sie die Eingabeaufforderung für Benutzer ändern möchten, die Mitglieder einer bestimmten Gruppe sind, haben Sie zwei Möglichkeiten, wo Sie das Skript platzieren, das die Gruppe des Benutzers überprüft und die Eingabeaufforderung ändert. Die Wahl hängt davon ab, ob die Änderung für einen einzelnen Benutzer oder mehrere Benutzer gelten soll:
Individuelle .bashrc-Datei des Benutzers:
- Wenn Sie möchten, dass die Änderung nur für einen bestimmten Benutzer gilt, sollten Sie die Zeilen in die
.bashrc-Datei dieses Benutzers einfügen, die sich in seinem Home-Verzeichnis (~/.bashrc) befindet. - Dieser Ansatz ist benutzerspezifisch. Jeder Benutzer, für den Sie diese Änderung anwenden möchten, muss das Skript in seine eigene
.bashrc-Datei einfügen. - Zum Beispiel, wenn Sie möchten, dass nur
senthileine andere Eingabeaufforderung hat, wenn er Teil derdevelopers-Gruppe ist, würden Sie die Zeilen nur zur.bashrc-Datei vonsenthilhinzufügen.
Globale Konfigurationsdatei /etc/bash.bashrc:
- Wenn Sie möchten, dass diese Änderung für alle Benutzer des Systems gilt, können Sie die globale
/etc/bash.bashrc-Datei bearbeiten. - Diese Methode wendet die Änderung auf die Umgebung jedes Benutzers an, aber das Skript ändert die Eingabeaufforderung weiterhin nur für Benutzer, die in der angegebenen Gruppe sind.
- Dies ist nützlich, wenn Sie mehrere Benutzer in der Gruppe haben und dasselbe Verhalten für alle möchten, ohne jede einzelne
.bashrc-Datei zu bearbeiten.
Bevor Sie Änderungen an der lokalen ~/.bashrc oder globalen /etc/bash.bashrc Datei vornehmen, empfehle ich dringend, diese zu sichern. Dies ermöglicht es Ihnen, die ursprünglichen Einstellungen wiederherzustellen, falls etwas schiefgeht.
Um die ~/.bashrc-Datei des Benutzers zu sichern, führen Sie Folgendes aus:
$ cp ~/.bashrc ~/.bashrc_backupUm die globale bashrc-Datei zu sichern, führen Sie aus:
$ sudo cp /etc/bash.bashrc /etc/bash.bashrc_backupNachdem Sie die entsprechende bashrc-Datei gesichert haben, öffnen Sie sie mit Ihrem bevorzugten Editor.
Hier werde ich diese Methode für alle Benutzer im System anwenden, also bearbeite ich die globale /etc/bash.bashrc-Datei.
$ sudo nano /etc/bash.bashrcFügen Sie die folgenden Zeilen am Ende hinzu:
bashrc_file="/home/$(whoami)/.bashrc"
developer_prompt='PS1="developer-\u@\h:\w\$ "'
# Function to add or update PS1 in .bashrc
add_or_update_ps1() {
prompt_line=$1
grep -qF -- "$prompt_line" "$bashrc_file" || echo "$prompt_line" >> "$bashrc_file"
}
if id -nG "$(whoami)" | grep -qw "developers"; then
add_or_update_ps1 "$developer_prompt"
fiLassen Sie uns den obigen Code aufschlüsseln und sehen, was jede Option bewirkt.
Variablen definieren:
bashrc_fileenthält den Pfad zur.bashrc-Datei des Benutzers.developer_promptenthält die PS1-Zeichenketten für Benutzer, die derdevelopers-Gruppe angehören.
Funktion add_or_update_ps1:
- Diese Funktion nimmt eine Prompt-Zeile als Argument.
- Es verwendet
grep -qF, um zu prüfen, ob die genaue Eingabeaufforderungszeile bereits in.bashrcvorhanden ist. - Das
--stellt sicher, dass die nachfolgende Zeichenkette als Literal und nicht als Befehlsoption behandelt wird. - Wenn es nicht existiert (
||), wird die Prompt-Zeile an.bashrcangehängt.
Gruppenmitgliedschaft überprüfen und Eingabeaufforderung anwenden:
- Das Skript überprüft, ob der Benutzer in der
developers-Gruppe ist. - Wenn der Benutzer zur Gruppe
developersgehört, ruft eradd_or_update_ps1mitdeveloper_promptauf.
Zusammenfassend ändert dieses Skript die Eingabeaufforderung für Benutzer, die der Gruppe developers angehören, indem eine benutzerdefinierte Eingabeaufforderungsdefinition zu ihrer .bashrc-Datei hinzugefügt wird. Es stellt sicher, dass die benutzerdefinierte Eingabeaufforderung nur einmal hinzugefügt wird, um Duplikate zu vermeiden.
Drücken Sie STRG+O, gefolgt von STRG+X, um die Datei zu speichern und zu beenden.
Denken Sie daran, dass nach der Bearbeitung einer der Dateien die Änderungen erst wirksam werden, wenn eine neue Shell-Sitzung gestartet wird. Benutzer können sich entweder ab- und erneut anmelden oder sie können source ~/.bashrc in ihrer aktuellen Sitzung ausführen, um die Änderungen sofort anzuwenden.
Wenden Sie die Änderungen mit folgendem Befehl an:
$ source /etc/bash.bashrcSchritt 4 - Bash-Eingabeaufforderung überprüfen
Melden Sie sich nun ab und dann wieder als Benutzer 'senthil' an. Öffnen Sie Ihr Terminal und Sie werden sehen, dass die Eingabeaufforderung des Benutzers sich in etwa wie folgt geändert hat:
Wenn Ihr System keine GUI hat, können Sie dies überprüfen, indem Sie sich von anderen Systemen per SSH in das System einloggen.
developer-senthil@ubuntu2204:~$Siehst du? Der Bash-Prompt des Benutzers wurde geändert.
Ändern Sie die Bash-Eingabeaufforderung basierend auf der Sudo-Gruppenzugehörigkeit
Sie können dieses Skript weiter anpassen, um zwischen verschiedenen Benutzertypen zu unterscheiden.
Nehmen wir zum Beispiel an, Sie können normale Benutzer und administrative Benutzer unterscheiden, die zur sudo-Gruppe in Linux gehören. Dies beinhaltet das Ändern der Befehlszeile basierend darauf, ob der Benutzer sudo-Rechte hat.
Fügen Sie die folgenden Zeilen der globalen /etc/bash.bashrc-Datei oder der .bashrc-Datei eines einzelnen Benutzers hinzu:
bashrc_file="/home/$(whoami)/.bashrc"
sudo_prompt='PS1="sudouser-\u@\h:\w\$ "'
normal_prompt='PS1="normaluser-\u@\h:\w\$ "'
# Function to add or update PS1 in .bashrc
add_or_update_ps1() {
prompt_line=$1
grep -qF -- "$prompt_line" "$bashrc_file" || echo "$prompt_line" >> "$bashrc_file"
}
if id -nG "$(whoami)" | grep -qw "sudo"; then
add_or_update_ps1 "$sudo_prompt"
else
add_or_update_ps1 "$normal_prompt"
fiDieses Skript ändert die Eingabeaufforderung auf sudouser-<username>@hostname: ~$ für Benutzer in der sudo-Gruppe und auf normaluser-<username>@hostname: ~$ für Benutzer, die nicht in der sudo-Gruppe sind.
Ist dies eine empfohlene Einrichtung?
Ob diese Einrichtung empfohlen wird, hängt vom Kontext und den Bedürfnissen des Systems ab:
Vorteile:
- Klare Rollenidentifikation: Ähnlich wie gruppenspezifische Eingabeaufforderungen hilft diese Einrichtung dabei, sofort zu erkennen, ob die aktuelle Benutzersitzung über Sudo-Rechte verfügt, was in Multi-User-Umgebungen besonders nützlich sein kann.
- Fehlervermeidung: Es dient als ständige Erinnerung an die Benutzerrechte und kann möglicherweise unbeabsichtigte Befehle mit erhöhten Rechten verhindern.
Nachteile:
- Komplexität und Wartung: Wie jede Anpassung fügt es der Systemkonfiguration eine zusätzliche Komplexitätsebene hinzu und erfordert eine angemessene Wartung.
- Falsches Sicherheitsgefühl: Benutzer könnten ein falsches Sicherheitsgefühl oder Selbstzufriedenheit entwickeln, da sie denken, dass die Prompt-Änderung ihre Berechtigungen vollständig widerspiegelt. Die tatsächlichen Berechtigungen sind jedoch nuancierter und kontextabhängig.
- Potenzial für Fehlkonfiguration: Falsch implementiert könnte es zu Verwirrung oder Fehlkonfiguration führen.
Zusammenfassend kann die Anpassung der Befehlszeile, um zwischen normalen Benutzern und Sudo-Benutzern zu unterscheiden, in bestimmten Umgebungen nützlich sein, insbesondere dort, wo eine schnelle Identifizierung von Benutzerrechten wichtig ist.
Es wird jedoch nicht universell empfohlen, da es die Komplexität erhöht und von den spezifischen Bedürfnissen und den Verwaltungsmöglichkeiten der Systemadministratoren abhängt.
.bashrc-Datei auf die Standardeinstellungen zurücksetzen
Wenn Sie auf Probleme stoßen, können Sie die Änderungen rückgängig machen, indem Sie die .bashrc-Datei aus Ihrem Backup wiederherstellen. Wenn Sie kein Backup gemacht haben, können Sie die Datei entweder erneut manuell bearbeiten und das benutzerdefinierte Skript, das Sie in den vorherigen Schritten hinzugefügt haben, entfernen oder auskommentieren.
Außerdem gibt es in Debian- und Ubuntu-Systemen eine Standardversion der .bashrc-Datei im Verzeichnis /etc/skel/.
$ ls -al /etc/skel/
total 32
drwxr-xr-x 2 root root 4096 Jan 8 18:02 .
drwxr-xr-x 138 root root 12288 Jan 8 17:55 ..
-rw-r--r-- 1 root root 220 Jan 6 2022 .bash_logout
-rw-r--r-- 1 root root 4116 Jan 8 18:00 .bashrc
-rw-r--r-- 1 root root 807 Jan 6 2022 .profileKopieren Sie die Standardversion der ~/.bashrc-Datei auf Ihre aktuelle Version wie unten:
$ cp /etc/skel/.bashrc ~/Führen Sie schließlich den folgenden Befehl aus, um die Änderungen zu aktualisieren.
$ source ~/.bashrcFür weitere Details überprüfen Sie den folgenden Link:
So stellen Sie die .bashrc-Datei in Ubuntu auf die Standardeinstellungen zurück
Fazit
In diesem Tutorial haben wir besprochen, wie man eine benutzerdefinierte Bash-Eingabeaufforderung für Benutzer einer bestimmten Gruppe einrichtet und welche Vor- und Nachteile es hat, die Eingabeaufforderung in Linux mit Beispielskripten zu ändern.
Während das Ändern von Bash-Eingabeaufforderungen für spezifische Bedürfnisse in bestimmten Umgebungen nützlich sein kann, wird es Anfängern im Allgemeinen nicht empfohlen.
Es ist immer eine gute Praxis, diesen Ansatz in einer virtuellen Maschine zu testen und die Vorteile gegen die potenziellen Risiken und Komplexitäten abzuwägen, bevor diese Änderungen implementiert werden.
Verwandte Lektüre:
- So ändern Sie die Sudo-Eingabeaufforderung in Linux

