Чтобы сделать так, как просили, достаточно изменить +=
на =
.
Вместо того, чтобы добавлять к существующему значению каждое найденное истинное значение, если каждый раз перезаписывать последнее истинное значение новым, то после завершения цикла последнее истинное значение будет единственным в $new_file
.
Есть несколько вещей, которые вы могли бы сделать:
Просто запуститеecho 1 > /proc/sys/kernel/modules_disabled
После этого новые модули не могут быть загружены до тех пор, пока работает ядро. Этот параметр нельзя сбросить обратно на 0 без перезагрузки.
Это по-прежнему позволяет загружать модули во время загрузки, но позволяет заблокировать их после загрузки всех необходимых модулей.
Эти методы позволят вам не только съесть свой пирог, но и съесть его:
Если в вашей системе используется прошивка UEFI и включена безопасная загрузка, фактически требованием сертификации безопасной загрузки является то, что загрузчик не должен допускать выполнения неподписанного кода ядра. Большинство дистрибутивов, поддерживающих безопасную загрузку, распространят это и на модули ядра, используя подпись модуля ядра (опции компиляции ядра CONFIG_MODULE_SIG=y
иCONFIG_MODULE_SIG_FORCE=y
).
Или, если вы компилируете свое собственное ядро, вы можете включить параметр компиляции ядра CONFIG_SECURITY_LOADPIN
, который добавляет требование, чтобы все модули ядра исходили из одной файловой системы. Это может быть полезно, если вы разделили все пользовательские -доступные для записи и временные каталоги в отдельные файловые системы, или даже если ваша корневая файловая система доступна для чтения -только при заблокированном -неактивном использовании.
И, конечно же, есть вариант жесткого -ядра...
Это старая -школа, но она все еще применима, если конфигурация вашего оборудования очень стабильна.
Вы не можете полностью отключить «модули _отключены» -ЛКМ. На самом деле, вы можете отключить его, но если какой-то пользователь имеет root-доступ к машине, эта магия будет бесполезна. Решение состоит в том, что :вы должны скомпилировать свой собственный проект ядра Linux, и вы должны полностью отключить «модули _отключены» в меню «Включить загружаемые модули для поддержки». https://github.com/nu11secur1ty/Linux_hardening_and_security/tree/master/Kernel-sec-modules_by_nu11secur1ty/linux-5.1.1/kernel
БР