Linux下的ACL权限管理

Linux ACL 介绍:
   ACL 是 Access Control List 缩写,是普通权限(所有者,所有组,其他用户)的补充.
如果要使用ACL权限.必须要有分区系统的支持,ReiserFS, EXT2/EXT3, JFS, XFS等文件系统都是默认就支持ACL权限的.不需要特地开启此功能,由于默认就支持所以可以直接使用命令配置权限就OK啦.不过在 CentOS 则默认不支持 ACL,需要另行开启.
  
开启ACL:
   现在假设我们有一个独立的分区并且被挂载到了/engine目录上.那么我们就可以使用以下命令来开启这个分区的ACL功能.

[root@localhost /]#mount /dev/hda5 /engine -o remount,acl
上面的命令其实就可以让/engine所挂载的分区支持ACL了,但是千万不要忘了,mount命令所做的操作在系统重新启动后就会失效.所以我们还需要修改/etc/fstab文件.
[root@localhost /]#vi /etc/fstab
/dev/hda5 /engine ext3 defaults,acl 0 0
/etc/fstab里面可能会有好多行,不过没关系,我们只需要把这一行按照自己的分区情况写到最后一行就好了.


设置与查看ACL权限:
getfacl:用于查看某个文件和目录的ACL权限.
用法如下,假设我们有一个文件名为china.txt并且设置好了ACL权限,那么就可以使用以下命令来查看china.txt的ACL权限:
[root@localhost /]#getfacl china.txt
# file: china.txt    #文件名
# owner: root        #文件所有者和ls -l看到的是一样的.
# group: root        #文件所有组和ls -l看到的是一样的. 
user::rwx            #所有者权限和ls -l看到的是一样的.
user:yue:r-x         #这里就是ACL为yue这个用户单独设置的权限了.
group::r--           #所有组权限和ls -l看到的是一样的. 
mask::r-x            #权限掩码,正对目录有效,下级文件会继承这个权限.
other::r--           #其他用户权限和ls -l看到的是一样的.
 
setfacl:此命令是用于设置ACL权限的命令,它有几个主参数
-m :设置文件ACL的u,g,o权限.
-x :删除文件ACL的u,g,o权限.
-b :移除所有的 ACL 参数
-k :移除预设权限.
-R :递归设置权限.
-d :设置预设权限.

举例:
[root@www ~]# touch china.txt                 
[root@www ~]# ll china.txt                    
-rw-r--r-- 1 root root 0 Feb 27 13:28 china.txt
[root@www ~]# setfacl -m u:yue:rx china.txt   
[root@www ~]# ll acl_test1                    

你可能感兴趣的:(linux,Engine,用户,系统,的)