You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

OpenWrt中如何通过su -l或其他方式切换用户?su命令未找到

在OpenWrt中从root切换到普通用户的解决方案

嘿,我刚好碰到过这个问题!OpenWrt默认是没有预装su命令的,所以你会看到那个"'su' is not found"的错误提示。不过别担心,有两种简单的方法可以解决,让你顺利切换到新创建的dhaka用户:

方法1:用系统自带的login命令(无需额外安装)

这是最直接的方式,不需要装任何额外包:

  • 先确认你的目标用户dhaka确实存在(避免白忙活):
    cat /etc/passwd | grep dhaka
    
    如果输出里能看到类似dhaka: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工具:

  1. 先更新OpenWrt的包索引:
    opkg update
    
  2. 安装su包:
    opkg install su
    
  3. 安装完成后,你就能用熟悉的命令切换用户了:
    su -l dhaka
    
    同样因为当前是root,不需要输入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

火山引擎 最新活动