1.5
目录的权限与文件的权限有着很大的不同
目录权限:
r w x
可以列出该目录中的的文件 可以在该目录中创建和删除文件 可以搜索或进入该目录
如果把同组用户或其他用户针对某一目录的权限设置成 --x 那么他们将无法列出该目录中的文件,但是如果该目录中存在一个可执行的脚本或程序,只要用户知道其路径和文件名,仍然可以执行他,也就是说 用户不具有查看权限但并不妨碍他的执行。
目录的权限还有一个注意的地方,那就是目录的权限将会覆盖该目录中文件的权限,例如:
以下为test 目录的权限
drwxr--r-- 2 root root 4096 05-22 11:58 test
而而其中myfile文件的权限为
-rwxrw-rw- 1 root root 0 05-22 00:17 file
那么root组的用户将无法编辑该文件,因为它所在的目录不具有这样的权限
1.6 suid/guid
suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限,所以,如果跟用户(root)的某一脚本设置了这样的权限,那么其他的普通用户在执行它的期间也具有根(root)用户的权限。
同样的原则也是由于guid。
设置suid :
在权限为之前的一位设置成为4
设置guid
在权限为之前的一位设置成为2
两者都置位:
在权限为之前的一位设置成为4+2
如果一旦设置了这以为 那么一个s将出现自x的位置上(在设置suid或guid的同时,相应的权限位必须被设置) 例如,如果希望设置guid 那么必须让该用户组具有执行权限
例如:下面的hello文件需要设置suid 当前权限为(764) -rwxrw-r-- 1 root root 0 05-22 18:58 hello
那么在使用chmod命令是在该权限数字前加一个4 即#chmod 4764 hello
这样该文件的权限变为:-rwsrw-r-- 1 root root 0 05-22 18:58 hello 即属主权限x位变为s
把word文件设置guid 当前文件权限为(774) -rwxrwxr-- 1 root root 0 05-22 19:01 word
那么在使用chmod命令是在该权限数字前加一个2 即#chmod 2774 word
这样该文件的权限变为 :-rwxrwsr-- 1 root root 0 05-22 19:01 word 即同组用户权限x位变为s
可以使用符号来设置suid/guid
例如上面hello文件权限 rwxrw-r-- 1 root root 0 05-22 18:58 hello
那么下面命令可以设置其suid
#chmod u+s hello
如果你会看到这样的权限文件-rwSrw-r-- 1 root root 0 05-22 18:58 hello 其中S为大写
它表示相应的执行权限位未被设置 这是一种没有什么用处的suid设置 可以忽略它的存在
1.7 chown 和 chgrp
当你创建一个文件时,你就是该文件的属主。一旦你拥有某个文件,就可以改变它的所有权,把它的所有权交给另外一个etc/passwd文件中存在的合法用户,在改变一个问津的所有权时,相应的suid也将被清除。只是处于安全性的考虑。只要文件属主和系统管理员可以改变文件的所有权。一旦将文件的所有权交给另外一个用户 ,就无法再重新收回它的所有权 ,只有求助于系统管理员。
chown举例:(# chown box hello)
# ls -l
总计 8
-rwsrw-r-- 1 root root 0 05-22 18:58 hello
# chown box hello
#ls -l
总计 8
-rwxrw-r-- 1 box root 0 05-22 18:58 hello
文件hello的所有权现在由root用户交给了box用户
chgrp举例:
-rwxrw-r-- 1 box root 0 05-22 18:58 hello
#chgrp admin hello
#ls -l
-rwxrw-r-- 1 box admin 0 05-22 18:58 hello
用户box现在把hello文件所属的组由root变为admin