С помощью этой команды:
# semanage fcontext -l /oldpath/
Вы можете проверить контексты SElinux по умолчанию в папках в вашей системе, поэтому с помощью этой команды вы сможете увидеть контекст по умолчанию для этой папки демона.
Таким образом, вы можете проверить, какие контексты SELinux следует настроить в каталоге, в который вы хотите переместить содержимое.
Допустим, вы видите, что ваша папка демона имеет этот контекст (это контекст apache):
# semanage fcontext -l
...
/var/www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
Затем вы примените эти контексты к новому пути, подобному этому (примеру с контекстом безопасности демона apache по умолчанию)
# semanage fcontext -a -t httpd_sys_content_t '/newpath(/.*)?'
После этого, учитывая, что ваш контент уже находится в новом пути, вы должны форсировать все ниже этого пути, чтобы получить этот контекст:
# restorecon -RFvv /newpath
Вы можете проверить, сработало ли это, с помощью этой команды:
# ls -Zd /newpath/
Помните, что при переходе к каталогу или файлам сохраняется контекст безопасности. Когда вы копируете папку или каталог, он устанавливает контекст в контекст родителя.
Если вам нужно просмотреть справочные страницы для определенного программного обеспечения, вы можете установить справочные страницы с помощью:
# yum install -y selinux-policy-devel
Не забудьте выполнить эту команду, чтобы переиндексировать man db:
# mandb
Затем вы можете запустить этот и проверить все справочные страницы selinux.
# man -k selinux
Предложение: запустите эту команду до и после установки этого пакета, чтобы увидеть разницу:
# man -k selinux | wc -l
То, что вы видите на терминале как ^[
, является escape-символом. Второй [
— это [
.
Вам необходимо включить код для побега.
замените ^[
escape-символом.
esc="$(echo '\033')"
sed 's/\.gpg'"${esc}"'\[00m$//'
или
esc='\x1b`
...
Чтобы удалить последовательности ansi (color и move ), мы можем выполнить что-то вроде
perl -pe 's/\e\[[0-9;]*[mGKHF]//g'
После этого все стало намного яснее...
Сначала прочитайте бит управляющих последовательностей ANSI . SGR (Выбор графического представления -цветов и подобных )заканчивается символом m
-, что-то вроде:
sed -r 's/^[\[[0-9;]*m//g'
должно сработать для корректного -ввода. Под хорошим поведением я понимаю такое, когда управляющая последовательность не перемежается пробелами (, кроме пробела)-типа \n
или \r
".
Обратите внимание, что ^[
— это escape-символ, а не сами символы ^
и [
. Что касается ввода самого escape-символа, то в консоли проще всего нажать Ctrl+V , а затем Esc .
c=$(printf '\\(\33\\[[0-9;]*m\\)*')
Сохранит в $c
регулярное выражение, которое соответствует любому количеству последовательностей настроек графических атрибутов (раскраска, полужирный шрифт, перевернутое видео... ), также известное как sgr(установка графического представления).
Тогда:
sed "s/${c}\.${c}g${c}p${c}g\(${c}\)\$/\5/"
Будет удалена конечная .gpg
, включая вкрапленные и предшествующие последовательности SGR, но сохранены конечные (, такие как ваш\e[00m
(sgr0 ), чтобы восстановить графическое представление по умолчанию ).
Я предполагаю, что вы хотите оставить управляющие последовательности на месте, если они уже есть. Вы можете сделать это:
sed -E 's/\.gpg([[:cntrl:]]|$)/\1/' zz
Это будет соответствовать .gpg
, за которым следует либо конец строки , либо любой управляющий символ (, например. символ ESC. ). Если совпал управляющий символ, он сохраняется при замене на \1
.
Если escape-последовательностей нет, то .gpg
на концах строк также будут удалены.