0


buildroot 多用户配置

1. 环境

# 下载 buildroot
git clone git://git.buildroot.net/buildroot.git

# 查看所有分支
git branch -a

我使用分支为:remotes/origin/2022.02.x

# 切换分支命令
git checkout -b 2022.02 remotes/origin/2022.02.x
# 使用的 ubuntu 环境为:
liangtao:opt$uname -a
Linux ubuntu 5.4.0-131-generic #147~18.04.1-Ubuntu SMP Sat Oct 15 13:10:18 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

使用的单板配置为:imx6ullevk_defconfig

2. 添加多用户配置

参考博客:

Buildroot根文件系统权限表、用户表、设备管理

参考手册:buildroot手册

在 buildroot 中,默认的 root 用户,可以使用 make menuconfig 来配置;密码在下面菜单设置;

System configuration  --->
    ()    Root password

在手册中,提到可以使用 BR2_ROOTFS_USERS_TABLES 来指定多用户表;

  1. 在任意路径添加一个 users_table.txt

或者采用官方的建议:创建一个 board/公司名/项目名/ 目录,把 users_table.txt 放入该目录;

If additional user accounts have to be created, create board/<manufacturer>/<boardname>/users_table.txt and add that path to BR2_ROOTFS_USERS_TABLES.

  1. 使用 make menuconfig 来配置路径;

  1. 使用 make savedefconfig 来将修改的配置写入 imx6ullevk_defconfig 文件中;

  2. 参考手册在 users_table.txt 中创建系统用户;

例:

- 818 USB 818 * - - - USB group
USER1 823 USER1 823 ! /home/USER1 /bin/sh USB USER1 app
USER2 824 USER2 824 ! /home/USER2 /bin/sh USB USER2 app

规则如下:

** - 818 USB 818 * - - - USB group**

解释:

  • 没有用户名,只创建用户组

818 用户名 id,即 UID,不会生效;

USB 用户组名

818 用户组 id,即 GID

  • 不允许登录
  • 无指定家目录

  • 无指定 shell

  • 无其它用户组

USB group 简单的 commit

USER1 823 USER1 823 ! /home/USER1 /bin/sh USB USER1 app

解释:

USER1 用户名为 USER1

823 用户名 id,即 UID

USER1 同名组名

823 用户组 id,即 GID

! 不允许登录

/home/USER1 指定家目录为 USER1,该目录 buildroot 会自动帮你创建

/bin/sh 指定 shell 为 /bin/sh

USB 指定 USER1 除了 USER1 组外,还属于 USB 组

USER1 app 简单的 commit

至于 USER1 指定 shell 为 /bin/sh 的原因:我指定过为 /bin/false,这样通过如下命令执行应用不成功,所以指定了 shell;

su -l USER1 -c "/home/USER1/app &"
  1. 编译 make all

3. 修改节点权限

由于我在 buildroot 中配置的动态节点创建的方式为 mdev;

System configuration  ---> 
    /dev management (Dynamic using devtmpfs + mdev)  --->

所以我可以通过修改 /etc/mdev.txt 文件来修改 /dev/ 下的节点权限;

其它方式可以查看手册 6.2 /dev management

mdev 编写规则参考:mdev的使用以及mdev.conf的规则配置

我的 mdev.txt 文件如下:

# system all-writalbe devices
full              0:0 666
null              0:0 666
ptmx              0:0 666
random            0:0 666
tty               0:0 666
zero              0:0 666

# serial port devices
ttymxc[1-7]       0:0 666

# misc devices
sd[a-z][0-9]      0:0 666        @/etc/hotplug.sh
sd[a-z]           0:0 666        $/etc/hotplug.sh

4.将自己的文件编译进 buildroot 文件系统中

关键字为:BR2_ROOTFS_OVERLAY

buildroot 会把指定目录下的文件拷贝到文件系统中;

标签: git github

本文转载自: https://blog.csdn.net/liangtao_1996/article/details/127654480
版权归原作者 liangtao_1996 所有, 如有侵权,请联系我们删除。

“buildroot 多用户配置”的评论:

还没有评论