我将buildroot用于嵌入式产品。我已经通过BR2_ROOTFS_USERS_TABLES
选项添加了自己的受密码保护的用户,并且工作正常。
问题:buildroot继续向系统添加user
和admin
用户,并且他们没有密码。这些不是骨骼文件系统的一部分,但似乎在构建过程中明确添加了,尽管我不知道该在哪里。另外,即使我禁用了BR2_TARGET_ENABLE_ROOT_LOGIN
,仍然可以以root用户身份登录。
如何摆脱默认的user
和admin
用户?另外,我该如何将他们的密码设置得又长又难以猜测?
编辑:我刚刚发现删除
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
登录,并且user
和admin
帐户都具有空密码。
答案 0 :(得分:1)
确定要使用官方的Buildroot吗?正式的Buildroot的默认/etc/passwd
位于https://git.buildroot.org/buildroot/tree/system/skeleton/etc/passwd,并且不包含任何admin
或user
用户。
答案 1 :(得分:1)
在禁用BR2_TARGET_ENABLE_ROOT_LOGIN
之后,您是否进行了干净的构建?我一直在尝试重建框架包时遇到问题。
我从未见过一个名为user
或admin
的buildroot用户。我的buildroot软件包中的grep也没有显示任何这样的用户定义:
awk '/define.*_USERS/,/endef/' package/*/*mk
您可以在系统上运行相同的文件,并确保包含所有自定义的* .mk文件吗?
是否有user
和admin
遗留在先前尝试创建自己的受密码保护的用户的尝试中?再次,干净的构建会有所帮助。
答案 2 :(得分:1)
从其他答案中可以看出,Buildroot中没有任何内容可以添加admin
或user
用户。
用户可以在四个位置添加到/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
中。