Проверяет ли ядро Linux разрешение на чтение файла на inode или на open file description?

Вот ответ с помощью sed - поскольку вы не делаете никакой обработки полей, awk, вероятно, излишен.

sed 's/;.*//'
2
12.01.2019, 17:20
1 ответ

Да, разрешения проверяются только во время открытия и записываются. Таким образом, вы не можете писать в файловый дескриптор, который вы открыли только для чтения -, независимо от того, есть ли у вас потенциальная возможность записи в файл.

Ядро обращается к -инодам памяти, а не к тем, которые хранятся в файловой системе. Они отличаются счетчиком ссылок на открытые файлы, а точки монтирования получают индекс смонтированного файла.

If I'm right about this, then how about mmaped regions?

То же самое. (Флаги PROT _*переданы в mmap()эквивалентно O _RDWR / O _RDONLY / O _WRONLY переданы флаги вopen()).

Do kernel only check permissions recorded in page table when I read/write/excute that mmaped region?

Я не уверен, когда еще он мог бы проверять разрешения, записанные в таблице страниц :-). Насколько я понимаю ваш вопрос :да.

Is that true inode data stored in filesystem is only used when creating open file description and mmap region?

Разрешения Inode также проверяются для операций с метаданными, например.mkdir()(и аналогично open()с O _CREAT ).

И не забывайте chdir(), который отличается от любого вызова open(). (Или, по крайней мере,он отличается от любого вызова open()в текущем Linux ).

Я не уверен в конкретных разрешениях -SELinux.

4
27.01.2020, 22:02

Теги

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