OpenWrt中如何通过su -l或其他方式切换用户?su命令未找到
在OpenWrt中从root切换到普通用户的解决方案
嘿,我刚好碰到过这个问题!OpenWrt默认是没有预装su命令的,所以你会看到那个"'su' is not found"的错误提示。不过别担心,有两种简单的方法可以解决,让你顺利切换到新创建的dhaka用户:
方法1:用系统自带的login命令(无需额外安装)
这是最直接的方式,不需要装任何额外包:
- 先确认你的目标用户dhaka确实存在(避免白忙活):
如果输出里能看到类似cat /etc/passwd | grep dhakadhaka:x:1000:1000::/home/dhaka:/bin/ash的内容,说明用户创建没问题。 - 直接切换到dhaka用户:
这里的login -f dhaka-f参数是关键——因为你当前是root用户,拥有最高权限,所以可以跳过密码验证直接登录。这个命令会自动加载dhaka用户的登录shell环境,效果和Ubuntu里的su -l几乎一致。 - 想回到root的话,直接输入
exit回车就行。
方法2:安装su命令(和Ubuntu操作完全一致)
如果你习惯了Ubuntu里su -l的操作逻辑,也可以给OpenWrt装上su工具:
- 先更新OpenWrt的包索引:
opkg update - 安装
su包:opkg install su - 安装完成后,你就能用熟悉的命令切换用户了:
同样因为当前是root,不需要输入dhaka的密码就能直接切换。su -l dhaka
小提示
如果切换后发现shell不是你想要的(比如默认没有设置),可以先给dhaka用户指定默认shell:
usermod -s /bin/ash dhaka
OpenWrt默认的shell是/bin/ash,要是想用bash的话,额外装个bash包就行(opkg install bash),然后把上面命令里的/bin/ash换成/bin/bash。
内容的提问来源于stack exchange,提问作者Rafsan Jany




