使用NFSv4 ACL进行权限管理
本文介绍在使用NFSv4协议挂载的文件系统上,如何设置NFSv4 ACL来进行文件/目录权限管理。
前提条件
说明 目前,ACL功能只支持华北 3(张家口)、华北 5(呼和浩特)、亚太东南 2(悉尼)、亚太东南 3(吉隆坡)和美国西部 1(硅谷)地域,并且需要通过提交工单申请后才能使用。
背景信息
您可以使用NFSv4协议挂载文件系统,并在已挂载文件系统的机器上安装符合Linux标准的nfs4-acl-tools软件。安装完成后,通过标准工具nfs4_getfacl和nfs4_setfacl设置NFSv4 ACL。
命令说明
在设置NFSv4 ACL前,请先熟悉相关操作命令。
命令 | 说明 |
---|---|
nfs4_getfacl <filename> |
查看文件当前的ACL权限。 |
nfs4_setfacl -a A::GROUP@:W <filename> |
给GROUP设置写权限。 |
nfs4_setfacl -a A::1000:W <filename> |
给用户1000设置写权限。 |
nfs4_setfacl -a A:g:10001:W <filename> |
给用户组10001设置写权限。 |
nfs4_setfacl -e <filename> |
交互式编辑设置ACL权限。 |
nfs4_getfacl <filename> > saved_acl.txt |
将文件当前的ACL权限保存为一个文本文件。 |
nfs4_setfacl -S saved_acl.txt <filename> |
恢复保存到文本文件里的ACL权限。 |
nfs4_setfacl -m A::1001:rwaxTNcCy A::1001:rxtcy file1 |
修改文件file1上的其中一条ACE的权限。 |
nfs4_getfacl file1 | nfs4_setfacl -S - file2 |
将文件file1的ACL权限复制到文件file2上。 |
nfs4_getfacl file1 | grep @ | nfs4_setfacl -S - file1 |
删除文件file1上所有非保留的ACE。 |
nfs4_setfacl -R -a A:g:10001:rW dir |
对目录树dir下所有文件和目录,增加用户组10001可以读写访问的权限。 |
find dir -type f -exec sh -c 'for ace in $(nfs4_getfacl \{} | grep "^A.*\:1005\:");
do nfs4_setfacl -x $ace \{}; done' \; |
删除目录树dir下所有文件中包含1005的ACE。 |
nfs4_setfacl -a A:fdg:10001:rW dir1 |
让用户组10001对目录dir1下新创建的文件和目录有读写权限。 |
nfs4_setfacl -a A:fg:10001:rx dir1 |
让用户组10001对目录dir1下新创建的文件有读和执行权限。 |
操作步骤
您可以参考以下步骤,为目录/文件设置NFSv4 ACL实现权限管理。
相关操作
如果您要移除用户权限,可参见以下方法。
建议在使用NFSv4 ACL时,尽量把每个用户归类到群组中。在设置NFSv4 ACL时直接设置群组权限而不用设置单个用户的权限。这样在移除用户权限时只需把用户移出某个群组即可。例如:参见以下命令将用户admini移出群组adminis,移入群组adminis2。
[root@vbox test] sudo groupadd adminis2
[root@vbox test] sudo usermod -g adminis2 admini
[root@vbox test] id admini
uid=1057(admini) gid=1057(admini) groups=1054(adminis2)
[root@vbox test] sudo su admini -c 'ls dir0'
ls: cannot open directory dir0: Permission denied
[root@vbox test] sudo su admini -c 'cat dir0/file'
cat: dir0/file: Permission denied
[root@vbox test] sudo su admini -c 'nfs4_getfacl dir0/file'
Invalid filename: dir0/file
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论