阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

176次阅读
没有评论

共计 3103 个字符,预计需要花费 8 分钟才能阅读完成。

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

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

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

Linux 系统对访问控制 (ACL) 权限的实现 http://www.linuxidc.com/Linux/2014-01/95041.htm

HDFS 的 ACL 测试 http://www.linuxidc.com/Linux/2014-05/101008.htm

Squid 服务的 ACL 访问控制 http://www.linuxidc.com/Linux/2014-03/97518.htm

Haproxy ACL 规则导致故障一例 http://www.linuxidc.com/Linux/2014-02/96136.htm

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

在文件系统使 ACL 生效

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

Ubuntu/Debian 中:

  1. $ sudo aptget install acl

CentOS/Fedora/RHEL 中:

  1. # yum -y install acl

Archlinux 中:

  1. # pacman -S acl

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

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

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

  1. $ mount

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

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

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

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

  1. $ sudo mount /o remount

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

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-10/107699p2.htm

ACL 范例

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

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

  1. $ ls lh /

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

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

首先,为用户 test 设置 ACL:

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

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

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

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

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

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

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

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

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

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

  1. $ ls lh /shared

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

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

  1. $ sudo getfacl /shared

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

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

  1. $ sudo setfacl x u:test /shared

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

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

  1. $ sudo setfacl b /shared

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

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

总结

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

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

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

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

Linux 系统对访问控制 (ACL) 权限的实现 http://www.linuxidc.com/Linux/2014-01/95041.htm

HDFS 的 ACL 测试 http://www.linuxidc.com/Linux/2014-05/101008.htm

Squid 服务的 ACL 访问控制 http://www.linuxidc.com/Linux/2014-03/97518.htm

Haproxy ACL 规则导致故障一例 http://www.linuxidc.com/Linux/2014-02/96136.htm

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

在文件系统使 ACL 生效

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

Ubuntu/Debian 中:

  1. $ sudo aptget install acl

CentOS/Fedora/RHEL 中:

  1. # yum -y install acl

Archlinux 中:

  1. # pacman -S acl

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

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

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

  1. $ mount

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

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

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

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

  1. $ sudo mount /o remount

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

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-10/107699p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3103字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中