Nun, das ist nichts, was ich tun möchte, aber ich stelle diese Frage, um mehr über die Shell-Konfiguration in Unix/Linux-Systemen zu erfahren. Die Situation, auf die ich eine Antwort haben möchte, ist die folgende:
Da uns ein Unix/Linux-System verschiedene Shells zur Verfügung stellt, können wir für jeden Benutzer, der auf das System zugreifen darf, eine andere Shell konfigurieren. Nehmen wir also an, Tom, Dick und Harry sind drei Benutzer, die das System „Unix“ benutzen dürfen, und ich möchte, dass „Tom“ die Shell benutzt.zsh, Dick zu verwendentcshund Harry benutzt dieSchlagShell. Wie kann ich das machen und ist das überhaupt möglich?
Antwort1
Zunächst werden gültige Shells in aufgelistet /etc/shells
. Jeder Benutzer kann seine Standard-Shell ändern, indem er verwendet, chsh
solange sie in der /etc/shells
Datei enthalten ist.
Zweitens, wenn Sie eine Shell hinzufügen möchten /etc/shells
, können Sie das System wahrscheinlich durcheinanderbringen, wenn Sie dort einen Eintrag entfernen, insbesondere /bin/sh, da /bin/login
eine Shell, die dort nicht aufgeführt ist, normalerweise NICHT gestartet wird.
Weitere Informationen finden Sie inchsh(1)login.defs(5) undpasswd(5) man-Seiten.
Diese Fähigkeit gibt es schon lange (ich glaube BSD 4.x)
Antwort2
Ja, verschiedene Benutzer können unterschiedliche Shells eingerichtet haben. Sie können sie beispielsweise mit dem chsh
Befehl ändern. So ändern Sie die Shell des aktuellen Benutzers in Bash (vorausgesetzt, sie befindet sich in /bin/bash):
chsh -s /bin/bash [username]
Sie können Ihre /etc/passwd
Datei auch manuell bearbeiten und den Teil ändern, der die Shell für diesen Benutzer angibt. Beispiel:
root:*:0:0:System Administrator:/var/root:/bin/sh
Der letzte Teil in jeder Zeile Ihrer /etc/passwd, der ungefähr so aussieht wie die Zeile oben, gibt nach dem letzten :
die Shell für diesen Benutzer an.
Antwort3
Sie können verwenden chsh
!
chsh -s /bin/sh user_name