Linux权限管理-ACL访问控制列表

ACL 全称是 Access Control List 翻译为 访问控制列表

Linuxugo 有经典的 rwx 三种权限,但是在有些场合依旧满足不了对权限的需要,ACL 作为一种更细力度的控制满足了对访问者权限的设置。

ACL 针对既可以对用户来设置,也能对用户组、子文件、目录继承父目录。对于ACL来说需要 Linux内核文件系统 的配合。

在红帽的新发型版中使用的是 xfs 文件系统,这种文件系统默认就是支持acl的,就不需要其他额外的设置了。

对于 acl 来讲,需要使用 setfacl 命令。

红帽的版本

Redhat 7.x 之后文件系统默认开启了ACL

这里使用的系统是 release 9.4 也就是 红帽 9.4 的发行版。

[root@server ~]# cat /etc/redhat-release
Rocky Linux release 9.4 (Blue Onyx)

[root@server ~]# df -T
Filesystem              Type     1K-blocks    Used Available Use% Mounted on
--snip--
/dev/mapper/rl_192-root xfs       17756160 1379828  16376332   8% /
/dev/nvme0n1p1          xfs         983040  230652    752388  24% /boot
--snip--

df -TType 列表,可以看到新版本的红帽系统9中使用的文件系统是 xfs


[root@server ~]# dmesg | grep -i acl
[    1.738016] systemd[1]: systemd 252-32.el9_4 running in system mode (+PAM +AUDIT +SELINUX -APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL
[    3.845909] SGI XFS with ACLs, security attributes, scrub, quota, no debug enabled
[    4.239428] systemd[1]: systemd 252-32.el9_4 running in system mode (+PAM +AUDIT +SELINUX -APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL

通过使用上面的 dmesg | grep -i acl 可以看到该文件系统是启动了 acl 的。

不确切的说对于 Redhat 7.X 之后的系统,系统使用的文件系统是 默认开启ACL 的。

Redhat 7.x 之前查看文件系统是否开启了ACL

Redhat 7.X 之前的版本系统 有可能没有 开启 ACL。

之前的红帽使用的文件系统使用的是 ext4 文件系统,可以使用 dumpe2fs 来查看该 ext4 文件系统是否开启了 ACL

这里我启用了 CentOS 6.5 的版本。

[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)

使用 df -T该系统使用了 ext4 作为系统的文件系统。

[root@localhost ~]# df -T
Filesystem                   Type  1K-blocks   Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root ext4   18069936 771240  16380784   5% /
tmpfs                        tmpfs    961184      0    961184   0% /dev/shm
/dev/sda1                    ext4     495844  32659    437585   7% /boot

查看现在的 ext4 文件系统是否支持 acl 可以使用 dumpe2fs 该命令。

[root@localhost ~]# dumpe2fs -h /dev/mapper/VolGroup-lv_root
--snip--
Default mount options:    user_xattr acl
--snip--

Default mount options 这一行可以看到最后的一个就是 acl 表名是开启了 acl 的。

如果此时发现没有开启ACL

暂时挂载

可以使用 mount 来暂时让文件系统有 acl ,如下:

[root@localhost ~]# mount -o remount,acl /

对于 xfs 文件系统来说就没有这个顾虑,因为本来 xfs 就有 acl 。

永久在 /etc/fstab

[root@localhost ~]# vi /etc/fstab

/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1

改为
/dev/mapper/VolGroup-lv_root /                       ext4    defaults,acl       1 1

也就是在 default 后面添加 acl 中间使用 , 来分隔。

posted @ 2024-08-22 19:34  takenika  阅读(117)  评论(0)    收藏  举报