如何秒速登录SSH/串口终端?

标准方法:使用 passwd 命令

适用场景:系统已安装 passwd 工具(BusyBox或完整Linux环境)。

passwd root
# 3. 按提示输入两次新密码
Enter new password: ******
Retype new password: ******

关键提示

  • 普通用户仅能修改自身密码,root用户可修改任意账户密码(如 passwd username)。
  • 密码需满足强度规则(长度、字符组合),否则可能报错 BAD PASSWORD

手动编辑密码文件(无passwd工具时)

适用场景passwd命令不可用或需脚本批量操作。

步骤

  1. 生成加密密码
    在PC端使用 opensslmkpasswd 生成SHA-512加密字符串(嵌入式设备可能无此工具):

    openssl passwd -6 -salt $(openssl rand -base64 6) your_password
    # 输出示例:$6$salt$encrypted_string
  2. 修改 /etc/shadow 文件

    • 挂载文件系统为可写(若只读):
      mount -o remount,rw /
    • 编辑 /etc/shadow,找到目标行(如 root:旧密码字段:...),替换加密字符串:
      vi /etc/shadow
      # 将root行第二个字段改为生成的加密串
      root:$6$salt$encrypted_string:19450:0:99999:7:::
  3. 恢复只读挂载(如适用):

    mount -o remount,ro /

特殊场景处理

  1. 只读文件系统

    • 临时挂载可写:mount -o remount,rw /
    • 修改后还原:mount -o remount,ro /
    • 若需永久修改,需调整启动脚本中的挂载参数。
  2. BusyBox环境简化操作
    BusyBox的 passwd 可能无交互提示,直接指定密码:

    echo -e "new_password\nnew_password" | passwd root
  3. 恢复出厂默认密码
    查找系统重置脚本(通常为 /bin/factory-reset)或重新烧录包含默认配置的固件。


安全与验证

  1. 密码强度要求

    • 长度≥8字符,混合大小写、数字及符号。
    • 避免常见词汇(如 admin/123456)。
  2. 修改后验证

    su - username  # 切换用户测试新密码
  3. 文件权限检查
    确保 /etc/shadow 权限为 640,属主 root:root

    chmod 640 /etc/shadow
    chown root:root /etc/shadow

故障排除

  • 报错:passwd: Authentication token manipulation error
    原因:文件系统只读或磁盘满。
    解决:mount -o remount,rw / 并检查空间(df -h)。

  • 报错:passwd: System error
    原因:/etc/shadow 权限异常。
    解决:恢复权限 chmod 640 /etc/shadow

  • 密码未生效
    原因:加密算法不匹配(如MD5 vs SHA-512)。
    解决:确认生成密码时指定算法(-6 为SHA-512)。


嵌入式Linux修改密码的核心是:

  1. 优先使用 passwd 命令(安全可靠)。
  2. 手动编辑 /etc/shadow 仅作为备用方案,需严格注意加密算法和权限。
  3. 在只读文件系统中,需先解除挂载保护。

引用说明:本文方法参考Linux标准文档(man 5 shadow)、BusyBox官方手册及嵌入式系统安全实践,操作涉及系统关键文件,建议在测试环境验证后实施。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9848.html

(0)
酷番叔酷番叔
上一篇 2025年8月7日 09:08
下一篇 2025年8月7日 09:33

相关推荐

  • Linux使用命令后,结果是如何返回到终端的?

    Linux命令执行后返回结果的方式多种多样,理解这些返回机制对于高效使用终端至关重要,默认情况下,命令的结果会直接显示在终端上,但通过重定向、管道、后台执行等技术,可以灵活控制输出的位置和形式,满足不同场景的需求,默认输出:终端直接显示大多数Linux命令执行后,会将结果通过“标准输出(stdout)”直接打印……

    2025年10月4日
    11800
  • Linux如何安装cc?

    在Linux系统中,“cc”通常指的是C语言编译器,最常见的是GNU Compiler Collection(GCC),安装“cc”本质上是安装GCC编译器及相关工具链,以便编译C语言源代码,不同Linux发行版的包管理器不同,安装步骤略有差异,但整体流程相似,以下是详细的安装指南,涵盖主流发行版、安装验证、常……

    2025年10月1日
    12800
  • Linux系统如何开启zlib压缩功能?

    在Linux系统中,zlib是一个广泛使用的压缩库,它提供了数据压缩和解压缩的功能,被众多软件(如Python、nginx、curl等)依赖,若要在Linux系统中正确开启或启用zlib支持,通常涉及安装zlib库、验证安装状态、以及在编译软件时正确配置zlib路径等步骤,以下是详细操作指南:安装zlib库大多……

    2025年8月24日
    14100
  • Linux如何搭建Web服务器?详细步骤与方法是什么?

    在Linux系统中搭建Web服务器是运维和开发中的常见需求,Linux凭借其稳定性、安全性和开源特性,成为Web服务部署的首选平台,本文将以主流的Ubuntu/Debian和CentOS/RHEL系统为例,详细介绍使用Apache和Nginx两种常见Web服务器软件搭建Web服务器的完整流程,包括环境准备、软件……

    2025年8月30日
    14800
  • Linux中cp命令的使用方法是什么?

    在Linux系统中,cp(copy)命令是最基础且常用的文件操作命令之一,主要用于复制文件或目录,无论是日常运维还是开发工作,掌握cp命令的用法都能提升文件管理的效率,下面从基本语法、常用选项、实际场景及注意事项等方面详细说明其使用方法,基本语法cp命令的基本语法结构为:cp [选项] 源文件 目标文件“源文件……

    2025年10月7日
    13800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信