hadoop和hive通过客户机接入到集群生产,客户机是linux系统,那么linux用户和hive角色之间是什么关系呢?
或者说,怎么控制linux系统用户可以细粒度访问hive的数据库和表。
2、新建linux用户和用户组
1)#groupadd hphs;
2)#useradd -d /home/hphs/ -m hphs -g hphs -G hadoop
指定用户所属的附加组hadoop;
3)#passwd hphs
设置密码为:123!@#
4)ssh进入hphs,查看所属群组:
#groups
显示:hphs hadoop
3、回顾下Linux的ACL控制体系
1)3个权限组:owner、group和other;
2)3个权限类:r(读)、w(写)和x(执行);
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
3)在hadoop下有个文件test.txt,用hdfs用户进入:
目前
-rw-r--r-- 3 hdfs supergroup 6 2017-04-05 16:24 /test.txt
第一:将组赋予hadoop
hadoop fs -chown hdfs:hadoop /test.txt
第二:权限修改为组可读其他用户不可读
hadoop fs -chmod 740 /test.txt
修改后:
-rwxr----- 3 hdfs hadoop 6 2017-04-05 16:24 /test.txt
4、HDFS访问控制实践
集群没有kerberos认证,所以客户机的任何linux用户进入都可以执行hadoop命令。
如果加入kerberos认证,那linux用户要认证后才能执行hadoop命令。
1)目录不允许其他用户读写的情形
—权限:
drwxrwx--- - hbase hadoop 0 2016-04-14 23:14 /hbase
—执行:[hphs@appnode142 hphs]$ hadoop fs -ls /hbase
提示:ls: Permission denied: user=hphs, access=READ_EXECUTE, inode="/hbase":hbase:hadoop:drwxrwx---
2)目录允许其他用户读的情形
—权限:
drwxr-xr-x - hdfs hadoop 0 2017-03-15 10:44