如何将我的 shell 更改为安装在主目录中的 shell?我在主目录中安装了一个新的 zsh,它被选中:
>> which zsh
>> /home/myname/bin/zsh
它没有在 /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。因此,设置未列出的 shell/etc/shells
将是一个安全漏洞。最好的解决方案是要求管理员在系统范围内安装 zsh,但如果这不可能,您唯一的选择就是配置当前 shell(我假设是 bash)以执行您的自定义 shell。您可以通过将以下内容添加到来执行此操作~/.bash_profile
(这只会影响登录 shell,但~/.bashrc
也会影响可能会破坏脚本的非登录 shell)。
exec ~/bin/zsh