Linux用户与组管理(上篇)

一、用户与组概述

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
该文件保存了用户组的密码。

/etc/login.defs
该文件可以设置密码过期时间,密码最大长度限制等内容。影响的是新创建的用户密码信息。
/etc/skel
作用: 用户创建时默认文件的模版目录

二、用户管理

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 ~]# 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值