Linux特殊权限

来源:互联网 发布:淘宝列表调成大图 编辑:程序博客网 时间:2024/06/08 23:55

1、基本权限三种
(1)r (read) 读

针对目录,有读(r)权限就代表能对此目录有列表功能,就是可以执行ls命令进行查看,另外还有cp的功能。
针对文件,有读(r)权限就代表能对此文件有阅读功能,可以通过cat等命令查看文件内容。

(2)w (write) 写
针对目录,有写(w)权限就代表着在此目录下创建文件和目录,可以通过touch,mkdir等命令创建文件和目录,另外还可以删除此目录下的文件。
针对文件,有写(w)权限就代表着对此文件可以写入新的内容和修改文件内容。

(3)x (execute) 执行
针对目录,有执行(x)权限就代表能进入此目录,利用cd等命令进入此目录
针对文件,有执行(x)权限就代表可以执行此文件。

对于目录总结而言

对于目录来说,执行位的作用是控制能否进入或者通过该目录,而不是控制能否列出它的内容。读取位和执行位的组合的作用才是控制是否列出目录中的内容。写入位和执行位的组合则是允许在目录中创建,删除,和重命名文件。

SGID即Set GID的缩写,它出现在文件所属组权限的执行位上面,它对普通二进制文件和目录都有效。当它作用于普通文件时,和SUID类似,在执行该文件时,用户将获得该文件所属组的权限。当SGID作用于目录时,意义就非常重大了。当用户对某一目录有写和执行权限时,该用户就可以在该目录下建立文件,如果该目录用SGID修饰,则该用户在这个目录下建立的文件都是属于这个目录所属的组。

1、如果在一个目录上设置了sticky特殊权限,那么就只有文件的所有者和root用户才可以删除该目录中的文件,而不会理会group和other的写权限

查看/tmp这个目录

shiyanlou:~/ $ ls -dl /tmp                                            [1:06:25]
drwxrwxrwt 8 root root 4096 Dec  3 01:02 /tmp

这个目录是有sticky权限的,在这个文件中我一shiyanlou用户创建一个文件

shiyanlou:/tmp/ $ touch xxx.txt                                       [1:10:35]
shiyanlou:/tmp/ $ ls                                                  [1:10:45]
ctags1510920869846  ctags1511014240315  ctags1511095395081
ctags1510920929826  ctags1511014300310  ctags1511095564982
ctags1510969795593  ctags1511017088746  ctags1511095624987
ctags1510969855576  ctags1511017148738  ctags1511095684987
ctags1510970028303  ctags1511018437887  ctags1511164532977
ctags1510971931471  ctags1511018497861  ctags1511178698377
ctags1510972417627  ctags1511018557873  ctags1511178758372
ctags1510981617875  ctags1511019193940  ctags1511184935566
ctags1511008262151  ctags1511019253926  ctags1511184995542
ctags1511008362391  ctags1511020388972  hsperfdata_root
ctags1511009230201  ctags1511094572061  hsperfdata_shiyanlou
ctags1511010970012  ctags1511094632051  mozilla_shiyanlou0
ctags1511011029946  ctags1511094845740  ssh-HWuotM6QftqZ
ctags1511013381971  ctags1511095275092  xxx.txt
ctags1511013441956  ctags1511095335081

shiyanlou:/tmp/ $ ll xxx.txt                                          [1:10:47]
-rw-rw-r-- 1 shiyanlou shiyanlou 0 Dec  3 01:10 xxx.txt

为其他用户添加写权限

shiyanlou:/tmp/ $ chmod o+w xxx.txt                                   [1:11:20]
shiyanlou:/tmp/ $ ll xxx.txt                                          [1:11:38]
-rw-rw-rw- 1 shiyanlou shiyanlou 0 Dec  3 01:10 xxx.txt
切换到其他用户:lifuyong

shiyanlou:/tmp/ $ su lifuyong                                         [1:11:42]
Password:
lifuyong@3e784d303dbe:/tmp$ rm -f xxx.txt
rm: cannot remove 'xxx.txt': Operation not permitted

我们发现虽然lifuyong这个用户拥有此文件的写权限是可以删除此文件的,但是此目录是设置了sticky权限的,印证了上述说法。


2、SGID即Set GID的缩写,它出现在文件所属组权限的执行位上面,它对普通二进制文件和目录都有效。当它作用于普通文件时,和SUID类似,在执行该文件时,用户将获得该文件所属组的权限。当SGID作用于目录时,意义就非常重大了。当用户对某一目录有写和执行权限时,该用户就可以在该目录下建立文件,如果该目录用SGID修饰,则该用户在这个目录下建立的文件都是属于这个目录所属的组。

这个可以达到群组成员共享文件的作用,但是群组中某个成员所创建的文件可能被其他成员所删除。这个时候就可以添加sticky权限了,文件可共享,但是删除只能是root用户和文件所有者。


原创粉丝点击