[toc]

用户基本概述

用户的作用

登陆操作系统

  • Windows用户
    • 管理员为:administrator
    • 仅支持单用户操作系统(或修改组策略)
  • Linux用户
    • 管理员为:root
    • 可以支持多用户操作

运行程序
每一个文件或者目录,都有指定用户的权限限制
运行程序时,用户要与程序调用的用户目录权限相同

用户分类

用户uid 系统中的含义
0 超级管理员(最高管理员权限)
1~200 系统用户,有系统分配的系统进程使用的
201~999 系统用户 ,用户用来运行服务账号,不需要有登录系统的
1000+ 普通用户

用户的创建

用户创建默认参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# 创建用户默认参数第一读取文件
## 文件路径:cat /etc/login.defs

## 排列语法(不要注释不要空格的行):
grep -vE '^#|^$' /etc/login.defs
grep '^[A-Z]' /etc/login.defs

## 创建用户默认参数第一读取文件内容
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512

## 各参数内容:
MAIL_DIR /var/spool/mail # 创建用户的相关邮件所在路径
PASS_MAX_DAYS 99999 # 控制用户最大使用天数
PASS_MIN_DAYS 0 # 控制用户最小使用天数
PASS_MIN_LEN 5 # 用户密码最小长度
PASS_WARN_AGE 7 # 控制创建的用户,警告密码过期前7天修改
UID_MIN 1000 # 普通用户最小uid 1000开始
UID_MAX 60000 # 普通用户最大uid 60000
SYS_UID_MIN 201 # 系统用户最小uid 201
SYS_UID_MAX 999 # 系统用户最大uid 999
GID_MIN 1000 # 普通用户gid最小 1000开始
GID_MAX 60000 # 普通用户gid最大 60000
SYS_GID_MIN 201 # 系统用户gid 201开始
SYS_GID_MAX 999 # 系统用户gid 最大999
CREATE_HOME yes # 默认创建家目录
UMASK 077 # 规定创建用户后,用户的家目录权限
USERGROUPS_ENAB yes # 创建用户的同时,创建出该用户的同名组
ENCRYPT_METHOD SHA512 # 加密方式 SHA512


# 创建用户时的默认参数第二读取文件
## 文件路径:cat /etc/default/useradd

## 创建用户默认参数第二读取文件内容
## useradd defaults file
GROUP=100(USERGROUPS_ENAB no的情况下,才会触发)
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

## 各参数内容:
USERGROUPS_ENAB no # 创建用户的同时,创建出该用户的同名组
GROUP=100 # 默认指定普通用户的组gid是100
HOME=/home # 用户默认的家目录在/home
INACTIVE=-1 # 账号过期不会停止使用 -1不开启这个功能
EXPIRE= # 为空则账号不过期
SHELL=/bin/bash # 用户的默认shell
SKEL=/etc/skel # 普通用户的家目录环境变量(普通用户配置文件)文件存放目录
CREATE_MAIL_SPOOL=yes # 创建用户的时候,是否同时创建邮件文件

用户密码管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# passwd(密码修改命令)

## 常用语法
passwd 选项 用户名

passwd 用户名(需要进行交互)

echo 123|passwd --stdin 用户名 # 免交互,可直接将管道符前的输出参数设置为密码

echo $RANDOM|passwd --stdin 用户名 # 同上,使用RANDOM获取随机数字作为密码

mkpasswd 选项|passwd --stdin 用户名 #同上,使用mkpasswd获取随机密码
# mkpasswd(随机生成制定规则的密码)
## 需安装:yum install -y expect

# 语法结构
mkpasswd 选项 参数 选项 参数...

# 选项
-l # 指定密码长度
-d # 指定数字个数
-c # 指定小写字母个数
-C # 指定大写字母个数
-s # 特殊符号的个数

用户文件

账户文件

1
2
3
4
5
6
7
8
9
10
11
12
# 用户文件路径
/etc/passwd

# 用户结构
root:x:0:0:root:/root:/bin/bash
第一列:用户名
第二列:密码的占位符
第三列:用户的id uid(root的uid是0)
第四列:用户组的id gid(root的gid是0)
第五列:对用户的描述
第六列:用户的家目录
第七列:用户登录的shell

账户密码文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 用户密码文件路径
/etc/shadow

# 用户密码文件结构
daemon:*:17834:0:99999:7:::
第一列:用户名
第二列:加密后密码 !!/* 代表没有密码
第三列:上一次更改密码的时间,是从1970年到更改密码过了多少天
第四列:密码最少使用天数 0代表无限
第五列:密码最长使用天数 99999默认就是一直使用
第六列:密码到期前7天提示需要更改密码
第七列:密码过期后n天提示强制更改密码
第八列:账户失效时间,也是从1970年开始计算
第九列:为空

修改用户密码文件

1
2
3
4
5
6
7
8
9
10
11
12
# change

# 语法结构
chage 选项 用户名

-d #设置最近一次更改密码时间, 0下次登陆系统强制修改密码
-m #设置用户两次改变密码之间使用"最小天数"
-M #设置用户两次改变密码之间使用"最大天数"
-W #设置密码更改警告时间 将过期警告天数设为“警告天数”
-I #设置密码过期天数后, 密码为失效状态
-E #设置用户过期时间, 账户失效后无法登陆
-l #显示用户信息

用户管理命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# cat /etc/passwd			#查询所有用户信息

# id 用户名 #查询指定用户信息
`用户存在`
[root@localhost ~]# id hqw
uid=100(hqw) gid=1001(hqw) groups=1001(hqw)

`用户不存在`
[root@localhost ~]# id dbx
id: dbx: no such user

# whoami #查询当前登陆的用户信息

# who #当前登陆用户查询

# w #当前登陆用户详情查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 增(useradd/adduser)

## 语法结构
useradd/adduser 选项 用户名

## 选项
-c #在创建用户的同时给用户添加一个描述
-d #创建用户的同时指定用户的家目录 (默认普通用户的家目录在/home/...)
-u #创建用户的同时指定用户的uid
-g #创建用户的同时指定用户的gid 前提条件组必须存在
-G #指定用户的附加组 前提条件组必须存在
-M #不创建家目录
-s #指定用户登录的shell (/bin/bash /sbin/nologin )
-r #创建系统账户,不创建家目录
-a #配合-G使用,追加
, -* #用逗号隔开两个组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 改(usermod)

# 语法结构
usermod 选项 用户名

## 选项
-u #修改用户的uid
-g #修改用户的gid 前提条件组必须存在
-G #修改用户的附加组 前提条件组必须存在
-c #修改用户的描述
-a #配合-G使用,追加
-m #迁移家目录 配合 -d 使用(原来的家目录必须存在)
-d #修改用户家目录
-s #修改登录的shell
-l #修改用户的登录名
-L #锁定用户
-U #解锁用户

1
2
3
4
5
6
7
# 删(userdel)

## 语法结构
userdel 选项 用户名

## 选项
-r #删除用户和该用户的家目录

用户组文件

用户组参数文件

1
2
3
4
5
6
7
8
9
# 组参数文件
路径:/etc/group

## 文件结构
syh:x:1205:
第一列:用户名
第二列:密码占位符
第三类:gid
第四列:附加组的成员,不显示基本组的成员

用户组参数管理文件

1
2
3
4
5
6
7
8
9
# 组参数管理文件
路径:/etc/gshodow

## 文件结构
hahaha:!::ob7,xxx333
第一列:组名
第二类:组密码 !没有密码
第三列:组管理员
第四列:附加组的成员,不显示基本组的成员

组管理命令

1
2
3
4
5
# 增(groupadd)
## 语法结构
groupadd + 组名
## 选项
-g 指定gid

1
2
3
# 删除(groupdel)
## 语法结构
groupdel 组名

1
2
3
4
5
# 改(groupmod)
## 语法结构
groupmod
## 选项
-g 修改组的gid

1
2
3
4
# 查
## 查询语法
cat /etc/group
id xxx

切换用户

1
2
3
4
# su 切换用户

# sudo 提权
将一个普通用户提权至root级别