访问控制列表(Access Control List,ACL)其实就是一个框架结构,其目的是为了对某种访问进行控制。在我们Linux中FACL就是文件访问控制列表了,通过设置,我们可以使同一个文件,让不同的用户有不同的权限。例如我们可以让A用户对这个文件有读的权限,而让B用户对这个文件什么权限都没有。那么怎样在Linux中实现访问控制列表呢?下面就来看看吧!这里我们以前面创建的磁盘阵列/dev/md1这个文件系统。

1、挂载文件系统

文件系统在挂载的时候是不会自动启用acl功能的,需要在挂载的时候指定acl这个挂载选项。我们可以使用两种方法。一是永久性的:就是直接编辑配置文件了。另一种就是临时性的:就是使用命令重新挂载的时候指定acl选项了。
临时性:
  1. [root@stu14 data]# mount –o remount,acl /dev/md1 /data
或 
  1. [root@stu14 data]# tune2fs –o acl /dev/md1
这种方式只要重启系统或重新挂载时不指定acl选项,就会失效的;
永久性:
  1. [root@stu14 data]# vim /etc/fstab
  2. /dev/md1 /data ext3 defaults,acl 0 0
编辑配置文件保存即可,可以重新挂载使其生效。

    2、设定ACL

查看文件的acl列表的命令的使用格式: 
  1. # getfacl FIlENAME
例: 
  1. [root@stu14 data]# getfacl test
  2. # file: test
  3. # owner: root
  4. # group: magedu
  5. user::rw-
  6. group::r--
  7. other::r--
这里只有这个文件的默认权限,相信一看就可以看懂了;
设置acl列表的命令的使用格式
  1. #setfacl <mx> <u:username:mode|g:groupname> FILE
-m:用来设定某项acl的;
-x:取消某项acl的;
u:对用户进行acl设定;
g:对组进行acl设定;
例:添加acl记录 
  1. [root@stu14 data]# setfacl -m u:gentoo:rw- test
  2. [root@stu14 data]# getfacl test
  3. # file: test
  4. # owner: root
  5. # group: magedu
  6. user::rw-
  7. user:gentoo:rw-
  8. group::r--
  9. mask::rw-
  10. other::r--
是不是看到多了一行,那一行就是我们加进来的,这是好gentoo用户就可以对这个文件进行读写了。对组设置无非就是把u改成g,用户改成组就ok了,很简单的。
需要注意一点的是只有文件的属主和root用户可以设置文件的访问控制列表;
例:删除acl记录
  1. [root@stu14 data]# setfacl -x u:gentoo test
  2. [root@stu14 data]# getfacl test
  3. # file: test
  4. # owner: root
  5. # group: magedu
  6. user::rw-
  7. group::r--
  8. mask::r--
  9. other::r--
取消一项记录直接-x,u加username就行了,不用再指定权限了。

    3、设置默认acl

  1. [root@stu14 data]# setfacl –m d:u:gentoo:rw- test1/
  2. [root@stu14 data]# setfacl –m d:u:gentoo:rw- test1/
所谓的默认acl就是我们为一个目添加acl记录,在这个目录下创建的所有文件都会自动添加这个acl记录,这个实现也很简单,只要在u或g前面加d:就ok了。不过这样不长用的。

    4、递归设置acl

  1. [root@stu14 data]# setfacl –R –m u:gentoo:rw- test1/
这个所谓的递归就是这个目录中有文件有目录时,我们只为目录test1添加acl,这个目录下的所有文件都会添加这个acl记录的;

    5、权限的生效次序

首先我们再对test文件添加用户和组的acl记录,再来看看acl记录的顺序;
  1. [root@stu14 data]# setfacl -m u:gentoo:rw- test
  2. [root@stu14 data]# setfacl -m g:centos:rw- test
  3. [root@stu14 data]# getfacl test
  4. # file: test
  5. # owner: root
  6. # group: magedu
  7. user::rw-
  8. user:gentoo:rw-
  9. group::r--
  10. group:centos:rw-
  11. mask::rw-
  12. other::r--
从中我们就可以看出一些端倪了,我们添加的acl记录并不是添加在最后面的,而是有次序的。其实,从上到下就是权限的生效次序了:属主-->用户ACL-->属组-->组ACL-->其它用户。
最后说下,如果我们想将这些添加好acl的文件归档且保留这些acl信息怎么办呢?这就需要我们在归档的时候使用--acls这个选项了,因为我们使用tar归档的时候默认是不会将acl信息归档的。我想tar的使用就不用多写了吧!呵呵
一起努力!

转载于:https://blog.51cto.com/rrliang/800862

ACL-文件访问控制列表相关推荐

  1. linux怎么给目录创建acl,LINUX-ACL文件访问控制列表

    在 Linux下,对一个文件(或者资源)可以进行操作的对象被分为三类: file owner(文件的拥有者),group(组,可以不是文件拥有者所在的组), other (其他)而对于每一类别又分别定 ...

  2. acl在内核里的位置_在Linux中使用ACL(访问控制列表)保护文件/目录

    作为一个系统管理 ,我们的首要任务将是保护和未经授权的访问安全的数据. 我们都知道我们设置使用一些像CHMOD,CHOWN,chgrp命令 ......等有用的Linux命令然而,这些缺省权限设置有一 ...

  3. linux nfs acl 特定ip,技术|RHCSA 系列(七): 使用 ACL(访问控制列表) 和挂载 Samba/NFS 共享...

    在上一篇文章(RHCSA 系列(六))中,我们解释了如何使用 parted 和 ssm 来设置和配置本地系统存储. RHCSA 系列: 配置 ACL 及挂载 NFS/Samba 共享 – Part 7 ...

  4. 文件权限二(特殊权限、隐藏属性、文件访问控制列表、切换用户方式)

    文件特殊权限: SUID:将文件执行者临时获取所以者权限:U=user 用户 命令格式:chmod u + s 文件 SGID:临时获取所有组权限:G=group 组 命令格式:chmod g + s ...

  5. RHCE系列之权限管理----ACL(访问控制列表)

    我们知道,在Linux操作系统中,传统的权限管理分是以三种身份(属主.属組以及其它人)搭配三种权限(可读.可写以及可执行),并且搭配三种特殊权限(SUID,SGID,SBIT),来实现对系统的安全保护 ...

  6. setfacl 权限导出_Linux命令——setfacl 文件访问控制列表

    setfacl Linux命令--setfacl 命令名 setfacl- 设置文件访问控制列表 setfacl,顾名思义就是设置文件的ACL规则. 而Acl(Access Control List) ...

  7. setfacl 权限导出_getfacl命令查看文件访问控制列表信息setfacl命令设置文件访问控制列表...

    1.释义 getfacl命令查看文件访问控制列表信息, 2.系统帮助 2.1.getfacl命令 getfacl 2.2.51 -- get file access control lists Usa ...

  8. facl:文件访问控制列表

    假如我们有两个用户:tom and jerry,我们用tom建立一个文件 ,想让jerry也可以访问,那我们一般会给这个文件的其它人权限,但是一但给了其它人权限,那不权jerry可以访问,其它用户也可 ...

  9. 了解ACL(访问控制列表)一些简单的ACL小实验

    了解ACL(访问控制列表)一些简单的ACL小实验 一.访问控制列表(ACL) 1.1ACL工作原理 1.2ACL的两种作用 1.3访问控制列表在接口应用的方向 二.访问控制列表的处理过程 三.ACL的 ...

  10. ACL(访问控制列表)

    ACL(访问控制列表),是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃. 访问控制列表被广泛地应用于路由器和三层交换机,借助于访问控制列表,可以有效地控 ...

最新文章

  1. Oracle 字符集的查看和修改
  2. 格灵深瞳开盘破发,市值73亿,创始人曾是谷歌眼镜创始成员
  3. 每次都觉得很神奇的JS
  4. CSS的子选择器与后代选择器的区别
  5. 五、Elasticsearch中的API的简单使用(Python版本)
  6. java node websocket_nodejs怎么实现webSocket接口即时通讯服务?
  7. 菜鸟教程html图片自动播放,HTML img 标签 | 菜鸟教程
  8. oracle flash_cache,11gR2新特性之二 - Flash Cache 的SSD支持
  9. centos图形界面,vncserver
  10. 图像算法二:【图像几何变换】平移、镜像、转置、缩放、旋转、插值
  11. 有哪些指标可以描述两个图(graph)的相似度?
  12. docker命令的使用
  13. Unity实现鼠标点击指定位置导航角色
  14. winrar64位怎么破解
  15. 从奥卡姆剃刀定律再看决策树
  16. Basic SRVCC 基本SRVCC 信令流程
  17. 数据分析统计学原理第十二章:多个比例的比较、独立性及拟合优度检验 | 我的统计学原理复习日记
  18. Opencv3笔记18——重映射
  19. 工具教程第九讲:以太坊区块浏览器使用
  20. Python编程语言优点有哪些?

热门文章

  1. Apache Hadoop 2.7如何支持读写OSS
  2. jenkins 邮件配置 二 ***
  3. Android:屏幕旋转
  4. Oracle 11g密码过期问题解决方案
  5. Ruby中爬虫的实现
  6. 人工智能——面向对象表示法
  7. Using-更精彩更有用的做法-短签名
  8. 字符串操作、文件操作,英文词频统计预处理
  9. unity3D小小白之雾效
  10. Java MVC框架性能比较 jsp、struts1、struts2、springmvc3 (转帖)