ROOT用户添加密码登录

路径:overlay下 jw/etc/inittab文件

::respawn:-/bin/sh
#注释掉
#::respawn:-/bin/sh
#ttyFIQ0::respawn:/sbin/getty -L  ttyFIQ0 0 vt100
#启用
ttyFIQ0::respawn:/sbin/getty -L  ttyFIQ0 0 vt100
  • ttyFIQ0:当前Rockchip调试串口。

  • 0:保持Bootloader/Kernel已经设置的波特率。

  • getty:显示登录提示,然后调用 /bin/login。

  • 登录成功后才启动用户shell。

修改后串口会显示类似:(JW Board V1 login)来自:/etc/hostname

JW Board V1 login:
Password:

当前root密码已经设置,/etc/shadow 中的默认密码实际是:

用户名:root
密码:rockchip

因为BusyBox启用了 CONFIG_FEATURE_SECURETTY,建议同时创建:

/etc/securetty文件写入

ttyFIQ0

表示允许root从这个串口登录。

普通用户添加串口登录

  • 修改 etc/passwd
jw:x:1000:1000:JW User:/home/jw:/bin/sh
用户名 : 密码位置 	 : UID : GID : 说明 		: 用户目录 : 登录Shell
jw    :    x      :1000 : 1000: JW User   :/home/jw:/bin/sh
  • 修改 /etc/group
jw:x:1000:
  • 生成jw的密码
    • 在SDK编译主机上执行:
openssl passwd -1 -salt "$(openssl rand -hex 4)"
    • 输入准备设置的密码,会输出类似:
$1$xxxxxxxx$xxxxxxxxxxxxxxxxxxxxxx
    • 在 etc/shadow 中添加:不是明文密码。
jw:$1$a1b2c3d4$xxxxxxxxxxxxxxxxxxxxxx:10933:0:99999:7:::
    • 设置权限
chmod 600 /etc/shadow
  • 创建用户目录
mkdir -p /home/jw
chown 1000:1000 /home/jw
chmod 750 /home/jw
  • 禁止root从串口登录
/etc/inittab 中禁止直接启动root shell:

#::respawn:-/bin/sh

ttyFIQ0::respawn:/sbin/getty -L ttyFIQ0 0 vt100
/etc/securetty

不要在里面添加 ttyFIQ0。这样 BusyBox login 会拒绝 root 从这个串口登录,但允许 jw 登录。