拆出一段,几点总结:
1、需要进入一个目录必须有x权限,表示搜索。
2、目录w权限决定目录下文件是否可以被删除,而跟文件的权限无关。
2.5 目录与文件权限
文件的权限只能由root或者文件的拥有者来改变。
其他人即使有文件的写权限,也不能改变文件的权限
但是这种情况,如果有写的权限,可以把文件copy一份作为你自己的文件
这样你就可以为所欲为了。
-rw-rw-rw- 1 test test 0 Jan 13 20:21 hehe
比如这样一个文件
[wrxu@lc tmp]$ chmod 644 hehe
chmod: changing permissions of `hehe': Operation not permitted
目录的权限跟文件的权限有些不同,所以这里花一定的篇幅来说明
希望对大家理解目录的权限有帮助。
目录的r权限,表示目录可读,上面有说到目录也是一个包含目录下文件名的文件,
这时候只能够用ls来读此目录。
只有具有x的权限,才能进入到目录,
这里的x并不是可执行,而是搜索的意思。
没有x权限的例子
[snms@matrix root]$ ls -l
drwxrw-rw- 2 root root 4096 Dec 30 08:59 tmp
[snms@matrix root]$ cd tmp
-bash: cd: tmp: Permission denied
[snms@matrix root]$ ls -l tmp
total 0
?--------- ? ? ? ? ? a
?--------- ? ? ? ? ? b
?--------- ? ? ? ? ? c
虽然snms用户可以读到tmp目录的权限,但是不能搜索到信息。
也不能进去目录。
没有r权限的例子
[snms@matrix root]$ ls -l
drwx-wx-wx 2 root root 4096 Dec 30 08:59 tmp
[snms@matrix root]$ cd tmp
[snms@matrix tmp]$ ls -l
ls: .: Permission denied
[snms@matrix tmp]$ rm a
rm: remove write-protected regular empty file `a'? n
具有了x权限,所以可以进入目录,具有了w权限,所以可以删除文件
但是没有r权限,读不了目录文件,就无法得到当前目录下的内容。
w权限就是可以创建或删除文件,
注意:删除一个文件的权限与文件本身无关
即使用户对某个目录下的文件没有写的权限,但他只要具有目录的w权限,
就可以轻易的删除此目录下的任何文件。
下面的例子:snms用户删除了root的tmp文件夹下面的写保护文件。
[snms@matrix root]$ ls -l
drwxr-xrwx 2 root root 4096 Dec 30 08:52 tmp
[snms@matrix root]$ cd tmp
[snms@matrix tmp]$ ls -l
total 12
-rw-r--r-- 1 root root 0 Dec 30 08:52 a
-rw-r--r-- 1 root root 0 Dec 30 08:52 b
-rw-r--r-- 1 root root 0 Dec 30 08:52 c
[snms@matrix tmp]$ rm *
rm: remove write-protected regular empty file `a'?y
所以目录的写权限不要轻易的给出去。
更改权限的命令chmod
chmod [u/g/o]+/-[x/w/r] file
u,g,o分别指user,group,others
+-就是加上或者去掉某种权限
或者chmod 777 file
777这个数的三位,从左到右分别表示用户,组和others
数字的意义,4表示r,2表示w,1表示x
需要什么要的权限把它加起来就可以了。
比如用户读写(r+w),组读(r),others读(r)
4+2 4 4
chmod 644 file
数字的记忆办法,都是2的*次方。权限越高,数字越小。
看一个权限的应用。
前面说了用户之间的通信,比如wall,write这类的命令
可以用mesg [ y|n ]来关闭或打开
mesg命令的实质就是对用户当前所在的终端设备的写权限的更改
首先查看test用户的终端设备
test$ who am i
test pts/1 Dec 29 19:24 (192.168.1.2)
test$ mesg
is y
test$ ls -l /dev/pts/1
crw--w---- 1 test tty 136, 1 Dec 29 19:26 /dev/pts/1
test$ mesg n
$ ls -l /dev/pts/1
crw------- 1 test tty 136, 1 Dec 29 19:26 /dev/pts/1
关掉了mesg,关掉了test用户当前所在终端设备的写的权限
这个时候用户tony就不能给test发信息了
tony$ write test
write: test has messages disabled
此时test用户自己都不能写了
test$ write tony
write: you have write permission turned off.
阅读(1466) | 评论(1) | 转发(0) |