插件窝 干货文章 linux ACL有什么用

linux ACL有什么用

权限 设置 setfacl ACL 943    来源:    2025-05-01

Linux ACL (访问控制列表) 的作用

Linux ACL (Access Control List) 是一种比传统 Unix 文件权限更精细的访问控制机制,它允许管理员为特定用户或组设置更细粒度的文件系统权限。

ACL 的主要用途

  1. 超越传统权限限制:传统的 Unix 权限只有 owner/group/others 三个级别,而 ACL 可以针对多个用户和组设置不同权限。

  2. 精细权限控制

    • 为特定用户设置特殊权限
    • 为特定组设置特殊权限
    • 设置默认权限(继承权限)
  3. 典型应用场景

    • 需要为多个用户或组设置不同权限的文件/目录
    • 共享文件夹需要精细权限控制
    • 需要权限继承的目录结构

ACL 常用命令

  • setfacl - 设置 ACL 权限

    setfacl -m u:username:rwx file    # 为用户设置权限
    setfacl -m g:groupname:rx file    # 为组设置权限
    setfacl -d -m u:username:rwx dir  # 设置默认权限(会继承)
    
  • getfacl - 查看 ACL 权限

    getfacl file_or_directory
    

使用 ACL 的前提条件

  1. 文件系统必须支持 ACL(如 ext3/ext4/xfs 等现代文件系统)
  2. 挂载时需要启用 ACL 选项(通常在 /etc/fstab 中添加 acl 选项)
  3. 系统已安装 ACL 工具包(通常包含 setfaclgetfacl 命令)

示例应用

# 允许用户 alice 读写文件
setfacl -m u:alice:rw important_file

# 允许 developers 组读写执行目录
setfacl -m g:developers:rwx project_dir

# 设置默认 ACL,新创建的文件会继承这些权限
setfacl -d -m u:alice:rwx shared_dir

ACL 提供了比传统 Unix 权限更灵活的访问控制方式,特别适合需要精细权限管理的多用户环境。