Linux 单用户修改root密码

Posted 巭犇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 单用户修改root密码相关的知识,希望对你有一定的参考价值。

修改密码的原理

        无论是Linux还是Windows亦或是MacOS系统,再或者是手机,路由器等任何设备,操作系统的登录密码都存放在某个存储介质上,一般都是与操作系统同在的存储介质,对于任何操作系统,只要将存放密码介质上的密码文件修改,就能实现密码的破解。

什么是Linux单用户模式

        Linux除了管理员创建的普通用户外,还有一些程序所创建的用户,查看/etc/passwd下就能发现这些用户,单用户就是只有root用户登录,系统中除了Linux内核进程意外就一个由root用户启动的进程。 

如何进入Linux单用户

开机进入这个界面后按e,进入grub配置界面 

 修改根文件系统ro为rw(只读修改为读写),修改init

 这里的init可以指定为任何shell,例如bash,sh等,例如:

init=/bin/bash

init=/bin/sh

init=/sysroot/bin/bash

init=/sysroot/bin/sh

这里sysroot是操作系统的根所挂载的目录;如果不加sysroot,内核将自动切换到真正的根目录,因此如果写成init=/sysroot/* 的格式,那么需要chroot或者是执行exec /sysroot/下的passwd文件,为了方便起见,不建议写sysroot。按照上图修改完后直接Ctrl+x,重新启动即可。

修改密码

接下来就很简单了直接修改密,然后touch / .autorelabel就行,如下图所示

 为什么要 touch /.autorelabel

        /.autorelabel是selinux中的概念,只有touch了,表示selinux放行修改密码的操作,但是在目标主机selinux已关闭的情况下,vmware中的虚拟机测试发现必须执行此操作,重置密码才能生效,而在kvm中进行测试则不需要执行此操作重置密码也能生效,因此这个可能是一个未知的bug。

修改密码Linux下修改Mysql的用户(root)的密码

修改的用户都以root为列。
一、拥有原来的myql的root的密码;


方法一:
在mysql系统外,使用mysqladmin
mysqladmin -u root -p password "test123"
Enter password: 【输入原来的密码】

方法二:
通过登录mysql系统,
mysql -uroot -p
Enter password: 【输入原来的密码】
mysql>use mysql;
mysql> update user set password=passworD("test") where user=‘root‘;
mysql> flush privileges;
mysql> exit;      



二、忘记原来的myql的root的密码;

首先,你必须要有操作系统的root权限了。要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤。
类似于安全模式登录系统,有人建议说是pkill mysql,但是我不建议哈。因为当你执行了这个命令后,会导致这样的状况:
/etc/init.d/mysqld status
mysqld dead but subsys locked
这样即使你是在安全模式下启动mysql都未必会有用的,所以一般是这样/etc/init.d/mysqld stop,如果你不幸先用了pkill,那么就start一下再stop咯。
mysqld_safe --skip-grant-tables &
&,表示在后台运行,不再后台运行的话,就再打开一个终端咯。
mysql
mysql> use mysql;
mysql> UPDATE user SET password=password("test123") WHERE user=‘root‘;   
mysql> flush privileges;
mysql> exit;                         
##本来mysql是不分大小写的,但是这个是修改的mysql中的mysql数据库的具体的值,要注意到。

以上是关于Linux 单用户修改root密码的主要内容,如果未能解决你的问题,请参考以下文章

Linux单用户模式(修改密码运行级别)方法详解

Linux环境下mysql的root密码忘记解决方法

linux下mysql root账户忘记密码

Linux单用户模式

linux下mysql忘记root密码解决方案

linux下mysql的root密码忘记解决方法