[toc]

账户相关路径

账户文件

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
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
# 创建用户默认参数第一读取文件
## 文件路径: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
# 组参数文件
路径:/etc/group

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

组参数管理文件

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

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

权限提升文件

sudo提权文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# visudo(vi /etc/sudoers)
输入此命令编辑sudo管理文件

# 100行 针对单个用户
## Allow root to run any commands anywhere(允许root用户在任何地方运行任何命令)
# root ALL=(ALL) ALL
用户名 所有主机 所有命令
xxx ALL=(ALL) NOPASSWD:ALL # 免密执行sudo权限需在ALL前加上:'NOPASSWD:'

# 108行附近 针对多个用户
## Allows people in group wheel to run all commands(允许在wheel组里的普通用户执行所有命令)
# %wheel ALL=(ALL) ALL
组名 所有主机 所有命令
%heiheihei ALL=(ALL) NOPASSWD:ALL # 免密执行sudo权限需在ALL前加上:'NOPASSWD:'

# usermod 用户名 -G wheel
## 需将用户添加至指定附加组,提权才会生效

别名

1
2
3
4
5
6
7
8
9
10
11
12
# visudo(vi /etc/sudoers)

# 15行附近 针对多个用户
Host_Alias WEB = web01,web02,web03
User_Alias USER = xxx,yyy,xyz

## 为多个用户或命令创建别名,示例:
Cmnd_Alias SUDO = /bin/cp, /bin/mv, /bin/rm /bin...
## 语法结构
Cmnd_Alias 别名 = 命令路径或用户名
## 命令路径查询
which 命令

环境变量文件

1
2
3
4
5
6
7
# 添加环境变量
使用vim打开配置文件并进行编辑及保存:
[root@localhost /opt]# vim /etc/profile.d/nginx.sh
export PATH="$PATH:/opt/nginx/sbin"

# 应用环境变量文件
[root@localhost /opt]# source /etc/profile

yum全局配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# yum配置文件
1./etc/yum.conf # 全局配置文件
2./etc/yum.repos.d/目录下的所有.repo文件 # 子配置文件(下载源)

vim /etc/yum.conf
cachedir=/var/cache/yum/$basearch/$releasever //缓存目录
keepcache=0 //缓存软件包, 1启动 0 关闭
debuglevel=2 //调试级别
logfile=/var/log/yum.log //日志记录位置
exactarch=1 //检查平台是否兼容
obsoletes=1 //检查包是否废弃
gpgcheck=1 //检查来源是否合法,需要有制作者的公钥信息
plugins=1 //是否启用查询
installonly_limit=5

bugtracker_url
# metadata_expire=90m //每小时手动检查元数据
# in /etc/yum.repos.d //包含repos.d目录