linux 如何在yocto中添加用户并重新设置root用户?

fivyi3re  于 2023-11-17  发布在  Linux
关注(0)|答案(3)|浏览(226)

我喜欢为我的yocto项目的内置用户做一些事情:
1.)设置root用户的密码为“abc”
2.)设置root shell为ssh登录表单/bin/sh到/bin/bash
3.)使用密码“xyz”添加用户“customUser”
想想一个简单的食谱就可以做到这一点。到目前为止,我试过@ myUser.bb:

SUMMARY = "admin + user"
SECTION = "USR"
LICENSE = "CLOSED"

inherit extrausers useradd

# how to
# pw: abc
# at bash: usermod -p $(openssl passwd abc) root
# get a salted hash: openssl passwd abc
# one possible result: 1Cw5PHLy76ps2
# the command now looks: usermod -p 1Cw5PHLy76ps2 root

# set image root password
EXTRA_USERS_PARAMS = "usermod -p 1Cw5PHLy76ps2 root;"

USERADD_PACKAGES = "${PN}"

# password
# "xyz"
# openssl passwd xyz
# result: y5UyLBO4GNAwc

USERADD_PARAM_${PN} = "-u 1200 -d /home/customUser -r -s /bin/bash -p y5UyLBO4GNAwc customUser"

do_install_append () {
    install -d -m 755 ${D}${datadir}/customUser

    # The new users and groups are created before the do_install
    # step, so you are now free to make use of them:
    chown -R customUser ${D}${datadir}/customUser

    # groups
    # chgrp -R group1 ${D}${datadir}/customUser
}

FILES_${PN} = "${datadir}/*"

#ALLOW_EMPTY_${PN} = "1"

字符串
有什么办法吗?

drnojrws

drnojrws1#

您可以在主配方中使用EXTRA_USERS_PARAMS global。

inherit extrausers
EXTRA_USERS_PARAMS = " useradd customUser1; \
                       useradd customUser2; \
                       usermod  -p 'Password_1' customUser1; \
                       usermod  -p 'Password_2' customUser2; \
                       usermod  -a -G sudo customUser1; \
                       usermod  -a -G sudo customUser2;"

字符串

6rvt4ljy

6rvt4ljy2#

我以你的例子为例,做了两个小的修改,让它工作。
首先,我删除了inherit extrauser,这在使用useradd时是不必要的。这使得bitbaking配方失败;用户名无效。我将用户名更改为custom,一切都正常。
在检查生成的myuser_1.0-r0.0_armv5e.ipk时,我可以看到myuser_1.0-r0.0_armv5e.ipk/control.tar.gz/preinst中有一个预安装脚本,它将创建您的用户。

cwtwac6a

cwtwac6a3#

在将我们的映像从Yocto v3.x升级到v4.0(Kirkstone)时,我不得不更改以下Yocto v3 bb映像配置:

inherit extrausers
EXTRA_USERS_PARAMS = "usermod -P temppw root;"

字符串
首先运行mkpasswd命令以生成所需的密码散列。

printf "%q" $(mkpasswd -m sha256crypt temppw)


mkpasswd为密码“temppw”输出以下内容:

\$5\$rRUXhVIMRx8vdFFp\$jLqPDLBkmHs4qj8DY9ggZ2YrsMzEVwRZuIJyTiKQLvB


然后我在Yocto v4中修改了我的图像bb文件,如下所示:

inherit extrausers
PASSWD="\$5\$rRUXhVIMRx8vdFFp\$jLqPDLBkmHs4qj8DY9ggZ2YrsMzEVwRZuIJyTiKQLvB"
EXTRA_USERS_PARAMS = "usermod -p ${PASSWD} root;"


最新的Yocto项目文档中对此进行了描述:https://docs.yoctoproject.org/ref-manual/variables.html#term-EXTRA_USERS_PARAMS

相关问题