So überprüfen Sie die Standard-Shell

603
faressoft

Gibt es eine Konfigurationsdatei, in der die Standard-Shell (bash, zsh usw.) für den aktuellen Benutzer gespeichert ist?

0
Terminals haben keine Muscheln. Ignacio Vazquez-Abrams vor 6 Jahren 0
@ IgnacioVazquez-Abrams Danke, bearbeitet faressoft vor 6 Jahren 0

1 Antwort auf die Frage

5
Ignacio Vazquez-Abrams

Die von einem Benutzer verwendete Standard-Shell ist im siebten Feld /etc/passwdoder in einem gleichwertigen Feld enthalten .

$ getent passwd xxxxxx | awk -F: '{ print $7 }' /bin/bash 
Gibt es eine andere Möglichkeit, die keinen Zugriff auf solche Dateien wie passwd erfordert faressoft vor 6 Jahren 0
Der * einzige * verlässliche Ort, an dem diese Informationen zu finden sind, ist "passwd". Ignacio Vazquez-Abrams vor 6 Jahren 0
Wenn ich zsh installiere, markiert es sich nicht als Login-Shell faressoft vor 6 Jahren 0
Haben Sie "chsh" verwendet, um dem System mitzuteilen, dass es verwendet werden soll? Ignacio Vazquez-Abrams vor 6 Jahren 1
Oh, vielleicht tut es das, darum bittet es mich um Erlaubnis faressoft vor 6 Jahren 0
Chsh ändert also die passwd-Datei faressoft vor 6 Jahren 0
@faressoft: Das kannst du mit `strace` überprüfen, zum Beispiel` strace chsh -s $ (Befehl -v bash) | & grep open` Arkadiusz Drabczyk vor 6 Jahren 1
@faressoft Bitte beachten Sie, dass Sie immer Zugriff auf `/ etc / passwd` haben sollten. Hier werden Ihre Benutzer-ID und Ihr Benutzername sowie Ihr Home-Verzeichnis und die Standard-Shell zugeordnet und es muss von vielen Dingen darauf zugegriffen werden. Sie denken vielleicht an `/ etc / shadow` (wo Passwörter gespeichert werden) und das ist normalerweise nicht lesbar. BenjiWiebe vor 6 Jahren 0
@faressoft Wenn Sie sich einloggen, wird die Shell, die Sie tatsächlich erhalten, aus Ihrem `/ etc / passwd` gelesen, und zwar über denselben Mechanismus, den getent verwendet. BenjiWiebe vor 6 Jahren 0