【linux用户模块】用户/用户组的管理

大数据集群的用户管理是基于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/group
pgx:x:1001:
supergroup:x:1002:pgx
pgx01:x:1003:
pgx001:x:1004:
pgx02:x:1005:
[root@cdh01 ~]#
[root@cdh01 ~]# groupadd -g 1005 pgx02
groupadd:“pgx02”组已存在
[root@cdh01 ~]#
[root@cdh01 ~]# groupadd -g 1005 pgx03
groupadd:GID “1005”已经存在
[root@cdh01 ~]#
[root@cdh01 ~]# groupadd -g 1006 pgx03
[root@cdh01 ~]# tail -n5 /etc/group
supergroup:x:1002:pgx
pgx01:x:1003:
pgx001:x:1004:
pgx02:x:1005:
pgx03:x:1006:
[root@cdh01 ~]#
删除一个组

语法: groupdel groupname
1、组里面有用户的时候不能删除这个组,要先删除这个用户或者将用户从这个组移除

[root@cdh01 ~]# tail -n5 /etc/group
supergroup:x:1002:pgx
pgx01:x:1003:
pgx001:x:1004:
pgx02:x:1005:
pgx03:x:1006:
[root@cdh01 ~]# groupdel pgx03
[root@cdh01 ~]# tail -n5 /etc/group
pgx:x:1001:
supergroup:x:1002:pgx
pgx01:x:1003:
pgx001:x:1004:
pgx02:x:1005:
[root@cdh01 ~]# 
# 删除用户后再删除组
[root@cdh01 ~]# groupdel pgx02
groupdel:不能移除用户“pgx_user_002”的主组
[root@cdh01 ~]# userdel pgx_user_002
[root@cdh01 ~]# groupdel pgx02
[root@cdh01 ~]# tail -n5 /etc/group
spark:x:977:yarn
pgx:x:1001:
supergroup:x:1002:pgx
pgx01:x:1003:
pgx001:x:1004:
# 修改用户的用户组后,删除用户组
[root@cdh01 ~]# useradd -g pgx001 pgx_user_001
[root@cdh01 ~]# groupdel pgx001
groupdel:不能移除用户“pgx_user_001”的主组
[root@cdh01 ~]# tail -n3 /etc/passwd
pgx:x:1001:1001::/home/pgx:/bin/bash
pgx01:x:1002:1003::/home/pgx01:/bin/bash
pgx_user_001:x:1003:1004::/home/pgx_user_001:/bin/bash
[root@cdh01 ~]# usermod -g pgx01 pgx_user_001
[root@cdh01 ~]# tail -n3 /etc/passwd
pgx:x:1001:1001::/home/pgx:/bin/bash
pgx01:x:1002:1003::/home/pgx01:/bin/bash
pgx_user_001:x:1003:1003::/home/pgx_user_001:/bin/bash
[root@cdh01 ~]# groupdel pgx001
[root@cdh01 ~]# tail -n5 /etc/group
impala:x:978:
spark:x:977:yarn
pgx:x:1001:
supergroup:x:1002:pgx
pgx01: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/passwd
user_pgx_01:x:1004:1004::/home/user_pgx_01:/bin/bash
user_pgx_02:x:1005:1003::/home/user_pgx_02:/bin/bash
user_pgx_03:x:1006:1003::/home/user_pgx_03:/bin/bash
user_pgx_04:x:1007:1003::/home/user_pgx_04:/bin/bash
user_pgx_001:x:1008:1008::/home/user_pgx_001:/bin/bash
[root@cdh01 ~]# tail -n5 /etc/group
pgx:x:1001:
supergroup:x:1002:pgx
pgx01: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/passwd
user_pgx_04:x:1007:1003::/home/user_pgx_04:/bin/bash
user_pgx_001:x:1008:1008::/home/user_pgx_001:/bin/bash
user_pgx_002:x:1009:1009::/home/user_pgx_002:/bin/bash
[root@cdh01 ~]# 
[root@cdh01 ~]# ll /home/user_pgx_002
ls: 无法访问/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/passwd
user_pgx_001:x:1008:1008::/home/user_pgx_001:/bin/bash
user_pgx_002:x:1009:1009::/home/user_pgx_002:/bin/bash
user_pgx_003:x:1010:1010::/home/user_pgx_003:/sbin/nologin
[root@cdh01 ~]# su user_pgx_003
This account is currently not available.
[root@cdh01 ~]# 

# 使用-g的时候,指定的组必须已存在,否则报错
[root@cdh01 ~]# useradd -g group_not_exist user_pgx_02
useradd:“group_not_exist”组不存在

# -g: 使用户属于已经存在的某个组,后面可以跟组id, 也可以跟组名
[root@cdh01 ~]# tail -n5 /etc/group
spark:x:977:yarn
pgx:x:1001:
supergroup:x:1002:pgx
pgx01: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/passwd
user_pgx_02:x:1005:1003::/home/user_pgx_02:/bin/bash
user_pgx_03:x:1006:1003::/home/user_pgx_03:/bin/bash
user_pgx_04:x:1007:1003::/home/user_pgx_04:/bin/bash
[root@cdh01 ~]# 
删除一个用户

语法 : userdel [-r] username
-r: 删除账户的时候连带账户的主目录一起删除

# 删除时 带上 -r 则会将账号对于的主目录删除
[root@cdh01 ~]# tail -n5 /etc/passwd
user_pgx_03:x:1006:1003::/home/user_pgx_03:/bin/bash
user_pgx_04:x:1007:1003::/home/user_pgx_04:/bin/bash
user_pgx_001:x:1008:1008::/home/user_pgx_001:/bin/bash
user_pgx_002:x:1009:1009::/home/user_pgx_002:/bin/bash
user_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_03
ls: 无法访问/home/user_pgx_03: 没有那个文件或目录

# 不使用 -r 账号对于的主目录不会被删除
[root@cdh01 ~]# tail -n5 /etc/passwd
user_pgx_02:x:1005:1003::/home/user_pgx_02:/bin/bash
user_pgx_04:x:1007:1003::/home/user_pgx_04:/bin/bash
user_pgx_001:x:1008:1008::/home/user_pgx_001:/bin/bash
user_pgx_002:x:1009:1009::/home/user_pgx_002:/bin/bash
user_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/group
g_pgx_001:x:1011:u_pgx_002
g_pgx_002:x:1012:
g_pgx_003:x:1013:
[root@cdh01 ~]# tail -n3 /etc/passwd
u_pgx_001:x:1011:1011::/home/u_pgx_001:/bin/bash
u_pgx_002:x:1012:1011::/home/u_pgx_002:/bin/bash
u_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/passwd
u_pgx_001:x:1011:1011::/home/u_pgx_001:/bin/bash
u_pgx_002:x:1012:1012::/home/u_pgx_002:/bin/bash
u_pgx_003:x:1013:1011::/home/u_pgx_003:/bin/bash
[root@cdh01 ~]#

# -G 的作用是附加群组,主要配合-a使用,将用户追加至上边 -G 中提到的附加组中,并不从其它组中删除此用户
# 每个用户有自己的一个主组,如果想要将这个用户添加到别的组,拥有那个组的权限,就要使用-a -G的方式添加
[root@cdh01 ~]# groups u_pgx_002
u_pgx_002 : g_pgx_002
[root@cdh01 ~]# usermod -a -G g_pgx_001 u_pgx_002
[root@cdh01 ~]# groups u_pgx_002
u_pgx_002 : g_pgx_002 g_pgx_001
[root@cdh01 ~]# usermod -a -G g_pgx_003 u_pgx_002
[root@cdh01 ~]# groups u_pgx_002
u_pgx_002 : g_pgx_002 g_pgx_001 g_pgx_003
[root@cdh01 ~]# 
修改用户密码

语法:passwd [username]
1、只有root可以修改其他账户的密码
2、passwd 后面不跟用户名的情况下,默认修改本账号的密码

参考学习:
http://www.apelearn.com/study_v2/chapter8.html
https://ipcmen.com/usermod

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值