
- •4.1Безопасность ос семейства unix
- •4.1.1Средства идентификации и аутентификации
- •4.1.1.1Этап регистрации пользователя в системе
- •4.1.1.2Иерархия пользователей и групп системы unix
- •4.1.1.3Модули pam
- •4.1.2Безопасность файловой системы ос unix
- •4.1.2.1Разграничение доступа к ресурсам
- •4.1.3Механизмы взаимодействия пользователя с ресурсами
- •4.1.3.1Специальные атрибуты доступа
- •4.1.3.2Изменение прав доступа к ресурсам системы
- •4.1.4Подсистема регистрации и учета
- •4.1.4.1Основные файлы журналов событий
- •4.1.4.2Универсальная подсистема учета System Log
4.1.3.2Изменение прав доступа к ресурсам системы
Права доступа к ресурсам системы UNIX их владелец или суперпользователь может изменять программой chmod или одноименным системным вызовом. Для ресурсов файловой системы NFS изменение прав доступа может выполнить только владелец.
В простейшей форме команда chmod указывает какие права доступа к файлу и для какой категории пользователей необходимо изменить. Этот режим называют символьным (symbolic mode).
Команда изменения прав доступа может принимать другую форму записи, которая называется абсолютной. В этой форме устанавливаемые атрибуты не зависят от текущего состояния прав доступа. В абсолютной форме записи ресурсу будут присвоены заданные права доступа независимо от существующих.
Режим доступа в абсолютной форме, принято записывать четырехзначным числом в восьмеричной системе. Любые права доступа к файлу можно задать путем сложения весов элементарных прав доступа для каждого из классов пользователей в соответствии с приведенной таблицей:
Таблица 4.20
Атрибуты прав доступа к ресурсу и их представление в восьмеричном виде
Восьмеричное число |
Атрибут прав доступа |
40008 |
SUID |
20008 |
SGID |
l0008 |
Sticky |
04008 |
Право доступа для чтения владельцем |
02008 |
Право доступа для записи владельцем |
01008 |
Право доступа для исполнения владельцем |
00408 |
Право доступа для чтения членам группы |
00208 |
Право доступа для записи членам группы |
00108 |
Право доступа для исполнения членам группы |
00048 |
Право доступа для чтения пользователям, не вошедшим в класс владельцев файла и членов группы |
00028 |
Право доступа для записи пользователям, не вошедшим в класс владельцев файла и членов группы |
00018 |
Право доступа для исполнения пользователям, не вошедшим в класс владельцев файла и членов группы |
Путем сложения весов различных прав доступа можно получить любой режим доступа к файлу. Например, программа passwd с правами доступа "rws-- х--х" в восьмеричной системе счисления имеет режим доступа (40008+04008+02008+01008+00108+00018) = 47118:
40008 Атрибут SUID
04008 Чтение для владельца
02008 Запись для владельца
+ 01008 Исполнение для владельца
00108 Исполнение для членов группы
00018 Исполнение для остальных пользователей
47118 r w s- - x - -
Пример назначения прав доступа приведен на рисунке:
Рисунок 4.37 – Назначение прав доступа
Режим доступа к файлу, назначаемый ему по умолчанию, определяется при помощи значения umask (user mask) пользователя.
Значение umask — это восьмеричное число, которое конъюнктируется либо с числом 0777, либо с числом 0666 (в зависимости от типа файла), в результате получается набор разрешений на доступ, назначаемый создаваемому файлу по умолчанию. Иначе говоря, значение umask, рассматриваемое как восьмеричное число, вычитается либо из 0777, либо из 0666, в зависимости от типа файла. Полученное в результате вычитания число и является начальными правами доступа к файлу.
Тип файла влияет на начальный режим доступа следующим образом: если команда file показывает, что созданный файл является бинарным исполняемым файлом, значение umask вычитается из 0777, для всех остальных файлов значение umask вычитается из 0666. Для суперпользователя значение umask равно 022, для обычного пользователя — 002. Таким образом, бинарным исполняемым файлам, создаваемым суперпользователем, по умолчанию назначается режим 755 (rwxr-x-r-x), а всем остальным файлам назначается режим 644 (rw-r—r—). Бинарным файлам, создаваемым обычными пользователями, назначается режим 775 (rwxrwxr-x), а всем остальным файлам назначается режим 664 (rw-rw-r--). Узнать текущее значение umask можно, выполнив команду umask без аргументов. Для изменения значения umask нужно вызвать эту команду с новым значением в качестве аргумента (например, umask 222).