О том как выставляются права на чтение|запись|выполнение в UNIX/Linux/BSD-системах
Каждый процесс в *NIX-системах может быть запущен под каким-нибудь пользователем. Пользователь определяется по идентификатору (user ID — UID), представляющему целое положительное число. Суперпользователь (root) имеет идентификатор 0. Все пользователи распределены по группам, которые также имеют свои идентификаторы (group ID — GID).
Каждый файл в системе имеет своего владельца, как правило пользователя, который его создал. Владелец запоминается по его UID. Так как каждый пользователь принадлежит какой-либо группе, то для каждого файла определен и GID. Таким образом, для каждого файла существует три неравноценных типа пользователей:
* владелец (user),
* участники группы (group),
* остальные (other).
Также для каждого файла определены три типа операций:
* r – чтение (read),
* w – запись (write),
* x – выполение (eXecute).
Таким образом, доступ к каждому типу файлов определяется набором из девяти флагов, по три на каждый тип пользователей:
* rwxrwxrwx — полный доступ к файлу для всех пользователей.
* rwx—— — полный доступ для владельца файла, другие пользователи его не смогут даже прочитать.
* rwxr-xr-x — полный доступ для user, остальные пользователи смогут файл только прочитать или выполнить.
Каждую из троек операций можно представить численно, числом от 1 до 7 (r = 4, w = 2, x = 1), например:
rwx = 4 + 2 + 1 = 7;
r-x = 4 + 1 = 5;
Таким образом, полный набор атрибутов доступа можно представить в виде числа в восьмеричной системе исчисления (rwxrwxrwx = 0777, rwxr-xr-x = 0755).
Доступ к директориям
Доступ к директориям организован по тому же принципу, что и доступ к файлам, только к списку атрибутов приписывается буква d, например drwxrwxrwx. Сами атрибуты имеют особое значение:
* r — позволяет просматривать список имён файлов в каталоге, но не позволяет выяснить их физическое расположение.
* w — позволяет создавать/удалять/редактировать файлы в каталоге.
* x — позволяет узнавать визическое расположение файла в каталоге по его имени.
Замечание
Всё вышеперечисленное не относится к root-у, у которого полный доступ ко всем файлам независимо от UID и GID.
Автор: Александр Бурцев
Источник: http://fastcoder.org/