我正在尝试创建用户并将其添加到拨出组。
我已经创建了一个方法,它继承了useradd并添加了我的系统所需的用户。
以下是我食谱的相关部分:
inherit useradd
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} = "-d /home/myuser -r -m -s /bin/bash myuser -g
mygroup -G dialout;"
GROUPADD_PARAM_${PN} = "-g 870 mygroup;"在出现错误之前,构建会进入rootfs_build步骤。日志显示:
NOTE: useradd: Performing useradd with [--root
/mnt/hdd1/yocto/build/tmp/work/intel_corei7_64-poky-
linux/core-image-sato/1.0-r0/rootfs -d /home/myuser -r -m -s /bin/bash
myuser -g mygroup -G dialout]
ERROR: useradd: useradd command did not succeed如果没有-G dialout选项,它可以完美地工作。有没有办法解决这个问题?我也尝试过继承extrausers和做usermod -aG dialout myuser。
发布于 2019-03-29 17:03:06
最终解决这个问题的是把每个useradd分成各自的菜谱。我不知道为什么在相同的食谱中它们不起作用,因为这是基于元骨架中的this示例。
因此,我现在有了user1.bb、user2.bb等,而不是拥有一个拥有多个用户的users.bb,并且它的工作方式非常出色。
发布于 2019-03-28 16:27:16
我怀疑这是因为dialout组不存在,至少在添加myuser时不存在。
如果您跳过拨出部分而构建一个映像,那么在/etc/group中是否有一个名为-G dialout的组?如果没有,您可以使用与创建mygroup相同的方式创建dialout组。如果它已经存在,我怀疑您将需要确保添加dialout组的包在您的包之前使用类似RDEPENDS_${PN} += "<package that provides dialout group>的东西安装。
https://stackoverflow.com/questions/55392125
复制相似问题