在 Yocto 中使用串行控制台登录时启用 root 密码验证

Enable root password verification while login with serial console in Yocto

我正在尝试为 root 用户启用登录验证。

在 local.conf 中添加以下行后,我可以看到在使用 SSH 以 root 身份登录时需要输入密码。

IMAGE_FEATURES_remove = "debug-tweaks empty-root-password"
EXTRA_IMAGE_FEATURES_remove = "debug-tweaks empty-root-password"

但是,如果我尝试以 root 用户身份使用串行控制台 (ttyS0) 登录,它只是在没有任何密码验证或请求的情况下成功登录。

有谁知道如何为串行控制台的访问启用登录验证?

P.S

我没有为 root 设置任何默认密码,所以它永远不会允许 root 用户登录。 即使我为root设置了密码,通过串行控制台登录时仍然不需要输入密码。

poky/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service

  • ExecStart=-/sbin/agetty -8 --autologin root -L %I @BAUDRATE@ $TERM
  • ExecStart=-/sbin/agetty -8 -L %I @BAUDRATE@ $TERM

https://wiki.yoctoproject.org/wiki/FAQ:How_do_I_set_or_change_the_root_password

And even if I set password for root, it still doesn't need password's input while login via serial console.

你确定设置正确吗? 这是我用来修改 root 用户密码的方法(在 .bb 文件或 .inc 文件中):

inherit extrausers
EXTRA_USERS_PARAMS += "usermod -P mypassword root;"

如果您根本不想登录,也许您可​​以更改用户的 shell:

inherit extrausers
EXTRA_USERS_PARAMS += "usermod -s /bin/nologin root;"

用户将存在,将被应用程序使用,但将无法登录。