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 folgende:
Da uns von einem Unix / Linux-System verschiedene Shells zur Verfügung gestellt werden, können wir für jeden Benutzer, der zum Zugriff auf das System berechtigt ist, eine andere Shell konfigurieren. Nehmen wir also an, Tom, Dick und Harry sind 3 Benutzer, die zur Verwendung des Systems "Unix" berechtigt sind, und ich möchte, dass "Tom" die Shell zsh , Dick tcsh und Harry die Bash- Shell verwendet. Wie kann ich das machen und ist das überhaupt möglich?
man chsh
und Sie sollten Ihre Antwort haben :)Antworten:
Zunächst werden gültige Shells in aufgelistet
/etc/shells
. Jeder Benutzer kann seine Standard-Shell ändern, indem er sie verwendetchsh
, solange sie in der/etc/shells
Datei enthalten ist.Zweitens, wenn Sie eine Shell hinzufügen möchten,
/etc/shells
können Sie, wenn Sie einen Eintrag von dort entfernen, insbesondere / bin / sh, wahrscheinlich das System/bin/login
vermasseln , da normalerweise KEINE Shell gestartet wird, die dort nicht aufgeführt ist.Weitere Informationen finden Sie in den Manpages chsh (1), login.defs (5) und passwd (5).
Diese Fähigkeit gibt es schon lange (ich glaube BSD 4.x)
quelle
Ja, verschiedene Benutzer können unterschiedliche Shells einrichten. 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):Sie können Ihre
/etc/passwd
Datei auch manuell ändern und den Teil ändern, der die Shell für diesen Benutzer angibt. Zum Beispiel:Der letzte Teil in jeder Zeile Ihres / etc / passwd, der ungefähr so aussieht wie die obige Zeile nach dem letzten
:
, gibt die Shell für diesen Benutzer an.quelle
bash
an einertcsh
Eingabeaufforderung eingeben zu lassen).Sie können verwenden
chsh
!quelle