欢迎各位兄弟 发布技术文章
这里的技术是共享的
[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
以释放权限限制。