等命令来修改,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. ``

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

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

  5. ``

要么,你也得以使用下边发号施令将其增加道文件系统的一级块中:

  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. ``

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

  4. # owner: root

  5. # group: root

  6. user::rw-

  7. group::r--

  8. 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. ``

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

  4. # owner: root

  5. # group: root

  6. user::rw-

  7. user:magi:rwx

  8. group::r--

  9. mask::rwx

  10. 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. ``

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

  4. # owner: root

  5. # group: root

  6. user::rwx

  7. user:magi:rwx

  8. group::r-x

  9. mask::rwx

  10. other::r-x

  11. ``

现在 /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: 指爱他美(Aptamil)个组

对多个客户和组授权,只要求用 逗号 区分开,就疑似上边那样。

  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. ``

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

  4. # owner: root

  5. # group: root

  6. user::rw-

  7. group::r--

  8. mask::r--

  9. other::r--

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

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

其中:

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

重新查看删掉后的 ACl 值就能够发觉全数的东西都突然消失了,包括 mask 的值也是有失了。

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

  2. ``

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

  4. # owner: root

  5. # group: root

  6. user::rw-

  7. group::r--

  8. 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 或识别二维码直达

原来的小说链接请访谈“原来的小说链接”获得可点击的文内链接、全尺寸原图和连锁小说。

怎么样备份并还原 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 译者:lujun9972 校对:wxy

正文由 LCTT 原创编写翻译,Linux中夏族民共和国 荣誉推出

ACL 设置客商访谈钦定文件/目录的权能 当提到文件和目录的权位时,你的首先反应也许是属主/群组/别的权限。 这几个权限能够经过 c...

3.STICKY

抱有写权限的目录,客户能够去除该目录中的任何公文。
STICKY功能在目录上后,唯有文件的主人或root能够去除该公文。且STICKY设置在文书上无意义。
权力的设定为:
chmod o{+|-}t dir...:给目录增添或去掉sticky权限

怎么着为文件设置 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.1KSep1914:58/etc/apache2/apache2.conf

 

3.新建目录文件的默许权限

当我们创制二个索引或文件时,系统会自行给其分配一个权力,那个权力是怎么来的?实际上,新建目录或文件的权限是系统根据所设定的umask的值来总括出来的。
umask有个暗中认可值放在/etc/profile文件中。当顾客uid在0-199之内时,umask=022;当客户uid大于199时,umask=002。
暗中同意权限是怎么来的吧?新建文件的暗中认可权限为666-umask的值,且一旦所得的结果某位存在执行权限也正是奇数是,则将其位上权限+1;新建目录的私下认可权限为777-umask的值所得。当然上边计算办法,本质上是对位将最大权力的umask的附和位权限去除,来获得暗中认可权限;也便是说umask为0的位,不去除对位,umask为1的位,去除对位,对位是0依旧0,对位是1就去为0。
umask照旧个指令:

umask-显示和设定umask值
umask [-p] [-S] [mode]
-p:输出umask值,能够看作正式输入用
-S:输入u=,g=,o=
umask mode:设定umask值,但只是暂且的,重启机器后就能够失效。

要想长久保存本身设定的umask值能够保存在:~/.bashrc,那一个客商本人用;/etc/bashrc,这么些大家一块用。

怎么删除 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--

 

4.特有权限

文本除了常常权限外,还在实施位x上还应该有非常权限。对于全部者u来说非常权限称为SUID,对于所属组来讲特别权限为SGID,对于其余人来讲非常权限为STICKY

什么是 setfacl?

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

 

5.访谈调节列表

如何为组织设立置 ACL

以下边格式为内定文件运转 setfacl 命令。在底下的事例中,大家会给 appdev 组赋予 /etc/apache2/apache2.conf 文件的 rwx 权限。

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

其中:

  • g: 指明一个组

对五个客户和组授权,只供给用 逗号 区分开,仿佛下边那样。

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

 

2.getfacl

getfacl - 取得并显示文件的访问控制列表
getfacl [-aceEsRLPtpndvh] {file|-} ...
-a, --access:呈现文件的ACL
-d, --default:仅突显私下认可的ACL
-c, --omit-header:不显得带有#的信息
-e, --all-effective:呈现全数有效的权力
-E, --no-effective:显示无效的权能
-s, --skip-base:跳过独有功底词指标文件
-R, --recursive:递归
-L, --logical:logical walk, follow symbolic links
-P, --physical:physical walk, do not follow symbolic links
-t, --tabular:使用列表输出格式
-n, --numeric:打字与印刷数值方式的客户或组位置
-p, --absolute-names:不要剥去“/”在门路上

getfacl得到的显得如下:

       The output format of getfacl is as follows:
               1:  # file: somedir/
               2:  # owner: lisa
               3:  # group: staff
               4:  # flags: -s-
               5:  user::rwx
               6:  user:joe:rwx               #effective:r-x
               7:  group::rwx                 #effective:r-x
               8:  group:cool:r-x
               9:  mask::r-x
              10:  other::r-x
              11:  default:user::rwx
              12:  default:user:joe:rwx       #effective:r-x
              13:  default:group::r-x
              14:  default:mask::r-x
              15:  default:other::---

本文由必威发布于必威-运维,转载请注明出处:等命令来修改,21%◈ 如何确认是否启用了 ACL

相关阅读