如何在FreeBSD中更改默认shell?


10

FreeBSD的默认shell是sh,我实在受不了:自动完成功能非常有限,而rehash命令会杀死我。我觉得自己像个武装和一条腿的人。

如何为root以及所有当前和将来的用户将shell全局更改为- zshbash-?


1
刚刚尝试过更新FreeBSD 9.1中的现有用户,系统提示我使用以下命令:chpass -s / usr / local / bin / bash USER
commbot

Answers:


28

对于现有用户,使用chsh命令(“ CH昂热SH ELL”):

chsh -s SHELL USER
chsh -s /usr/local/bin/bash root

对于未来的用户:

  • 编辑“ /etc/pw.confdefaultshell关键字
  • 使用时adduser(),选择必要的外壳

15
...但是要注意将根shell更改为端口树中的某些内容(例如/ usr / local / bin / bash),因为如果在端口升级过程中搞砸了某些内容,可能会发现自己没有root访问权限。
larsk's

2
s /功能/未来/?
暂停,直到另行通知。

larsk:zsh可以静态构建。[至少我在“ make config”中看到了参数],据我所知,它是内置所有依赖项的二进制文件吗?所以我可以把/ usr / local / bin / zsh放到/ bin / zsh吗?超级用户可以使用旧版本,这样就可以了吗?
霍尔姆斯2011年

8
静态构建它并将其复制到/ bin可能是您最安全的操作。我只是将root的shell设置为/bin/sh,然后exec bash在极少数情况下确实需要以root身份登录(更多时候,我只是sudo从我的用户帐户使用)。
larsk's

请注意,它必须以root身份运行(或使用sudo)。
Sopalajo de Arrierez '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.