linux基础09 | 权限控制函数
权限控制
都说Linux之下皆文件。
linux 在访问文件时,根据不同的用户,组,文件所有者的来设定访问权限,保护文件安全
文件类型权限
分析
第0组
- d 类型(文件夹
第一组 表示该文件的所有组权限
r read (代表值为4
w write (2
x 执行权限 (1
- S 提权和降权
- s 修改我当前的组
- t 仅所有者可删除权限
第二组 同组用户的权限
第三组 其他人,公共权限
而数字为,硬链接数
在linux中常常使用chmod 修改文件的权限
获取用户
在执行权限相关函数的第一步,
当然是需要知道当前有效的用户权限
有效用户识别码/有效组别
uid_t geteuid(void);
uid_t getgid(void);
真实用户识别码,/有效组别
uid_t getuid(void);
uid_t getgid(void);
有效用户表示的是这个进程启动时,是哪个用户启动的。
真实用户实际上就是这个进程实际上当下拥有的用户权限。
实际上我们尝尝用真实用户使用权限控制,而有效用户一般只是用来检测是否是,作为判断依据。
- 返回值为 0 表示 ROOT 是最高!
- 1000~10000(不包含10000)系统级别,
- 10000 以上 其他的比如网络上的用户
- 安卓的比较严格,每个应用都会分配一个用户
测试发现捏:只有ROOT 的用户文件执行的进程才有更改和提权的函数的能力。其他用户,即使用chmod 7777拉满 (就算是sudo) 修改文件权限,进程运行时也没有办法修改进程的用户权限(就是使用set类的权限函数全部返回-1)。
测试代码如下:
1 |
|
总结,涉及提权的函数 的程序 ,都用root权限,要么将程序所有转到root用户下(sudo chown root), 要么用root权限执行。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 icrad的博客!