разрешила доступ к файлу, проводится дополнительная проверка на уровне SELinux.
SELinux (Security-Enhanced Linux - Linux с улучшенной безопасностью) - система принудительного контроля доступа. SELinux считается одной из самых совершенных (понятно, при правильной настройке) систем контроля доступа, обеспечивающих максимальную безопасность. Сейчас она входит в состав ядра Linux и поставляется в составе многих дистрибутивов, Но по-прежнему есть и такие дистрибутивы, в которых SELinux не используется.
Системе SELinux можно доверять только потому, что она была разработана агентством национальной безопасности США, а затем уже была передана миру OpenSource. Такая организация, как NSA, не могла сделать небезопасную систему.
Нужно отметить, что SELinux по-настоящему нужна на сервере или компьютере, содержащем важную информацию. На домашнем компьютере она не нужна, поэтому ее можно смело отключить. В данной главе мы не будем подробно рассматривать все возможности SELinux, поскольку книга рассчитана на рядового пользователя, а не системного администратора, Обычному же пользователю будет достаточно информации, приведенной в этом разделе.
7.7.2. Базовые понятия SELinux: сущность, роль и домен
Чтобы настроить SELinux, вам нужно ознакомиться с ее базовыми понятиями: сущность, роль и домен.
Но сущность не является идентификатором или именем пользователя! Не нужно отождествлять имя пользователя с сущностью: есть имя пользователя den, а есть сущность den. Чтобы нам было понятнее откройте терминал и введите команду id. Вы получите такой вывод:
uid=500(den) gid=500(den) группы=500 (den) context=user_r:system_r:unconfined_t
Теперь введите команду su, а затем снова команду id. Вы получите следующий вывод (рис. 7.14):
uid=0(root) gid=0(root) группы=0(root),1(bin)
Обратите внимание: UID (идентификатор пользователя) изменился, а сущность осталась прежней - user_r. Ради эксперимента, введите следующую команду:
/sbin/init 3
Вы перейдете на третий уровень запуска. Войдите в систему как пользователь root. Затем введите команду id, и вы получите следующий вывод (рис. 7.15):
uid=0(root) gid=0(root) группы=0(root),1(bin),2(daemon),3(sys)
Обратите внимание: изменилась сущность и контекст безопасности. Это доказывает, что сущность никак не привязана к идентификатору пользователя.
Пора разобраться, что же такое роль и домен.
Иногда домен называют типом. Тип (type) - это то же самое, что и домен, но домен относится к процессам, а тип - к файлам, каталогам, сетевым сокетам.
Роль (role) задает список доменов, которые могут быть использованы. Вот пример описания роли в конфигурационном файле (об этом позже): role user_r types user_passwd_t
Данная запись означает, что роли user_r разрешен доступ к домену user_passwd_t, т.е. пользователям с этой ролью разрешено использовать программу passwd для смены своего пароля.
Говоря обобщенно, сущность определяет, какие домены и какие роли, могут быть использованы.
Контекст безопасности состоит из сущности, роли и домена. Контекст безопасности выводится в формате:
context=сущность;роль;домен
Команда id выводит как раз контекст безопасности.
Теперь, когда мы знакомы с основными понятиями SELinux, пора рассмотреть политику безопасности.
7.7.3. Включение/выключение SELinux в Fedora
Включить или выключить SELinux (кстати, в Fedora SELinux по умолчанию включена) можно с помощью конфигуратора system-config-securitylevel. После запуска конфигуратора нужно в его окне перейти во вкладку Настройка SELinux (рис. 7.16) и задать режим работы SELinux.
Принудительный режим - нормальный режим работы, при котором SELinux будет запрещать доступ к объектам, если это необходимо.
Режим предупреждений - данный режим нужно использовать для отладки работы SELinux: доступ к объектам разрешается, но если SELinux считает, что при выполнении операции нарушена политика безопасности, то будет выведено предупреждение о том, что операция запрещена (предупреждение заносится в файл /var/ log/messages).
Выключен - SELinux не используется.
Учтите, что при каждом включении/выключении SELinux ваша файловая система будет перемаркирована (рис.7.17). В этой операции нет ничего страшного (при перемаркировке будут изменены контексты безопасности), но она может занять довольно много времени. Перемаркировка производится при первой перезагрузке после включения/выключения SELinux.
7.7.4. Каталог /etc/selinих