Linux的用户管理

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:存放用户的组及属性信息,文件格式为:

mail 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

原文地址:https://www.cnblogs.com/zh-dream/p/14852883.html