一、加密

设置grub密码:

众所周知,通过编辑GRUB启动参数可以轻松的进入单用户模式从而修改root密码,这对于一台多用户的计算机或服务器来说,无疑增加了安全隐患。大家一定很像为自己的GRUB加一把锁吧,大家可以通过GRUB的password参数对GRUB设置密码。

GRUB的密码设置可分为全局密码和菜单密码,为了防止他人通过GRUB修改root密码大家需要设置一个全局密码。在splashimage这个参数的下一行可以加上password=密码,保存后重新启动计算机,再次登录到GRUB菜单页面的时候就会发现,这时已经不能直接使用e命令编辑启动标签了,须先使用p命令,输入正确的密码后才能够对启动标签进行编辑。

虽然我们设置了全局密码,但是如果他人得到了全局密码后仍然可以修改GRUB启动标签从而修改root密码;这样我们就可以设置菜单密码,设置菜单密码也非常简单,我们只需要在title的下一行加上password=密码,然后保存退出。这样即使有了全局密码也必需输入菜单密码才能够引导系统。此外,如果直接对GRUB进行明文加密也是非常不安全的,所以就要使用MD5对其进行加密。在终端中输入grub-md5-crypt回车,这时系统会要求输入两次相同的密码,之后系统便会输出MD5码。大家只需要将生成的MD5密文复制下来,然后在按照password--md5 MD5密文这个格式设置全局或者菜单密码,保存退出,重启计算机即可。

1、计算grub的MD5加密密码:

#grub-md5-crypt

Password: 
Retype password:
    输入两遍密码进行确认以后,就会计算出你所输入密码的MD5加密值,如:$1$3VbjX/$PTzUC7OpcO3QunjIsB6LZ
    复制该密码进行MD5加密后的值。

2、设置grub密码:

#vi /boot/grub/grub.conf

比如我原来的/boot/grub/grub.conf文件的内容是下面的。

default=1

timeout=10

splashimage=(hd0,7)/boot/grub/splash.xpm.gz

title Fedora Core (2.4.22-1.2061.nptl)

root (hd0,7)

kernel /boot/vmlinuz-2.4.22-1.2061.nptlro root=LABEL=/

initrd /boot/initrd-2.4.22-1.2061.nptl.img

title WindowsXP

rootnoverify (hd0,0)

chainloader +1

所以我要在/boot/grub/grub.conf中加入 password ——md5 $1$3VbjX/$PTzUC7OpcO3QunjIsB6LZ 这行,以及lock,应该加到哪呢,请看下面的更改实例;

timeout=10

splashimage=(hd0,7)/boot/grub/splash.xpm.gz

password ——md5 $1$3VbjX/$PTzUC7OpcO3QunjIsB6LZ

title Fedora Core (2.4.22-1.2061.nptl)

lock

root (hd0,7)

kernel /boot/vmlinuz-2.4.22-1.2061.nptlro root=LABEL=/

initrd /boot/initrd-2.4.22-1.2061.nptl.img

title WindowsXP

rootnoverify (hd0,0)

chainloader +1

lock的意思就是把Redhat Fedora锁住了。如果启动时会提示错误。这时就应该按P键,然后输入密码就行了。

使用password,lock命令实现几种加密方法如下:

1)单纯对GRUB界面加密,而不对被引导的系统加密在timeout一行下面加一行: password ——md5 PASSWORD

2)对GRUB界面加密,同时对被引导的系统加密在timeout一行下面加一行: password ——md5 PASSWORD 在title一行下面加一行: lock

3)同时存在多个被引导系统,针对特定的系统实例分别加密(未对GRUB操作界面加密) 在title一行下面加一行: lock 在lock一行下面紧贴着再加一行: password ——md5 PASSWORD 注:lock不能单独使用.

二、解密

当Linux系统管理员密码忘记,又不能编辑grub菜单进行单用户模式重置密码,怎么办呢,只有对grub进行解密了。

1、用Linux第一张安装光盘引导系统,进入修复模式。
    2、光盘引导系统,选择区域和语言,不用启动网卡。
    3、出现Rescue菜单,选择Continue,再弹出一个Rescue菜单,会显示“chroot /mnt/sysimage”,OK。
    4、sh-3.2#chroot /mnt/sysimage,若不执行此步,进系统不能进行改写。
    5、执行passwd对用户密码进行重置,完后重启正常进入系统。
    6、编辑/boot/grub/grub.conf,去掉“password --md5 $1$3VbjX/$PTzUC7OpcO3QunjIsB6LZ”这一行即可。

如何对Linux的grub进行加密的更多相关文章

  1. Linux 对文件进行加密存放

    /********************************************************************** * Linux 对文件进行加密存放 * 说明: * Gi ...

  2. 【linux】grub加密

    1.计算grub的MD5加密密码: #grub-md5-crypt Password: Retype password:输入两遍密码进行确认以后,就会计算出你所输入密码的MD5加密值,如:$1$pFd ...

  3. Linux Grub系统加密、破密、修复

    一.在重新启动系统时候按任意键进入 grub界面  Grub加密 一.title前的密码 修改grub.conf 这种加密只是在用户要进入grub界面的时候提示要输入密码,但是可以正常进入系统,有没有 ...

  4. Linux下grub.cnf详解

    grub.conf跟系统启动项有关,对于重置密码.来说小case... 1.介绍    在Red Hat Linux7.2之后,默认的引导加载程序从LTLO变为GRUB.这个引导加载程序使用户能够选择 ...

  5. CentOS7密码忘记解决方法&&GRUB菜单加密

    CentOS7的root密码忘记怎么办 注意:该方法只适用于Linux7版本,可以用cat /redhat-release 查看 这里这里只介绍一种方法 1.启动的时候,在启动界面,相应启动项,内核名 ...

  6. random and password 在Linux下生成crypt加密密码的方法,shell 生成指定范围随机数与随机字符串

    openssl rand -hex n (n is number of characters) LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head ...

  7. 【linux】grub详解

    参数解释 1. default=0 # default后加一个数字n,表示n+1个“title”操作系统,0表示第一个“title” 的操作系统,以此类推. 2. timeout=0 # timeou ...

  8. 给linux设置grub密码

    一.明文加密:vim /etc/grub.conf在hiddemenu下面新增一行,输入:password 密文然后:wq保存退出 在开机出现退数菜单的时候,按任意键,就会出现启动选择菜单,这时下面的 ...

  9. 内核加载与linux的grub

    计算机系统的启动是一个复杂的过程,启动过程大致可以分为以下几个阶段: +------计算机系统启动流程----------------------------- ------------------- ...

随机推荐

  1. JavaScript判断鼠标滑轮是向下还是向上滚动

    我们常用的就是鼠标,鼠标中键一般都用于滑动网页,但是网页中很多很炫的效果,使用鼠标滑轮操作更好. 当然对于手机就没有这个设备了,所以就不用考虑手机端的实现方法,手机端有触摸滑动事件. 使用JavaSc ...

  2. HTML常用的特殊字符格式

    空格: 版权号:©注册商标:®":quot; ':&apos;&:&<:<>:> ©:© «:« ®:® ¯:¯ ¼:¼  (14表示四分之一 ...

  3. 转 java 类 单例

    转 单例概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例.饿汉式单例.登记式单例三种. 单例模式有一下特点: 1.单例类只能有一个实例. 2.单例类必须自己自己创建自己的唯一 ...

  4. Windows代码页、区域

    目录 第1章代码页    1 1 代码页    1 1.1 单字节字符集    1 1.2 双字节字符集    1 1.3 多字节字符集    1 1.4 ANSI代码页    2 2 枚举代码页   ...

  5. 【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...

  6. hdu 2102

    简单的3维BFS 大写的YES和NO,这心粗的....唉 #include<iostream> #include<cstdio> #include<queue> u ...

  7. Thread类的使用

    在前面2篇文章分别讲到了线程和进程的由来.以及如何在Java中怎么创建线程和进程.今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知识:线程的几种状态.上下文切换,然后接着 ...

  8. hdu----(4308)Saving Princess claire_(搜索)

    Saving Princess claire_ Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/ ...

  9. cf------(round)#1 C. Ancient Berland Circus(几何)

    C. Ancient Berland Circus time limit per test 2 seconds memory limit per test 64 megabytes input sta ...

  10. Binary Tree Level Order Traversal [LeetCode]

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...