secce 发表于 2018-5-19 13:22:14

Linux的文件权限管理

  Linux作为一种多用户操作系统有着严格的权限控制体系。其主要包括文件的基本权限,文件访问控制列表(FACL)以及文件的隐藏,现在来分别讨论它们之间的关系。说明:本文中的演示基于CentOS6.5,在Linux其他发行版上操作可能有所区别。

  一、文件的基本权限
  用户对于文件的基本权限包括(r,w,x),其对普通文件与目录的含义又有所不同
  文件:
            r: 可以使用内容查看类的命令来显示其相关内容;
            w: 可以使用编辑器修改其内容,但并不具备删除文件本身的权限
            x: 可以将其发起一个进程;
      目录:
            r: 可以使用ls命令查看目录内容的文件信息;
            w: 可以创建、删除目录内的文件;
            x: 可以使用ls -l命令查看目录内容的文件信息,并且可以使用cd命令切换此目录为工作目录;
对于文件的操作实例:

$ ls -l a.txt
-rw-r--r-- 1 root root 7 8月24 16:07 a.txt
$ cat a.txt
qweqw
$ ls -l a.txt
-rw-r--rw- 1 root root 7 8月24 16:07 a.txt
$ rm a.txt
rm: 无法删除"a.txt": 权限不够对于目录的操作实例:

$ ls -dl test/
drwxr-xr-- 2 root root 4096 8月24 16:07 test/
$ cd test/
-bash: cd: test/: 权限不够
$ ls -dl test/
drwxr-xr-x 2 root root 4096 8月24 16:07 test/
$ cd test/   
$ ls
a.txt
$ rm a.txt
rm: 无法删除"a.txt": 权限不够
$ ls -al
总用量 12
drwxr-xrwx2 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
$ rm a.txt  二、文件访问控制列表(FACL)
  ACL是Access Control List的缩写。主要的目的是提供传统的owner、group、others的r、w、x权限室外的具体权限设置ACL可以针对单一用户、单一文件或目录进行授权。
  例如下面的实例,我们想让mylinux对文件a.txt具有读权限,但是又不想其成为a.txt的属主或者将mylinux加入root用户组中,此时就使用到了facl。当文件具有额外的权限时,使用ls可以看到权限后面有+号表示。
$ ls -l a.txt   
-rw-r----- 1 root root 7 8月24 16:48 a.txt
$ cat a.txt
cat: a.txt: 权限不够
$ ls -l a.txt
-rw-r-----+ 1 root root 7 8月24 16:48 a.txt
$ cat a.txt
asdas
$ 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能删除。
  分别对其实例演示:
$ ls -l /bin/cat
-rwxr-xr-x. 1 root root 45224 11月 22 2013 /bin/cat
$ ls -l a.txt
-rw-r----- 1 root root 7 8月24 16:48 a.txt
$ cat a.txt
cat: a.txt: 权限不够
$ ls -l /bin/cat
-rwsr-xr-x. 1 root root 45224 11月 22 2013 /bin/cat
$ cat a.txt
asdas

$ ls -l /bin/cat      
-rwxr-xr-x. 1 root root 45224 11月 22 2013 /bin/cat
$ ls -l a.txt         
-rw-r----- 1 root root 7 8月24 16:48 a.txt
$ cat a.txt
cat: a.txt: 权限不够
$ ls -l /bin/cat
-rwxr-sr-x. 1 root root 45224 11月 22 2013 /bin/cat
$ cat a.txt      
asdas
# ls -dl b               
drwxr-xr-x 2 mylinux mylinux 4096 8月24 17:30 b
# chmod g+s b
# ls -dl b   
drwxr-sr-x 2 mylinux mylinux 4096 8月24 17:30 b
# cd b/
# touch test.txt
# ls -l
总用量 0
-rw-r--r-- 1 root mylinux 0 8月24 17:32 test.txt  

  

  

  

  
页: [1]
查看完整版本: Linux的文件权限管理