chsh 不存在时如何设置默认shell

Iai*_*ain 8 shell zsh synology

我有一个运行 Busybox 的 Synology DS412+ NAS 盒子,它的默认外壳为ash. 以前,ipkg install optware-devel运行并安装bash并将其设置为默认shell。Runningipkg install zsh已安装zsh但未将其设置为默认 shell。chsh不存在(Busybox 假设系统缩减并且只会ash使用),那么如何设置默认 shell?

我将非常感谢任何帮助或见解。

小智 12

您可以通过编辑/etc/passwd. 每一行都是一个以冒号分隔的值列表,最后一个是登录shell:

user:x:1000:1000:User:/home/user:/usr/bin/zsh
Run Code Online (Sandbox Code Playgroud)

如果/etc/shells存在,您应该向其中添加 zsh(完整路径),否则某些服务可能不适用于您的用户。

笔记:

如果zsh安装在其中一个磁盘上,我建议不要更改 root(或出于管理目的所需的任何用户)的登录 shell 。您可能希望在没有安装磁盘的情况下仍具有 root 访问权限。

您总是可以zsh从 ash 的用户配置自动启动。类似的东西

[ -x /usr/bin/zsh ] && exec /usr/bin/zsh
Run Code Online (Sandbox Code Playgroud)