Skip to content

用户和用户组管理命令

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。

如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

1. groupadd 新增组

基本语法: groupadd 组名

sh
##  添加一个xitianqujing组
[root@hadoop100 ~]# groupadd xitianqujing

2. groupdel 删除组

基本语法: groupdel 组名

sh
##  删除xitianqujing组
[root@hadoop100 ~]# groupdel xitianqujing

3. groupmod 修改组

基本语法 groupmod -n 新组名 老组名

sh
##  修改xitianqujing组名称为xitian
[root@hadoop100 ~]#  groupmod -n xitian xitianqujing

4. cat /etc/group 查看创建了哪些组

sh
[root@hadoop100 ~]# cat /etc/group

5. useradd 添加新用户

语法: useradd [参数] 用户名

参数说明
-r建立系统用户
-M不建立用户目录
-R设置根目录
-u设置用户ID
-U创建与用户同名的组,并将其加入
-g设置用户对应的基本用户组
-p设置用户的密码
-s设置新用户的默认Shell终端
-e设置用户的终止日期
sh
##  添加一个用户
[root@hadoop100 ~]# useradd tangseng
## 添加mysql用户,指定用户组,并设置为系统用户,禁止客户端登录
[root@hadoop100 ~]# useradd -r -g mysql -s /bin/false mysql

6. passwd 设置用户密码

基本语法: passwd 用户名 (功能描述:设置用户密码)

sh
##  设置用户的密码
[root@hadoop100 ~]# passwd tangseng

7. usermod 修改用户

基本语法 usermod -g 用户组 用户名

选项功能
-g修改用户的初始登录组,给定的组必须存在。默认组 id 是 1。
sh
##  将用户加入到用户组
[root@hadoop100 ~]# usermod -g root zhubajie

8. userdel 删除用户

基本语法:
(1)userdel 用户名 (功能描述:删除用户但保存用户主目录)
(2)userdel -r 用户名 (功能描述:用户和用户主目录,都删除)

sh
##  删除用户但保存用户主目录
[root@hadoop100 ~]# userdel tangseng
[root@hadoop100 ~]# ll /home/

9. id 查看用户是否存在

基本语法: id 用户名 可以查看用户属于哪些组

sh
##  查看用户是否存在 
[root@hadoop100 ~]# id jiebaba
id: jiebaba: no such user
jack@hadoop102 opt]$ id jack
uid=1000(jack) gid=10(wheel) =10(wheel)

10. cat /etc/passwd 查看创建了哪些用户

sh
##  查看创建了哪些用户
[root@hadoop100 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin

这些大部分用户都是伪用户,他们不能登录,属于系统内部用户,用来执行系统服务的或者系统预留的。

11. su 切换用户

su: swith user 切换用户
基本语法
su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)

sh
##  切换用户
[root@hadoop100 ~]# su  jack
[jack@hadoop100 root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[jack@hadoop100 ~]$ exit
登出
[root@hadoop100 ~]# su - jack
上一次登录:五 1月 12 22:14:28 CST 2024pts/0
[jack@hadoop100 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/jack/.local/bin:/home/jack/bin

12. who 查看登录用户信息

基本语法
(1)whoami (功能描述:显示自身用户名称)
(2)who am i (功能描述:显示登录用户的用户名以及登陆时间)

sh
##  显示登录用户的用户名
[jack@hadoop100 root]$ who am i
root     pts/0        2024-01-12 14:05 (192.168.101.8)

13. 设置普通用户具有root权限

修改配置文件

sh
##  删除用户但保存用户主目录
[root@hadoop100 ~]# vi /etc/sudoers

找到下面一行(91 行),在 root 下面添加一行,如下所示:

sh
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
jack ALL=(ALL) ALL

修改完毕,现在可以用 jack 帐号登录,然后用命令 sudo ,即可获得 root 权限进行操作。

或者可以将用户加入到weel组中(wheel组是linux的管理员组):usermod -g wheel jack

sh
[jack@hadoop100 root]$ sudo ls
[sudo] jack 的密码:
anaconda-ks.cfg

如果觉得输入密码麻烦:修改/etc/sudoers文件

找到下面一行(110 行),在 root 下面添加一行,如下所示:

sh
## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
jack   ALL=(ALL)       NOPASSWD: ALL