如何禁用buildroot中的默认用户“ user”和“ admin”?

时间:2018-10-17 14:52:45

标签: user-accounts buildroot

我将buildroot用于嵌入式产品。我已经通过BR2_ROOTFS_USERS_TABLES选项添加了自己的受密码保护的用户,并且工作正常。

问题:buildroot继续向系统添加useradmin用户,并且他们没有密码。这些不是骨骼文件系统的一部分,但似乎在构建过程中明确添加了,尽管我不知道该在哪里。另外,即使我禁用了BR2_TARGET_ENABLE_ROOT_LOGIN,仍然可以以root用户身份登录。

如何摆脱默认的useradmin用户?另外,我该如何将他们的密码设置得又长又难以猜测?

编辑:我刚刚发现删除

BR2_TARGET_ENABLE_ROOT_LOGIN=y
我的BR2_TARGET_ENABLE_ROOT_LOGIN文件中的

是不够的;文件必须包含

# BR2_TARGET_ENABLE_ROOT_LOGIN is not set

...或构建的.config文件仍将包含BR2_TARGET_ENABLE_ROOT_LOGIN=y。但是,即使我更正了此问题并进行了彻底的重建,我得到的系统仍然没有密码root登录,并且useradmin帐户都具有空密码。

3 个答案:

答案 0 :(得分:1)

确定要使用官方的Buildroot吗?正式的Buildroot的默认/etc/passwd位于https://git.buildroot.org/buildroot/tree/system/skeleton/etc/passwd,并且不包含任何adminuser用户。

答案 1 :(得分:1)

在禁用BR2_TARGET_ENABLE_ROOT_LOGIN之后,您是否进行了干净的构建?我一直在尝试重建框架包时遇到问题。

我从未见过一个名为useradmin的buildroot用户。我的buildroot软件包中的grep也没有显示任何这样的用户定义: awk '/define.*_USERS/,/endef/' package/*/*mk您可以在系统上运行相同的文件,并确保包含所有自定义的* .mk文件吗?

是否有useradmin遗留在先前尝试创建自己的受密码保护的用户的尝试中?再次,干净的构建会有所帮助。

答案 2 :(得分:1)

从其他答案中可以看出,Buildroot中没有任何内容可以添加adminuser用户。

用户可以在四个位置添加到/etc/passwd

  • 框架中的文件/etc/passwd。如果您有一个自定义骨架,它可能来自那里。
  • 从包和文件系统构建的用户表。您可以在output/build/buildroot-fs/users_table.txt(或者在旧版本的Buildroot中,在output/build/_users_table.txt中看到其中的内容。
  • 自定义文件系统叠加层中存在的文件/etc/passwd
  • 构建后脚本对/etc/passwd进行的任何操作。

包也有可能(尽管不是故意的)直接更新/etc/passwd。如果是这种情况,您会看到它出现在output/build/packages-file-list.txt中。