Книга: 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--. Должно выйти одно и то же.

Оглавление книги


Генерация: 0.586. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз