首页 > 运维 > linux运维 > 正文

Linux setfacl与getfacl命令详解

冷漠man
发布: 2025-10-25 16:47:02
原创
866人浏览过
答案:getfacl和setfacl命令用于查看和设置文件的ACL权限,实现更精细的访问控制。1. getfacl显示文件或目录的ACL信息,包括用户、组、掩码和其他权限;2. setfacl通过-m添加或修改ACL规则,-x删除指定条目,-b清除所有扩展ACL;3. 可使用-d设置默认ACL以供新文件继承,-R递归应用到子目录和文件;4. 实际应用包括共享目录权限管理、临时授权及批量处理;5. 使用时需确保文件系统挂载时启用acl选项,并注意chmod可能影响mask权限。

linux setfacl与getfacl命令详解

在Linux系统中,传统的文件权限管理基于用户、组和其他三类主体进行控制,但有时需要更精细的权限设置。这时就需要使用ACL(Access Control List,访问控制列表)。setfaclgetfacl 是用于管理和查看ACL权限的核心命令。它们让管理员可以为特定用户或组设置独立的读、写、执行权限,而不影响原有权限结构。

getfacl:查看文件或目录的ACL权限

该命令用于显示文件或目录的访问控制列表,包括标准权限和扩展ACL规则。

基本语法:
getfacl filename
登录后复制

例如,查看 testfile 的ACL信息:

getfacl testfile
登录后复制

输出示例:

# file: testfile
# owner: alice
# group: users
user::rw-
user:bob:r--
group::r--
mask::r--
other::r--
登录后复制

说明:

  • user::rw- 表示文件所有者的权限
  • user:bob:r-- 表示用户 bob 被单独赋予只读权限
  • group::r-- 表示所属组的权限
  • mask::r-- 是最大有效权限,限制赋予用户和组的权限上限
  • other::r-- 表示其他用户的权限

常用选项:

  • -a:仅显示ACL条目,不显示文件名和注释
  • -d:显示默认ACL(针对目录)
  • -R:递归列出子目录和文件的ACL

setfacl:设置或修改ACL权限

该命令用于为文件或目录添加、修改或删除ACL规则。

Linux命令详解手册
Linux命令详解手册

Linux命令详解手册

Linux命令详解手册 11402
查看详情 Linux命令详解手册
基本语法:
setfacl [选项] -m|-x acl规则 文件
登录后复制

-m 用于添加或修改ACL规则,-x 用于删除指定的ACL条目。

常见用法示例:

  • 给用户 alice 对 file1 的读写权限:
    setfacl -m u:alice:rw file1
    登录后复制
  • 给组 dev 对 project_dir 的读执行权限:
    setfacl -m g:dev:rx project_dir
    登录后复制
  • 设置默认ACL(新创建的文件自动继承):
    setfacl -m d:u:bob:rwx /shared_folder
    登录后复制
  • 删除用户 alice 的ACL条目:
    setfacl -x u:alice file1
    登录后复制
  • 移除所有扩展ACL(保留基本权限):
    setfacl -b file1
    登录后复制

重要提示:

  • 目录必须启用ACL支持(通常ext4/xfs等现代文件系统默认支持)
  • 挂载时需开启 acl 选项,如:mount -o acl /dev/sda1 /mnt/data
  • 使用 chmod 修改权限后,可能会更新 mask 值,从而影响ACL的实际生效权限

实际应用场景建议

ACL特别适用于共享目录环境。比如多个开发人员需要不同级别的访问权限。

  • 创建一个共享项目目录,设置默认ACL确保新文件自动分配正确权限
    setfacl -d -m g:developers:rwx /project
    登录后复制
  • 临时授权某位同事访问敏感配置文件,完成后立即撤销
    setfacl -m u:jane:r /etc/app.conf
    登录后复制
    完成后执行:
    setfacl -x u:jane /etc/app.conf
    登录后复制
  • 批量处理目录及其内容的ACL
    setfacl -R -m g:qa:rx /test-suites
    登录后复制

基本上就这些。掌握 setfacl 与 getfacl 可以大幅提升Linux系统权限管理的灵活性和安全性。注意定期检查ACL设置,避免遗留不必要的访问权限。

以上就是Linux setfacl与getfacl命令详解的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号