资讯详情

使用ACL控制对文件的访问

文章目录

  • 使用ACL控制文件访问
    • 解释文件ACL
      • 什么是ACL
      • ACL 的支持
      • 使用 ls 命令查看 ACL 权限
      • 使用 getfacl 命令查看 ACL 权限
      • ACL权限优先级
    • 使用ACL保护文件安全
      • setfac
      • 控制默认ACL文件权限

使用ACL控制文件访问

解释文件ACL

什么是ACL

  • ACL允许向文件分配详细的权限。除标准文件所有者、组所有者和其他文件权限外, 还可以向指定用户或指定组,以及 UID 或 GID 确定的用户和组授予权限。所有这些权限都应该是 使用相同的权限标志:r -读取、w -写入、x-执行
  • 文件所有者可以在单个文件或目录上设置 ACL。新文件和子目录可以自动从父目录中默可以 认 ACL (若已设置)中继承 ACL 设置。类似于常规文件的访问规则,父目录的层次结构 至少需要设置其他用户执行权限 ,为了使用指定用户和指定组的访问权

ACL 的支持

  • ACL需要文件系统的支持,XFS/ext3/ext4 等待文件系统内置正确 ACL 支持,在 在早期版本中,应确认是否正确使用 ACL 的支持

使用 ls 命令查看 ACL 权限

  • Is -l命令只输出最少ACL设置详细信息:

  • [student@server0 ~]$ ll roster.txt

  • -rw-rwxr– 1 student student 48 Dec 5 00:47 roster.txt

  • 由10个字符组成的权限字符串的末尾是 ,也就是说,这份文件是相关的 ACL 设 置。对用户 、小组和其他rwx标志解释如下:

  • 用户:显示用户 ACL 设置与标准用户文件设置相同

  • 组:显示当前的 ACL 掩码设置,而不是组所有者设置

  • 其他:展示其他 ACL 设置与标准的其他文件设置相同

使用 getfacl 命令查看 ACL 权限

  • 查看文件 ACL
    • 在文件上显示ACL设置,使用 getfacl file
    • 示例:使用 getfacl 命令查看 /run/log/journal 子目录中的文件

[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-YHpd8wvQ-1627779386241)(C:\Users\Lenovo\Desktop\学习\笔记\Linux\查看目录ACL.png)]

ACL权限优先级

  • 在决定一个过程(正在运行的程序)是否可以访问文件时,将按以下规则匹配 ACL 权限:
    • ① 如果过程是作为文件所有者运行的,则应用文件的用户ACL权限
    • ② 指定用户 ACL 规定中列出的用户身份操作过程应用于指定用户 ACL 权 限制(只要允许掩码)
    • ③ 如果运行过程与文件的组所有者相匹配,或以显式指定组 ACL 条目组的身份运行过程应用于匹配ACL权限(只要允许掩码)
    • ④ 否则,将使用其他应用文件 ACL 权限

使用ACL保护文件安全

setfac

  • 使用 setfacl 添加、修改或删除文件和目录 ACL 设置
  • ACL采用普通权限文件系统表示法:(不允许使用数字加权法)
    • “r表示读取权限
    • “w表示写入权限
    • “x表示执行权限
    • -
  • 以递归的形式设置 ACL 当时,大写字母X如果文件没有相关执行,可以用于表示: 对于权限,只应设置目录规文件)的执行权限。这种行为和 chmod 相同
#添加 user1 对 file1 具有 rw- 的 ACL 权限 setfacl -m u:user1:rw- file1 # 使用 -m 或 -M 选项设置 ACL。如果设置 name 留空,适用于文件所有者,否则,name 可以是用户名或 UID 值   #修改 g1 对 file1 具有 rw- 的 ACL 权限 setfacl -m g:g1:rw- file1  #通过 ACL,修改其他用户对 file1 不具有权限 setfacl -m o::- file1  #修改文件所有者和组 g2 对 file1 分别具有 rwx 和 rw- 的 ACL 权限 setfacl -m u::rwx,g:g2:rw- file1 #通过同一命令添加多个项目,并用逗号分开  #修改 file1 的 ACL 掩码为 r-- setfacl -m m::r-- file1   #将 file2 的 ACL 权限设置与 file1 一致 getfacl file1 | setfacl --set-file=- file2 #--set-file 接受文件或 stdin 作为占位符指定中间输入和短划线 stdin 使用。在这里,设置 file1 的 ACL 检查结果 file2 的ACL设置的输入  #设置目录 dir1 文件所有者 ACL 权限为 rw-,并在子文件和子目录中递归 setfacl -R -m u::rw- dir1 #使用 -R 选项实现递归,涉及执行权限时注意使用 X,并区分递归和继承  #删除 user1 对 file1 的 ACL 权限 setfacl -x u:user1 file1 #使用 -x 选项删除某条 ACL 支持使用逗号分隔多个项目的权限  #删除 file1 的所有 ACL 权限 setfacl -b file1 #使用 -x 删除指定用户和组的选项 ACL 权限和掩码也能达到同样的效果 

控制默认ACL文件权限

  • 默认可以设置在目录中ACL,这些ACL所有新文件和新子目录都将自动继承。可用于每个项目。 标准 ACL 设置默认设置 ACL 权限包括默认掩码。
  • 注:目录本身也需要注意: ACL 控制访问权限的权限,默认ACL目前目录不会生效,只会生效 提供权限继承的效果
#添加默认ACL setfacl -m d:u:<name>:<rwx> <directory/file>  #删除默认ACL
setfacl -x d:u:<name> <directory/file>

添加默认ACL setfacl -m d:u:: <directory/file>

#删除默认ACL setfacl -x d:u: <directory/file>

标签: jjx拉绳位移传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台