APUE之文件访问权限总结

Linux系统下,Everything is a file,所有文件都有访问权限,而不单单是regular文件。每个文件的访问权限有9位,分成三类:用户权限位、组权限位、其他权限位,每一类有三个权限:读权限、写权限、执行权限。


一、普通(regular)文件的的访问权限

1、普通文件的读权限决定了能否打开该文件进行读操作,与open函数的O_RDONLY和O_RDWR标识相关;

2、普通文件的写权限决定了能否打开该文件进行写操作,与open函数的O_WRONLY和O_RDWR标识相关;

3、对一个文件指定open函数的O_TRUNC标志,表示文件必须具有写权限;

4、普通文件的执行权限意味着我们可以通过运行该文件开始一个进程,可用6个exec函数中的任一个来执行该文件。


二、目录(directory)文件的访问权限

1、目录文件的读权限表示我们可以获取该目录中所有文件的列表;

2、目录文件的执行权限表示我们可以通过该目录来查找一个特定的文件名,所以目录文件的执行权限位又被称为搜索位;

3、如果想在目录下创建文件,则目录必须同时具有写权限和执行权限;

4、如果想删除目录下的文件,这目录也必须同时具有写权限和执行权限,而文件本身则不需要有这些权限。


三、内核对访问权限的测试

每个进程(程序或者命令行下使用命令)打开、读写、创建或者删除文件时,内核都要进行权限测试。权限测试的顺序一般为:

1、若进程的有效用户ID是超级用户,则允许访问;

2、若进程的有效用户ID等于文件的用户ID,那么:若文件的用户权限位被适当的设置,则允许访问;

3、若进程的有效组ID或附加组ID等于文件的组ID,那么:若文件的组权限位被适当的设置,则允许访问;

4、若文件的其他权限位被适当设置,则允许访问;

5、若2成立,则不检查3、4;若3成立,则不检查4。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值