在上一篇随笔里面详细讲解了Linux系统的启动过程、,我们知道Linux系统的启动级别一共有6种级别,通过 /etc/inittab 这个文件我们就能看到:
[root@xiaoluo ~]# cat /etc/inittab # inittab is only used by upstart for the default runlevel. # # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # System initialization is started by /etc/init/rcS.conf # # Individual runlevels are started by /etc/init/rc.conf # # Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf # # Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf, # with configuration in /etc/sysconfig/init. # # For information on how to write upstart event handlers, or how # upstart works, see init(5), init(8), and initctl(8). # # Default runlevel. The runlevels used are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault:
这里我们看到系统的默认启动级别是5,也就是有图形界面的那个。
但是在现实生活中可能会出现这种问题,我们可能忘记了一台主机的root密码,但是我们又需要通过root用户登录该系统去处理一些事情,这个时候我们怎么办呢?我们看到在Linux的启动级别中有一个单用户模式启动,也就是启动级别1,当我们如果忘记了root用户的秘密,但是又需要修改root密码的时候,这个时候我们就要通过在启动的时候给系统的内核传递一个参数 1 或者 single 来告诉内核,我需要以单用户模式登陆操作系统,这个时候我们就能能够通过passwd 命令来重设root用户的密码。具体操作是怎样的呢?咱们有图有有真像!!
首先我们重启我们的系统(我这里是CentOS),然后在界面启动时让它停留一下,随便按一下键盘上的一个键,此时就会进入到操作系统配置引导界面
还记得上一篇随笔里面/boot/grub/grub.conf这个文件里的第一个 title 字段吗? 没错,每一个title都是一个操作系统的配置选项,这里我们只有一个,也就是上面图片显示的那个,如果有多个title字段,这里就会列出来供我们选择不同的操作系统。
好了,通过下面的英文提示我们发现按下键盘上的 e 键就可以进入到编辑界面
看到这个界面是不是很熟悉呢?没错,这三个选项就是我们 /boot/grub/grub.conf 文件里的配置信息,我们通过查看这个文件的内容来看一下:
[root@xiaoluo ~]# cat /boot/grub/grub.conf # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You do not have a /boot partition. This means that # all kernel and initrd paths are relative to /, eg. # root (hd0,1) # kernel /boot/vmlinuz-version ro root=/dev/sda2 # initrd /boot/initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,1)/boot/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-358.el6.x86_64) root (hd0,1) kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=6e24ec7a-2d19-466e-bacc-92750b1f4bef rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /boot/initramfs-2.6.32-358.el6.x86_64.img
这时我们需要将光标移动到第二个选项,也就是Linux内核那里,同样按下键盘上的 e 键进入到编辑界面,此时我们在后面追加参数 1 或者参数 single就可以告诉Linux系统的内核,我需要以单用户的模式登陆该系统。
然后我们回车,进入到上层的界面,此时按下键盘上的 b 键就是启动操作系统,此时我们的Linux操作系统就是以单用户的模式登陆了。我们发现系统非常快速的就进入到了命令行模式下的界面,因为单用户模式是不会启动任何服务的,同时也不需要输入root密码,就能直接进入到root用户下,此时我们就可以通过passwd 命令来重置我们的root用户的密码
然后我们通过exit命令就可以退出单用户模式,此时操作系统内核就会根据我们之前看到的 /etc/inittab 配置文件中设置的默认启动级别来启动。
这样我们就可以通过在进入GRUB引导时在内核参数里面追加参数 1 或者 single 来进入单用户模式来修改我们的root用户密码。
但是,请注意,因为上面的操作只需要通过单用户模式就可以修改我们的root用户密码,所以说一旦别人有机会接触到我们的服务器主机,那么root用户的密码就很容易被别人修改了,这样当然是非常的不安全的,所以我们还是需要通过GRUB加密来对开启一层密码防护。
通过在 /boot/grub/grub.conf 启动配置中加入以下类似的代码来对grub进行加密:
password --md5 $1$6H92B1$PzoPV63kTMk4uEhZQTAZ//
其中后面那一串是MD5加密算法,这个我们可以通过 grub-md5-crypt 这个命令来生成加密后的算法
[root@xiaoluo ~]# grub-md5-crypt Password: Retype password: $1$UGA2B1$DriIdrVTEgVg95fHHX4H./ [root@xiaoluo ~]#
在上面的Password、Retype password那里输入我们需要设置的密码,然后就能生成MD5算法加密后的密码,我们将这个加密后的密码添加到
/boot/grub/grub.conf 这个配置文件里即可,例如:
[root@xiaoluo ~]# vi /boot/grub/grub.conf password --md5 $1$UGA2B1$DriIdrVTEgVg95fHHX4H./ # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You do not have a /boot partition. This means that # all kernel and initrd paths are relative to /, eg. # root (hd0,1) # kernel /boot/vmlinuz-version ro root=/dev/sda2 # initrd /boot/initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,1)/boot/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-358.el6.x86_64) root (hd0,1) kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=6e24ec7a-2d19-466e-bacc-92750b1f4bef rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /boot/initramfs-2.6.32-358.el6.x86_64.img
这个时候我们再次重启一下系统,试着进入到GRUB里面来看看
我们发现下面的英文提示已经变了,之前可以按键盘上的 e 键进入到GRUB里面,现在按 e 键已经没用了,此时提示我们按 p 键来输入GRUB的密码才能进入到GRUB里面
此时我们输入之前设置的GRUB密码即可,然后界面就会进入到我们熟悉的修改GRUB那里了。
所以说通过GRUB的加密算法我们可以对进入GRUB进行加密,这样就能防止别人恶意进入单用户模式,从而修改root密码了!!
当然,如果我们连这个GRUB的秘密都忘记的话,并且又忘记了root密码,那就真的不能登陆到root用户了。。。。
本篇随笔主要记录了如何通过单用户模式来修改root用户的密码,并通过设置grub的MD5加密算法来对进入grub进行加密,从而限制别人轻易进入单用户模式,在以后的学习Linux过程中,将继续记录学习Linux的心得!!!!
主要内容:使用SET语句修改普通用户的密码,使用UPDATE语句修改普通用户的密码,使用 GRANT 语句修改普通用户密码在 MySQL 中,root 用户拥有很高的权限,不仅可以修改自己的密码,还可以修改其他用户的密码。本节主要介绍 root 用户修改普通用户密码的几种方法。 使用SET语句修改普通用户的密码 在 MySQL 中,只有 root 用户可以通过更新 MySQL 数据库来更改密码。使用 root 用户登录到 MySQL 服务器后,可以使用 SET 语句来修改普通用户密码。语法格式如
本文向大家介绍MySQL 如何修改root用户的密码,包括了MySQL 如何修改root用户的密码的使用技巧和注意事项,需要的朋友参考一下 方法1:用SET PASSWORD命令 方法2:用mysqladmin 方法3:用UPDATE直接编辑user表 方法4:忘记root密码的时候 以windows为例: 关闭正在运行的MySQL服务。 打开DOS窗口,转到mysql\bin目录。 输入mysq
本文向大家介绍mysql 8.0.16 winx64及Linux修改root用户密码 的方法,包括了mysql 8.0.16 winx64及Linux修改root用户密码 的方法的使用技巧和注意事项,需要的朋友参考一下 连接数据库等基础操作请自行解决哈,本篇是重点记录如何改密码。 一、查询用户密码: 查询用户密码命令: host:允许用户登录的ip‘位置'%表示可以远程; user:当前数据库的用
设置及修改MySQL root用户密码 MySQL数据库用户安全策略介绍 安装mysql数据库后,默认的管理员root密码是空,这很不安全,因此需要设置一个密码 为root设置密码 删除无用的MySQL库内的用户帐户 删除默认存在的test数据库 删除所有MySQL中的用户,包括root超级用户 root@rose 03:55:27>delete from mysql.user; Query OK
本文向大家介绍Linux下mysql的root密码修改方法,包括了Linux下mysql的root密码修改方法的使用技巧和注意事项,需要的朋友参考一下 前言 在服务部署在mysql上应该有好几个月了,因为现在的工作基本都在终端,因此很少登陆,今天要修改个东西,忽然发现我竟然已经彻底忘记了mysql的密码,去代码里面爬终于找到了业务数据库的密码,但是root密码还是没有找到,权限没法改呀,于是开始爬
本文向大家介绍更改Mysql root用户密码,包括了更改Mysql root用户密码的使用技巧和注意事项,需要的朋友参考一下 新下载了mysql,口令为空,如何修改root口令: 首先登陆mysql 注意需要 flush privileges; 更改Mysql root用户口令的内容小编就给大家介绍到这里,希望对大家有所帮助!