linux ACL与hdfs ACL权限设置

linux ACL权限设置

 

##ACL权限

ACL即Access Control List 主要的目的是提供传统的owner,group,others的read,write,execute权限之外的具体权限设置,ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。如,某一个文件,不让单一的某个用户访问。

getfacl:   查看某个文件/目录的ACL权限

setfacl:   设置某个文件/目录的ACL权限

setfacl 参数

 -m:    设置后续acl参数 

 -x:     删除后续acl参数  

 -b:     删除全部的acl参数

 -k:     删除默认的acl参数

 -R:    递归设置acl,包括子目录

 -d:    设置默认acl

 

setfacl -m u:user1:rx /test                    ##添加用户acl权限 (rx即r-x)

setfacl -m g:group1:rx /test                 ##添加用户组acl权限

setfacl -m o:--x /test                            ##设置other权限;等价于chmod o+x /test

 

setfacl -m d:u:user1:rx /test                ##设置默认用户acl权限(默认权限下新建子目录会继承父目录权限;即只有文件夹才能给默认权限)

setfacl -m d:g:user1:rx /test                ##设置默认用户组acl权限

setfacl -m d:g:d:--x /test                      ##设置默认other权限

 

setfacl -m u:user1:rwx,u:user2:r-x,g:user3:x /test  ##同时设置多个用户/用户组acl权限;以逗号分隔即可

ls -al /test                                                                      ##如果某个目录或文件下有 + 标志,说明其具有 acl 权限

getfacl /test                                                                  ##查看/test上的acl权限

 

setfacl -m m:r /test                             ##设置mask有效权限

##注意:

有效权限(mask) 即用户或组所设置的权限必须要存在于mask的权限设置范围内才会生效

 

setfacl  -x u:用户名 文件名                           ##删除用户ACL权限

setfacl  -x g:组名 文件名                              ##删除用户组ACL权限

setfacl  -b 文件名                                        ##删除文件的所有ACL权限

-m参数表示:设置后续的acl参数给文件使用,不可与-x同时使用;

-x参数表示: 删除后续的acl参数,不可与-m同时使用;(后面需要指定用户或者用户组或者mask等)

-b参数表示: 删除所有的acl设置参数。(直接删除指定文件的所有用户/用户组的acl权限)

##egg:

setfacl -m u:code:r /test              ##取消/test对用户code的权限

setfacl -R -m u:code:r /test

setfacl -x m /test                      ##取消mask权限

getfacl /test                             ##查看test文件acl权限

 

##另外补充:

dumpe2fs -h /dev/sda1|grep -i "Default mount options"            ##查看分区是否支持acl权限

mount -o remount,acl /                         ##临时开启acl权限

vi /etc/fstab                                          ##永久开启acl权限(default后加上acl;default一般情况默认也包括acl权限)

UUID=490ed737-f8cf-46a6-ac4b-b7735b79fc63 /             ext4    defaults,acl        1 1

mount -o remount /                         ##重新挂载;使得修改生效

 

 

hdfs acl权限设置

##hdfs权限需要修改的几个参数:

vi hdfs-site.xml

<property>

<name>dfs.permissions.enabled</name>

<value>true</value>          
//默认为true,即启用权限检查。如果为false则禁用

</property>

<property>

<name>dfs.namenode.acls.enabled</name>

<value>true</value>       
//默认为false,禁用ACL;设置为true则启用ACL。当ACL被禁用时,NameNode拒绝设置或者获取ACL的请求

</property>

vi core-site.xml        ##设置默认umask权限;即此时hdfs上新建的文件夹和文件默认权限分别为755、644

<property> 
<name>fs.permissions.umask-mode</name> 
<value>022</value> 
</property>

 

hdfs dfs -getfacl  /test/acl                                                      ##查看acl权限

hdfs dfs -setfacl -R -m user:testUser:rw- /test/acl                 ##用户acl赋权;-R递归

hdfs dfs -setfacl [-R] [-b|-k |-x ]|[--set ]                                   ##删除acl权限

-x    删除指定的acl权限

-k    删除所有默认的权限

-b    删除所有的权限

egg:

hdfs dfs -setfacl -R -x user:testUser /test/acl                    ##取消testUser用户权限

hdfs dfs -setfacl -R -b /test/acl                                          ##取消所有的acl权限

 

##赋予所有其他用户都有rwx权限(other中间必须空着)

hadoop fs -setfacl -R -m other::rwx /test/acl

##赋予mask权限

hadoop fs -setfacl -m mask::rwx /tmp/11.txt

 

##注意:

##user::rwx表示文件属主权限;user:zhangsan 表示zhangsan用户权限.(同理:group::rwx表示文件属组权限;group:zhangsan 表示zhangsan用户组权限.)

##若文件属主为hadoop,权限设置rwx,acl赋权时user设置为hadoop,权限为000.最终权限还是以属主设置的777为准

egg:

hdfs dfs -setfacl -R -m user::rwx,user:zhangsan:rwx,group::rwx,other::--- /user/hive/warehouse/mydb.db

或者:

hdfs dfs -setfacl -R --set user::rwx,user:zhangsan:rwx,group::rwx,other::--- /user/hive/warehouse/mydb.db

or:

hdfs dfs -setfacl -R --set user:zhangsan:rwx,group::rwx,other::--- /user/hive/warehouse/mydb.db

 

##同时给多个指定用户acl权限(以逗号分隔即可)

hdfs dfs -setfacl -R --set user:zhangsan:rwx,user:lisi:rwx /user/hive/warehouse/mydb.db

hdfs dfs -setfacl -R -m user:zhangsan:rwx,user:lisi:rwx /user/hive/warehouse/mydb.db

 

##default权限:设置default之后,对新添加的文件和目录生效,对于现有的文件和目录不生效(不过可加-R递归使得都生效)

如:目录A拥有default:user:bruce:rwx权限,则在目录A下创建目录B,则目录B拥有user:bruce:rwx,default:user:bruce:rwx权限。

hadoop fs -setfacl -m -R default:user:bruce:rwx /test

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值