一、用户及用户组存在的意义
1.1 用户存在的意义
由于系统资源有限,所以如何合理分配系统资源?想要解决这个问题必须有多个资源配合
- 1.身份account
- 2.授权author
- 3.认证auth
3A机制,3A机制组成系统中最底层的安全架构
1.2 用户组存在的意义
用户组是一个逻辑容器
对用户进行归类和统一授权
二、用户及用户组在系统中的存在方式
电脑对数字敏感id
人类对字符串敏感名称
id 名称 必须要记录到文件当中用户才能存在
用户就是/etc/passwd文件中的一行字符
用户组存在的方式就是/etc/group文件中的一行字符
三、用户切换
3.1 用户查看
命令 | 作用 |
---|---|
*whoami | 查看当前用户 |
当前环境root
id#查看用户id信息
命令 | 功能 |
---|---|
id -u | 查看用户的用户id |
id -g | 查看用户主组id |
id -G | 查看用户所有的组的id |
id -n | 显示名称 |
使用help查看ip的命令使用
3.2用户切换
su - username
- 用户环境切换
- username #如果root→commonuser 不需要后者密码
- root→commonuser
- commonser→root 需要密码
- commonuser→commonuser 需要密码
su 命令注意事项:- #注意:在做用户切换的时候当使用完毕用户身份及时退出
- #不要再一个shell中反复执行su命令
- #在一个shell中反复执行su命令会导致环境错乱
四、用户涉及到的系统配置文件
文件 | 作用 |
---|---|
/etc/passwd | 用户身份信息文件 #格式“用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell” |
/etc/group | 组身份信息 #格式“文件组名称:组密码:组id:组的附加成员” |
/etc/skel/.* | 用户环境配置文件模板 |
/etc/shadow | 用户认证信息文件 |
/home/username | 用户家目录 |
五、用户和用户组建立及删除
5.1 监控用户建立的命令
watch -n1“tail -n 4 /etc/passwd /etc/group /etc/shadow;echo =======;ls -l /home”
useradd username #用户建立
-u id username #uid 2**16=0-65535
uid | 表示含义 |
---|---|
0 | 表示超级用户 |
1-200 | 表示系统预留id |
201-999 | 表示系统用户 |
1000-60000 | 表示用户级用户 |
/etc/login.defs#记录用户建立的默认规则
useradd XXX
命令 | 功能 |
---|---|
-g id username | 指定主组id |
-G id username | 指定附加组id |
-d dir userame | 指定用户家目录 |
-c word username | 指定用户说明 |
-s shell username | 指定用户shell |
userdle -r username#用户删除 -r 删除用户的系统配置文件
5.2 groupadd -
命令 | 功能 |
---|---|
groupname | #组建立 |
-g id groupname | #指定组名称 |
5.3 groupdel -
groupname | #组删除 |
---|
六、用户和用户组的信息管理
6.1 usermod -
命令 | 作用 |
---|---|
-l 新username username | 更改用户名称 |
-u 新uid username | 更改用户id |
-g 新主组id username | 更改主组id## 标题 |
-G 新附加组“groupname”或id | 更改用户附加组身份 |
-aG 新附加组 “groupname”或id | 添加用户附加组身份 |
-c 新注释 username | 更改注释 |
-d 目录指向 username | 更改家目录指向 |
-md 目录指向 username | 更改家目录指向同时更改家目录名称 |
-s 默认shell地址 username | 更改默认shell |
-L username | 冻结账号 |
-U username | 解锁 |
usermod -l 命令运行
usermod -u 命令运行
usermod -g 命令运行
usermod -G 命令运行(替换原来的附加组)
1.输入id
2.输入groupname
- usermod -aG 命令运行(在原来的组后增加附加组)
- usermod -c 命令运行
- usermod -d 命令运行
- usermod -md 命令运行
- usermod -s 命令运行
- groupmod -g#更改用户组id
- groupmod -g 命令运行
七、用户认证信息管理
7.1 用户名称
命令 | 功能 |
---|---|
passwd -S username | 查看密码状态 |
查看northos密码状态(LK=lock)
7.2 用户加密字符(更改密码)
命令 | 功能 |
---|---|
passwd username | #只有root模式下可以执行“echo 123” |
passwd#普通用户改密码 |
---|
Changing password for user usernameCurrent password:#输入原始密码 |
New password:#输入新密码(八位以上字母加数字无序组合) |
Retype new password:#重复输入新密码 |
passwd:all authentication tokens updated successful#更改成功 |
7.3 冻结认证
命令 | 作用 |
---|---|
passwd -l username | 冻结账号认证(添加两个!) |
usermod -L username | 冻结账号认证(只添加一个!) |
passwd -u username | 解锁账号认证 |
usermod -U username | 解锁账号认证 |
7.4 密码删除
命令 | 注释 |
---|---|
passwd -d username | 密码使用天数#从1970-1-1算到今天的天数 |
passwd -e username | 修改默认使用时间为0 |
chage -d 0 username | 账号必须改密码才能使用 |
passwd -d westos命令运行
passwd -e westos命令运行(普通用户切换到该用户时会提醒重新设置密码)
7.5 密码最短有效期
命令 | 注释 |
---|---|
passwd -n X username=chage -m X username | #username在X天内不能改密码 |
passwd -n 20 westos运行命令
#密码最长有效期
命令 | 功能 |
---|---|
passwd -x X username=chage -M X username | #X天内username用户必须更改密码 |
passwd -x 200 westos运行命令
#密码过期警告
命令 | 功能 |
---|---|
passwd -w X username=chage -W X username | 账号过期前警告时间 |
#认证非活跃天数
passwd -i X username=chage I X username|账号认证最大时间超过过后还能使用时长
#账号认证到期时间
命令 | 功能 |
---|---|
chage -E “xxxx-xx-xx” | 到xxxx-x-xx这天账号冻结 |
/etc/shadow中的内容可分为九个段,在段与段之间用:隔开
内容表示形式为:1:2:3:4:5:6:7:8:9
分段 | 内容 |
---|---|
1 | 用户名 |
2 | 密码 |
3 | 上次修改密码的时间 |
4 | 两次修改密码之间的最短时间 |
5 | 两次修改密码之间的最长时间 |
6 | 在用户过期前多少天提醒用户 |
7 | 在用户过期多少天禁止使用该用户 |
8 | 用户的过期的日期 |
9 | 保留,暂时没有内容 |
8、用户权力下放
在系统中普通用户的时候无法执行系统管理命令,如果要让普通用户执行系统管理动作的话,需要由root用户进行授权
普通用户的授权方式“sudo”#让普通用户指定指定的用户身份进行指定的用户身份运行命令
visudo#该命令为编辑/etc/sudoers并在保存时提供语法检测
username hostname=(newusername) [NOPASSWD:] /command,/conmand1