首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误: useradd: useradd命令在Yocto构建中未成功

错误: useradd: useradd命令在Yocto构建中未成功
EN

Stack Overflow用户
提问于 2019-03-28 15:22:52
回答 2查看 2K关注 0票数 3

我正在尝试创建用户并将其添加到拨出组。

我已经创建了一个方法,它继承了useradd并添加了我的系统所需的用户。

以下是我食谱的相关部分:

代码语言:javascript
复制
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步骤。日志显示:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-29 17:03:06

最终解决这个问题的是把每个useradd分成各自的菜谱。我不知道为什么在相同的食谱中它们不起作用,因为这是基于元骨架中的this示例。

因此,我现在有了user1.bb、user2.bb等,而不是拥有一个拥有多个用户的users.bb,并且它的工作方式非常出色。

票数 0
EN

Stack Overflow用户

发布于 2019-03-28 16:27:16

我怀疑这是因为dialout组不存在,至少在添加myuser时不存在。

如果您跳过拨出部分而构建一个映像,那么在/etc/group中是否有一个名为-G dialout的组?如果没有,您可以使用与创建mygroup相同的方式创建dialout组。如果它已经存在,我怀疑您将需要确保添加dialout组的包在您的包之前使用类似RDEPENDS_${PN} += "<package that provides dialout group>的东西安装。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55392125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档