Книга: Linux глазами хакера
4.1. Права доступа
Давайте вспомним команду ls -al
. Она возвращает список файлов в следующем виде:
drwx------ 3 Flenov FlenovG 4096 Nov 26 16:10 .
drwxr-xr-x 5 root root 4096 Nov 26 16:21 ..
-rwxr-xr-- 1 Flenov FlenovG 24 Nov 26 16:10 test
Как мы уже знаем, первая колонка (занимает 10 символов) — это права доступа. Давайте рассмотрим, из чего она состоит. Первый символ указывает на тип записи. Здесь может быть одно из следующих значений:
? знак тире (—) — обычный файл;
? буква "d" —- каталог;
? буква "l" — символьная ссылка;
? буква "s" — сокет;
? буква "p" — файл FIFO (First in first out, первый вошел — первый вышел).
После этого в каждой строке идет три группы символов rwx, определяющих права доступа для различных категорий пользователей:
? первая тройка — владельцу файла;
? вторая — пользователям, входящим в группу владельца;
? последняя — всем остальным.
Каждая такая группа состоит из трех символов: r (чтение), w (запись) и x (выполнение). Установленная буква говорит о разрешении соответствующего действия. Рассмотрим несколько вариантов.
Первая строка в нашем примере drwx------
. Первый символ d, а значит, это директория. Потом идут три символа rwx
, т.е. хозяин файла может читать, записывать и исполнять директорию. Вместо остальных шести символов стоят знаки тире, значит, у пользователей группы FlenovG
и у всех остальных нет прав.
Вторая строка — drwxr-xr-x
. Это снова директория. Потом стоит комбинация rwx
, а значит, владельцу разрешены все операции. Следующая тройка, соответствующая группе, равна r-х
, а стало быть, возможно чтение и исполнение. В соответствии с последней тройкой всем остальным пользователем также доступно только чтение и исполнение.
Последняя строка в примере содержит права доступа -rwxr-xr--
для файла (первый символ — это знак тире). Хозяин файла имеет полный доступ к нему (первая тройка rwx
). Пользователи группы могут читать и выполнять файл, но не могут его изменять (вторая тройка r-х
). Все остальные могут только читать файл (последняя тройка r--
).
Права можно воспринимать как последовательность нулей и единиц. Если в определенном месте стоит 1 (указан один из символов r, w или x), то операция разрешена. Если 0 (находится знак тире), то действие запрещено. Давайте попробуем записать права rwxr-xr--
в виде нулей и единиц. Установите вместо букв единицы, а вместо тире — нули. Должно получиться 111101100. Разобьем эту комбинацию на три части 111, 101 и 100. Теперь каждую тройку переведем в восьмеричную систему по следующей формуле:
Цифра1 * 4 + Цифра2 * 2 + Цифра3
У нас получатся три цифры 7, 5, и 4, которые будем рассматривать как десятичное число 754. Запомните его, оно нам пригодится при назначении прав на файлы и каталоги. Чтобы вам в дальнейшем проще было регламентировать доступ, предлагаю все возможные варианты значений для отдельного разряда числа:
? 0 — запрещено все;
? 1 — разрешено выполнение;
? 2 — разрешена запись;
? 3 — разрешена запись и выполнение;
? 4 — разрешено чтение;
? 5 — разрешено чтение и выполнение;
? 6 — разрешено чтение и запись;
? 7 — разрешено все.
Попробуйте теперь с помощью этого списка определить возможности, которые предоставляет число 754. Каждый разряд нужно рассматривать в отдельности. Сравните полученный результат с символьным представлением rwxr-xr--
. Должно выйти одно и то же.
- Права для выполнения резервного копирования
- 9.4. Права доступа к squid
- Как не запутаться в разрешениях доступа к файлам?
- Можно ли копировать права доступа вместе с данными?
- Как узнать, есть ли у меня права администратора?
- 4.1.5. Права доступа к ссылкам
- 7.3. Права доступа
- 8.4.3. Права доступа
- Глава 11 Права доступа и ID пользователей и групп
- 1.1.1. Файлы и права доступа
- Владелец файла и права доступа
- Права доступа к файлу