欢迎各位兄弟 发布技术文章
这里的技术是共享的
[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(访问控制列表) 的逐行解释,以及权限的实际生效情况:
bash# file: tmp1 # 文件/目录名 # owner: root # 所有者是 root # group: root # 所属组是 root
文件/目录 tmp1 的所有者和组均为 root。
user::)
bashuser::r-- # 所有者(root)仅有读权限(r--)
root 用户 对 tmp1 只有 读权限,无写和执行权限。
user:www: 和 user:wzlinux:)
bashuser:www:rwx # www 用户被赋予 rwx 权限 user:wzlinux:rwx # wzlinux 用户被赋予 rwx 权限
用户 www 和 wzlinux 被显式授予了 读、写、执行(rwx) 权限。
但 注意后面的 #effective:r--,表示实际生效权限仅为 r--(原因见下面的 mask 限制)。
group::)
bashgroup::r-x # 所属组(root)有读和执行权限(r-x) #effective:r-- 实际生效为 r--
root 组 被赋予 r-x 权限,但实际生效为 r--(受 mask 限制)。
mask::)
bashmask::r-- # 掩码限制了最大有效权限为 r--
掩码(mask) 定义了除所有者(属主和属组)和 other 之外的其他主体(如特定用户、组)的 最大允许权限。
这里 mask::r-- 将所有非所有者、非 other 的权限强制限制为 r--,因此:
www 和 wzlinux 的 rwx 被降级为 r--。
组 root 的 r-x 被降级为 r--。
other::)
bashother::r-- # 其他用户仅有读权限
所有其他用户(非所有者、非特定用户、非所属组)仅有 读权限。
default:)
默认 ACL 仅对目录有效,用于控制 新创建的子文件/目录 的继承权限。
以下权限会传递给新创建的子项:
bashdefault:user::rwx # 新子项的所有者有 rwx 权限
未来子项的 所有者 默认拥有 rwx 权限。
bashdefault:user:www:rwx # 新子项的 www 用户继承 rwx default:user:wzlinux:rwx # 新子项的 wzlinux 用户继承 rwx
用户 www 和 wzlinux 在子项中默认获得 rwx 权限。
bashdefault:group::r-x # 新子项的所属组继承 r-x
未来子项的 所属组 默认获得 r-x 权限。
bashdefault:mask::rwx # 新子项的掩码为 rwx(不限制权限)
子项的 mask 为 rwx,因此 www、wzlinux 和组的权限不会像父目录一样被降级。
bashdefault:other::r-x # 新子项的其他用户继承 r-x
其他用户默认获得 r-x 权限。
| 主体 | 赋予权限 | 因 mask::r-- 实际生效 |
|---|---|---|
| 所有者 | r--
| r--
|
| 用户 www | rwx
| r--
|
| 用户 wzlinux | rwx
| r--
|
| 组 root | r-x
| r--
|
| 其他用户 | r--
| r--
|
所有用户和组 的实际权限均为 r--,因为 mask::r-- 限制了权限上限。
如果 tmp1 是目录,其下新建的子文件/目录会继承默认 ACL,且不受当前 mask 限制(default:mask::rwx 允许完整权限生效)。
如果需要让 www 或 wzlinux 用户实际拥有 rwx 权限,需修改 mask:
bashsetfacl -m mask::rwx tmp1
修改后:
www 和 wzlinux 的 rwx 权限将完全生效。
组的 r-x 也会生效(不再被降级为 r--)。
当前权限:所有用户和组仅能读(r--),写和执行被 mask 禁止。
默认权限:子项会继承宽松权限(rwx 给特定用户和组)。
修复方法:调整 mask 以释放权限限制。