1、 通过进入单用户模式修改root密码
1.1 在grub引导界面选择第二项,recovery mode
1.2 按e进入grub的编辑模式
1.3 将上图中ro recovery nomodeset 修改为rw single init=/bin/bash
1.4 按ctrl-x 或F10进入单用户模式,进入后用户即为root用户,输入passwd root,即可修改密码
1.5 用ctrl+alt+del重启机器,新密码生效。
2、 禁用recovery mode
2.1 在命令行下执行:vi /etc/default/grub
2.2 将上图中红框内的注释去掉 并保持退出
2.3 回到命令行执行 update-grub2
2.4 重启机器后,grub界面没有recovery mode
3、 隐藏grub界面
依然是修改grub文件 vi /etc/default/grub
1.GRUB_HIDDEN_TIMEOUT=0
此配置将影响菜单显示。若设置此选项,将在此时间内隐藏菜单而显示引导画面。
菜单将会被隐藏,除非在此行开头加上一个 # 符号。(# GRUB_HIDDEN_TIMEOUT=0)。
GRUB 2 第一次执行时将会寻找其他操作系统。若没有其他操作系统被检测到,菜单将会配置为隐藏。若辨认出其他操作系统,菜单将会显示。
若是大于 0 的整数,系统将会依此配置的秒数暂停,但不会显示菜单。
0 则菜单不会显示,也不会有延迟。
使用者可以在启动时按住 SHIFT 键不放以强制显示菜单。
启动过程中,系统将会检查 SHIFT 键状态。若无法辨识按键状态,会有一个短时间的延迟让使用者可通过按下 ESC 键来显示菜单。
2.GRUB_HIDDEN_TIMEOUT_QUIET=true
true 不显示倒计时。屏幕将会是空白的。
false 在 GRUB_HIDDEN_TIMEOUT 中配置的时间,空白屏幕上会有一个倒数计时器。
3.GRUB_TIMEOUT=10
此命令将顺从 GRUB_HIDDEN_TIMEOUT 配置,除非 GRUB_HIDDEN_TIMEOUT 被注释掉(#)。若 GRUB_HIDDEN_TIMEOUT 启用,则当菜单显示时,GRUB_TIMEOUT 将会只执行一次。
配置此值为 -1 将会导致菜单一直显示,直到用户选择。
GRUB 2 菜单默认为隐藏,除非其他操作系统被系统检测到。若没有其他操作系统,此行将会被注释掉,除非使用者修改它。为了在每次启动时显示菜单,去掉此行的注释并使用 1 或更大的值。
重启 系统将不显示GRUB界面 直接进入系统。
下面给出一个脚本,可以实现新建一个用户,隐藏开机信息,修改开机欢迎界面,隐藏grub界面:
#/bin/bash
#author:shen
#date:2015/11/16
#modify grub and startup UI
function modify_grub(){
#quit startup
sed -i 's/.*GRUB_CMDLINE_LINUX_DEFAULT.*/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/g' /etc/default/grub
#ban grub
sed -i 's/.*GRUB_HIDDEN_TIMEOUT=.*/GRUB_HIDDEN_TIMEOUT=0/g' /etc/default/grub
sed -i 's/.*GRUB_HIDDEN_TIMEOUT_QUIET.*/GRUB_HIDDEN_TIMEOUT_QUIET=true/g' /etc/default/grub
sed -i 's/.*GRUB_TIMEOUT.*/GRUB_TIMEOUT=0/g' /etc/default/grub
#disable recovery
sed -i 's/.*GRUB_DISABLE_RECOVERY.*/GRUB_DISABLE_RECOVERY="true"/g' /etc/default/grub
update-grub
chmod u+w /boot/grub/grub.cfg
sed -i '/quiet/i\ echo "Loading Safecode System Kernel..."' /boot/grub/grub.cfg
sed -i '/quiet/i\ echo "Loading Safecode Lab V1.0..."' /boot/grub/grub.cfg
sed -i 's/quiet/quiet console=ttyS0/g' /boot/grub/grub.cfg
chmod u-w /boot/grub/grub.cfg
}
SHOW_TEXT="Welcome to Safecode!"
#modify welcome info
function modify_info(){
echo "$SHOW_TEXT" > /etc/issue
echo "$SHOW_TEXT" > /etc/issue.net
sed -i "s/^[^#].*/#&/g" /etc/update-motd.d/*
run-parts /etc/update-motd.d
}
modify_grub
modify_info