Вот ответ с помощью sed
- поскольку вы не делаете никакой обработки полей, awk, вероятно, излишен.
sed 's/;.*//'
Да, разрешения проверяются только во время открытия и записываются. Таким образом, вы не можете писать в файловый дескриптор, который вы открыли только для чтения -, независимо от того, есть ли у вас потенциальная возможность записи в файл.
Ядро обращается к -инодам памяти, а не к тем, которые хранятся в файловой системе. Они отличаются счетчиком ссылок на открытые файлы, а точки монтирования получают индекс смонтированного файла.
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.