Операционные системы поддерживают операции блокировки файла для защиты доступа к нему со стороны различных процессов. Под процессом понимается запущенная пользователем компьютерная программа и выполняемая процессором.
Пользователи, которым разрешено входить в систему, перечислены в учетной базе пользователей (локальной или доменной - на сервере). Пользователи объединяются в группы. Группы пользователей перечислены в учетной базе групп. Каждому пользователю и каждой группе присвоены числовые идентификаторы.
В Windows локальная база пользователей хранится в файле Windows\system32\config\SAM.
С каждым файлом в ОС связана пара идентификаторов – пользовательский (User ID - UID) и групповой (Group ID - GID). Файл наследует эти идентификаторы от эффективных идентификаторов процесса, создавшего данный файл. Процесс, эффективный пользовательский ID которого совпадает с пользовательским ID файла, считается владельцем данного файла.
Каждому пользователю и группе, в которую он входит, присвоены уникальные целочисленные ID. Входя в систему, пользователь сообщает ей свое имя, по которому определяется его ID и права доступа. Вызывая команды, пользователь тем самым порождает процессы, которые наследуют его права, UID и GID. Права процессов при доступе к файлу хранятся в атрибутах защиты файла. Проверка прав происходит, когда процесс пытается открыть файл для чтения или записи, выполнить его.
Таким образом, всех пользователей системы можно разделить на:
- Владельцы (UID = эффективный UID)
- Члены группы (GID = эффективный GID)
- Прочие
Именно по этому принципу в ОС Unix каждому файлу выданы атрибуты в формате 9-битного кода, содержащего 3 поля для каждой группы: rwxrwxrwx. R – read, w – write, x – execute.
Владельцы и члены группы получают доступ к файлу. Прочие пользователи не получают доступа к файлу.
Администратор системы имеет самые полные права доступа к файлам и папкам, а также доступ к информации о пользователях и группах в учетной базе и доступ к информации о защите конкретного файла или папки. также администраторы могут поменять владельца файла.