使用用户安装的 shell?

使用用户安装的 shell?

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

相关内容