И ядро, и файловая система играют роль. Разрешения хранятся в файловой системе, поэтому должно быть место для хранения информации в формате файловой системы. Разрешения применяются и передаются ядру приложениям, поэтому ядро должно реализовать правила, чтобы определить, что означает информация, хранящаяся в файловой системе.
«Права доступа к файлам Unix» относятся к традиционной системе разрешений, которая включает в себя три действия (чтение, запись, выполнение), управляемых тремя типами ролей (пользователь, группа, другие). Задача файловой системы - хранить 3 × 3 = 9 бит информации. Задача ядра - интерпретировать эти биты как разрешения; в частности, когда процесс пытается выполнить операцию над файлом, ядро должно определить, учитывая пользователя и группы, в которых выполняется процесс, биты разрешения файла и запрошенную операцию, разрешить ли операцию. («Права доступа к файлам Unix» также обычно включают биты setuid и setgid , которые не являются строго говоря разрешениями.)
Современные системы Unix могут поддерживать другие формы разрешений. Большинство современных систем Unix (Solaris, Linux, * BSD) поддерживают списки контроля доступа, которые позволяют назначать разрешения на чтение / запись / исключение для более чем одного пользователя и более чем одной группы для каждого файла. Файловая система должна иметь место для хранения этой дополнительной информации, а ядро должно включать код для поиска и использования этой информации. Ext2, reiserfs, btrfs, zfs и большинство других современных форматов файловых систем Unix определяют место для хранения таких ACL. Mac OS X поддерживает другой набор ACL, который включает нетрадиционные разрешения, такие как «добавить» и «создать подкаталог»; формат файловой системы HFS + поддерживает их. Если вы смонтируете том HFS + в Linux, эти ACL не будут применены, поскольку ядро Linux не поддерживает их.
И наоборот, существуют операционные системы и файловые системы, которые не поддерживают управление доступом. Например, FAT и варианты были разработаны для однопользовательских операционных систем и съемных носителей, и его разрешения ограничены чтением / чтением-записью и скрытым / видимым. Это разрешения, введенные DOS . Если вы смонтируете файловую систему ext2 в DOS, она не будет применять разрешения ext2. И наоборот, если вы обращаетесь к файловой системе FAT в Linux, все файлы будут иметь одинаковые разрешения.
В последующих версиях Windows добавлена поддержка большего количества типов разрешений. Файловая система NTFS была расширена для хранения этих дополнительных разрешений. Если вы обращаетесь к файловой системе с более новыми разрешениями в более старой операционной системе, ОС не будет знать об этих более новых разрешениях и не будет применять их. И наоборот, если вы обращаетесь к более старой файловой системе с более новой операционной системой, она не будет содержать новых разрешений, и это зависит от ОС, чтобы обеспечить разумные отступления.
Чтобы использовать определенные права, и ядро, и файловая система должны их поддерживать. Если файловая система даже не поддерживает самые основные права доступа, то код файловой системы должен имитировать их (например, с помощью опции монтирования
umask
для vfat).источник
Насколько я понимаю, ядро реализует inode в VFS. inode содержит информацию о разрешениях (UNIX и ACL) наряду с другими метаданными, и файловая система может расширять inode для добавления функций. Если вам интересно, почитайте о Linux VFS - что ж, если вы не системный программист.
источник
Как правило, права доступа к файлам и атрибуты файлов хранятся в файловой системе [точный путь зависит от рассматриваемой файловой системы (ext3 / 4, riser, NTFS и т. Д.)), Но используются ядром, как правило, для принудительного применения чего-либо.
Например, ядро в * nix-подобных системах - это «вещь», которая знает значение UID, связанного с файлом / каталогом. UID файла - это просто число, которое хранится рядом с определенным файлом в файловой системе, но «преобразование» такого числа определенному пользователю (и соответствующие права на что-то делать или нет) выполняется ядром.
источник