Я хочу научиться писать модуль безопасности Linux, чтобы отрицать удаление файла. Связано с отключением. Поэтому я выбрал один из них и попытался зацепить это, чтобы увидеть, как и если это работает.
Я хочу научиться писать модуль безопасности Linux, чтобы отрицать удаление файла. Связано с отключением. Поэтому я выбрал один из них и попытался зацепить это, чтобы увидеть, как и если это работает.[code]#include #include #include #include
static int hello_lsm_inode_unlink(struct inode *dir, struct dentry *dentry) { pr_info("LSM Hello World: Preventing unlink for file: %s\n", dentry->d_name.name); return -EPERM; // Prevent the file from being deleted }
MODULE_LICENSE("GPL"); MODULE_AUTHOR("You"); MODULE_DESCRIPTION("Minimal LSM with inode_unlink hook"); < /code> и Makefile: < /p> EXTRA_CFLAGS += -DCONFIG_SECURITY_WRITABLE_HOOKS
obj-m := lsm_hello.o
all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean < /code> Но когда я скомпилируюсь, я получаю эти ошибки, а файл .ko не генерируется: < /p> make[1]: Entering directory '/usr/src/linux-headers-6.1.0-31-amd64' CC [M] /root/lsm_hello/lsm_hello.o MODPOST /root/lsm_hello/Module.symvers ERROR: modpost: "security_add_hooks" [/root/lsm_hello/lsm_hello.ko] undefined! ERROR: modpost: "security_hook_heads" [/root/lsm_hello/lsm_hello.ko] undefined! make[2]: *** [/usr/src/linux-headers-6.1.0-31-common/scripts/Makefile.modpost:127: /root/lsm_hello/Module.symvers] Error 1 make[1]: *** [/usr/src/linux-headers-6.1.0-31-common/Makefile:1986: modpost] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-6.1.0-31-amd64' make: *** [Makefile:6: all] Error 2 < /code> С некоторой пробной и ошибкой я обнаружил, что проблема возникает из этой строки: < /p> security_add_hooks(hello_hooks, ARRAY_SIZE(hello_hooks), "lsm_hello"); < /code> Если я прокомментирую это, то он собирается хорошо, и я могу проверить, что он работает: < /p> root@debian:~/lsm_hello# insmod lsm_hello.ko root@debian:~/lsm_hello# rmmod lsm_hello root@debian:~/lsm_hello# journalctl --since "1 hour ago" | grep kernel. Mar 16 15:21:33 debian kernel: LSM Hello World: Initializing Mar 16 15:21:46 debian kernel: LSM Hello World: Exiting [/code] Какой правильный способ написания этого, так как кажется, что правильный способ отличается от версии до версии?
Я пытаюсь понять, как параллелизм реализован в .Net. Следующий код взят в качестве примера из блога Reed Copsey.
Этот код обрабатывает коллекцию клиентов и отправляет им электронные письма через 14 дней с момента их последнего контакта. Мой вопрос:...
Я пишу модуль ядра для управления вентиляторами и RGB-клавиатурой Acer Nitro 16. Код работает очень хорошо, но у меня есть проблема: через некоторое время я вставляю модуль с помощью insmod, мой компьютер зависает(я' Я уверен, что это паника ядра,...
Я новичок, который только начал изучать Docker. Я слышал, что контейнеры используют ядро хост-машины, поэтому рассмотрим следующий сценарий: предположим, что у меня есть хост-машина A с версией ядра Linux x и контейнер B, основанный на версии ядра...
Я новичок в Python, и я что-то делал с cv2 и os.unlink(), когда получил ошибку разрешения.
Это было похоже на общую структуру код.
import cv2
import numpy as np
import tempfile
import os
import time
Я новичок в Python, и я что-то делал с cv2 и os.unlink(), когда получил ошибку разрешения.
Это было похоже на общую структуру код.
import cv2
import numpy as np
import tempfile
import os
import time