Новости SELinux
Это архивная статья
После выхода Halloween релиза
SELinux,
Dan Walsh сосредоточился на его
интеграции с другими приложениями. Для начала, он добился включения
изменения в coreutils версии
8.22,
которое стандартизирует ключ командной строки "Z" без параметров, как
средство для исправления меток. Dan рассказывает в своем
блоге об изменении:
Традиционно, команда mv сохраняет настройки безопасности объекта, который перемещается - права доступа, владельца, и, что важно, SELinux метки. Проблема в том, что пользователи не ожидают такого поведения [в отношении SELinux], и теперь, добавив -Z пользователь может быть уверенным, что SELinux метки восстановятся. Именно этого юзеры и ожидали от команды. Т.е. добавление -Z к команде будет значить запуск restorecon после перемещения: "mv -Z /tmp/foobar /etc/foobar" == "mv /tmp/foobar /etc/foobar; restorecon /tmp/foobar" Одна из причин, почему мы не сделали это раньше, была скорость работы базы данных меток. Сейчас она значительно улучшена, и стало возможным реализовать это поведение.
Dan предлагает всем заинтересованным лицам добавить alias mv='mv -Z'
куда-нибудь в ~/.bashrc. Типичной проблемой, которую пофиксит это
изменение, было перемещение контента из директории пользователя (по
умолчанию метка user_home_t) в /var/www или в иную директорию для
Web-сервера, где файлы должны иметь метку, позволяющую http-серверу
читать их. Мы уже тыщу раз давали совет по запуску sudo restorecon -r
/var/www, после которого веб-сервер начинал работать. Еще одним
важным моментом, на который надо обратить внимание, это то, что это
изменение резко уменьшает вероятность возникновения race condition,
возникавшего при последовательных операциях перемещения (например) и
последующего восстановления SELinux меток другой утилитой. Теперь это
делается в одной утилите.
Это изменение внесено не только в mv, но и в других утилитах
coreutils, создающих файлы, т.е. в cp, touch, mknod, mkdir, mkfifo,
install.
Как и все ключевые компоненты Linux и OSS, coreutils разрабатывается
нашими коллегами, инженерами Red Hat, поэтому это изменение делалось с
оглядкой на наши интересы, но не вызовет ли оно регрессию в
дистрибутивах со специально ослабленными системами безопасности,
такими как самосборные дистрибутивы, Ubuntu, Debian и ряда других? Dan
уверяет - нет, все будет хорошо. Пользователи дистрибутивов с
примитивными средствами безопасности могут использовать ключ -Z, и
он будет просто игнорироваться.
У нас есть и еще одна новость от Dan. Он обеспечил работу SELinux и
Docker, который недавно включили в
Fedora, переделав ряд его решений,
чтоб соответствовать высоким требованиям к архитектуре, предъявляемым
клиентами Red Hat. Одно дело использовать Docker, чтоб по быстрому
налепить сайтик-стартапик под убунточкой, чтоб дали денег на новый
макбук, после чего забыть про линукс навсегда, а другое дело, это
переносить с помощью Docker компоненты Enterprise архитектуры в
облако, например гибридное (рост интереса к гибридным облакам входит
в TOP-15 прогнозов на 2014й год от Red
Hat).
Тут и хранилище нужно посерьезнее, и SELinux включенный. Dan взялся за задачу, но с интересом увидел, что Docker написан на Go. Матерого ЦРУшника-программиста с 30-летним опытом работы какой-то там модный хипстерский язык остановить не может - Dan его освоил и написал необходимый код для работы контейнеров с SELinux.