一、用户与组概述
Linux 是一个多用户操作系统,允许多个用户同时登录并使用系统资源。用户和组是 Linux 权限管理的基础,用于控制对文件和目录的访问权限。
Linux 用户类型
超级用户(root)
拥有最高权限,可以执行任何操作。root 用户的 UID(用户 ID)为 0。
系统用户
用于运行系统服务或后台进程,通常不用于登录。系统用户的 UID 范围通常为 1-999(不同发行版可能略有差异)。
普通用户
由管理员创建,用于日常操作。普通用户的 UID 通常从 1000 开始。
Linux 组类型
主组(Primary Group)
每个用户必须属于一个主组,创建文件时默认继承主组的权限。
附加组(Supplementary Group)
用户可以属于多个附加组,用于扩展权限管理。
用户与组相关配置文件
/etc/passwd
存储用户信息,包括用户名、UID、主组 ID(GID)、家目录和默认 shell。
/etc/shadow
存储用户密码及密码策略(仅 root 可读)。
/etc/group
存储组信息,包括组名、GID 和组成员列表。
/etc/gshadow
该文件保存了用户组的密码。
作用: 用户创建时默认文件的模版目录
二、用户管理
1、useradd命令
创建一个新用户或更新默认新用户信息
语法:
useradd [选项] 用户名
选项:
选项 | 作用 |
---|---|
-u | 指定用户的UID。 |
-d | 指定用户的家目录,而不采用默认创建在/home中的目录。不能是已存在的目录。 |
-s | 指定用户的登录shell |
-M | 创建用户时不创建家目录 |
-g | 创建用户时指定基本组,不会创建用户的同名组 |
-G | 创建用户时指定附加组,依然会创建同名组 |
-e | 创建用户时,指定用户的失效时间。 |
案例:
[root@A /]# ls -l /home
总用量 0
drwxr-xr-x. 3 root root 23 7月 31 15:32 alice
drwx------. 4 zqf123 zqf123 113 7月 29 19:37 zqf123
[root@A /]# useradd user1 #创建一个新用户:user1
[root@A /]# ls -l /home
总用量 0
drwxr-xr-x. 3 root root 23 7月 31 15:32 alice
drwx------. 3 user1 user1 78 8月 6 14:18 user1
drwx------. 4 zqf123 zqf123 113 7月 29 19:37 zqf123
[root@A /]#
[root@A /]# useradd -u 1100 user2 #指定用户的UID为:1100 创建一个新用户user2
[root@A /]# ls -l /home
总用量 0
drwxr-xr-x. 3 root root 23 7月 31 15:32 alice
drwx------. 3 user1 user1 78 8月 6 14:18 user1
drwx------. 3 user2 user2 78 8月 6 14:22 user2
drwx------. 4 zqf123 zqf123 113 7月 29 19:37 zqf123
[root@A /]# cat /etc/passwd |tail -1
user2:x:1100:1100::/home/user2:/bin/bash
[root@A /]#
[root@A /]# useradd -d /zhang/user3 user3 #指定用户的家目录为/zhang/user3 创建一个新用户user3
[root@A /]# ls /zhang
11.txt 12.txt 13.txt 14.txt 15.txt 1.txt 22.txt 2.txt 3.txt 4.txt 5.txt 66.txt aaa bbb dir1 user3
[root@A /]# ls -a zhang/user3/
. .. .bash_logout .bash_profile .bashrc .mozilla
[root@A /]# cat /etc/passwd |tail -1
user3:x:1101:1101::/zhang/user3:/bin/bash
[root@A /]#
[root@A /]# useradd -s /bin/false user4 #指定用户的不能登录 创建一个新用户 user4
[root@A /]# cat /etc/passwd | tail -1
user4:x:1102:1102::/home/user4:/bin/false
[root@A /]# su - user4 #切换用户无效
[root@A /]# su - user4
[root@A /]#
[root@A /]# ls -l /home
总用量 0
drwxr-xr-x. 3 root root 23 7月 31 15:32 alice
drwx------. 3 user1 user1 78 8月 6 14:18 user1
drwx------. 3 user2 user2 78 8月 6 14:22 user2
drwx------. 3 user4 user4 78 8月 6 14:50 user4
drwx------. 4 zqf123 zqf123 113 7月 29 19:37 zqf123
[root@A /]# useradd -M user5
[root@A /]# cat /etc/passwd | tail -1 #在创建新用户时不创建家目录
user5:x:1103:1103::/home/user5:/bin/bash #新用户user5已经存在
[root@A /]# ls -l /home #查看并没有生成加目录
总用量 0
drwxr-xr-x. 3 root root 23 7月 31 15:32 alice
drwx------. 3 user1 user1 78 8月 6 14:18 user1
drwx------. 3 user2 user2 78 8月 6 14:22 user2
drwx------. 3 user4 user4 78 8月 6 14:50 user4
drwx------. 4 zqf123 zqf123 113 7月 29 19:37 zqf123
[root@A /]#
[root@A /]# useradd -g user1 user6 #创建用户时指定基本组为user1 创建一个新用户user6
[root@A /]# cat /etc/passwd |tail -1
user6:x:1104:1001::/home/user6:/bin/bash #GID号为:1001
[root@A /]#
[root@A /]# useradd -G user1 user7 #创建用户时指定附加组user1 同时创建同名组user7
[root@A /]# cat /etc/passwd |tail -1
user7:x:1105:1105::/home/user7:/bin/bash
[root@A /]# cat /etc/group |tail -7
zqf123:x:1000:
user1:x:1001:user7
user2:x:1100:
user3:x:1101:
user4:x:1102:
user5:x:1103:
user7:x:1105:
[root@A /]#
[root@A /]# useradd -e 2025-08-07 user8 #创建用户user8 有效期为1天
[root@A /]# cat /etc/passwd |tail -1
user8:x:1106:1106::/home/user8:/bin/bash
[root@A /]# cat /etc/shadow |tail -1
user8:!!:20306:0:99999:7::20307: #有效期为:20306天 - 20307天
[root@A /]#
2、userdel
删除用户账户和相关文件
语法:
userdel [选项] 用户名
选项:
选项 | 作用 |
---|---|
-r, --remove | 用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中的文件必须手动搜索并删除。 |
案例:
[root@A /]# ls /zhang
.11.txt 12.txt 13.txt 14.txt 15.txt 1.txt 22.txt 2.txt 3.txt 4.txt 5.txt 66.txt aaa bbb dir1 user3
[root@A ~]# userdel -r user3
[root@A ~]# ls /zhang
11.txt 12.txt 13.txt 14.txt 15.txt 1.txt 22.txt 2.txt 3.txt 4.txt 5.txt 66.txt aaa bbb dir1
[root@A ~]#
3、passwd命令
更改用户的密码。root用户使用时,可以更改所有用户的密码。普通用户使用时,只能更改本身的密码。
语法:
passwd [选项] 用户名
选项:
选项 | 作用 |
---|---|
-l(小写L), --lock | 锁定用户密码。 |
-S | 查看密码的锁定状态 |
-u,--unlock | 解除用户密码的锁定状态 |
-d, --delete | 将用户密码清空 |
-e,--expire | 直接让密码失效,下次登录时必须更改。 |
--stdin | 非交互式修改密码。 |
案例:
[root@A ~]# passwd user1
更改用户 user1 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
[root@A ~]# cat /etc/shadow |tail -7 | head -1
user1:$6$pR00hi/JT21JSFIw$Zv7HFaQFIVAqo6xHr3.l0xy5ugX5.gXktT8ub9yS7LtJd99JaajiELJyZmm.Rc8FkIxslCnwWXwer6TFotMBb0:20306:0:99999:7:::
[root@A ~]# passwd -l user1
锁定用户 user1 的密码 。
passwd: 操作成功
[root@A ~]# cat /etc/shadow |tail -7 | head -1
user1:!!$6$pR00hi/JT21JSFIw$Zv7HFaQFIVAqo6xHr3.l0xy5ugX5.gXktT8ub9yS7LtJd99JaajiELJyZmm.Rc8FkIxslCnwWXwer6TFotMBb0:20306:0:99999:7:::
[root@A ~]# passwd -S user1
user1 LK 2025-08-06 0 99999 7 -1 (密码已被锁定。)
[root@A ~]# passwd -u user1
解锁用户 user1 的密码。
passwd: 操作成功
[root@A ~]# cat /etc/shadow |tail -7 | head -1
user1:$6$pR00hi/JT21JSFIw$Zv7HFaQFIVAqo6xHr3.l0xy5ugX5.gXktT8ub9yS7LtJd99JaajiELJyZmm.Rc8FkIxslCnwWXwer6TFotMBb0:20306:0:99999:7:::
[root@A ~]# passwd -d user1
清除用户的密码 user1。
passwd: 操作成功
[root@A ~]# cat /etc/shadow |tail -7 | head -1
user1::20306:0:99999:7:::
[root@A ~]# echo 123123... |passwd --stdin user1
更改用户 user1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@A ~]# cat /etc/shadow |tail -7 | head -1
user1:$6$LI6ktNb6WCMq1Io5$sCUUUkeBDBgedPWdiD1ULguGsMrbwP1.6NypkyghXtHggEjsh5RN29i184rEpWJ5Q3uWm9TftQ10FaKecZrkt.:20306:0:99999:7:::
[root@A ~]#
4、usermod命令
修改一个用户账户的属性。
语法:
usermod [选项] 用户名
选项:
选项 | 作用 |
---|---|
-u | 修改用户的UID。 |
-d | 修改用户的家目录,而不采用默认创建在/home中的目录。 |
-s | 修改用户的登录shell |
-g | 修改用户基本组,不会创建用户的同名组 |
-G | 修改用户附加组,依然会创建同名组 |
-e | 修改用户的失效时间。 |
-a, --append | 追加用户到一个附加组 |
-L, --lock | 锁定用户 |
-U, --unlock | 解锁用户 |
案例:
[root@A ~]# usermod -aG user2 user5
[root@A ~]# id user5
用户id=1103(user5) 组id=1103(user5) 组=1103(user5),1100(user2)
[root@A ~]#
[root@A ~]# echo 123 |passwd --stdin user5
更改用户 user5 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@A ~]# usermod -L user5
[root@A ~]# passwd -S user5
user5 LK 2025-08-06 0 99999 7 -1 (密码已被锁定。)
[root@A ~]# usermod -U user5
[root@A ~]# passwd -S user5
user5 PS 2025-08-06 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[root@A ~]#
5、chpasswd命令
批量更新密码。
语法:
chpasswd [选项]
选项:
选项 | 作用 |
---|---|
案例:
[root@A ~]# vim chpasswd.txt
[root@A ~]# cat chpasswd.txt
user1:123.com
user2:1234.com
user4:12345.com
user5:321.com
[root@A ~]# cat chpasswd.txt | chpasswd
[root@A ~]# cat /etc/shadow |tail -7 |head -4
user1:$6$zgs1vtzWnBsMrNI9$wnfjDwNmw6xkAxcjLIP8wWZopLIy1RimJeXKSqbq55jcIgo5OV1D0lCG1KGUDMWufvzPJDlICZo0Rg0gr8bQe/:20306:0:99999:7:::
user2:$6$P4MrFpBG9fRxdhCD$leGRg48PfgTT.qzRoEaOdWKhxMDB0Hzs8.jgEVOjLz.sXaYoLF.YD6VubcETrSkBzy1147NOLbNGEOprqw9.D/:20306:0:99999:7:::
user4:$6$0MtK3F7IHbGii6MM$dOdytaPmWrhhROzwEnYDmJMwZAHwEfZ3YyZERxxjEFFmtxAkIA3tSGNtxL9.EH3ISe5.PLOlr0tv/wEbxJdWe/:20306:0:99999:7:::
user5:$6$Ka5YoEXMeDoSLIZM$eYVxHQY4Us/gmp6MR1EhjK94DoOhzW/33gDJTsW3b8gRGWrigLnx.O.FIYoqCtjPfGoyiwknZ4h2erVnrj0d40:20306:0:99999:7:::
[root@A ~]#