免费注册 查看新帖 |

Chinaunix

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

在目录下创建文件的问题. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-27 09:58 |只看该作者 |倒序浏览
看apue的第四章, 上面说在目录下创建一个文件必须要对目录有写权限和可执行权限.
     1: 为什么需要可执行权限?   有写权限不够吗?
     2: 为什么不需要对目录有读权限?   如果要创建的文件和目录下某个文件同名呢?  
         有目录的读权限才能获得目录下的文件名列表, 没有读权限应该不能获取, 如果不能获取文件名列表,
         那怎么知道和要创建的文件是不是有同名?

论坛徽章:
0
2 [报告]
发表于 2010-12-27 10:41 |只看该作者
我和你一样只知道需要目录下创建一个文件必须要对目录有写权限和可执行权限。但是不知道为什么?占位学习。等待高手出现

论坛徽章:
0
3 [报告]
发表于 2010-12-27 11:41 |只看该作者
回复 1# zengxg14


    对于目录来说,执行权限是 进入该目录。 写权限是对该目录的更新。
    读权限是针对用户来说的。没有读权限,用户不能列入该目录下的文件。写同名文件时内核最多返回失败,内核写目录的时候已经不需要读权限了。

论坛徽章:
1
巳蛇
日期:2014-08-21 15:09:09
4 [报告]
发表于 2010-12-27 13:29 |只看该作者
这个问题推荐去看看 文件系统的 inode 以及 block文章

论坛徽章:
0
5 [报告]
发表于 2010-12-27 15:15 |只看该作者
1、对一个目录底下的任何文件作任何操作,都需要对该目录有可执行权限
我觉得可以这样理解,比如在一个目录底下写东西这个操作,可以拆分为两步,一是进入该目录下,二是进行相应写操作。这些对目录底下某文件的操作,都需要一个进入该目录的前置动作,所以都是需要x权限的。
2、经测试,没有读权限不影响向目录下写入数据,遇到同名文件,内核报错。读权限只不过是获得一个目录中的文件列表,其实就是inode map,没有这个,也一样可以进目录写的。

论坛徽章:
34
亥猪
日期:2015-03-20 13:55:11戌狗
日期:2015-03-20 13:57:01酉鸡
日期:2015-03-20 14:03:56未羊
日期:2015-03-20 14:18:30子鼠
日期:2015-03-20 14:20:14丑牛
日期:2015-03-20 14:20:31辰龙
日期:2015-03-20 14:35:34巳蛇
日期:2015-03-20 14:35:56操作系统版块每日发帖之星
日期:2015-11-06 06:20:00操作系统版块每日发帖之星
日期:2015-11-08 06:20:00操作系统版块每日发帖之星
日期:2015-11-19 06:20:00黄金圣斗士
日期:2015-11-24 10:43:13
6 [报告]
发表于 2010-12-27 16:25 |只看该作者
可以自己做下小实验么~
x 在于进行目录,要先由进入这个房间的权限,才能把东西放进去么,可以不看里面有什么;
如果目录中有同名文件,会对其尝试是否有写权限。

论坛徽章:
0
7 [报告]
发表于 2010-12-27 21:48 |只看该作者
多谢LS各位,  有了一定理解. 对这个可执行权限还是不大清楚.  "进入目录"是个什么意思呢?  比如打开常规文件, 就会有一个文件描述符, 相应的有一些结构体存储文件的相关信息.  那"进入目录"又是做了什么事?  说来说去还是对目录这东西不大了解,  还需进一步学习.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP