Vom Benutzer installierte Shell verwenden? [Duplikat]

3

Wie ändere ich meine Shell in eine in meinem Home-Verzeichnis installierte Shell? Ich habe ein neues zsh in meinem Home-Verzeichnis installiert, das abgeholt wird:

>> which zsh
>> /home/myname/bin/zsh

Es ist nicht in / etc / shells aufgeführt (und wird es auch nicht sein, da ich keine Berechtigung habe). Wie installiere ich es?

chsh -s $(which zsh) myname
Changing shell for myname
Password: 
chsh: "/home/myname/bin/zsh" is not listed in /etc/shells
chsh: use -l option to see list
ash
quelle
Vielleicht könntest du exec zsh in deiner bashrc?
@cnicutar Das klappt, danke, aber ein bisschen hack. Ist das der Grund, warum ich es nicht richtig machen kann, weil Sysadmins nicht wollen, dass Benutzer ihre Muscheln verstellen?
ash
Ich kenne die Gründe nicht /etc/shellsErzählen Sie, ob Sie es herausfinden.
In dieser Antwort finden Sie die etwas sichere Methode, zsh von bash aus zu starten superuser.com/a/560732/175441
Francisco

Antworten:

4

Der ganze Punkt von /etc/shells So kann der Administrator steuern, welche Benutzer als Shell festgelegt sind. Festlegen einer Shell, die nicht aufgeführt ist /etc/shells wäre also eine Sicherheitslücke. Die beste Lösung ist, den Administrator zu bitten, zsh systemweit zu installieren. Wenn dies nicht möglich ist, können Sie Ihre aktuelle Shell (ich nehme an, bash) zur Ausführung Ihrer benutzerdefinierten Shell konfigurieren. Sie können dies tun, indem Sie Folgendes zu hinzufügen ~/.bash_profile (Dies betrifft nur Login-Shells, wohingegen ~/.bashrc wirkt sich auch auf Nicht-Login-Shells aus, die möglicherweise Skripts beschädigen).

exec ~/bin/zsh
mgorven
quelle
Wenn Sie sich auf einem verwalteten System befinden und der Systemadministrator zu einer Installation von zsh "Nein" sagt, würde ich zweimal überlegen - und bestimmt Bitten Sie den Administrator um Erlaubnis - bevor Sie zsh lokal installieren. Nennen Sie mich paranoid, aber zuerst zu fragen ist definitiv besser als eine Warnmeldung wegen Verletzung der Unternehmensrichtlinien herauszugeben ...
DevSolar