Глава 4
Управление доступом
Каждый пользователь должен работать в системе под своей учетной записью. Это позволит вам обезопасить свои файлы от чужого вмешательства и по системным журналам определить, когда и кем были произведены разрушительные действия.
Обычному пользователю вы должны выделять ограниченные права, которые позволят выполнять только необходимые операции. Кроме того, вы должны минимизировать количество пользователей с большими привилегиями, потому что такие учетные записи требуют особо пристального внимания и наблюдения. Если под привилегированной учетной записью вошли в систему с компьютера, где владелец записи не мог находиться, то это укажет на потенциальную опасность или взлом.
После увольнения сотрудника вы должны удалить его учетную запись, чтобы недовольный этим фактом он не уничтожил важные данные.
Для работы с командами управления доступом вы должны обладать правами администратора. Для этого можно войти в систему как пользователь root или использовать директиву su
А теперь перейдем к сути проблемы.
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------
rwx
, т.е. хозяин файла может читать, записывать и исполнять директорию. Вместо остальных шести символов стоят знаки тире, значит, у пользователей группы FlenovG
и у всех остальных нет прав.Вторая строка — drwxr-xr-x
rwx
, а значит, владельцу разрешены все операции. Следующая тройка, соответствующая группе, равна r-х
, а стало быть, возможно чтение и исполнение. В соответствии с последней тройкой всем остальным пользователем также доступно только чтение и исполнение.Последняя строка в примере содержит права доступа -rwxr-xr--
rwx
). Пользователи группы могут читать и выполнять файл, но не могут его изменять (вторая тройка r-х
). Все остальные могут только читать файл (последняя тройка r--
).Права можно воспринимать как последовательность нулей и единиц. Если в определенном месте стоит 1 (указан один из символов r, w или x), то операция разрешена. Если 0 (находится знак тире), то действие запрещено. Давайте попробуем записать права rwxr-xr--
Цифра1 * 4 + Цифра2 * 2 + Цифра3
У нас получатся три цифры 7, 5, и 4, которые будем рассматривать как десятичное число 754. Запомните его, оно нам пригодится при назначении прав на файлы и каталоги. Чтобы вам в дальнейшем проще было регламентировать доступ, предлагаю все возможные варианты значений для отдельного разряда числа:
□ 0 — запрещено все;
□ 1 — разрешено выполнение;
□ 2 — разрешена запись;
□ 3 — разрешена запись и выполнение;
□ 4 — разрешено чтение;
□ 5 — разрешено чтение и выполнение;
□ 6 — разрешено чтение и запись;
□ 7 — разрешено все.
Попробуйте теперь с помощью этого списка определить возможности, которые предоставляет число 754. Каждый разряд нужно рассматривать в отдельности. Сравните полученный результат с символьным представлением rwxr-xr--