本文共 6348 字,大约阅读时间需要 21 分钟。
大数据集群的用户管理是基于linux的用户权限的,linux的用户管理是直接复用到hdfs上面,所以想要搞清楚hdfs上面用户的管理,要先了解一下linux的用户管理,特别是用户在不同组的权限会不同的问题。
新增一个组:
语法:groupadd [-g GID] groupname
1、[-g GID] 是用来自定义gid, 如果不自定义可以省略,会按照系统默认的gid创建组,跟用户一样,gid也是从500开始的。 2、创建组的时候,使用已存在的gid,组名都会报【已存在】错误
[root@cdh01 ~]# groupadd pgx02[root@cdh01 ~]# tail -n5 /etc/grouppgx:x:1001:supergroup:x:1002:pgxpgx01:x:1003:pgx001:x:1004:pgx02:x:1005:[root@cdh01 ~]#[root@cdh01 ~]# groupadd -g 1005 pgx02groupadd:“pgx02”组已存在[root@cdh01 ~]#[root@cdh01 ~]# groupadd -g 1005 pgx03groupadd:GID “1005”已经存在[root@cdh01 ~]#[root@cdh01 ~]# groupadd -g 1006 pgx03[root@cdh01 ~]# tail -n5 /etc/groupsupergroup:x:1002:pgxpgx01:x:1003:pgx001:x:1004:pgx02:x:1005:pgx03:x:1006:[root@cdh01 ~]#
删除一个组
语法: groupdel groupname
1、组里面有用户的时候不能删除这个组,要先删除这个用户或者将用户从这个组移除
[root@cdh01 ~]# tail -n5 /etc/groupsupergroup:x:1002:pgxpgx01:x:1003:pgx001:x:1004:pgx02:x:1005:pgx03:x:1006:[root@cdh01 ~]# groupdel pgx03[root@cdh01 ~]# tail -n5 /etc/grouppgx:x:1001:supergroup:x:1002:pgxpgx01:x:1003:pgx001:x:1004:pgx02:x:1005:[root@cdh01 ~]# # 删除用户后再删除组[root@cdh01 ~]# groupdel pgx02groupdel:不能移除用户“pgx_user_002”的主组[root@cdh01 ~]# userdel pgx_user_002[root@cdh01 ~]# groupdel pgx02[root@cdh01 ~]# tail -n5 /etc/groupspark:x:977:yarnpgx:x:1001:supergroup:x:1002:pgxpgx01:x:1003:pgx001:x:1004:# 修改用户的用户组后,删除用户组[root@cdh01 ~]# useradd -g pgx001 pgx_user_001[root@cdh01 ~]# groupdel pgx001groupdel:不能移除用户“pgx_user_001”的主组[root@cdh01 ~]# tail -n3 /etc/passwdpgx:x:1001:1001::/home/pgx:/bin/bashpgx01:x:1002:1003::/home/pgx01:/bin/bashpgx_user_001:x:1003:1004::/home/pgx_user_001:/bin/bash[root@cdh01 ~]# usermod -g pgx01 pgx_user_001[root@cdh01 ~]# tail -n3 /etc/passwdpgx:x:1001:1001::/home/pgx:/bin/bashpgx01:x:1002:1003::/home/pgx01:/bin/bashpgx_user_001:x:1003:1003::/home/pgx_user_001:/bin/bash[root@cdh01 ~]# groupdel pgx001[root@cdh01 ~]# tail -n5 /etc/groupimpala:x:978:spark:x:977:yarnpgx:x:1001:supergroup:x:1002:pgxpgx01:x:1003:
新增一个用户
语法:useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]
-u: 自定义UID -g: 使其属于已经存在的某个组,后面可以跟组id, 也可以跟组名 -d: 自定义用户的家目录 -M: 不建立家目录 -s: 自定义shell
# -u 自定义uid# 不加-g的情况下,则会创建一个跟用户名同样名字的组。[root@cdh01 ~]# useradd -u 1008 user_pgx_001[root@cdh01 ~]# tail -n5 /etc/passwduser_pgx_01:x:1004:1004::/home/user_pgx_01:/bin/bashuser_pgx_02:x:1005:1003::/home/user_pgx_02:/bin/bashuser_pgx_03:x:1006:1003::/home/user_pgx_03:/bin/bashuser_pgx_04:x:1007:1003::/home/user_pgx_04:/bin/bashuser_pgx_001:x:1008:1008::/home/user_pgx_001:/bin/bash[root@cdh01 ~]# tail -n5 /etc/grouppgx:x:1001:supergroup:x:1002:pgxpgx01:x:1003:user_pgx_01:x:1004:user_pgx_001:x:1008:# -M 是不建立家目录,但可以看到在passwd下面还能看到这个主目录路径,不过实际上是没有创建的[root@cdh01 ~]# useradd -u 1009 -M user_pgx_002[root@cdh01 ~]# tail -n3 /etc/passwduser_pgx_04:x:1007:1003::/home/user_pgx_04:/bin/bashuser_pgx_001:x:1008:1008::/home/user_pgx_001:/bin/bashuser_pgx_002:x:1009:1009::/home/user_pgx_002:/bin/bash[root@cdh01 ~]# [root@cdh01 ~]# ll /home/user_pgx_002ls: 无法访问/home/user_pgx_002: 没有那个文件或目录# -s 自定义shell# 不加的时候默认是/bin/bash# 如果不想让这个用户登录,可以使用-s /sbin/nologin[root@cdh01 ~]# useradd -u 1010 -M -s /sbin/nologin user_pgx_003[root@cdh01 ~]# tail -n3 /etc/passwduser_pgx_001:x:1008:1008::/home/user_pgx_001:/bin/bashuser_pgx_002:x:1009:1009::/home/user_pgx_002:/bin/bashuser_pgx_003:x:1010:1010::/home/user_pgx_003:/sbin/nologin[root@cdh01 ~]# su user_pgx_003This account is currently not available.[root@cdh01 ~]# # 使用-g的时候,指定的组必须已存在,否则报错[root@cdh01 ~]# useradd -g group_not_exist user_pgx_02useradd:“group_not_exist”组不存在# -g: 使用户属于已经存在的某个组,后面可以跟组id, 也可以跟组名[root@cdh01 ~]# tail -n5 /etc/groupspark:x:977:yarnpgx:x:1001:supergroup:x:1002:pgxpgx01:x:1003:user_pgx_01:x:1004:[root@cdh01 ~]# useradd -g pgx01 user_pgx_03[root@cdh01 ~]# useradd -g 1003 user_pgx_04[root@cdh01 ~]# tail -n3 /etc/passwduser_pgx_02:x:1005:1003::/home/user_pgx_02:/bin/bashuser_pgx_03:x:1006:1003::/home/user_pgx_03:/bin/bashuser_pgx_04:x:1007:1003::/home/user_pgx_04:/bin/bash[root@cdh01 ~]#
删除一个用户
语法 : userdel [-r] username
-r: 删除账户的时候连带账户的主目录一起删除
# 删除时 带上 -r 则会将账号对于的主目录删除[root@cdh01 ~]# tail -n5 /etc/passwduser_pgx_03:x:1006:1003::/home/user_pgx_03:/bin/bashuser_pgx_04:x:1007:1003::/home/user_pgx_04:/bin/bashuser_pgx_001:x:1008:1008::/home/user_pgx_001:/bin/bashuser_pgx_002:x:1009:1009::/home/user_pgx_002:/bin/bashuser_pgx_003:x:1010:1010::/home/user_pgx_003:/sbin/nologin[root@cdh01 ~]# [root@cdh01 ~]# ll /home/user_pgx_03总用量 0[root@cdh01 ~]# userdel -r user_pgx_03[root@cdh01 ~]# ll /home/user_pgx_03ls: 无法访问/home/user_pgx_03: 没有那个文件或目录# 不使用 -r 账号对于的主目录不会被删除[root@cdh01 ~]# tail -n5 /etc/passwduser_pgx_02:x:1005:1003::/home/user_pgx_02:/bin/bashuser_pgx_04:x:1007:1003::/home/user_pgx_04:/bin/bashuser_pgx_001:x:1008:1008::/home/user_pgx_001:/bin/bashuser_pgx_002:x:1009:1009::/home/user_pgx_002:/bin/bashuser_pgx_003:x:1010:1010::/home/user_pgx_003:/sbin/nologin[root@cdh01 ~]# ll /home/user_pgx_02总用量 0[root@cdh01 ~]# userdel user_pgx_02[root@cdh01 ~]# ll /home/user_pgx_02总用量 0[root@cdh01 ~]#
更新用户
语法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u ][用户帐号]
-c: 修改用户帐号的备注文字。 -d: 修改用户登入时的目录。 -e: 修改帐号的有效期限。 -f: 修改在密码过期后多少天即关闭该帐号。 -g: 强制使用 GROUP 为新主组。 后面跟gid或者groupname都可以 -G: 修改用户所属的附加群组。 -a: 将用户追加至上边 -G 中提到的附加组中,并不从其它组中删除此用户 -l: 修改用户帐号名称。 -L: 锁定用户密码,使密码无效。 -s: 修改用户登入后所使用的shell。 -u: 修改用户ID。 -U: 解除密码锁定
# 使用-g修改用户所属的组, -g后面跟gid和groupname都可以[root@cdh01 ~]# tail -n3 /etc/groupg_pgx_001:x:1011:u_pgx_002g_pgx_002:x:1012:g_pgx_003:x:1013:[root@cdh01 ~]# tail -n3 /etc/passwdu_pgx_001:x:1011:1011::/home/u_pgx_001:/bin/bashu_pgx_002:x:1012:1011::/home/u_pgx_002:/bin/bashu_pgx_003:x:1013:1011::/home/u_pgx_003:/bin/bash[root@cdh01 ~]# usermod -g g_pgx_002 u_pgx_002[root@cdh01 ~]# tail -n3 /etc/passwdu_pgx_001:x:1011:1011::/home/u_pgx_001:/bin/bashu_pgx_002:x:1012:1012::/home/u_pgx_002:/bin/bashu_pgx_003:x:1013:1011::/home/u_pgx_003:/bin/bash[root@cdh01 ~]## -G 的作用是附加群组,主要配合-a使用,将用户追加至上边 -G 中提到的附加组中,并不从其它组中删除此用户# 每个用户有自己的一个主组,如果想要将这个用户添加到别的组,拥有那个组的权限,就要使用-a -G的方式添加[root@cdh01 ~]# groups u_pgx_002u_pgx_002 : g_pgx_002[root@cdh01 ~]# usermod -a -G g_pgx_001 u_pgx_002[root@cdh01 ~]# groups u_pgx_002u_pgx_002 : g_pgx_002 g_pgx_001[root@cdh01 ~]# usermod -a -G g_pgx_003 u_pgx_002[root@cdh01 ~]# groups u_pgx_002u_pgx_002 : g_pgx_002 g_pgx_001 g_pgx_003[root@cdh01 ~]#
修改用户密码
语法:passwd [username]
1、只有root可以修改其他账户的密码 2、passwd 后面不跟用户名的情况下,默认修改本账号的密码
参考学习:
转载地址:http://dulwb.baihongyu.com/