当前位置: 首页 > 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.xdnf.cn/news/1282141.html

相关文章:

  • JS深拷贝 浅拷贝、CSS垂直水平居中
  • 计算机网络---交换机
  • 算法73. 矩阵置零
  • 正则表达式:文本模式的数学语言与编程工具
  • ​费马小定理​
  • 关于微信小程序的笔记
  • 简单Modules 的配置与管理,灵活应对多版本软件环境的需求。
  • 借助 ChatGPT 快速实现 TinyMCE 段落间距与行间距调节
  • 验证二叉搜索树
  • 【PRML】分类
  • CI/CD渗透测试靶场
  • 分享一款基于STC32G12K128单片机的螺丝机供料器控制板 ES-IO2422 S4
  • 深入解析Linux poll()系统调用
  • 内网依赖管理新思路:Nexus与CPolar的协同实践
  • 自动化备份全网服务器数据平台项目
  • 深入理解Android Kotlin Flow:响应式编程的现代实践
  • 《算法导论》第 18 章 - B 树
  • 银河通用招人形机器人强化学习算法工程师了
  • openEuler、 CentOS、Ubuntu等 Linux 系统中,Docker 常用命令总结
  • MySQL-锁
  • MySQL数据库简介
  • 安装AI高性能推理框架llama.cpp
  • AR 智能眼镜:从入门到未来
  • 5G与云计算对代理IP行业的深远影响
  • Unknown collation: ‘utf8mb4_0900_ai_ci‘
  • ROS2学习(1)—基础概念及环境搭建
  • FinQ4Cn: 基于 MCP 协议的中国 A 股量化分析
  • P2865 [USACO06NOV] Roadblocks G
  • 第2节 PyTorch加载数据
  • 3.数据类型和类型装换