linux – 扩展ACL并不总是被继承

前端之家收集整理的这篇文章主要介绍了linux – 扩展ACL并不总是被继承前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个应用程序在/ opt / reports中生成报告文件,其文件在0600拥有root:root.为了允许外部系统自动处理这些报告,我创建了一个具有组’report’的新服务帐户用户,更改了/ opt / reports组用于报告和设置SUIG位,然后在/ opt / reports目录中设置默认ACL,以包含400的报告组和400的掩码.

我注意到,当我手动创建文件时,权限都按预期设置,但是当应用程序创建文件时,默认值不会被继承.

  1. [root@reports1 ~]# getfacl /opt/reports
  2. getfacl: Removing leading '/' from absolute path names
  3. # file: opt/reports
  4. # owner: root
  5. # group: report
  6. user::rwx
  7. group::r-x
  8. other::r-x
  9.  
  10. [root@reports1 ~]# setfacl -R -d -n -m g:report:r,m::r /opt/reports/
  11. [root@reports1 ~]# getfacl /opt/reports
  12. getfacl: Removing leading '/' from absolute path names
  13. # file: opt/reports
  14. # owner: root
  15. # group: report
  16. user::rwx
  17. group::r-x
  18. other::r-x
  19. default:user::rwx
  20. default:group::r-x #effective:r--
  21. default:group:report:r--
  22. default:mask::r--
  23. default:other::r-x

手动创建文件似乎工作正常

  1. [root@reports1 ~]# echo "This is a test file" > /opt/reports/testfile.txt
  2. [root@reports1 ~]# ls -l /opt/nessus_reports/testfile.txt
  3. -rw-r--r--+ 1 root report 20 Apr 24 11:16 /opt/reports/testfile.txt
  4. [root@reports1 ~]# getfacl /opt/reports/testfile.txt
  5. getfacl: Removing leading '/' from absolute path names
  6. # file: opt/reports/testfile.txt
  7. # owner: root
  8. # group: report
  9. user::rw-
  10. group::r-x #effective:r--
  11. group:report:r--
  12. mask::r--
  13. other::r--

但是,在使用应用程序生成报告时,掩码会传播到新文件

  1. [root@reports1 ~]# ls -l /opt/reports/018b274b-7c21-859d-6295-1af24b14da8451d8fe886e9c192d
  2. -rw-------+ 1 root report 125952 Apr 24 11:18 /opt/reports/018b274b-7c21-859d-6295-1af24b14da8451d8fe886e9c192d
  3. [root@reports1 ~]# getfacl /opt/reports/018b274b-7c21-859d-6295-1af24b14da8451d8fe886e9c192d
  4. getfacl: Removing leading '/' from absolute path names
  5. # file: opt/reports/018b274b-7c21-859d-6295-1af24b14da8451d8fe886e9c192d
  6. # owner: root
  7. # group: report
  8. user::rw-
  9. group::r-x #effective:---
  10. group:report:r-- #effective:---
  11. mask::---
  12. other::---

这是预期的行为,我只是误解了所涉及的术语?我错过了某处的旗帜或选项,我是否完全从错误的方向接近它?

解决方法

[首先,看起来您的SUIG位丢失了(我希望getfacl输出中有“flags:-s-”).但是,这不是造成这个问题的原因.

似乎报告生成器不仅使用027 umask创建文件,而且还对文件执行显式chmod().执行此操作时,POSIX ACL掩码将丢失.

尝试以下(以root身份):

  1. touch /opt/reports/testfile.txt
  2. getfacl /opt/reports/testfile.txt
  3.  
  4. chmod 640 /opt/reports/testfile.txt
  5. getfacl /opt/reports/testfile.txt

看来明确的chmod()破坏了事情.

猜你在找的Linux相关文章