Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12788
  • 博文数量: 8
  • 博客积分: 1505
  • 博客等级: 上尉
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-01 23:31
文章分类

全部博文(8)

文章存档

2011年(2)

2010年(6)

我的朋友

分类: LINUX

2011-09-15 17:07:13

目录访问权限比较复杂,阅读《Ubuntu Linux指南》与UbuntuManual,将其中的重点记录。
《Ubuntu Linux指南》中:
Execute access permission is redefined for a directory:It means that you can cd into the directory and/or examine files that you have permission to read from in the directory.
对目录的执行权限定义为:可使用cd转到该目录下,还可以查看该目录下具有读取权限的文件。
When you have only execute permission for a directory, you can use ls to list a file in the directory if you know its name. You cannot use ls without an argument to list the entire contents of the directory.
如果对某个目录仅具有可执行权限,那么使用ls可列出目录下知道名字的文件。但使用不带任何参数的ls不能将整个目录的内容列出。
When Jenny specifies the names of the files she wants information about, she is not reading new directory information but rather searching for specific information, which she is allowed to do with execute access to the directory.
如果Jenny指明了想要获取信息的文件名,那么她并不是读取新的目录信息,而是在该目录下搜索指定的信息,因为她对目录具有执行权限,所以她可以这样做。

UbuntuManual中:

每个目录均拥有下列三种权限:

  • read (r): 列出目录内容
  • write (w): 在目录中增删文件
  • execute (x): 进入目录中

在此,对目录的execute权限,不仅意味着允许查看目录下文件的内容,还允许查看文件的其它信息如文件大小、修改时间。

经过思考,认为关键问题是各个范围的区分。比如:目录内容包括哪些?普通文件或目录的类型信息、访问权限信息、所有者信息等等是它所在的目录的内容还是文件本身的内容?

经过实验,结果如下:
1、一个普通文件,名为shiyan,位于具有读、写、执行权限的目录aa下,去掉了该普通文件的所有权限,发现通过ls -l命令仍能读到该普通文件的类型信息、访问权限信息、所有者信息等等,说明这些信息不是文件本身的内容。
2、去掉对目录aa的读权限,在aa目录下,通过ls -l shiyan命令仍能读到该普通文件的类型信息、访问权限信息、所有者信息等等。这个就有点奇了,说明这些信息不是它所在的目录的内容。那它是谁的内容呢?
3、对普通文件shiyan具有读、写权限,对目录aa具有读、写权限、无执行权限,工作目录为目录aa所在的目录,命令ls -l aa,命令运行结果显示:ls:无法访问aa/shiyan: 权限不够
除了shiyan的文件名与文件类型两个信息被显示,其他信息均为问号。
4、在与3完全相同的条件下,所有针对普通文件shiyan的操作,如显示内容、更改权限、删除等操作均提示权限不够。

以上实验说明:
                         目录的执行权限首先决定能否对目录中的文件进行任何类型的访问(包括删除)(在对目录中文件有所有权限的情况下);
                         目录的执行权限还决定目录中文件的除文件名与文件类型外其他信息的可读性。

                         目录的读权限仅仅决定能不能对目录中文件的文件名与文件类型信息进行读取,而这在指明目录中文件名的情况下失效。显然,若对目录不具有读权限,则文件名生成/路径名展开失效。

补充实验:
1、对普通文件shiyan无任何权限,对目录aa具有执行权限和写权限,可以删除普通文件shiyan。由于对普通文件shiyan不具有写权限,所以命令rm shiyan会要求确认;若对普通文件shiyan具有写权限,则命令rm shiyan会直接删除。
2、对目录aa仅具有执行权限,则在目录aa下创建或删除任何文件均无权限。
阅读(932) | 评论(0) | 转发(0) |
0

上一篇:虚函数的默认参数

下一篇:没有了

给主人留下些什么吧!~~