免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 957 | 回复: 0
打印 上一主题 下一主题

目录权限问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-30 17:42 |只看该作者 |倒序浏览

               
我用的是FC9, 碰到一个目录权限问题:
[test@XYZ hello]$ pwd
/home/test/hello
[test@XYZ hello]$ ls -l
total 4
-rw-rw-r-- 1 test test 13 2009-10-30 02:41 test.txt
[test@XYZ hello]$ ls -ld .
drwxrwxr-x 2 test test 4096 2009-10-30 02:41 .
[test@XYZ hello]$
这个是test用户家目录下的一个文件和其所在目录的权限, /home/test的权限位是drwx------
我用xyz用户直接访问该文件, 显示“Permission denied”
[xyz@XYZ ~]$ cat /home/test/hello/test.txt              
cat: /home/test/hello/test.txt: Permission denied
为什么, 权限会有继承么??
或者, 可以从文件系统的角度来解释下为什么? 比如说 , 读一个文件的时候, 文件系统是怎么定位到这个文件的
PS, 我执行chmod og+rx /home/test后, 用xyz用户执行cat /home/test/hello/test.txt 就木问题
解答: 今天偶尔在《APUE》中译第二版的第四章(P76)发现这段解释:我们用名字(路径)打开任何一类文件时, 对该路径中包含的每一个目录, 包括它可能隐含的当前工作目录都应该具有执行权限x。 这就是为什么对于目录其执行权限位常被称为搜索位的原因。例如, 为了打开文件/usr/include/stdio.h, 需要对目录/、/usr和/usr/include具有执行权限, 然后, 需要对该文件本身的适当权限, 这取决于以何种模式打开它(只读、读-写等)
注意, 对于目录的读权限和执行权限的意义(相比其他文件)是不同的。 读权限允许我们读目录, 获得在该目录中所有文件名的列表。 当一个目录是我们要访问文件的路径名的一个组成部分时, 对该目录的执行权限使我们可以通过该目录(也就是搜索该目录, 寻找一个特定的文件名)。 引用隐含目录的另一个例子是, 如果PATH环境变量指定了一个我们不具有执行权限的目录, 那么shell绝不会在该目录下找到任何可执行文件。
进程每次打开,创建或者删除一个文件时, 内核就进行文件访问权限测试, 而这种测试可能涉及文件的所有者(st_uid和st_gid),进程的有效id(有效用户id和有效组id)以及进程的附加组id(如果支持的话)。 两个所有者id是文件的性质, 而两个有效id和附加组id则是进程的性质。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/86696/showart_2083078.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP