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

问题描述 投票:0回答:3

我喜欢为我的 yocto 项目的内置用户做一些事情:

1.) 将 root 的密码设置为“abc”

2.) 将 ssh 登录形式 /bin/sh 的 root shell 设置为 /bin/bash

3.) 添加用户“customUser”,密码为“xyz”

认为一个简单的食谱就可以做到这一点。到目前为止我尝试过@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"

知道如何完成这个任务吗?

linux yocto bitbake
3个回答
7
投票

您可以在主配方中使用

EXTRA_USERS_PARAMS
全局。

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;"

2
投票

我采用了您的示例并做了两个小更改以使其正常工作。

首先,我删除了

inherit extrauser
,在使用 useradd 时这是不必要的。这使得位烘焙配方失败了;用户名无效。我将用户名更改为
custom
,一切正常。

检查生成的

myuser_1.0-r0.0_armv5e.ipk
时,我可以看到
myuser_1.0-r0.0_armv5e.ipk/control.tar.gz/preinst
中有一个预安装脚本将创建您的用户。


0
投票

将我们的镜像从 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

© www.soinside.com 2019 - 2024. All rights reserved.