Linux作为一种多用户操作系统有着严格的权限控制体系。其主要包括文件的基本权限,文件访问控制列表(FACL)以及文件的隐藏,现在来分别讨论它们之间的关系。说明:本文中的演示基于CentOS6.5,在Linux其他发行版上操作可能有所区别。
一、文件的基本权限
用户对于文件的基本权限包括(r,w,x),其对普通文件与目录的含义又有所不同
文件:
r: 可以使用内容查看类的命令来显示其相关内容;
w: 可以使用编辑器修改其内容,但并不具备删除文件本身的权限
x: 可以将其发起一个进程;
目录:
r: 可以使用ls命令查看目录内容的文件信息;
w: 可以创建、删除目录内的文件;
x: 可以使用ls -l命令查看目录内容的文件信息,并且可以使用cd命令切换此目录为工作目录;
对于文件的操作实例:
[mylinux@mylinux test]$ ls -l a.txt -rw-r--r-- 1 root root 7 8月 24 16:07 a.txt [mylinux@mylinux test]$ cat a.txt qweqw [mylinux@mylinux test]$ ls -l a.txt -rw-r--rw- 1 root root 7 8月 24 16:07 a.txt [mylinux@mylinux test]$ rm a.txt rm: 无法删除"a.txt": 权限不够
对于目录的操作实例:
[mylinux@mylinux home]$ ls -dl test/ drwxr-xr-- 2 root root 4096 8月 24 16:07 test/ [mylinux@mylinux home]$ cd test/ -bash: cd: test/: 权限不够 [mylinux@mylinux home]$ ls -dl test/ drwxr-xr-x 2 root root 4096 8月 24 16:07 test/ [mylinux@mylinux home]$ cd test/ [mylinux@mylinux test]$ ls a.txt [mylinux@mylinux test]$ rm a.txt rm: 无法删除"a.txt": 权限不够 [mylinux@mylinux test]$ ls -al 总用量 12 drwxr-xrwx 2 root root 4096 8月 24 16:07 . drwxr-xr-x. 7 root root 4096 8月 24 16:06 .. -rw-r--rw- 1 root root 7 8月 24 16:07 a.txt [mylinux@mylinux test]$ rm a.txt
二、文件访问控制列表(FACL)
ACL是Access Control List的缩写。主要的目的是提供传统的owner、group、others的r、w、x权限室外的具体权限设置ACL可以针对单一用户、单一文件或目录进行授权。
例如下面的实例,我们想让mylinux对文件a.txt具有读权限,但是又不想其成为a.txt的属主或者将mylinux加入root用户组中,此时就使用到了facl。当文件具有额外的权限时,使用ls可以看到权限后面有+号表示。
[mylinux@mylinux test]$ ls -l a.txt -rw-r----- 1 root root 7 8月 24 16:48 a.txt [mylinux@mylinux test]$ cat a.txt cat: a.txt: 权限不够 [mylinux@mylinux test]$ ls -l a.txt -rw-r-----+ 1 root root 7 8月 24 16:48 a.txt [mylinux@mylinux test]$ cat a.txt asdas [mylinux@mylinux test]$ getfacl a.txt # file: a.txt # owner: root # group: root user::rw- user:mylinux:r-- group::r-- mask::r-- other::---
三、文件的特殊权限位
除了上述权限以外,文件还具有特殊权限位SUID以及SGID。当在团队开发时,各成员在一个工作目录开发时,我们希望可以看到彼此的内容,但又不希望被对方修改乃至恶意删除时。这两个权限位就显示了作用。
SUID:
SUID权限仅对二进制程序有效,执行者需要对该程序具有可执行权限,本权限仅有执行该程序的过程中有效,执行者将具有该程序所有者(owner)的权限。
SGID设置于文件:
可以针对文件或者目录设置。SGID对二进制程序有用,执行者对该程序来说,需要有可执行的权限,执行者执行的过程中将获得该程序用户组的支持。
SGID设置于目录:
用户对此目录有r与x的权限时,该用户能进入此目录,用户在此目录下的有效用户组将变成该目录的用户组;若用户在此目录下具有w权限,则用户创建的新文件的用户组与此目录用户组相同。
SBIT(Sticky)只对目录有效:
目录加上此权限时,用户在此文件中创建的文件或目录仅有自己或root能删除。
分别对其实例演示:
[mylinux@mylinux test]$ ls -l /bin/cat -rwxr-xr-x. 1 root root 45224 11月 22 2013 /bin/cat [mylinux@mylinux test]$ ls -l a.txt -rw-r----- 1 root root 7 8月 24 16:48 a.txt [mylinux@mylinux test]$ cat a.txt cat: a.txt: 权限不够 [mylinux@mylinux test]$ ls -l /bin/cat -rwsr-xr-x. 1 root root 45224 11月 22 2013 /bin/cat [mylinux@mylinux test]$ cat a.txt asdas [mylinux@mylinux test]$ ls -l /bin/cat -rwxr-xr-x. 1 root root 45224 11月 22 2013 /bin/cat [mylinux@mylinux test]$ ls -l a.txt -rw-r----- 1 root root 7 8月 24 16:48 a.txt [mylinux@mylinux test]$ cat a.txt cat: a.txt: 权限不够 [mylinux@mylinux test]$ ls -l /bin/cat -rwxr-sr-x. 1 root root 45224 11月 22 2013 /bin/cat [mylinux@mylinux test]$ cat a.txt asdas [root@mylinux test]# ls -dl b drwxr-xr-x 2 mylinux mylinux 4096 8月 24 17:30 b [root@mylinux test]# chmod g+s b [root@mylinux test]# ls -dl b drwxr-sr-x 2 mylinux mylinux 4096 8月 24 17:30 b [root@mylinux test]# cd b/ [root@mylinux b]# touch test.txt [root@mylinux b]# ls -l 总用量 0 -rw-r--r-- 1 root mylinux 0 8月 24 17:32 test.txt
本文转自 梦想成大牛 51CTO博客,原文链接:http://blog.51cto.com/yinsuifeng/1842118,如需转载请自行联系原作者