Утилита setfiles#

Утилита setfiles изначально запускается как часть процесса установки SELinux и используется для инициализации полей контекста безопасности (расширенных атрибутов) в одной или нескольких файловых системах.

Также утилиту используется для решения следующих задач:

  • исправление некорректных меток;

  • добавление поддержки новой политики;

  • просмотр контекста, присвоенного файлу;

  • проверка контекста файла на соответствие с контекстом текущей или иной политики.

Если у файлового объекта отсутствует контекст, setfiles установит его по умолчанию в расширенных атрибутах. В ином случае setfiles изменит часть, относящуюся к контексту безопасности.

Синтаксис утилиты:

setfiles <options>

Где <options> - опции.

Часто используемые опции утилиты представлены в таблице ниже.

Опция

Описание

-c

Проверка соответствия контекста по отношению к бинарному файлу политики

-d

Вывод спецификации, соответствующей каждому файлу

-l

Запись изменений меток файлов в syslog

-n

Сохранение меток файла без изменений

-p

Отображение процесса выполнения с выводом количества обработанных файлов. При повторном выставлении меток указывает приблизительный процент выполнения

-r <rootpath>

Использование альтернативного корневого пути <rootpath>

-e <directory>

Исключение каталога <directory> из обработки. Для исключения нескольких каталогов, опцию нужно использовать соответствующее количество раз

-F

Установка контекста настраиваемых файлов в file_context в принудительном порядке

-s

Использование списка файлов со стандартного ввода вместо пути из командной строки

-v

Отображение изменения меток для файлов при изменении типа или роли

-W

Вывод предупреждения о записях, для которых не обнаружены соответствующие файлы

Утилита setfiles использует следующие аргументы:

  • spec_file - файл спецификации, содержащий строки следующего вида:

    regexp [type] context | <<none>>
    

    Регулярные выражения указаны в начале и конце строки.

    В поле type указывается тип файла в том же виде, как и при использовании команды ls: -- соответствует обычным файлам, -d - каталогам. Опционально для заполнения.

    В поле context указывается значение <<none>>, если файл не должен изменить контекст безопасности, или конкретный контекст.

    Последние строки спецификации имеют больший приоритет. В случае, когда для задано несколько различных по контексту безопасности спецификаций, отразится соответствующее предупреждение, а файлу будет присвоен контекст на основе последней строки. Если она содержит <<none>>, то учитываться не будет.

  • pathname ... - путь к конкретному каталогу или файлу, для которого проставляются контексты. Не используется с опцией -s.