Как мне обнаружить ядро ​​GrSecurity?

Вот список файлов на /dev/sda1 на моем почти современном сервере Arch Linux:

% ls -li /dev/sda1
1294 brw-rw---- 1 root disk 8, 1 Nov  9 13:26 /dev/sda1

Итак, запись каталога в /dev/ для sda имеет номер inode, 1294. Это реальный файл на диске.

Посмотрите, где обычно отображается размер файла. Вместо этого появляется "8, 1". Это главный и второстепенный номер устройства. Также обратите внимание на "b" в разрешении файла.

Файл /usr/include/ext2fs/ext2_fs.h содержит этот (фрагмент) C struct:

/*
 * Structure of an inode on the disk
 */
struct ext2_inode {
    __u16   i_mode;     /* File mode */

Этот struct показывает нам структуру инода файла на диске. В этой структуре много интересного; посмотрите на нее внимательно.

Элемент i_mode в struct ext2_inode имеет 16 бит, и он использует только 9 для разрешений user/group/other, read/write/execute, и еще 3 для setuid, setgid и sticky. У него есть 4 бита для различения таких типов, как "обычный файл", "ссылка", "каталог", "именованная труба", "сокет семейства Unix" и "блочное устройство".

Ядро Linux может следовать обычному алгоритму поиска каталога, а затем принимать решение на основе разрешений и флагов в элементе i_mode. Для 'b', файлов блочных устройств, он может найти главный и младший номера устройств и традиционно использовать главный номер устройства для поиска указателя на функцию ядра (драйвер устройства), которая работает с дисками. Номер второстепенного устройства обычно используется, скажем, как номер устройства шины SCSI, или номер устройства EIDE, или что-то в этом роде.

Некоторые другие решения о том, как работать с файлом типа /proc/cpuinfo, принимаются на основе типа файловой системы. Если вы сделаете a:

% mount | grep proc 
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

то увидите, что /proc имеет тип файловой системы "proc". Чтение из файла в /proc заставляет ядро делать что-то другое в зависимости от типа файловой системы, так же как открытие файла в файловой системе ReiserFS или DOS заставляет ядро использовать различные функции для поиска файлов и нахождения данных файлов.

1
16.12.2018, 21:55
1 ответ

попробуй

paxtest

или

grep PaX /proc/pid/status
1
28.01.2020, 00:22

Теги

Похожие вопросы