使用用戶安裝的 shell?

使用用戶安裝的 shell?

如何將我的 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

相關內容