### ACL详细解读 #### 一、概述 ACL(Access Control List),即访问控制列表,是一种在文件系统中为文件或目录设置更为灵活的权限管理方式。传统的UNIX/Linux系统中的文件权限仅支持设置所有者(Owner)、所有者所在组(Group)和其他用户(Others)这三种权限类型。然而,在实际的应用场景中,往往需要更加精细化地控制文件或目录的访问权限,例如允许特定的非组成员读取某个文件或目录。这时,ACL就显得尤为重要。 #### 二、在Linux系统中开启ACL权限 在CentOS 7.3及其后续版本中,默认情况下新创建的分区会启用ACL权限。但在早期版本如CentOS 6.9中,可能需要手动开启。具体操作如下: 1. **挂载时指定打开ACL权限**:通过`mount -o acl /dev/sdb1 /mnt/test`命令来挂载设备并开启ACL功能。 2. **修改默认属性信息**:使用`tune2fs -o acl /dev/sdb1`命令,将分区/dev/sdb1的ACL权限打开。之后挂载时,ACL就会生效。 3. **重新挂载分区**:如果分区已挂载且不希望卸载,可以使用`mount -o remount,acl /dev/sdb1`命令来重新挂载并开启ACL。 4. **修改fstab文件**:在`/etc/fstab`文件中,在想要开启ACL的硬盘分区配置行的`defaults`选项后面加上`,`和`acl`,然后重启系统即可。 #### 三、设置ACL的User和Group 设置ACL的User和Group可以让特定用户或组拥有除所有者、所有者所在组和其他用户外的权限。这可以通过以下命令实现: - **设置User权限**:`setfacl -m u:username:permission filename`。例如,`setfacl -m u:liubei:--- filename`表示设置用户liubei对文件filename无权限。 - **设置Group权限**:`setfacl -m g:groupname:permission filename`。例如,`setfacl -m g:shuguo:rwx filename`表示设置组shuguo对文件filename具有读写执行权限。 #### 四、取消ACL权限 如果不再需要ACL权限,可以使用以下命令来移除文件或目录的ACL: - `setfacl -b filename`:移除文件filename的所有ACL权限。 #### 五、彻底删除ACL属性 为了彻底删除文件或目录的所有ACL属性,可以使用命令: - `setfacl -k filename`:删除文件filename的所有扩展ACL属性。 #### 六、添加完ACL权限后各个权限之间的优先级 在设置了ACL权限后,权限的执行顺序遵循以下原则: 1. 如果访问者是文件的所有者,则应用所有者的权限。 2. 如果访问者不是所有者但被指定为ACL的User,则应用User的权限。 3. 如果访问者不属于以上两种情况,但属于某一个组或被指定为ACL Group,则应用组权限的并集。 4. 如果访问者既不是所有者也不是任何组的成员,则应用其他人的权限。 #### 七、Mask的作用 Mask用于定义当添加用户或组的ACL权限时,默认的最大权限级别。例如,如果Mask设置为`rwx`,那么即使尝试给用户设置`rw-`权限,最终该用户的权限也会被限制为`rw-`。 #### 八、给目录设置默认的ACL 可以为目录设置默认ACL,以便该目录下的新文件或子目录自动继承这些ACL权限。例如: - `setfacl -dm u:user:rwX directory`:设置用户user对目录directory的新建文件或目录具有读写执行权限。 #### 九、备份和恢复ACL - **备份ACL**:`getfacl filename > acl_backup.txt`。 - **恢复ACL**:`setfacl --set-file=acl_backup.txt filename`。 #### 十、对setfacl的一些总结 - **挂载时打开acl功能**:`mount -o acl directory`。 - **查看文件或目录的acl权限**:`getfacl filename`。 - **设置ACL USER**:`setfacl -m u:username:permission filename`。 - **设置ACL GROUP**:`setfacl -m g:groupname:permission filename`。 - **递归设置ACL**:`setfacl -Rm u:username:permission directory`。 #### 十一、注意事项 - `setfacl -R`和`d:`不能同时出现在同一条命令中,因为`-R`用于递归设置权限,而`d:`用于设置默认ACL权限。两者需分开设置。 - 在设置默认ACL时,需要注意默认权限与现有文件的实际权限之间的关系,以确保不会出现权限冲突或覆盖的问题。

































剩余7页未读,继续阅读


- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 目标检测数据集的增强手段及源码:含图像旋转、镜像、裁剪、亮度 / 对比度变换等
- 物联网与农业机电一体化技术的关联性分析.docx
- 通信工程发展趋势研究.docx
- PyTorch 实现 GraphSAGE 模型在 Cora、Citeseer 和 Pubmed 数据集上的复现
- IPMP认证历年考试C级模拟试题二.doc
- 试论电气工程及其自动化的智能化技术应用.docx
- 三菱PLC编程软件GXWork2安装图文教程.doc
- 太原理工大学软件工程教材简介.ppt
- 某集团公司信息化规划项目.doc
- 培训演示文稿:excel-2007——创建图表.ppt
- 系统集成项目管理部分英文词汇.doc
- 基于网络平台的大学英语四级听力自主学习分析.docx
- 企业办公自动化系统的设计.doc
- 基于单片机的光电开关的转速测量装置方案设计书.doc
- 面向对象的程序设计方案试题1.doc
- 实验书网络互联技术.doc


