不用 ACL, Linux 的权限管理是一坨

  • 1205 字
  • 次阅读
  1. 1. 文档
  2. 2. Default
  3. 3. POSIX ACLs
  4. 4. NFSv4 ACL

集中式数据存储对大型企业来说是必须的。微软有 AD 那套东西。

Linux 就是 NFS 了,因为 Linux 较多用于研发环境并且 IT 人员技术水平等问题,通常会做物理隔离。但协作开发肯定有权限管理这块的需求。

之前比较年轻,以为只是主组和副组,但实际操作中会被新建文件的 gid 和 umask 干的手忙脚乱。其实还是操作姿势不对,因为这块主要还是靠 ACL。不过 Linux 比较奇葩了,见此,愣是一个系统干出来左右手互博的感觉

不过感觉目前这块的文档都不太靠谱,感觉很多写文档的人其实自己也没完全摸透。

ACL 目前有两组控制,一个是本地控制(POSIX ACLs),一个是挂载 NFS 的控制(NFSv4 ACLs)。两组配置会自动转换

ACL 配置独立于 Linux 的 mode 权限(chmod -> change mode)。可以对文件夹进行精细的权限控制。

文档

https://help.aliyun.com/zh/nas/user-guide/apsara-file-storage-nas-nfs-acls/

Default

Default Policy 是继承 ACE(Access Control Entry),只能作用于目录。 会在设置任意 Default Policy 之后出现默认的user、group、other、mask条目,可以用setfacl -k全部清除。但 nfs4 无此命令,你只能到存储上操作。

通常你设置 ACL 只能对已有的条目生效,如果要新文件也生效,就要设 Default Policy

POSIX ACLs

1
2
setfacl -R -m group:groupname:r-x path
setfacl -m default:group:groupname:r-x path

其中 groupname 是可以更改的组名

文档

https://docs.oracle.com/cd/E56344_01/html/E54075/setfacl-1.html

NFSv4 ACL

NFSv4 ACL 配置时只支持组id,该命令直接提交到 nfs server,故只要在一台上面跑就好

可以通过

1
getent group groupname

获取组id

1
nfs4_setfacl -a A:fdg:1000:RWX path

g(group)代表设置组id,大写RWX会自动对应到 mode 的rwx,避免 NFSv4 ACL 和 mode 的兼容问题。(但不清楚具体情况)。-R代表递归

fd应该是表示只允许条目访问,fdg设置后默认会配置禁止 linux mode 权限的使用。通常不要使用

配置完后可以通过验证是否成功

1
nfs4_getfacl path

文档

https://linux.die.net/man/1/nfs4_setfacl

打赏
打赏提示信息
分享
分享提示信息