配置 Linux 的访问控制列表(ACL)

配置 Linux 的访问控制列表(ACL)

使用拥有权限控制的Liunx,工作是一件轻松的任务。它可以定义任何user,group和other的权限。无论是在桌面电脑或者不会有很多用户的虚拟Linux实例,或者当用户不愿意分享他们之间的文件时,这样的工作是很棒的。然而,如果你是在一个大型组织,你运行了NFS或者Samba服务给不同的用户,然后你将会需要灵活的挑选并设置很多复杂的配置和权限去满足你的组织不同的需求。

Linux(和其他Unix等POSIX兼容的操作系统)有一种被称为访问控制列表(ACL)的权限控制方法,它是一种权限分配之外的普遍范式。例如,默认情况下你需要确认3个权限组:owner、group和other。而使用ACL,你可以增加权限给其他用户或组别,而不单只是简单的"other"或者是拥有者不存在的组别。可以允许指定的用户A、B、C拥有写权限而不再是让他们整个组拥有写权限。

ACL支持多种Linux文件系统,包括ext2, ext3, ext4, XFS, Btfrs, 等。如果你不确定你的文件系统是否支持ACL,请参考文档。

在文件系统使ACL生效

首先,我们需要安装工具来管理ACL。

Ubuntu/Debian 中:


  1. $ sudo apt-get install acl

CentOS/Fedora/RHEL 中:


  1. # yum -y install acl

Archlinux 中:


  1. # pacman -S acl

出于演示目的,我将使用ubuntu server版本,其他版本类似。

安装ACL完成后,需要激活我们磁盘分区的ACL功能,这样我们才能使用它。

首先,我们检查ACL功能是否已经开启。


  1. $ mount

你可以注意到,我的root分区中ACL属性已经开启。万一你没有开启,你需要编辑/etc/fstab文件,在你需要开启ACL的分区的选项前增加acl标记。

现在我们需要重新挂载分区(我喜欢完全重启,因为我不想丢失数据),如果你对其它分区开启ACL,你必须也重新挂载它。


  1. $ sudo mount / -o remount

干的不错!现在我们已经在我们的系统中开启ACL,让我们开始和它一起工作。

ACL 范例

基础ACL通过两条命令管理:setfacl用于增加或者修改ACL,getfacl用于显示分配完的ACL。让我们来做一些测试。

我创建一个目录/shared给一个假设的用户,名叫freeuser


  1. $ ls -lh /

我想要分享这个目录给其他两个用户test和test2,一个拥有完整权限,另一个只有读权限。

首先,为用户test设置ACL:


  1. $ sudo setfacl -m u:test:rwx /shared

现在用户test可以随意创建文件夹,文件和访问在/shared目录下的任何地方。

现在我们增加只读权限给用户test2:


  1. $ sudo setfacl -m u:test2:rx /shared

注意test2读取目录需要执行(x)权限

让我来解释下setfacl命令格式:

  • -m 表示修改ACL。你可以增加新的,或修改存在的ACL
  • u: 表示用户。你可以使用 g 来设置组权限
  • test 用户名
  • :rwx 需要设置的权限。

现在让我向你展示如何读取ACL:


  1. $ ls -lh /shared

你可以注意到,正常权限后多一个+标记。这表示ACL已经设置成功。要具体看一下ACL,我们需要运行:


  1. $ sudo getfacl /shared

最后,如果你需要移除ACL:


  1. $ sudo setfacl -x u:test /shared

如果你想要立即擦除所有ACL条目:


  1. $ sudo setfacl -b /shared

最后,在设置了ACL文件或目录工作时,cp和mv命令会改变这些设置。在cp的情况下,需要添加“p”参数来复制ACL设置。如果这不可行,它将会展示一个警告。mv默认移动ACL设置,如果这也不可行,它也会向您展示一个警告。

总结

使用ACL让在你想要分享的文件上拥有更多的能力和控制,特别是在NFS/Samba服务。此外,如果你的主管共享主机,这个工具是必备的。

原文发布时间:2014-10-07

本文来自云栖合作伙伴“linux中国”

时间: 2024-12-23 18:26:18

配置 Linux 的访问控制列表(ACL)的相关文章

RHCSA 系列(七): 使用 ACL(访问控制列表) 和挂载 Samba/NFS 共享

在上一篇文章(RHCSA 系列(六))中,我们解释了如何使用 parted 和 ssm 来设置和配置本地系统存储. RHCSA 系列: 配置 ACL 及挂载 NFS/Samba 共享 – Part 7 我们也讨论了如何创建和在系统启动时使用一个密码来挂载加密的卷.另外,我们告诫过你要避免在挂载的文件系统上执行危险的存储管理操作.记住了这点后,现在,我们将回顾在 RHEL 7 中最常使用的文件系统格式,然后将涵盖有关手动或自动挂载.使用和卸载网络文件系统(CIFS 和 NFS)的话题以及在你的操作

编程实现遍历ACL访问控制列表检查进程访问权限

阅读本文的朋友需要对Windows访问控制模型有初步的了解,了解Token(访问令牌),ACL(访问控制列表),DACL(选择访问控制列表),ACE(访问控制列表项)等与访问控制模型相关的名词含义及之间的关系,当然我也会在文中简要科普一下ACM. 写这篇文章的目的主要是最近在写一个Win下本地提权的东西,涉及到了对ACL的操作,以前对ACL总是避而远之,Windows访问控制模型很复杂很头疼一个API会牵出一大把初始化要用的API.毕竟涉及到用户访问的安全,肯定不能让编程人员随意更改这些机制,复

在路由器上配置自反访问控制列表

自反访问列表会根据一个方向的 访问控制列表,自动创建出一个反方向的控制列表,是和原来的控制列表-IP的源地址和目的地址颠倒,并且源端口号和目的端口号完全相反的一个列表. 那么如何在路由器上完成自反访问控制列表的配置呢?下面我们开始逐步进行:注意必须是内部发起的!用命名的ACL做.不是很好理解,看个例子吧.先看下面的:ipaccess-listextendedabc denyicmpany192.168.1.00.0.0.255 permitipanyany exit ints0/0 ipacce

在路由器上配置动态访问控制列表

通过配置动态 访问控制列表,可以进行哪些操作呢? 那么要如何进行操作呢?文章给出了详细的配置步骤,同时附有配置命令和注意事项.这种ACL是基于lock-and-key的,动态acl平时是不生效的,只用当条件触发时才生效. 例如:在某台路由器上我进行了 如下配置: username netdigedu password 123username netdigedu autocommand access-enable host time 5line vty 0 4login local同时配置一个动态

在三层交换机上如何配置访问控制列表?进入到interface fa0/2后该怎么做?

问题描述 在三层交换机上如何配置访问控制列表?进入到interface fa0/2后该怎么做? 在三层交换机上如何配置访问控制列表?求解.进入到interface fa0/2后该怎么做? 解决方案 http://wenku.baidu.com/link?url=Gr9SaIT2HDgogf9dH1r-XrYrl6_Q56GvcLD8b3cLXnAaKd1Xw6tIoCUwIyaS4fnqh-v2UcPNasJ-YM0lFG5VDXsbyMLjN04KTwd3TCRrFau

网络题:ACL访问控制列表的实现

题目需求: 首先给4台PC 配上ip地址 这里基本都会 不多讲解 列表的实现-"> 然后做vlan划分 0和1 划分到vlan2 里 pc2和3 划分到vlan3里 直接上图 我就不写步骤了.然后我们做单臂路由,有的同学不会,我前面的文档有专门的 单臂路由和vlan'的文章,今天主要acl访问控制列表.

ACM(访问控制模型),Security Identifiers(SID),Security Descriptors(安全描述符),ACL(访问控制列表),Access Tokens(访问令牌)

对于<windows核心编程>中的只言片语无法驱散心中的疑惑.就让MSDN中的解释给我们一盏明灯吧.如果要很详细的介绍,还是到MSDN仔细的看吧,我只是大体用容易理解的语言描述一下.   windows的安全访问控制(ACM,access control mode)是由两部分组成的.一个是访问令牌(access tokens),另一个是安全描述符(security identifiers).   访问令牌是欲进行访问的进程使用的表明自己身份和特权的信息数据. 安全描述符是欲被访问的安全对象的相

三层交换机访问控制列表怎么配置

问题描述 三层交换机访问控制列表怎么配置 ZJL>en ZJL>en ZJL#conf t Enter configuration commands, one per line. End with CNTL/Z. ZJL(config)#access-list 1 permit host 192.168.50.4 ZJL(config)#access-list 1 deny any ZJL(config)#interface fa0/2 ZJL(config-if)#ip access-lis

部署Csico三层交换机专家级访问控制列表的配置案例实战

我们从事的信息安全方面的工作,最近怀疑有人可能利用一些工具进行网络攻击访问,这确实影响了网络安全性,为了提高网络访问的安全性,这时不借助其他软件工具,直接利用专家级的访问控制列表,根据用户的IP地址和MAC地址进行网络访问的控制.案例实验拓扑图及案例要求与分析,见下图: 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Network/jhjs/