欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

getfacl tmp1 输出的详细解析 AG chatgpt 有大用 有大大用

[root@js1p-es-web tmp]#  getfacl tmp1

# file: tmp1

# owner: root

# group: root

user::r--

user:www:rwx                    #effective:r--

user:wzlinux:rwx                #effective:r--

group::r-x                      #effective:r--

mask::r--

other::r--

default:user::rwx

default:user:www:rwx

default:user:wzlinux:rwx

default:group::r-x

default:mask::rwx

default:other::r-x


以下是针对 getfacl tmp1 输出的详细解析,包括 ACL(访问控制列表) 的逐行解释,以及权限的实际生效情况:


1. 基础信息

bash    
# file: tmp1         # 文件/目录名 # owner: root        # 所有者是 root # group: root        # 所属组是 root    


  • 文件/目录 tmp1 的所有者和组均为 root


2. 当前 ACL 条目

所有者权限(user::

bash    
user::r--            # 所有者(root)仅有读权限(r--)    


  • root 用户 对 tmp1 只有 读权限,无写和执行权限。

特定用户权限(user:www: 和 user:wzlinux:

bash    
user:www:rwx         # www 用户被赋予 rwx 权限 user:wzlinux:rwx     # wzlinux 用户被赋予 rwx 权限    


  • 用户 www 和 wzlinux 被显式授予了 读、写、执行(rwx 权限。

  •  注意后面的 #effective:r--,表示实际生效权限仅为 r--(原因见下面的 mask 限制)。

组权限(group::

bash    
group::r-x           # 所属组(root)有读和执行权限(r-x)                     #effective:r-- 实际生效为 r--    


  • root 组 被赋予 r-x 权限,但实际生效为 r--(受 mask 限制)。

掩码(mask::

bash    
mask::r--            # 掩码限制了最大有效权限为 r--    


  • 掩码(mask 定义了除所有者(属主和属组)和 other 之外的其他主体(如特定用户、组)的 最大允许权限

  • 这里 mask::r-- 将所有非所有者、非 other 的权限强制限制为 r--,因此:

    • www 和 wzlinux 的 rwx 被降级为 r--

    • 组 root 的 r-x 被降级为 r--

其他用户权限(other::

bash    
other::r--           # 其他用户仅有读权限    


  • 所有其他用户(非所有者、非特定用户、非所属组)仅有 读权限


3. 默认 ACL(default:

  • 默认 ACL 仅对目录有效,用于控制 新创建的子文件/目录 的继承权限。

  • 以下权限会传递给新创建的子项:

默认所有者权限

bash    
default:user::rwx    # 新子项的所有者有 rwx 权限    


  • 未来子项的 所有者 默认拥有 rwx 权限。

默认特定用户权限

bash    
default:user:www:rwx  # 新子项的 www 用户继承 rwx default:user:wzlinux:rwx  # 新子项的 wzlinux 用户继承 rwx    


  • 用户 www 和 wzlinux 在子项中默认获得 rwx 权限。

默认组权限

bash    
default:group::r-x   # 新子项的所属组继承 r-x    


  • 未来子项的 所属组 默认获得 r-x 权限。

默认掩码

bash    
default:mask::rwx    # 新子项的掩码为 rwx(不限制权限)    


  • 子项的 mask 为 rwx,因此 wwwwzlinux 和组的权限不会像父目录一样被降级。

默认其他用户权限

bash    
default:other::r-x   # 新子项的其他用户继承 r-x    


  • 其他用户默认获得 r-x 权限。


4. 关键总结

当前权限实际生效情况

主体赋予权限因 mask::r-- 实际生效
所有者r--            r--            
用户 wwwrwx            r--            
用户 wzlinuxrwx            r--            
组 rootr-x            r--            
其他用户r--            r--            
  • 所有用户和组 的实际权限均为 r--,因为 mask::r-- 限制了权限上限。

默认权限的继承

  • 如果 tmp1 是目录,其下新建的子文件/目录会继承默认 ACL,且不受当前 mask 限制(default:mask::rwx 允许完整权限生效)。


5. 如何修复权限限制?

如果需要让 www 或 wzlinux 用户实际拥有 rwx 权限,需修改 mask

bash    
setfacl -m mask::rwx tmp1    


修改后:

  • www 和 wzlinux 的 rwx 权限将完全生效。

  • 组的 r-x 也会生效(不再被降级为 r--)。


6. 最终结论

  • 当前权限:所有用户和组仅能读(r--),写和执行被 mask 禁止。

  • 默认权限:子项会继承宽松权限(rwx 给特定用户和组)。

  • 修复方法:调整 mask 以释放权限限制。


普通分类: