kerberos
sed命令
#sed -i 就是直接对文本文件进行操作的
sed -i 's/原字符串/新字符串/' 文件名 对每行匹配的第一个字符进行替换
sed -i 's/原字符串/新字符串/g' 文件名 对每行所有的匹配的字符进行替换
#去掉 “行首” 带“@”的首字母@
sed -i 's/^@//' file
#特定字符串的行前插入新行
sed -i '/特定字符串/i 新行字符串' file
#特定字符串的行后插入新行
sed -i '/特定字符串/a 新行字符串' file
#特定字符串的删除
sed -i '/字符串/d' file
一、建立每个系统的超级管理员用户
2.建立hive超级管理员用户
1.添加主体
kadmin.local
#? 查看相关命令
# addprinc -pw 密码 用户名@配置文件的邮箱
addprinc -pw xiniu xiniu@HAINIU.COM
2.生成秘钥
#不生成随机密码 在哪个目录下生成 对哪个用户生成
xst -norandkey -k /data/xiniu.keytab xiniu
exit
3.赋权限
[root@worker-1 data]# chown xiniu:xiniu xiniu.keytab
[root@worker-1 data]# chmod 777 xiniu.keytab
4.kerberos认证(切换认证用户)
认证方式一,使用keytab认证 参数kt意义为keytab文件路径 后面接要认证的主体名,keytab文件要和主体名一致
kinit -kt /data/xiniu.keytab xiniu
#认证方式二,是用主体加密码的方式认证
[xiniu@worker-1 data]# kinit xiniu
# 输入密码,即创建主体principal时-pw设置的密码
password
5.查看当前票据 (查看当前session认证用户)
[xiniu@worker-1 data]# klist
6.注销认证用户
[xiniu@worker-1 data]# kdestroy
7.删除注销用户
delprinc '主体名'
二、sentry权限管理-hive
1.认证用户
[xiniu@worker-1 data]$ kinit -kt /data/xiniu.keytab xiniu
2.使用kerberos认证方式登录hive
#使用beeline的方式连接hive,
#第一个worker-1为hiveserver2所在节点的域名,
#第二个worker-1为kerberos的server服务器域名
beeline -u "jdbc:hive2://worker-1:10000/;principal=hive/worker-1@HAINIU.COM"
sentry操作
--hive 超级管理员
create role admin;
grant all on server server1 to role admin;
grant role admin to group hive;
-- 创建角色
create role user1_role;
-- 给角色赋予数据库权限
grant all on database db1 to role user1_role;
-- 给角色赋予表权限
grant select on table db2.test2 to role user1_role;
-- 给角色赋予表中的某一列的权限
grant select(id) on table db2.test2 to role user1_role;
-- 授权角色给用户组
grant role user1_role to group user1;
-- 删除角色
drop role user1_role;
-- 查看角色权限
show grant role user1_role on database db1;
show grant role user1_role on table test1;
-- 权限收回
revoke select on table db2.test2 from role user1_role;
revoke all on database db2 from role user2;
-- 查看某个组都授权了哪些角色
show role grant group hainiu;
3.sentry权限管理-hbase
1)权限分类
RWXCA
•HBase ACLs的访问分为5个级别:
Read(R) : 可以读取给定范围内数据的权限
Write(W) : 可以在给定范围内写数据
Executor(X) : 可以在指定表执行Endpoints类型的协处理
Create(C) : 可以在给定范围内创建和删除表(包括非该用户创建的表)
Admin(A) : 可以执行集群操作,如平衡数据等
2)hbase权限验证
用户授权
#1.创建hbase的超级管理员
[root@worker-1 ~]# useradd Hbase
[root@worker-1 ~]# passwd Hbase
#2. 安全认证
kinit -kt /data/xinniu.keytab xinniu 认证的哪个用户登录hbase就是哪个用户
#3. 登陆hbase
hbase shell
#4. 查看当前登陆用户
whoami
# 查看表
list
# 创建表
create 'testacl','cf'
# grant 用户组 给什么权限 CA权限等同于RWXCA所有权限
#当@出现在第一个参数位置的时候,代表的是用户组
grant '@Hbase','CA'
#查看当前所有用户及组权限
user_permission '.*'
命名空间acl授权
# 当@出现在第三个参数位置的时候代表的是命名空间,
第一个参数是你给哪个用户赋权,第二个参数代表给什么权限,第三个参数是命名空间
grant 'mapengfei','RWXCA','@mpf'
表级授权
#给mapengfei用户mpf:tableacl的所有权限
grant 'mapengfei','RWXCA','mpf:tableacl'
列族acl授权
给其他用户授权指定列族
命名空间:表名,烈族名
grant '用户名','RW','mpf:cfacl','cf1'
权限收回
revoke '用户名', 'mpf:cfacl', 'cf1'