21%◈ 如何确认是否启用了 ACL金沙网址:

接纳 ACL 设置客户访谈内定文件/目录的权杖 | Linux 中国,acllinux

ACL 表示访谈调节列表(Access Control
List,ACL),它为文件系统提供了附加的、更富有弹性的权位机制。
它被规划来为补充 UNIX 文件权限机制。– Magesh Maruthamuthu

本文导航◈ 什么是 ACL?16%◈ 什么是 setfacl?百分之七十五◈ 什么 getfacl?21%◈ 如何确认是或不是启用了 ACL?24%◈ 怎么样查看暗中认可的 ACL 值38%◈ 怎么着为文件设置 ACL43%◈ 怎么样为目录设置 ACL一半◈ 怎样为组织设立置 ACL68%◈ 怎样删除 ACL六成◈ 怎么着备份并复苏 ACL88%编译自 |  
 作者 | Magesh Maruthamuthu
 译者 | lujun9972

当提到文件和目录的权位时,你的率先反响或者是“属主/群组/别的”权限。
这几个权限能够经过 chmod、 chown 等一声令下来修改。

文本和目录都有属主 (文件全体者 )、群组 (所属组)
以及别的权限,这么些权限构成二个成团。
不过这一个权限群集有它的局限性,不能成功为差异的客户安装不一样的权柄。

Linux 对文件和目录有以下默许权限。

◈ 文件
-> 644 -> -rw-r-r- (全体者有读写权限,组成员有只读权限,
别的人也唯有读权限)◈ 目录
-> 755 -> drwxr-xr-x (全体者有读、写和进行权限,组成员有读和实行的权力,其别人也许有读和实践的权柄)

例如说: 暗中认可情况下,全数者能够访谈和编写制定他们友善主目录中的文件,
也足以访问相关同组人的文书,但他俩不能够修改那几个文件,因为组成员未有写权限,而且让组成员有写权限也是不明智的。
基于同一的来由,他/她也无法修改其余人的文书。
然则在一些情形下,多少个顾客想要修改同一个文书, 那该怎么做呢?

只要有个名称叫 magi 的客户,他想要修改 httpd.conf 文件怎么做吧?
这几个文件是归 root 客户全部的,那样怎样授权呢?
为了化解这种意况,访问调控列表Access Control List(ACL)诞生了。

什么是 ACL?

ACL 表示访谈调节列表Access Control
List(ACL),它为文件系统提供了增大的、更富有弹性的权限机制。
它被设计来为补偿 UNIX 文件权限机制。 ACL
允许你给予任何某顾客/组访问某项财富的权位。 setfacl 与 getfacl 命令会协理您管理ACL 而不会有别的劳动。

什么是 setfacl?

setfacl 用于安装文件和目录的 ACL。

什么 getfacl?

getfacl – 获取文件的 ACL
。对于每一个文件, getfacl 都会显示文件名、文件全部者、所属组以及ACL。
假若目录有默许 ACL, getfacl 也会显得那个暗许的 ACL。

怎么确认是否启用了 ACL?

运行 tune2fs 命令来检查是否启用了 ACL。

  1. # tune2fs -l /dev/sdb1 | grep options

  2. Default mount options: (none)

上边的出口很醒目第表达 /dev/sdb1 分区没有启用 ACL。

譬如结果中并没有列出 acl,则你供给在挂载选项中增进 acl
为了让它恒久生效, 修改 /etc/fstab 中 /app 这一行成这么:

  1. # more /etc/fstab

  2. UUID=f304277d-1063-40a2-b9dc-8bcf30466a03 / ext4 defaults 1 1

  3. /dev/sdb1        /app ext4 defaults,acl 1 1

抑或,你也足以动用上边发号施令将其增添道文件系统的超级块中:

  1. # tune2fs -o +acl /dev/sdb1

今昔,通过运转以下命令来动态修换选项:

  1. # mount -o remount,acl /app

双重运行 tune2fs 命令来看选项中是还是不是有 acl 了:

  1. # tune2fs -l /dev/sdb1 | grep options

  2. Default mount options: acl

嗯,现在 /dev/sdb1 分区中有 ACL 选项了。

怎么着查看暗许的 ACL 值

要查看文件和目录私下认可的 ACL
值,可以利用 getfacl 命令前边加上文件路径或许目录路线。 注意,
当你对非 ACL 文件/目录运维 getfacl 命令时,
则不会议及展览示附加的 user和 mask 参数值。

  1. # getfacl /etc/apache2/apache2.conf

  2. # file: etc/apache2/apache2.conf

  3. # owner: root

  4. # group: root

  5. user::rw-

  6. group::r--

  7. other::r--

什么为文件设置 ACL

以上边格式运营 setfacl 命令可感觉钦赐文件设置
ACL。在底下的例子中,大家会给 magi 用户对 /etc/apache2/apache2.conf 文件 rwx 的权限。

  1. # setfacl -m u:magi:rwx /etc/apache2/apache2.conf

有心人深入分析起来:

◈ setfacl: 命令◈ -m: 修改文件的脚下 ACL◈ u: 指明客户◈ magi
用户名◈ rwx: 要设置的权杖◈ /etc/apache2/apache2.conf: 文件名称

再查看贰次新的 ACL 值:

  1. # getfacl /etc/apache2/apache2.conf

  2. # file: etc/apache2/apache2.conf

  3. # owner: root

  4. # group: root

  5. user::rw-

  6. user:magi:rwx

  7. group::r--

  8. mask::rwx

  9. other::r--

注意: 若你意识文件或目录权限前边有三个加号(+),就代表设置了 ACL。

  1. # ls -lh /etc/apache2/apache2.conf

  2. -rw-rwxr--+ 1 root root 7.1K Sep 19 14:58 /etc/apache2/apache2.conf

怎样为目录设置 ACL

以下边格式运转 setfacl 命令能够递归地为钦定目录设置
ACL。在上面的事例中,大家会将 /etc/apache2/sites-available/ 目录中的 rwx 权限赋予 magi 用户。

  1. # setfacl -Rm u:magi:rwx /etc/apache2/sites-available/

其中:

◈ -R: 递归到子目录中

重新查看一下新的 ACL 值。

  1. # getfacl /etc/apache2/sites-available/

  2. # file: etc/apache2/sites-available/

  3. # owner: root

  4. # group: root

  5. user::rwx

  6. user:magi:rwx

  7. group::r-x

  8. mask::rwx

  9. other::r-x

现在 /etc/apache2/sites-available/ 中的文件和目录都安装了 ACL。

  1. # ls -lh /etc/apache2/sites-available/

  2. total 20K

  3. -rw-rwxr--+ 1 root root 1.4K Sep 19 14:56 000-default.conf

  4. -rw-rwxr--+ 1 root root 6.2K Sep 19 14:56 default-ssl.conf

  5. -rw-rwxr--+ 1 root root 1.4K Dec 8 02:57 mywebpage.com.conf

  6. -rw-rwxr--+ 1 root root 1.4K Dec 7 19:07 testpage.com.conf

什么为组织设立置 ACL

以下边格式为钦赐文件运营 setfacl 命令。在上边包车型大巴事例中,咱们会给 appdev 组赋予 /etc/apache2/apache2.conf 文件的 rwx 权限。

  1. # setfacl -m g:appdev:rwx /etc/apache2/apache2.conf

其中:

◈ g: 指美素佳儿(Friso)个组

对多少个客商和组授权,只供给用 逗号 区分开,就好像上边那样。

  1. # setfacl -m u:magi:rwx,g:appdev:rwx /etc/apache2/apache2.conf

何以删除 ACL

以下边格式运维 setfacl 命令会删除文件对点名客商的
ACL。那只会去除客商权限而保留 mask 的值为只读。

  1. # setfacl -x u:magi /etc/apache2/apache2.conf

其中:

◈ -x: 从文件的 ACL 中去除

再也翻开 ACL 值。在下边的输出中大家得以见到 mask 的值是读。

  1. # getfacl /etc/apache2/apache2.conf

  2. # file: etc/apache2/apache2.conf

  3. # owner: root

  4. # group: root

  5. user::rw-

  6. group::r--

  7. mask::r--

  8. other::r--

使用 -b 来删除文件中有着的 ACL。

  1. # setfacl -b /etc/apache2/apache2.conf

其中:

◈ -b: 删除全体的 ACL 条款

再也查看删掉后的 ACl
值就能开采全数的事物都突然不见了了,富含 mask 的值也突然不见了了。

  1. # getfacl /etc/apache2/apache2.conf

  2. # file: etc/apache2/apache2.conf

  3. # owner: root

  4. # group: root

  5. user::rw-

  6. group::r--

  7. other::r--

怎么样备份并还原 ACL

上边发号施令能够备份和重作冯妇 ACL 的值。要创制备份,
须要步入对应的目录然后这样做(假诺大家要备份 sites-available 目录中的
ACL 值)。

  1. # cd /etc/apache2/sites-available/

  2. # getfacl -R * > acl_backup_for_folder

复原的话,则运维上面发号施令:

  1. # setfacl --restore=/etc/apache2/sites-available/acl_backup_for_folder

via: 

作者:Magesh Maruthamuthu[2] 译者:lujun9972 校对:wxy

正文由 LCTT 原创编译,Linux中中原人民共和国 荣誉推出

LCTT 译者lujun9972 ? ? ? ?共计翻译:51 篇进献时间:39 天

推荐文章

< 左右滑行查看相关小说 >

点击图片、输入小说 ID 或识别二维码直达

原来的作品链接请访谈“原作链接”获得可点击的文内链接、全尺寸原图和有关文章。

相关文章