共计 1357 个字符,预计需要花费 4 分钟才能阅读完成。
概念
ACL 是 Access Control List(访问控制列表)的缩写,用于 linux 简单的用户权限管制当中。
Cent7 零碎之前,只有零碎装置时创立的文件系统反对 ACL,起初创立的文件系统则不反对。
Cent7 零碎后,不论文件系统是否在装置零碎时被建设,都反对 ACL。
命令
getfacl:用于查看 ACL 权限。
setfacl:用于设置 ACL 权限。
用法
1. 查看文件或目录权限
getfacl 文件 / 文件夹名
[root@vm1 ~]# getfacl ~
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
group::r-x
other::---
2. 批改用户对文件或目录的权限
setfacl -m u:uname:access 文件 / 文件夹名
[root@vm1 ~]# setfacl -m u:young:rwx -R ~ #将 /root 的权限赋予 young
[root@vm1 ~]# getfacl ~
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
user:young:rwx
group::r-x
mask::rwx
other::---
我将我集体对 /root 文件夹的拜访权限改成了可读可写,而组内用户有读权限,组外用户无任何权限。
接下来进行测试:
[young@vm1 root]$ dd if=/dev/zero of=/root/testfile bs=1M count=20 #创立一个测试文件
记录了 20+0 的读入
记录了 20+0 的写出
20971520 字节 (21 MB) 已复制,0.0154888 秒,1.4 GB/ 秒
[young@vm1 root]$ ll|grep testfile
-rw-rw-r-- 1 young young 20971520 8 月 30 01:49 testfile
[young@vm1 root]$ id nobody
uid=99(nobody) gid=99(nobody) 组 =99(nobody)
确实,young 用户因为被赋权。所以能够在 /root 目录下进行读写;而 nobody 用户因为未被赋权,且不在 root 组内,故什么权限都没有。
测试结束后,咱们应用 setfacl -b /root 勾销方才增加的 ACL 权限。
[root@vm1 ~]# setfacl -b /root
[root@vm1 ~]# getfacl ~
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
group::r-x
other::---
3. 批改组对文件或目录的权限:
setfacl g:gid:access 文件 / 目录门路,用法与给用户赋权统一,故不再赘述。
4. 挪动 / 复制文件或目录时须要留神的点:
挪动文件 / 目录时,默认连带 ACL 权限一起挪动。
复制文件时,默认不保留权限;须要加应用 cp -p 命令,才保留权限。
5. 挂载时须要留神的点:
如原来的文件系统不反对 ACL 权限,咱们能够将其从新挂载。
mount -o remount, acl 挂载点
正文完