CDH用户管理

 一 简介

  CDH大数据集群安装和使用过程中,涉及到很多用户。根据用户性质分为服务用户和使用用户。服务用户是在搭建CDH集群中自动创建的,使用用户是在集群使用中管理员创建的。这些用户都是基于linux的用户。因此先补充一下linux 用户知识。

  二 Linux 用户操作

  1. 查看用户信息

  • whoami 查看当前登录用户名
  • groups 查看当前登录用户的组内成员
  • groups test 查看test用户所在的组,以及组内成员
  • cat /etc/passwd (文件格式是:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell)
  • cat /etc/group (文件格式是: 组名:口令:组标识号:组内用户列表)

       2. 用户操作(添加,删除,修改)

       2.1 添加 useradd

  格式:useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

  主要参数

  -c:加上备注文字,备注文字保存在passwd的备注栏中。

  -d:指定用户登入时的主目录,替换系统默认值/home/<用户名>

  -D:变更预设值。

  -e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。

  -f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.

  -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。

  -G:指定用户所属的附加群组。

  -m:自动建立用户的登入目录。

  -M:不要自动建立用户的登入目录。

  -n:取消建立以用户名称为名的群组。

  -r:建立系统账号。

  -s:指定用户登入后所使用的shell。默认值为/bin/bash。

  -u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。

  特例:无法使用shell,且其用户目录至/var/servlet/service 

     useradd tomcat  -d /var/servlet/service -s /sbin/nologin

  2.2 删除用户

  • userdel username
  • userdel -f  username 连同用户目录一并删除

  2.3 用户权限和用户组修改

  文件用户和用户组修改:chown

  权限修改:chmod

  1. -a|--append  ##把用户追加到某些组中,仅与-G选项一起使用 
  2. -c|--comment ##修改/etc/passwd文件第五段comment 
  3. -d|--home    ##修改用户的家目录通常和-m选项一起使用 
  4. -e|--expiredate  ##指定用户帐号禁用的日期,格式YY-MM-DD 
  5. -f|--inactive    ##用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1 
  6. -g|--gid     ##修改用户的gid,改组一定存在
  7. -G|--groups  ##把用户追加到某些组中,仅与-a选项一起使用 
  8. -l|--login   ##修改用户的登录名称 
  9. -L|--lock    ##锁定用户的密码 
  10. -m|--move-home   ##修改用户的家目录通常和-d选项一起使用 
  11. -s|--shell   ##修改用户的shell 
  12. -u|--uid     ##修改用户的uid,该uid必须唯一 
  13. -U|--unlock  ##解锁用户的密码

  三, CDH 中用户信息

  1. 按照功能汇总

用户名

密码

说明

cloudera-scm

cloudera-scm-server服务的用户

admin

自定义

cloudera manager管理员用户

scm

自定义

cm数据库的用户名和密码

自定义

Kerberos 数据库

admin/admin@HADOOP.COM

(自定义)

自定义

Kerberos database管理员

cloudera-scm/admin@HADOOP.COM(自定义)

自定义

Cloudera manager管理kerberos的

自定义

Ldap数据库

Flume,hdfs,solr zookeeper,llama,httpfs,mapred,sqoop,yarn,kms,hive,sqoop2,oozie,hbase,sentry,impala,spark,hue,ldap

大数据集群中各服务用户

hdfs@HADOOP.COM和hive@HADOOP.COM

自定义

大数据集群的超级用户(权限管理使用)

duan(自定义)

大数据集群普通用户,用户ID>=1000

duan@HADOOP.COM

自定义

Kerberos创建用户

  2. 官网文档:https://www.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_network_and_security_requirements.html

 

 四,创建普通用户 

  1. 系统介绍  

  • 操作系统:CentOs 7
  • Hadoop版本:CDH5.12.2
  • JDK版本:1.8.0_101
  • OpenLDAP 版本:2.4.44
  • Kerberos 版本:1.15.1-19.el7
  • sentry 版本

           2. 创建用户

 说明:每个帐户的用户ID必须大于或等于1000.在/etc/hadoop/conf/taskcontroller.cfg文件中,banned.users属性的默认设置是mapred,hdfs和bin,以防止作业 从这些用户帐户提交。 min.user.id属性的默认设置是1000,以防止使用小于1000的用户ID提交作业,这些用户ID通常是Unix超级用户。

2.1 堡垒机节点创建test1 用户和用户组

useradd test1  -u 1001

 usermod -a -G duan test1(duan是普通用户组)

2.2 ldap增加账户及账户组(待验证)

grep -E "dsp:|dmp:" /etc/passwd  >/opt/passwd.txt      
/usr/share/migrationtools/migrate_passwd.pl /opt/passwd.txt /opt/passwd.ldif  
ldapadd -x -D "uid=ldapadmin,ou=people,dc=yeahmobi,dc=com" -w secret -f /opt/passwd.ldif  
grep -E "dsp:|dmp:" /etc/group  >/opt/group.txt  
/usr/share/migrationtools/migrate_group.pl /opt/group.txt /opt/group.ldif  
ldapadd -x -D "uid=ldapadmin,ou=people,dc=yeahmobi,dc=com" -w secret -f /opt/group.ldif  
ldappasswd -x -D 'uid=ldapadmin,ou=people,dc=yeahmobi,dc=com' -w secret "uid=dsp,ou=people,dc=yeahmobi,dc=com" -S    
ldappasswd -x -D 'uid=ldapadmin,ou=people,dc=yeahmobi,dc=com' -w secret "uid=dmp,ou=people,dc=yeahmobi,dc=com" -S     
ldappasswd -x -D 'uid=ldapadmin,ou=people,dc=yeahmobi,dc=com' -w secret "uid=bi,ou=people,dc=yeahmobi,dc=com" -S 

2.3 kerberos 生成用户

kadmin.local
kadmin.local: addprinc test1 (密码是####)
kadmin.local: xst -k /tmp/keytab/test1.keytab  -norandkey test1   说明:-norandkey参数是生成不变的密码。

2.4 hadoop中增加相应用户的目录及权限

hadoop fs -mkdir /user/test1  
hadoop fs -chmod -R 755 /user/test1  
hadoop fs -chown -R test1:test1/user/test1

2.4 sentry 基于角色赋予权限,所以

sentry安装后需要和hive,impala等组件集成,详见其他材料。本文只介绍用户角色权限。

集成后,需要创建hive管理账号。

kadmin.local
kadmin.local: addprinc hive (密码是####)
kadmin.local: xst -k /tmp/keytab/hive.keytab  -norandkey hive   说明:-norandkey参数是生成不变的密码。
kinit hive
Beeline
>!connect jdbc:hive2://duan139:10000/default;principal=hive/duan139@HADOOP.COM
>create role admin;
>grant all on server server1 to role admin;
>grant role admin to group hive;

创建普通用户(hive用户beeline登陆)

>create role duan ;
>grant all on database default to role duan with grant option;
>grant role duan to group duan;

此处有个逻辑:test1属于duan用户组,上述步骤创建了duan角色,并赋予default数据库全部权限,然后授予到duan 用户组,即duan 用户组中的用户成员就有default数据库全部权限了。

 

posted @ 2018-11-27 16:58  duaner92  阅读(4683)  评论(0编辑  收藏  举报