Следует ли изменить контекст SELinux «etc _t» для пользовательского приложения?

Задача менее очевидна, чем кажется на первый взгляд.

Либо вы используете код от Slyx и затем удаляете ненужную новую строку с sed $!N;$s/\n//;P;D, либо вы находите строку, которая, как известно, не является частью обоих файлов, скажем, =snip=и делаете

sed '1h;1,/=snip=/d;$G;s/\n/ /' file1 <( echo =snip=) file2

Вывод может быть передан в другой файл, а затем скопирован в file2(, даже если ваш вариант sedимеет параметр -i, это не будет работать при использовании частей двух файлов ).

Что делает код?

  • 1hсохраняет строку 1 в области хранения («буфер обмена» sed), чтобы добавить ее позже
  • 1,/=snip=/dудаляет все от строки 1 до строки маркера, поэтому будет напечатано только file2
  • $Gдобавляет сохраненную строку из пробела к последней строке($)
  • s/\n/ /заменяет встроенный символ новой строки пробелом. Это произойдет только в последней строке после добавления пробела
  • .
  • file1 <( echo =snip=) file2— это файлы, переданные вsed:сначала file1для извлечения первой строки, затем виртуальный файл, содержащий =snip=, чтобы узнать, когда заканчивается файл 1, наконецfile2

На самом деле, неплохо научиться sedтрюкам.

0
25.05.2021, 19:49
1 ответ

etc_t— это тип SELinux, применяемый по умолчанию как часть контекста SELinux к файлам в каталоге /etc, которые -доступны для чтения всем, но принадлежат и могут изменяться только пользователем root-@fpmurphy

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

0
28.07.2021, 11:30

Теги

Похожие вопросы