CatoiOS3.0权限系统设计

CatoiOS3.0权限系统设计

存储

每个文件的权限用一个int类型数组存储,每个int类型被存储到根目录的permissions文件夹内。

permissions文件夹的权限无需任何确认,永久为000000。Console.h直接通过底层代码写入和读取。

存储规则为:直接按照相对根目录存储,相当于拷贝了一份文件名对照表。

比如在happy文件夹内有一个shutdown.exe,他们应该是在permissions文件夹内是这样存储的:有一个名为happy的文件,存储happy文件夹的权限;还有一个名为happy的目录,代表着存放happy文件夹内文件的权限,里面现在应该只有一个叫shutdown.exe的文件,不过它不是一个可执行文件,而是实际happy\shutdown.exe的权限。

按位对照表

位位置 位名称 功能说明 值(十六进制) 值(二进制)
31 PERM_OWNER_READ 所有者读权限 (1=允许) 0x80000000 10000000000000000000000000000000
30 PERM_OWNER_WRITE 所有者写权限 (1=允许) 0x40000000 01000000000000000000000000000000
29 PERM_GROUP_READ 组用户读权限 (1=允许) 0x20000000 00100000000000000000000000000000
28 PERM_GROUP_WRITE 组用户写权限 (1=允许) 0x10000000 00010000000000000000000000000000
27 PERM_OTHER_READ 其他用户读权限 (1=允许) 0x08000000 00001000000000000000000000000000
26 PERM_OTHER_WRITE 其他用户写权限 (1=允许) 0x04000000 00000100000000000000000000000000
25 RESERVED 保留位 0x02000000 00000010000000000000000000000000
24 RESERVED 保留位 0x01000000 00000001000000000000000000000000
23 RESERVED 保留位 0x00800000 00000000100000000000000000000000
22 RESERVED 保留位 0x00400000 00000000010000000000000000000000
21 RESERVED 保留位 0x00200000 00000000001000000000000000000000
20 RESERVED 保留位 0x00100000 00000000000100000000000000000000
19 RESERVED 保留位 0x00080000 00000000000010000000000000000000
18 RESERVED 保留位 0x00040000 00000000000001000000000000000000
17 RESERVED 保留位 0x00020000 00000000000000100000000000000000
16 RESERVED 保留位 0x00010000 00000000000000010000000000000000
15 FLAG_IS_DIR 是否为目录 (1=目录) 0x00008000 00000000000000001000000000000000
14 FLAG_EXPLICIT 权限显式设置 (1=显式) 0x00004000 00000000000000000100000000000000
13 FLAG_READONLY 只读标志 (1=只读) 0x00002000 00000000000000000010000000000000
12 FLAG_HIDDEN 隐藏标志 (1=隐藏) 0x00001000 00000000000000000001000000000000
11 FLAG_SYSTEM 系统文件 (1=系统) 0x00000800 00000000000000000000100000000000
10 FLAG_ARCHIVE 归档标志 (1=已修改) 0x00000400 00000000000000000000010000000000
9 FLAG_INHERIT_1 继承深度高位 0x00000200 00000000000000000000001000000000
8 FLAG_INHERIT_0 继承深度低位 0x00000100 00000000000000000000000100000000
7 RESERVED 保留位 0x00000080 00000000000000000000000010000000
6 RESERVED 保留位 0x00000040 00000000000000000000000001000000
5 RESERVED 保留位 0x00000020 00000000000000000000000000100000
4 RESERVED 保留位 0x00000010 00000000000000000000000000010000
3 RESERVED 保留位 0x00000008 00000000000000000000000000001000
2 RESERVED 保留位 0x00000004 00000000000000000000000000000100
1 RESERVED 保留位 0x00000002 00000000000000000000000000000010
0 RESERVED 保留位 0x00000001 00000000000000000000000000000001
posted @ 2025-08-15 17:14  mcr130102  阅读(34)  评论(0)    收藏  举报
请不要抄袭任何人的博客,这是对一名开发者最基本的尊重。