概念

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 830 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 挂载点

posted on   eryoung2  阅读(3154)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示