Владелец файла и права доступа

Каждый файл в файловой системе ext2 или ext3 имеет владельца и группу владельцев. К чему обязывает такая принадлежность файла?

По отношению к данному файлу всех пользователей можно подразделить на три категории:

Доступ к содержимому файла может осуществляться со следующими целями: (эти цели называют дисциплинами доступа)

Доступ для чтения подразумевает возможность извлечь (прочитать) содержимое файла. Доступ для записи — изменить содержимое файла. Доступ для исполнения — возможность выполнить содержимое файла как программу.

Каждой из трёх перечисленных категорий пользователей можно разрешить или запретить каждую из трёх указанных дисциплин доступа. Таким образом, всего возможно 2 9 = 512 комбинаций — от полного запрета всех дисциплин для всех пользователей до всеобщего разрешения.

Файлы, для которых разрешено чтение, запись или исполнение, называются соответственно читаемыми, записываемыми или исполняемыми.

Каждая директория для каждого содержащегося в ней объекта вместе с его именем содержит ещё кое-какую информацию. Это номера владельца объекта (UID) и группы владельцев (GID), тип объекта (директория, обычный файл, символическая ссылка, FIFO, сокет), размер файла в байтах, девять атрибутов доступа (каждый атрибут включен или выключен). Имеются и другие атрибуты, однако о них умолчим.

[Замечание]Замечание

Возможность выполнить файл как программу сама по себе ещё не означает, что файл будет выполнен. Необходимо также, чтобы файл содержал программу в одном из допустимых форматов. Это либо двоичный исполняемый формат ELF, либо скрипт, написанный на каком-либо командном языке. В любом из этих случаев файл должен содержать определённые отличительные признаки. При отсутствии таких признаков попытка запустить исполняемый файл закончится неудачей.

[Замечание]Замечание

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

[Замечание]Замечание

В отличие от некоторых других операционных систем в Linux имя файла (или окончание имени) не служит признаком исполняемого файла. Так, окончания имени файла .EXE, .COM, .BAT, .CMD операционную систему ни к чему не обязывают. Однако такое поведение можно изменить специальной настройкой. Можно сделать, к примеру, так, чтобы исполняемые файлы, чьё имя оканчивается на .EXE (это обычное окончание имени исполняемого файла DOS/Windows при попытке их запустить исполнялись бы в эмуляторе DOS/Windows (скажем, dosemu или wine).

Владельцем файла обычно становится пользователь, который этот файл создал. Группой владельцев становится первичная группа создателя. Суперпользователь может назначить файлу другого владельца или группу с помощью программ chown и chgrp.

Информатика-54