你可能设置了复杂的登录密码,但如果有人懂Linux,那么他可以在grub下启动单用户模式,甚至是恢复模式来跳过密码,并取得root权限,那么他就可以轻易访问你的文件,修改你的密码,甚至复制机密文件或者rm /
本文的目的是防止未经许可的用户修改启动参数来防止上述事件的发生
第一步:设置用户名、密码
打开 /etc/grub.d/00_header
在最下面加入
代码: 全选
cat << EOF
set superuser="su"
password su 1234
password user1 4321
EOF
superuser 是必需的(可以执行和修改任何启动项)
user1 非必需的,可以用于限制不同用户启动不同的系统,可以设置多个
如果你不希望使用明文密码,可以在终端下运行
代码: 全选
grub-mkpasswd-pbkdf2
代码: 全选
grub.pbkdf2.sha512.10000.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
第二步:设置需要密码才可启动的启动项
例子为设置恢复模式需要密码
编辑 /etc/grub.d/10_linux
找到 linux_entry ()
修改为
(请根据实际情况修改,不保证都一样)
--users 用户名 设置该启动项需要使用的用户名linux_entry ()
{
os="$1"
version="$2"
recovery="$3"
args="$4"
user=""
if ${recovery} ; then
title="$(gettext_quoted "%s, wi:wth Linux %s (recovery mode)")"
user="--users su"
else
title="$(gettext_quoted "%s, with Linux %s")"
user=""
fi
printf "menuentry ${user} '${title}' ${CLASS} {\n" "${os}" "${version}"
cat << EOF
我定义了一个变量 user 用来设置是否要求密码
然后 sudo update-grub 即可
重启按住Shift键试试恢复模式是不是要求密码了,编辑启动项是不是也要密码了
本文在知识共享 署名-相同方式共享 3.0 (cc-by-sa 3.0)协议下共享