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