linux用户有三个身份
- 超级用户
- 普通用户
- 虚拟用户
超级用户:root
普通用户: 系统用户:UID1-999( 7系列) 1-499(6系列)
本地用户:UID1000+(7系列) 500+(6系列)
虚拟用户:伪用户,一般不用来登录系统,用于维持某个服务的正常运行:如ftp
UID相当于每个用户的身份标识,身份证号
用户和组的关系
一对多,一对一,多对多,多对一 . 怎么来都行
我们有三个配置文件
用户配置文件
/etc/passwd
记录了每个用户的一些基本属性,并且对所有用户可用,每一行记录对应一个用户,每行记录通过冒号分割
===================
用户组文件
/etc/group
存放所有用户组的信息,组名不能重复
===================
用户对应的密码信息
/etc/shadow/
将密码分离出来的文件,只有root拥有读权限,从而保证密码安全性
用户命令
useradd sss 创建sss用户
useradd -u 1100 sss 创建指定UID的sss用户
useradd -d /opt/sss sss 创建指定用户家目录的sss用户
还有家目录相关的-M不创建家目录,-m创建用户的家目录(默认)
useradd -g slz sss 创建指定用户主组的sss用户
useradd -G slzs,hhh sss 创建指定用户附属组的sss用户(附属组可以指定多个,用逗号分隔)
如果一个组有多个成员,我们可以在/etc/group文件中看到
useradd -r sss 删除用户
-r:删除用户相关的文件,如家目录
/etc/passwd
tail -1 /etc/passwd 查看passwd文件的最后一行内容
sss:x:1001:1001::/home/sss:/bin/bash
用户名:密码站位符:用户UID:用户所属组GID:用户描述信息:用户主目录:用户登录所使用的shell
/etc/shadow
文件的格式
用户名 :
加密后的密码 :
最近更改密码的日期,从19700101开始计算 :
密码修改后多长时间可以再次进行修改 :
密码多少天后过期 :
更改期限的前7天进行警告 :
宽限天数,密码过了几天后还能改密码 :
账号过期时间 :
保留 :
添加密码
交互方式
passwd 用户名
无交互
echo 123456 | passwd --stdin 用户名
两个用户的密码一样,shadow加密的hash一样吗
不一样,salt不一样,salt是passwd命令自动生成的
修改用户sss的密码信息,让这个用户首次登陆系统时,必须更改密码
chage -d 0 sss
两个用户的UID是可以一样吗
可以的
将/etc/passwd中的sss用户的UID设置为0,那么sss也拥有的root权限
实战:进入centos紧急模式恢复root密码
重启,选择第一项,按下 e 键进行编辑
找到ro , 改为 rw init=/sysroot/bin/sh
按下 ctrl+x 进入紧急模式(原理:启动一个shell环境,系统并没有启动
chroot /sysroot 指定根目录下进行操作
passwd 设置密码
exit 退出
reboot 重启