我有一个运行 Busybox 的 Synology DS412+ NAS 盒,它的默认 shell 是ash
。以前,ipkg install optware-devel
运行 并安装它bash
并将其设置为默认 shell。运行ipkg install zsh
已安装zsh
但未将其设置为默认 shell。chsh
不存在(Busybox 假定系统已精简并且只会ash
使用),那么我该如何设置默认 shell?
如有任何帮助或见解我将不胜感激。
答案1
您可以通过编辑来更改登录 shell /etc/passwd
。每行都是以冒号分隔的值的列表,最后一个值是登录 shell:
user:x:1000:1000:User:/home/user:/usr/bin/zsh
如果/etc/shells
存在,您应该向其中添加 zsh(完整路径),否则某些服务可能无法为您的用户使用。
笔记:
zsh
如果某个磁盘上安装了root(或任何您需要用于管理目的的用户)的登录 shell,我建议不要更改该 shell 。您可能希望在没有安装磁盘的情况下仍拥有 root 访问权限。
您始终可以zsh
从 ash 的用户配置中自动启动。类似这样的
[ -x /usr/bin/zsh ] && exec /usr/bin/zsh
答案2
另一种方法来自 Synoloogy 论坛上的这篇文章:
https://community.synology.com/enu/forum/1/post/150323
在您选择的编辑器(例如 nano)中,将以下行添加到:~/.profile
导出 SHELL=/bin/bash exec /bin/bash
其中 /bin/bash 是你选择的 shell 的路径