Unix права доступа

Введение

В Unix каждому файлу соответствует набор прав доступа, представленный в виде 9-ти битов. Он определяет, какие пользователи имеют право читать файл, записывать в него данные или выполнять его. Права могут изменяться владельцем файла или суперпользователем с помощью команды chmod.

Для каждого файла определяется доступ:

  • владельца (owner);
  • группового владельца (group owner);
  • остальных пользователей (everyone).

Реализация управления доступом осуществляется тремя флагам:

  • чтение - read (r);
  • запись - write (w);
  • выполнение - eXecute (x).

Также у файла присутствует дополнительный флаг, определяющий тип файла, так как в Unix системах всё является файлом, включая папки и устройства.

flag usergroupother
# rwxrwxrwx

Таблица типа флага.

Флаг Описание
- Отсутствие флага
l Символическая ссылка (symbolic link)
d Директория (directory)
b Блочное устройство (block device)
c Символьное устройство (character device)
p Канал, устройство fifo (fifo device)
s Unix сокет (unix domain socket)

Права доступа

Сочетание трех флагов определяет право доступа, например r-x, rw- или rwx. Для удобства записи флаги представляются числами с отличающимся разрядом, что позволяет по их сумме определить право доступа.

  • read = 4
  • write = 2
  • eXecute = 1

Для файлов и каталогов, флаги r, w, x имеют отличный смысл.

Сумма ФлагиМаскаПрава на файлПрава на каталог
0 000- - -отсутствие правотсутствие прав
1 001- - xправа на выполнениедоступ к файлам и их атрибутам
2 010- w -права на записьотсутствие прав
3 011- w xправа на запись и выполнениевсе, кроме доступа к именам файлов
4 100r - -права на чтениетолько чтение имен файлов
5 101r - xправа на чтение и выполнениечтение имен файлов и доступ файлам и их атрибутам
6 110r w -права на чтение и записьтолько чтение имен файлов
7 111r w xполные прававсе права

Для полноценного просмотра каталога, необходимы права на чтение каталога и доступ к файлам, а главное к их атрибутам, т.е. минимальные разумные права на каталог = 5 (r-x). Прав 4 (r–) хватит только на просмотр имен файлов, без атрибутов, т.е. не будут известны размер файла, права доступа, владелец. На практике для каталогов используется только три режима: 7 (rwx), 5 (r-x) и 0 (—).

drwxr-xr-x 13 allexserv nogroup   4096 2009-05-31 14:58 phpBB3

Права доступа по-умолчанию (umask)

У каждого пользователя есть umask - инвертированная битовая маска накладываемая на набор прав по умолчанию. Значение umask хранится в профиле пользователя. Узнать значение можно командой umask.

$ umask
0002

Итак, инвертированная маска = 7775, режим полного доступа для директорий — 777, для файлов — 666. Таким образом при создании файла результирующий набор бит прав доступа:

  • Для файлов 666 & !umask (7775) = 664
  • Для директорий 777 & !umask (7775) = 775

Почитать:

Калькуляторы

Похожие записи

+function ($) { "use strict"; }(window.jQuery);

  • объявляется IIFE (немедленно выполняемая функция-выражение)
  • в функцию передаётся объект библиотеки jQuery, которая внутри будет доступна через переменную с именем $
  • включается «строгий режим»