Intereting Posts
Могу ли я использовать время A | B для измерения времени, затраченного на запуск A | B? ошибка make-файла unix – нет правила для создания цели Что делает Ritchie 1979 PDP-11 `/ usr / games / bcd`? Есть ли способ назначить сочетание клавиш для фокусировки окон в GNOME на основе их местоположения? Как удалить повторяющиеся числа в столбце в файле? Я не могу понять, что делает параметр -c в команде tr в Ubuntu GNU / Linux, хотя я читаю руководство Низкий графический режим, системная зависания, без загрузки, без загрузки компакт-диска изменить шаблон регулярного выражения в Emacs? Bash: условная новая строка в PS1 ломает typeahead Процесс nohup не работает в ssh ключевое слово сервиса «сервис» не требуется Ubuntu 16.04 LTS: слишком большое значение для определенного типа данных Настройка цветов для строки состояния mutt при настройке нескольких учетных записей Как поддерживать порядок сортировки с помощью xargs и gunzip Размер буфера ядра ящика

Как читать / изменять контекст SELinux на смонтированном изображении ext4 из системы, отличной от SELinux?

У меня есть система Linux (Arch Linux) без поддержки SELinux. Я не хотел бы настраивать такую ​​поддержку в своей системе. Теперь у меня есть образ тома ext4, который, как известно, имеет некоторый контекст SELinux, установленный в его файлах. Мне нужно прочитать и изменить этот контекст для определенных файлов. Когда я монтирую это изображение и ls -lZ это, я получаю ? вместо контекста.

Как мне получить доступ и изменить контекст SELinux для файлов, если у меня нет SELinux включен в системе? Если это невозможно, то какая минимальная конфигурация SELinux, которая не будет влиять на общую систему, но позволит мне изменять контексты внутри смонтированного изображения?

Контекст SELinux хранится в расширенных атрибутах файла ( xattr , man 5 attr ). Инструменты для работы с ними доступны в пакете core/attr .

Атрибуты, включая контекст SELinux, могут быть получены с помощью getfattr . Однако есть оговорка: по умолчанию getfattr перечисляет только атрибуты от user. Пространство имен; и атрибут selinux нам нужен, – это пространство имен security . Поэтому нам нужно передать параметр -m - для запроса атрибутов для всех пространств имен ( -d – значения дампа, а также имена):

 $ getfattr -m - -d bin/sh # file: bin/sh security.selinux="u:object_r:system_file:s0" 

Чтобы изменить контекст selinux, я использовал инструмент setfattr , который требовал привилегий root:

 $ sudo setfattr -n security.selinux -vu:object_r:shell_exec:s0 bin/sh $ getfattr -m - -d bin/sh # file: bin/sh security.selinux="u:object_r:shell_exec:s0"