В Linux каждый файл имеет свойство, характеризующее владельца файла. Управление доступом к файлам осуществляется с помощью атрибутов – специальных характеристик, имеющихся у каждого файла. Всего существует 12 характеристик. Рассмотрим девять из них, которые можно разделить на три класса.
- Разрешение/запрет на чтение файла владельцем, группой владельца и всеми остальными пользователями.
- Разрешение/запрет на запись файла владельцем, его группой и всеми остальными.
- Разрешение/запрет на запуск файла владельцем, группой владельца и остальными пользователями.
Назначение первых двух атрибутов ясно, остановимся на третьем. Для понимания его назначения необходимо вспомнить, что в UNIX-системах нет разделения файлов на исполняемые (программы, сценарии) и другие (например, текстовые) файлы на основании их имен. Вместо этого операционная система распознает исполняемый файл по атрибуту, указанному третьим в списке. Исполняемым файлом может быть как программа в общепринятом понимании, так и алгоритм, написанный для какого-либо приложения. Это удобно, так как позволяет предотвратить запуск определенной программы посторонними лицами.
Пользователь под именем root имеет право на любые действия, поэтому он может получать произвольный доступ ко всем файлам, например, может изменять атрибуты файлов, хозяином которых не является (в отличие от других пользователей, которые могут изменять права доступа только собственных файлов).
Атрибуты можно устанавливать и для каталогов, хотя в этом случае они будут иметь несколько иное значение: чтобы пользователь смог открыть папку и прочесть хотя бы названия файлов, этой папке следует назначить права чтения и запуска; если право записи не установлено, пользователь не сможет изменять содержимое каталога, то есть удалять и создавать в нем файлы.