一、Linux账号与群组
1.1 使用者识别码UID与GID
- ID与账号存储在
/etc/passwd
当中
1.2 使用者账号
1.2.1 输入账号密码的处理过程
stateDiagram
在/etc/passwd里寻找输入账号与密码 --> 结束: 没有
在/etc/passwd里寻找输入账号与密码 --> 读取UID,GID,主文件夹与Shell设置:有
读取UID,GID,主文件夹与Shell设置 --> 在/etc/shadow中核对密码表
在/etc/shadow中核对密码表 --> Shell管控: 正确
在/etc/shadow中核对密码表 --> 结束:错误
注意,备份时一定要备份
/etc/passwd
与/etc/shadow
文件
1.2.2 /etc/passwd
文件结构
- 每一行代表一个账号
bin、daemon、adm、nobody
等是系统账号
- 每一行的七大字段
-
账号
-
密码
-
UID
-
GID
-
使用者信息说明栏
-
主文件夹
-
Shell
- 字段说明
ID范围 | 该ID使用者特性 |
---|---|
0 | 系统管理员 |
1-999 | 系统账号 |
1000-60000 | 可登录账号 |
1.2.3 /etc/shadow
文件结构
- 每一行的九大字段
-
账号
-
密码
-
最近密码更变日期
-
密码不可重置的天数
-
密码需要重置的天数
-
密码需要重置前的警告
-
密码失效日
- 密码过期后的账号宽限时间
-
账号失效日期
-
保留
- 字段说明
- 所有日期均以1970.1.1以来的天数表示
1.3 群组
1.3.1 /etc/group文件结构
- 每一行的四大字段
-
群组名称
-
群组密码
-
GID
-
此群组支持的账号名称
- 字段说明
- 群组密码通常是给群组管理员使用的,不需要设置
1.3.2 有效群组与初始群组
- 初始群组
etc/passwd
里的GID
- 有效群组
-
输入
groups
命令得到的第一个群组为有效群组 -
newgrp GROUP_NAME
切换有效群组
1.3.3 /etc/gshadow
- 四个字段
-
群组名称
-
密码栏
-
群组管理员账号
-
与
/etc/group
的第四栏内容相同
二、账号管理
2.1 添加与移除使用者
useradd
添加使用者
- 默认值(在
/etc/default/useradd
中查看)
|
|
passwd
操作密码
参数 | 作用 |
---|---|
无参数 | 修改密码 |
-d | 删除密码 |
-f | 强制下次登陆修改口令 |
-w | 口令到期前警告的天数 |
-k | 更新只能发送在过期之后 |
-l | 停止账号使用 |
-S | 显示密码信息 |
-u | 启用已被停止的账户 |
-x | 指定口令最常存活期 |
-g | 修改群组密码 |
-i | 多少天后停用账户 |
change 账户名
显示密码参数
-l | 列出详细的密码参数 |
---|---|
usermod
调整账号信息
-c | 修改用户账号的备注文字 |
---|---|
-d | 登入目录 |
-e | 修改账号的有效期限 |
-g | 修改群组 |
userdel
删除账户
无参数 | 直接删除 |
---|---|
-r | 连同使用者的主文件夹一起删除 |
2.2 使用者功能
-
id [username]
查询用户的UID/GID等信息 -
finger
查询用户的相关信息
- 比较危险,目前的版本里没有
chfn [username]
(change finger)
-f | 接完整的大名 |
---|---|
-o | 办公室房间号 |
-p | 办公室电话号码 |
-h | 家里电话 |
chsh
(change shell)
-l | 列出系统中有的shell |
---|---|
-s | 设置自己的shell |
2.3 新增与移除群组
groupadd -g GID -r [group_name]
增添群组
-g | 接GID |
---|---|
-r | 创建系统群组 |
groupmod
-g | 修改GID |
---|---|
-n | 修改既有群组名称 |
groupdel
删除群组
2.4 账号管理实例
三、ACL
3.1 ACL简介
- 定义
ACL,即 Access Control list,主要目的是提供传统的rwx以外的权限,包括
-
使用者(user)
-
群组(group)
-
默认属性(mask)
3.2 ACL的设置技巧
setfacl [-bkRd] [-m/x ACL参数] file_name
(set file ACL)
-m | 设置ACL参数,不可与-x混用 |
---|---|
-x | 删除后续ACL参数 |
-b | 移除所有的ACL参数 |
-k | 移除默认的ACL参数 |
-R | 递归 |
-d | 针对目录设置默认ACL参数 |