首页 > 其他分享 >buildroot 构建根文件系统(9)添加多用户

buildroot 构建根文件系统(9)添加多用户

时间:2023-09-16 16:26:39浏览次数:37  
标签:buildroot develop service 多用户 admin 文件系统 PATH home ROOT

一、开发背景

  构建最小系统后成功运行后,根据项目需要支持多用户,即不同用户权限只能访问自己的路径下的文件

二、开发需求

  增加多个用户,不同用户权限只能访问自己的路径下的文件,存在一个低级用户,其他用户都可以访问它的文件

三、开发环境

  Linux Ubuntu 4.15.0-65-generic + buildroot-2023.02.3 + i.mx6d(cortex-A9)

四、实现步骤

  1、添加多个用户

    (1)命令行添加,主要是 adduser、addgroup 等指令,比较繁琐,这里不展开介绍

    (2)buildroot 构建过程添加

      例如:需要添加用户 admin、product、service 和 develop.

      1)编写用户创建配置表文件,可以是任意名字,这里是 users_table.txt,内容如下:

admin       -1 admin   -1 =admin       /home/admin       /bin/sh
product     -1 product -1 =product     /home/product     /bin/sh
service     -1 service -1 =service     /home/service     /bin/sh
develop     -1 develop -1 =develop     /home/develop     /bin/sh

        问题又来了,为什么这样写?

        直接查看官方文档:https://buildroot.org/downloads/manual/manual.pdf

      

         上面是对编写格式的说明,参考对应的说明文档,特别需要注意密码的编写格式,否则可能无法登录

      2)buildroot 指定 users_table.txt 的路径

        > System configuration

          >(custom/users_table.txt) Path to the users tables  这里在 buildroot 路径下创建了 custom 自定义目录存放

        重新编译配置

  2、设置用户权限

    buildroot 按照 users_table.txt 配置生成路径,没有赋予权限,即各个用户都可以访问对方的文件,

     ROOT_PATH="/"

    (1)设置文件拥有者和所在组:

      chown admin.admin ${ROOT_PATH}/home/admin
      chown product.product ${ROOT_PATH}/home/product
      chown service.service ${ROOT_PATH}/home/service
      chown develop.develop ${ROOT_PATH}/home/develop

    (2)设置文件的访问权限,admin 不限制,其他用户只有自己能访问:

      chmod 755 ${ROOT_PATH}/home
      chmod 755 ${ROOT_PATH}/home/admin 
      chmod 750 ${ROOT_PATH}/home/product
      chmod 750 ${ROOT_PATH}/home/service
      chmod 750 ${ROOT_PATH}/home/develop

  3、实现用户间切换

    chmod 4755 /bin/busybox,参考链接:https://blog.csdn.net/qq_35426042/article/details/109231607

五、结果展示

  1、配置后的 home 目录:admin 权限可以被其他用户访问

    

   2、实现用户之间来回切换且不能访问对方的文件

    

    

 

标签:buildroot,develop,service,多用户,admin,文件系统,PATH,home,ROOT
From: https://www.cnblogs.com/yangjinghui/p/17705182.html

相关文章

  • 3、文件系统与系统目录
    文件系统与系统目录文件系统相当于仓库管理员,可以有规律的摆放文件。文件系统包括有:NTFS、FAT16、FAT32、EXFAT日志文件系统:NTFS:windows特有(主流文件系统)FAT16:只支持2GB以下的文件(少)FAT32:支持4GB以下的文件(少)EXFAT:专门为闪存设备设计,Windows、Linux、Mac均可适......
  • FATs文件系统笔记
    1.设备状态获取点击查看代码DSTATUSdisk_status(BYTEpdrv/*物理编号*/){DSTATUSstatus=STA_NOINIT;switch(pdrv){caseATA:/*SDCARD*/break;caseSPI_FLASH:/*SPIFlash状态检测:读取SPIFlash设备ID*/......
  • RK3568开发笔记(九):开发板buildroot固件调通RS485口,运行项目中RS485协议调试工具Demo
    前言  上一篇已经将Qt移植过去了,此时我们移植整体应用不是什么问题了,那么现在应用对外得接口使用了RS485接口,板载了一个RS485,于是需要调通,兼容这个开发板得RS485。 补充  看起来很简单,弄起来不懂得就是不懂,懂得虽然懂还得花时间去研究一下开发板特性,与厂家沟通下,......
  • buildroot 构建根文件系统(8)添加网络时间同步
    一、开发背景构建最小系统后成功运行后,时间都是从初始化时间开始计算,形如:ThuJan 109:57:55UTC1970二、开发需求开机联网后自动从网络中获取最新的时间,同步到系统中三、开发环境LinuxUbuntu4.15.0-65-generic+buildroot-2023.02.3+i.mx6d(cortex-A9)......
  • Ceph文件系统使用
    本次演示环境如下:hostnameIProlesnode01.srv.world192.168.10.101ObjectStorage;MonitorDaemon;ManagerDaemonnode02.srv.world192.168.10.102ObjectStoragenode03.srv.world192.168.10.103ObjectStoragedlp.srv.world192.168.10.142client1.在dlp节点安装所需的软件包[root@n......
  • RK3568开发笔记(八):开发板烧写buildroot固件(支持hdmi屏),搭建Qt交叉编译开发环境,编译一个D
    前言  前面发现开发板用ubuntu固件发现空间不够,本篇使用buildroot固件,来实现目标板运行qt界面应用。<br>烧写buildroot固件  这部分更详细的参照《RK3568开发笔记(六):开发板烧写ubuntu固件(支持mipi屏)》的步骤,本质上烧写都是一样的,只是不同的update.img。步骤一:下载镜像  ......
  • RK3568开发笔记(八):开发板烧写buildroot固件(支持hdmi屏),搭建Qt交叉编译开发环境,编译一个D
    前言  前面发现开发板用ubuntu固件发现空间不够,本篇使用buildroot固件,来实现目标板运行qt界面应用。 烧写buildroot固件  这部分更详细的参照《RK3568开发笔记(六):开发板烧写ubuntu固件(支持mipi屏)》的步骤,本质上烧写都是一样的,只是不同的update.img。步骤一:下载......
  • 纯前端也可以访问文件系统!
    https://www.cnblogs.com/songyao666/p/17691691.html 前言周末逛github的时候,发现我们只需要在github域名上加上1s他就能够打开一个vscode窗口来阅读代码,比起在github仓库中查看更加方便然后我就想网页端vscode能不能打开我本地的项目呢,带着这个疑惑我打开了网页版vscode,它......
  • 纯前端也可以访问文件系统!
    前言周末逛github的时候,发现我们只需要在github域名上加上1s他就能够打开一个vscode窗口来阅读代码,比起在github仓库中查看更加方便然后我就想网页端vscode能不能打开我本地的项目呢,带着这个疑惑我打开了网页版vscode,它居然真的可以打开我本地的项目代码!难道又出了新的API让......
  • NFS:使⽤ NFS 为远程客户端提供共享文件系统
    写在前面分享一些nfs搭建的笔记考试顺便整理内容涉及nfs服务端客户端的搭建配置理解不足小伙伴帮忙指正对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的......