UID,是用户身份证明(User Identification)的缩写,作为Linux中用户在系统中的唯一身份识别(唯一标示符扩展),Linux 并不识别用户名称,而是以用户名对应的 ID 号来识别不同类型的用户,不同的uid对应不同用户的权限。
Linux的用户分类
用户user
1、管理员用户 用户名:root,UID:0
2、普通用户
- 系统用户 这部分用户无法登录系统。2.6.x的内核中,这部分用户的UID范围为1-499。3.10.x版本内核中,这部分用户的UID范围为1-999
- 本地用户 可以交互式登录系统。2.6.x的内核中,这部分用户的UID范围为500+。3.10.x版本内核中,这部分用户的UID范围为1000+
用户组group:
用户的主要组:用户必须属于一个且只有一个主组,组名同用户名,当用户组内仅包含一个用户时,该组为私有组
用户的附加组:一个用户可以属于0个或多个附加组
Linux用户和用户组的配置文件
/etc/passwd:存放用户及其属性信息,文件格式为:
root | x | 0 | 0 | root | /root | /bin/bash |
用户名 | 密码 | uid | gid | 用户名解释 | 用户的家目录 | 用户默认使用的shell |
/etc/group:存放用户的组及属性信息,文件格式为:
x | 12 | postfix | |
组名 | 组密码占位符 | 组id | 以当前组为附加组的用户列表(分隔符为逗号) |
/etc/shadow:存放用户密码及其相关属性,文件格式为:
bin | * | 17110 | 0 | 99999 | 7 | |||
用户名 | 加密的密码 | 从unix元年到 最近一次更改密码的日期 |
密码的最小使用期限 (0)表示随时可以修改 |
密码的最大使用期限 (99999)表示永不过期 |
密码警告时间段 | 密码禁用期 | 账号的过期日期 | 保留字段 |
/etc/gshadow:组密码及相关属性
使用命令快速操作passwd和group文件
编辑命令
-
vipw 编辑密码文件,并且上锁,其他人是无法修改成功的
-
vipw -s :修改/etc/shadow文件
- vigr 修改/etc/groups文件
- vigr -s 修改/etc/gshadow文件
检查命令
- pwck 检查用户密码文件的完整性(/etc/passwd以及/etc/shadow文件)
- grpck 检查用户组及密码文件的完整性(etc/group以及/etc/gshadow文件)
用户管理命令
1、useradd添加用户
语法:useradd [options] LOGIN
选项:
选项名 | 含义 |
-u UID | 定义在/etc/login.defs |
-o | 与-u同用,不检查UID的唯一性 |
-g GID | 指定用户所属的基本组,可以是组名,也可以是GID |
-c "COMMENT" | 用户的注释信息 |
-d HOME_DIR | 指定用户的家目录 |
-s SHELL | 指定用户默认shell |
-G GROUP1[,GROUP2,...[,GROUPN]]] | 为用户指明附加组,组必须实现存在 |
-N | 不创建私用组做主组,使用users组做主组 |
-r | 创建系统用户 |
-D | 修改默认值设置,默认值在/etc/default/useradd文件 |
测试
创建一个test用户,附加组为bin和root,使用tsh
[root@localhost ~]# useradd test -G bin,root -s /bin/tsh -c "test useradd" [root@localhost ~]# grep test /etc/group root:x:0:gentoo,test bin:x:1:gentoo,test test:x:1005: [root@localhost ~]# grep test /etc/passwd test:x:1004:1005:test useradd:/home/test:/bin/tsh
2、usermod修改用户属性
语法:usermod [options] LOGIN
选项:
选项名 | 含义 |
-u UID | 新的UID |
-g GID | 新的基本组 |
-G GROUP1[,GROUP2,...[,GROUPN]]] | 新的附加组,原附加组会被覆盖; 如果需要保留原附加组,要同时使用-a选项,表append |
-s SHELL | 新的默认shell |
-d HOME_DIR | 新的家目录 不会自动创建,原家目录的文件不会自动移动至新家目录 如果需要创建新家目录,并移动原家目录数据到新家目录,需要同时使用-m选项 |
-l login_name | 新的名字 |
-c "COMMENT" | 新的注释信息 |
-L | 给指定用户加锁,在/etc/shadow文件的密码栏增加 ! 叹号 |
-U | 解锁指定用户,移除/etc/shadow文件密码栏 ! 叹号 |
-e YYYY-MM-DD | 指定用户账户过期日期 |
-f INACTIVE | 设定非活动期限 |
1、修改uid
[root@localhost ~]# usermod -u 1010 test [root@localhost ~]# grep test /etc/passwd test:x:1010:1005:test useradd:/home/test:/bin/tsh
2、修改GID
[root@localhost ~]# usermod -g 1009 test [root@localhost ~]# grep test /etc/passwd test:x:1010:1009:test useradd:/home/test:/bin/tsh
3、修改附加组
[root@localhost ~]# grep test /etc/group root:x:0:gentoo,test bin:x:1:gentoo,test admins:x:1003:test2,test3,test4 test:x:1005: test2:x:1006: test3:x:1007: test4:x:1008: test5:x:1009: [root@localhost ~]# usermod -G test3 test [root@localhost ~]# grep test /etc/group admins:x:1003:test2,test3,test4 test:x:1005: test2:x:1006: test3:x:1007:test test4:x:1008: test5:x:1009:
3、userdel 删除用户家目录
语法:userdel [options] LOGIN
选项: -r :删除用户家目录
4、id 查看用户ID信息
语法:id [OPTION]... [USER]
选项:
选项名 | 含义 |
-u | UID |
-g | GID |
-G | Groups |
-n | Name |
[root@localhost ~]# id -nu test test
5、passwd 设置密码(仅root权限)
语法:passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
选项:
选项名 | 含义 |
-l | 锁定用户 |
-u | 解锁用户 |
-e | 强制用户下次登录修改密码 |
-n mindays | 指定最短使用期限 |
-x maxdays | 指定最大使用期限 |
-w warndays | 提前多少天开始警告 |
-i inactivedays | 非活动期限 |
--stdin | 非交互式设置密码 |
6、chage 修改用户密码策略
语法:
选项:
选项名 | 含义 |
-d LAST_DAY | 最近日期 |
-E | 过期日期 |
-I | 非活动期限 |
-m | 最小天数 |
-M | 最大天数 |
-W | 提醒天数 |
-l | 显示密码策略 |
强制下次登录设置密码
[root@localhost ~]# chage -d 0 test
修改期限
[root@localhost ~]# chage -l test2 Last password change : Jun 05, 2021 Password expires : Jul 17, 2021 Password inactive : Jul 24, 2021 Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 42 Number of days of warning before password expires : 14 [root@localhost ~]# chage -m 0 -M 42 -W 100 -I 7 test2 [root@localhost ~]# chage -l test2 Last password change : Jun 05, 2021 Password expires : Jul 17, 2021 Password inactive : Jul 24, 2021 Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 42 Number of days of warning before password expires : 100
7、groupadd 创建用户组
语法:groupadd [options] group
选项:
- -g:指明GID
- -r:创建系统组,组ID500-1000
8、groupmod 修改用户组
语法:groupmod [options] GROUP
选项:
- -n group_name:新组名
- -g GID:新GID
9、groupdel 删除用户组
语法:groupdel GROUP