当前位置: 首页 > news >正文

Android 16 的用户和用户组定义

1 AID的定义

Android 16的用户和用户组(AID,Android ID)定义的目录:/system/core/libcutils/include/private/android_filesystem_config.h

其中libcutils库是Android底层C库,提供基础的函数接口和工具。主要包含内存管理,日志记录,IPC,硬件交互,文件系统操作(/proc和/sys文件系统下的读写,属性服务等)。

1.1 常见的AID

#pragma once#define AID_ROOT 0 /* traditional unix root user */#define AID_SYSTEM 1000 /* system server */#define AID_ADB 1011             /* android debug bridge (adbd) */#define AID_KEYSTORE 1017        /* keystore subsystem */#define AID_USB 1018             /* USB devices */#define AID_LOGD 1036            /* log daemon */#define AID_LMKD 1069            /* low memory killer daemon */#define AID_APP 10000       /* TODO: switch users over to AID_APP_START */
#define AID_APP_START 10000 /* first app user */
#define AID_APP_END 19999   /* last app user */

root用户的UID是0,与传统Unix的root用户兼容。root拥有最高权限,通常只有init,adbd,recovery等极少数关键进程以root身份运行。

system用户的UID是1000,主要用于运行system_server进程,该进程承载了Android framework的核心服务,例如AMS,PMS,WMS等。

AID_APP用户的UID从10000开始,用于第三方应用程序UID(User ID)的分配,每个应用程序在安装的时候都会分配一个唯一的UID。

示例:应用 UID 的命名规则:u0_aN ,表示注册用户的第N个应用

UIDAndroid 用户名表示含义
10000u0_a0第一个应用(UID 10000)
10123u0_a123第 124 个应用(UID = 10000 + 123)
19999u0_a9999最后一个标准应用 UID

2 Linux的文件权限管理

Linux的文件权限主要基于三种角色(所有者 user-u,组 group-g,其他人 others-o)和三种权限类型(read-r,write-w,execute-x)。

2.1 使用rwx表示权限

权限可以通过 rwx 字符串表示,每个字符代表一种权限类型,每三个字符为一组,分别代表读、写和执行;一共分为三组,分别对应所有者、组和其他人:

  • r - 读取权限
  • w - 写入权限
  • x - 执行权限
  • - - 如果某个位置没有对应的权限,则用 - 占位

eg: rwxr-xr-- 可以分解为:

  • rwx 对应所有者的读、写和执行的全部权限;
  • r-x 对应组的读取和执行权限,但没有写入权限;
  • r-- 对应其他人的只读权限。

2.2 使用数字表示权限

使用三位数(对于文件)或四位数(对于特殊权限如 SUID, SGID, Sticky bit)。每一位数字代表一组权限,并且基于二进制计算得出,即按照rwx的顺序,如果有对应的权限,即表示1,没有则为0,因此:

  • r=4,w=2,x=1
  • 权限值相加得到最终的数字表示形式

例如:

  • 755 相当于 rwxr-xr-x
    • 7 (rwx) = 4 + 2 + 1,即111,所有者有全部权限
    • 5 (r-x) = 4 + 0 + 1,即101,所在组有读和执行的权限
    • 5 (r-x) = 4 + 0 + 1,即101,所在组有读和执行的权限
  • 644 相当于 rw-r--r--
    • 6 (rw-) = 4 + 2 + 0,即110
    • 4 (r--) = 4 + 0 + 0,即100
    • 4 (r--) = 4 + 0 + 0,即100

2.3 使用ls -al 查看权限

-rw-r--r-- 1 user group 4096 Jan 1 12:34 example.txt
  • - 表示这是一个普通文件。
  • rw- 表示文件的所有者有读取和写入权限,但没有执行权限。
  • r-- 表示文件所属组成员只有读取权限。
  • r-- 表示其他用户也只有读取权限。
drwxr-xr-x 2 user group 4096 Jan 1 12:34 mydirectory
  • d 表示这是一个目录。
  • rwx 表示目录的所有者可以列出目录中的文件名(读取),创建或删除文件(写入),以及进入目录(执行)。
  • r-x 表示目录所属组成员可以列出目录中的文件名(读取)和进入目录(执行),但不能创建或删除文件(无写入权限)。
  • r-x 表示其他用户也可以列出目录中的文件名和进入目录,但不能创建或删除文件。

2.4 使用chmod修改权限

chmod u+x,g+w,o-r aa.txt
  • +:表示增加权限;-:表示移除权限
  • 给所有者添加aa.txt文件的执行权限,给组增加写权限,移除其他用户的读权限。
chmod 755 filename
  • 使用数字表示权限
  • 755 分别代表了所有者的权限(读+写+执行=7,即111),组和其他人的权限(读+执行=5,即101)
http://www.dtcms.com/a/325222.html

相关文章:

  • RabbitMQ 声明队列和交换机详解
  • 飞算JavaAI vs 传统开发:效率与质量的双重突破
  • MLAG双活网络妙招:BGP + 静态VRRP实现智能负载均衡
  • 新出Hi3591BV100 AI处理器
  • Agent用户体验设计:人机交互的最佳实践
  • 【前端基础】16、结构伪类(注:粗略说明)
  • 卫星授时原理详解
  • 模考50题卷一 05
  • 《算法导论》第 19 章 - 斐波那契堆
  • 【Node.js从 0 到 1:入门实战与项目驱动】1.4 Node.js 的发展与生态(历史版本、LTS 版本、npm 生态系统)
  • Apache RocketMQ:消息可靠性、顺序性与幂等处理的全面实践
  • 使用docker compose 部署dockge
  • Nmap 渗透测试弹药库:精准扫描与隐蔽渗透技术手册
  • 心理咨询|学生心理咨询评估系统|基于Springboot的学生心理咨询评估系统设计与实现(源码+数据库+文档)
  • CSS accent-color:一键定制表单元素的主题色,告别样式冗余
  • GSON 框架下百度天气 JSON 数据转 JavaBean 的实战攻略
  • 基于 Spring Boot 的登录功能实现详解
  • 基于飞算JavaAI的日志监测系统开发实践:从智能生成到全链路落地
  • 34-Hive SQL DML语法之查询数据-3
  • <typeAliases>
  • Django路由学习笔记
  • word格式设置-论文写作,样式,字号等
  • 在Debian上安装MySQL
  • java设计模式之开闭原则使用举例
  • 5种无需USB线将照片从手机传输到笔记本电脑的方法
  • Linux 流编辑器 sed 详解
  • 实体瘤疗效评估标准
  • 图像打标工具/方法的分类和特点说明
  • Launcher3启动
  • Ansys Mechanical中的声学分析