【问题标题】:How can I add a group inside /etc/group of a target root file system?如何在目标根文件系统的 /etc/group 中添加组?
【发布时间】:2020-07-23 18:14:47
【问题描述】:

我正在从在主机上执行的 makefile 交叉编译目标 RFS?我应该知道 groupadd 命令的任何特定用法吗?我还需要使用来自主机 linux 机器的 groupadd 还是目标的嵌入式 groupadd 版本?如何在 groupadd 命令中指定在目标 RFS 中而不是在主机中添加组。我是新来的。 例子 : /usr/sbin/groupadd -g 1111 test_gp
我需要在编译 rfs 的特定路径中创建 1111,例如 /home/arm_build/rfs/ 然后在其下添加一个用户

/usr/sbin/useradd -g test_gp -m -d /home/test_gp -p l.cjpassword -s /bin/bash -c "A 测试组" test_gp

我看到的等效命令是什么,在 groupadd 中没有提供路径的选项,它只需要一个数字作为 gid

【问题讨论】:

    标签: makefile filesystems cross-compiling embedded-linux root


    【解决方案1】:

    你有很多选择:

    • /etc/group 只是一个文本文件, 因此您可以手动创建它,也可以使用自己的脚本创建它
    • 根据手册,groupadd --root <DIR> 将修改下的文件 <DIR>,因此您可以将其指向您正在构建的目录 根文件系统
    • 不要重新发明轮子并使用现有的构建系统: Buildroot 和 Yocto 是最常用的,当然它们可以处理 群组创建

    【讨论】:

    • 我编辑了我的评论并添加了命令只是为了更清楚。
    • 我让 groupadd 工作了。谢谢.. useradd 和 chown 命令是否也适用于更改的根目录?
    • 你的意思是使用chroot?好吧,它会工作,但如果你是 corss-compiling,它会更复杂,因为你需要在交叉 rootfs 上放置一个临时的本地 useradd,或者使用 qemu 运行交叉构建的 useradd。
    • 我在执行 useadd 命令时收到 FAIL_DELAY,虽然 groupadd 确实可以在 RFS 中创建一个组,但 useradd 并没有这样做。此外,我在 chown 下没有看到可以用于来自主机的目标 RFS 的选项。我在这里一无所知,正在寻找替代品:)
    • 你能更好地解释一下useradd 有什么错误吗?请报告完整的日志,其中包含您发出的命令、您获得的输出以及任何可能有助于理解的详细信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-02
    • 1970-01-01
    相关资源
    最近更新 更多