大家都知道,linux 系统的单用户模式是解决忘记密码的最快手段,修改启动参数就可进入 command line 修改 root 密码,对系统来说是非常不安全的。Ubuntu 的 grub2 引导文件加密码网上的常用的 linux, centos 会有些区别,下面我就教大家如何给 ubuntu 16.04 设置全局密码或单项菜单密码。
1.首页进入 cd /etc/grub.d/,执行 grub-mkpasswd-pbkdf2 生成密码
cd /etc/grub.d/
grub-mkpasswd-pbkdf2
上面这个密码是加密后的,呆会要用到
2.将上面生成的密码按下面模式加到 00_header 最后面,superusers 用户可以自己随便定义,但一定要按下面格式
cat <<EOF
set superusers="lubin"
password_pbkdf2 lubin grub.pbkdf2.sha512.10000.53AECA9EC5ECEC1B29967F7E7E878
EOF
3.接下来修改 10_linux 这个文件,执行 sudo gedit 10_linux,找到 linux_entry ()
sudo gedit 10_linux
增加 user 变量,user = ""
linux_entry ()
{
os="$1"
version="$2"
type="$3"
args="$4"
user=""
修改下面两处,默认是没有 --user=lubin 和 --unrestricted 两个参数的,把它加进去,就成下面的了
fi
echo "menuentry --user=lubin '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
else
echo "menuentry --unrestricted '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
fi
4.更新 grub 文件。执行 sudo update-grub ,没有报错,说明配置正确。
sudo update-grub
5.如何验证这个配置文件呢,你可以到执行命令 cd /boot/grub/ ,进入 /boot/grub 目录下,打开 grub.cfg 这个文件
cd /boot/grub/
sudo gedit grub.cfg
上面图中,你可以看到已经有刚才配置的参数 --user=lubin 和 --unrestricted 了。
温馨提示:如果不配置 --unrestricted 项,就是全局菜单密码,正常登录系统也要你输入帐号和密码,如果加了 --unrestricted ,正常进入系统是不会要求你输入帐号和密码的。好多人可能只配置了 --user="xxx" ,没有配置这项,结果开机就会提示你输入帐号和密码。