重读APUE(5)-文件权限

文件,目录,权限

1. 用名称打开任一个类型的文件时,对该名字中包含的每一个目录,包括它可能隐含的当前工作目录都应该具有执行权限;这就是目录执行权限通常被称为搜索位的原因;

例如:为了打开文件/usr/include/stdio.h,需要对目录/、/usr、/usr/include具有执行权限;而具有对文件本身的适当权限,取决于以何种模式打开它;

注意:对目录的读权限和执行权限的意义是不同的,读权限允许我们读目录,获得在该目录中的所有文件名的列表;而执行权限决定是否有资格搜索该目录;

2. 对于一个文件的读/写权限决定了是否能够打开文件进行读/写操作;

3. 在open函数中对一个文件指定O_TRUNC标志,必须对该文件具有写权限;

4. 为了在一个目录中创建新文件,必须对该目录具有写权限和执行权限;

5. 为了删除一个文件,必须对包含文件的目录具有写权限和执行权限;对该文本本身则不需要读、写权限;

6. 如果用exec函数执行某个文件,则必须对该文件具有执行权限,并且文件必须是一个普通文件;

内核进行权限位测试步骤

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

2. 若进程的有效用户ID等于文件的所有者ID,如果所有者适当的权限被设置,则允许访问,否则拒绝访问;

3. 若进程的有效组ID或者进程的附属组ID之一等于文件的组ID,那么如果组适当的访问权限位被设置,则允许访问,否则拒绝访问;

4. 若其他用户适当的访问权限位被设置,则允许访问,否则拒绝访问;

上述步骤,安装顺序进行测试,直到判断出权限成功或者失败为止;

 

 

本文链接:重读APUE(5)-文件权限

转载声明:转载请注明来源:Linux TCP/IP Stack,谢谢!


发表评论

电子邮件地址不会被公开。 必填项已用*标注