Vom Benutzer installierte Shell verwenden?

1942
ash

Wie ändere ich meine Shell in eine in meinem Home-Verzeichnis installierte Shell? Ich habe eine neue zsh in meinem Home-Verzeichnis installiert, die 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 
3
Vielleicht könnten Sie "exec zsh" in Ihrer Bashrc? vor 12 Jahren 0
@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 versauen? ash vor 12 Jahren 0
Ich kenne die Gründe für "/ etc / shells" nicht, sagen Sie mir, ob Sie es herausfinden. vor 12 Jahren 0
In dieser Antwort finden Sie eine etwas sichere Methode zum Starten von zsh von bash http://superuser.com/a/560732/175441 Francisco vor 11 Jahren 0

1 Antwort auf die Frage

4
mgorven

Es /etc/shellsgeht darum, dass der Administrator steuern kann, welche Benutzer als Shell festgelegt wurden. Das Festlegen einer nicht aufgeführten Shell /etc/shellswäre daher 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) so konfigurieren, dass Ihre benutzerdefinierte Shell ausgeführt wird. Sie können dies tun, indem Sie Folgendes zu hinzufügen ~/.bash_profile(dies betrifft nur Login-Shells, wohingegen dies ~/.bashrcauch für Nicht-Login-Shells gilt, die möglicherweise Skripts beschädigen).

exec ~/bin/zsh 
Wenn Sie sich auf einem verwalteten System befinden und der Systemadministrator zu einer Installation von zsh "Nein" sagt, würde ich zweimal überlegen - und den Administrator auf jeden Fall um Erlaubnis fragen -, 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 vor 11 Jahren 0