Вы можете распаковать сжатый модуль, подписать его и повторно -сжать
unxz zfs.ko.xz
sign-file sha1 "${key}" "${x509}" "zfs.ko"
xz -f zfs.ko
или немного более общий (Я использую это для evdi, вдохновленныйhttps://gist.github.com/dop3j0e/2a9e2dddca982c4f679552fc1ebb18df)
for module in $(dirname $(modinfo -n evdi))/*.ko*; do
module_basename=${module:0:-3}
module_suffix=${module: -3}
if [[ "$module_suffix" == ".xz" ]]; then
unxz $module
echo sign-file sha1 "${key}" "${x509}" "${module_basename}"
sign-file sha1 "${key}" "${x509}" "${module_basename}"
xz -f ${module_basename}
elif [[ "$module_suffix" == ".gz" ]]; then
gunzip $module
sign-file sha1 "${key}" "${x509}" "${module_basename}"
gzip -9f $module_basename
else
sign-file sha1 "${key}" "${x509}" "${module_basename}"
fi
done
после запускаsudo depmod -a
modprobe evdi
просто работает:)
Если вы установите /boot/grub2
на 700
, никакие файлы под ним, независимо от их разрешений, не будут доступны для обычных пользователей. Никакие файлы в этом каталоге не читаются и не используются во время или после загрузки. user.cfg
содержит загрузочные пароли, поэтому защита этого файла имеет смысл, но только для локальных пользователей. Короче говоря, я не вижу причин переопределять то, что ваш дистрибутив устанавливает для вас по умолчанию.
Более важным каталогом является /boot/efi
, для которого установлено значение 700
, поскольку обычно это раздел FAT, который по умолчанию позволяет всем изменять файлы, и вы не хотите, чтобы непривилегированные пользователи вмешивались в ваши загрузочные файлы UEFI.
Вы можете установить /boot
на 755
или 700
, но изменение настроек вашего дистрибутива по умолчанию не имеет смысла. Прямо в этом каталоге нет специальных файлов, которые локальный пользователь мог бы прочитать и получить root-доступ. К vmlinuz
и initrd
можно легко получить доступ с помощью вашего менеджера пакетов или общедоступных файлов вашего дистрибутива.
Короче говоря, вы зациклились на проблеме безопасности, которую вы придумали и которой не существует.