
如何將我的 shell 變更為安裝在我的主目錄中的 shell?我在我的主目錄中安裝了一個新的 zsh,它被拾取:
>> which zsh
>> /home/myname/bin/zsh
它沒有列在 /etc/shells 中(也不會列在 /etc/shells 中,因為我缺乏權限),那麼我該如何安裝它?
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
答案1
整個目的/etc/shells
是讓管理員可以控制使用者設定的 shell。因此,設定未在 中列出的 shell/etc/shells
將是一個安全漏洞。最好的解決方案是要求管理員在系統範圍內安裝 zsh,但如果不可能,您唯一的選擇是配置當前的 shell(我假設是 bash)來執行自訂 shell。您可以透過新增以下內容來做到這一點~/.bash_profile
(這只會影響登入 shell,而~/.bashrc
也會影響非登入 shell,這可能會破壞腳本)。
exec ~/bin/zsh