LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1119|回复: 5

[原创]用实验仔细研究目录权限位

[复制链接]
发表于 2004-11-26 14:38:53 | 显示全部楼层 |阅读模式
目录的权限位解释:rwx

x------表示目录的执行权限,更确切的说是搜索确认的权限,也就是说能确认该目录下的某个文件,若该目录的文件有w和r的权限,则可读该目录下的文件内容,修改目录下文件的内容。但无法删除该目录下的文件,因为删除目录下文件的权限首先要由目录的w权限判定,这一点我们下面会谈到。

[kiron@kiron kiron]$ ls -dl test
d--x--x--x    2 kiron    kiron        4096 11月 26 13:06 test
[kiron@kiron kiron]$ ls -l test
ls: test: 权限不够
[kiron@kiron kiron]$ ls -l test/mydate
-rw-rw-r--    1 kiron    kiron         116 11月 26 13:17 test/mydate
[kiron@kiron kiron]$ date >>./test/mydate
[kiron@kiron kiron]$ cat >>./test/mydate
[kiron@kiron kiron]$ cat ./test/mydate
五 11月 26 13:06:44 CST 2004
[kiron@kiron kiron]$

r------表示读权限,有r权限表示你可以在目录内使用ls命令读出目录内有什么文件和子目录,及文件和子目录的权限,尤其要注意的是也无法读目录内文件的内容,即便你对该文件有读的权限。单单有r权限是没有办法发挥作用的,因为r是以x--搜索文件为基础的,有了x才能有r的权限

[kiron@kiron kiron]$ ls -dl test
drw-rw-r--    2 kiron    kiron        4096 11月 26 13:06 test
[kiron@kiron test]# ls -l ./test/mydate
-rw-rw-r--    1 kiron    kiron         116 11月 26 13:17 mydate
[kiron@kiron kiron]$ chmod -w test
[kiron@kiron kiron]$ ls -dl test
dr--r--r--    2 kiron    kiron        4096 11月 26 13:06 test
[kiron@kiron kiron]$ rm ./test/mydate
rm: lstat‘./test/mydate’失败: 权限不够
[kiron@kiron kiron]$ cat ./test/mydate
cat: ./test/mydate: 权限不够
[kiron@kiron kiron]$ ls -l test/mydate
ls: test/mydate: 权限不够
[kiron@kiron kiron]$ ls -l test
ls: test/mydate: 权限不够
总用量 0

在加上x权限后如何?

[kiron@kiron kiron]$ ls -ld test
dr-xr-xr-x    2 kiron    kiron        4096 11月 26 13:06 test
[kiron@kiron kiron]$ date >>./test/mydate
[kiron@kiron kiron]$ cat ./test/mydate
五 11月 26 13:06:44 CST 2004
五 11月 26 13:10:39 CST 2004
[kiron@kiron kiron]$ ls -l test/
总用量 4
-rw-rw-r--    1 kiron    kiron         174 11月 26 13:54 mydate
[kiron@kiron kiron]$ rm ./test/mydate
rm: 无法删除‘./test/mydate’: 权限不够
[kiron@kiron kiron]$

上面可以看到,没有w权限,还有些事是不能做的,下面介绍w权限。
w------表示目录的写权限,有w权限表示你可以删除或创建目录内的文件和子目录,尤其注意的是不管目录内的文件的权限如何,都可以删除,特别的,若没有写权限,系统会让用户确认后删除。其实单独的w权限是没有任何权限的,看下例:

[kiron@kiron kiron]$ ls -dl test
d-w--w----    2 kiron    kiron        4096 11月 26 13:06 test
[kiron@kiron kiron]$ ls -l test/
ls: test/: 权限不够
[kiron@kiron kiron]$ rm ./test/mydate
rm: lstat‘./test/mydate’失败: 权限不够
[kiron@kiron kiron]$ cat ./test/mydate
cat: ./test/mydate: 权限不够
[kiron@kiron kiron]$

所以你起码要加上x权限,这样你可以删除目录内文件和子目录了

[kiron@kiron kiron]$ ls -ld test/
d-wx-wx--x    2 kiron    kiron        4096 11月 26 14:01 test/
[kiron@kiron kiron]$ rm ./test/mydate
[kiron@kiron kiron]$ date >> ./test/mydate
[kiron@kiron kiron]$ cat ./test/mydate
五 11月 26 14:02:32 CST 2004
[kiron@kiron kiron]$ ls -l test
ls: test: 权限不够
[kiron@kiron kiron]$

若再加上r权限,自然什么事都能做了,这个不用怀疑了^_^

[kiron@kiron kiron]$ chmod +x+r+w test
[kiron@kiron kiron]$ ls -l test
总用量 4
-rw-r--r--    1 root     root           29 11月 26 14:18 firstdate
[kiron@kiron kiron]$

我们要接下来看的是rw组合的权限如何:

[kiron@kiron kiron]$ ls -dl test
drw-rw-r--    2 kiron    kiron        4096 11月 26 14:18 test
[kiron@kiron kiron]$ ls -l test
ls: test/firstdate: 权限不够
总用量 0
[kiron@kiron kiron]$ cat ./test/firstdate
cat: ./test/firstdate: 权限不够
[kiron@kiron kiron]$ date >> ./test/mydate
bash: ./test/firstdate: 权限不够
[kiron@kiron kiron]$ rm ./test/firstdate
rm: lstat‘./test/firstdate’失败: 权限不够
[kiron@kiron kiron]$

注意上面的ls命令的输出:
[kiron@kiron kiron]$ ls -l test
ls: test/firstdate: 权限不够
总用量 0
和前面的ls命令的输出:
[kiron@kiron kiron]$ ls -l test/
ls: test/: 权限不够

这两者之间多了一个对目录test下的文件firstdate的权限判断,由此可以得出的结论是r对目录有读权限是要有x权限的支持,可以这么理解:r拥有对目录下每个文件和子目录读的权限,但是是由x实际去读出文件或子目录的具体内容的。另外,w权限的删除权限也因为没有了x的支持而失效了,
好了,目录的权限位的实验结束,由此可以看出目录权限位的作用了。

补充一下:rm命令的总结--根用户用rm删除文件之前都会被加以确认,若是普通用户用rm删除文件不会加以确认,但若文件没有写权限,则会被加以确认。

本文出自:http://linuxworld.hostrocket.com & www.linuxsir.cn。
发表于 2004-11-26 21:40:15 | 显示全部楼层
鼓励原创!
发表于 2004-11-26 21:50:31 | 显示全部楼层
鼓励实验!
发表于 2004-11-26 22:37:22 | 显示全部楼层
好贴收藏
发表于 2004-11-27 05:13:58 | 显示全部楼层
?驗?驗
发表于 2004-11-27 06:42:09 | 显示全部楼层
原创值得鼓励,可是文章尚未完全啊!

Including the discussions on sticky bit will be more educational.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表