如何更改OpenWrt的默认shell?

问题描述 投票:0回答:1

OpenWrt的默认外壳为ash,但我想将其更改为fish

当我运行chsh -s /usr/bin/fishfish的绝对路径时,它返回了-ash: chsh: not found

我从[]更改了/etc/passwd的第一行:

root:x:0:0:root:/root:/bin/ash

至:

root:x:0:0:root:/root:/usr/bin/fish

我无法再次登录(密码错误,并且系统日志显示:

authpriv.warn dropbear[14288]: User 'root' has invalid shell, rejected


还有其他方法可以更改默认外壳吗?

(顺便说一下,我使用的是a popular fork of OpenWrt而不是the official,但这似乎不是此问题的原因)

linux openwrt fish busybox ash
1个回答
0
投票

有两种解决方法。您可以:

/usr/bin/fish添加到/etc/shells

此解决方案由上面的@glenn-jackman在注释中提供。

或:

dropbear替换openssh-server

我想出了另一种方法:如果您碰巧安装了openssh-server,建议您选择use it as default following this tutorial


并且记住将/ etc / passwd的第一行更改为:

root:x:0:0:root:/root:/usr/bin/fish

© www.soinside.com 2019 - 2024. All rights reserved.