4.11
情景:忘记root密码,无法登陆。
用的是密钥登陆则无所谓。
可用密钥登陆,然后更改密码。
为啥要使用密钥而不是密码呢?因为密码对于密钥来说,更容易被破解。
密码登陆一般在于本地登录时候,服务器自己本地登陆只能用密码,密钥只是用于远程登录的。
ROOT修改 自己的 密码 —— passwd
ROOT修改 普通用户 密码 —— passwd username
普通用户 修改 自己的 密码也是 —— passwd
如果是密钥没有,密码忘记,无法远程登录了,怎么办?
本地使用单用户模式 登录修改密码。
4.12
单用户模式,是CenOS系统的一个用户级别。
CentOS有7个用户级别
用命令 ls –l /usr/lib/systemd/system/runlevel*.target 查看级别
runlevel*.target 列出所有符合的项
可见这里有7个运行级别
runlevel0、runlevel1、runlevel2、runlevel3、runlevel4、runlevel5、runlevel6、
关机命令 :init 0 实际就是运行的 level 0 级别 ,软链接对应就是 poweroff
level1 rescue 救援模式。 指的就是旧版本的单用户( 以前叫singleuser )
level2 ~level4 都是多用户multi-user
level5 graphical 是图形化的界面用户
ls -l 查看 文件的 详细信息
ls - la 查看 隐藏文件的 详细内容
蓝色是文件路径, -> 意思是软链接 相当于win的快捷方式
CTRL + ALT +F3 可以 直接从图形模式切换为命令行模式
如何进入单用户级别?
(1) 重启服务器,命令reboot,当光标在第一行时候,按 e 进入编辑的界面(启动管理器)
光标向下移动找到如下位置,
(2) 修改路径
ro 表示 只读, rw表示可读可写 , 把 ro 改成 rw init=/sysroot/bin/sh
改完以后,按 CTRL + X 快捷键。
进入到单用户界面下
(3) 执行命令 chroot /sysroot/ 切换环境
这个命令的意义是切换环境!如果不切换就只是停留在 内存操作系统里 ,只有切换了环境才会进入到原来的Linux系统里。
原来系统里的文件都可以查看的到
这个时候再试下 passwd root 修改root 的密码
发现是很多小方块,如果原设的语言是中文,就会这样显示。
可以先CTRL + C 退出passwd命令后, 输入LANG = en 把语言切换成英文
切换英文以后再passwd 修改密码
很容易遗忘的一步!!
touch 是用来创建一个新文件命令,如果文件已经存在则更新文件
因为有Linux内核防火墙SELinux的存在,在SELinux防火墙没有被关闭情况下
必须执行 touch /.autorelabel 更新一次,不然之前的操作不成功。
退出时候先exit 退出chroot 的系统环境到内存的环境, 然后 reboot重启
可能会出现重启后的SELinux报错,只需要再进一次单用户rm掉./autorelabel文件再重启就可以了
记得关闭SELinux
vi /etc/selinux/config
改 SELINUX =enforcing 变成 SELINUX =disabled ,就能关闭selinux
单用户模式总结: