как удалить метку SELinux?

Можно использовать ffmpeg сделать это. Существует несколько примеров, законченных на ffmpeg веб-сайте.

Вот несколько из них:

  1. Это будет создавать одно изображение миниатюр каждую минуту, названный img001.jpg, img002.jpg, img003.jpg, ... (%03d средства, что порядковое число каждого изображения миниатюр должно быть отформатировано с помощью 3 цифр),

    $ ffmpeg -i myvideo.avi -f image2 -vf fps=fps=1/60 img%03d.jpg
    
  2. Это будет создавать одно изображение миниатюр каждые 10 минут, названный thumb0001.bmp, thumb0002.bmp, thumb0003.bmp, ...

    $ ffmpeg -i test.flv -f image2 -vf fps=fps=1/600 thumb%04d.bmp
    

Если Вы хотите превратить их в короткое видео, можно снова включить в список справку ffmpeg. Это обсуждено на этой странице их веб-сайта.

Вот еще несколько примеров:

  1. Здесь, каждое изображение будет иметь продолжительность 5 секунд (инверсия 1/5 кадров в секунду). Говоря FFmpeg установить входную опцию FPS файла (кадры в секунду) на некоторую очень низкую стоимость, мы сделали дублированные кадры FFmpeg в выводе, и таким образом мы достигли для отображения каждого изображения в течение некоторого времени на экране:

    $ ffmpeg -f image2 -r 1/5 -i img%03d.png -c:v libx264 -r 30 out.mp4
    
  2. Если у Вас нет изображений пронумерованными и заказанными последовательно (img001.jpg, img002.jpg, img003.jpg) а скорее случайный набор изображений, ffmpeg также поддерживает стиль удара globbing (*, представляет любое количество любых символов):

    $ ffmpeg -f image2 -r 1 -pattern_type glob -i '*.jpg' -c:v libx264 out.mp4
    

или для изображений png:

    $ ffmpeg -f image2 -r 1 -pattern_type glob -i '*.png' -c:v libx264 out.mp4

Для превращения получающегося видео в анимированный gif, Вы могли использовать шаги, обрисовал в общих чертах интервал его ТАК названные Вопросы и ответы: Как генерировать gif от avi, использующего ffmpeg?:

$ ffmpeg -i video.avi -t 10 out%02d.gif

затем:

$ gifsicle --delay=10 --loop *.gif > anim.gif

Вот ссылка на инструмент gifsicle.

5
05.11.2015, 00:15
1 ответ

Я полагаю, если вы установите / etc / selinux / config на отключено перезагрузка. Затем установите для него принудительное применение и перезагрузитесь, он изменит метку, если у вас возникли проблемы с его изменением в противном случае. Странно, что restorecon не сработал.

Если вы хотите сбросить настройки жестким способом, сам каталог / home должен быть:

system_u:object_r:home_root_t

, а домашний каталог каждого пользователя (и файлы в нем) должны быть:

unconfined_u:object_r:user_home_dir_t:s0

Вы можете установить их с помощью chcon , или используя комбинацию semanage и restorecon

chcon -t home_root_t /home
chcon -Rt user_home_dir_t /home/*

или

 semanage fcontext -a -t home_root_t /home
 semanage fcontext -a -t user_home_dir_t /home/*
 restorecon -R /home

, обратите внимание, что вообще говоря chcon используется для принудительно выполнить немедленное изменение, оставив значения по умолчанию на месте, чтобы команда restorecon восстановила контексты по умолчанию. В вашем случае, похоже, по какой-то причине это пошло не так.

Как правило, semanage fcontext предназначен для записи локального файла контекста в /etc/selinux/targeted/contexts/files/file_contexts.local

с большим количеством информации о текущем контексте, и контексты по умолчанию можно найти в:

/etc/selinux/targeted/contexts/default_contexts
/etc/selinux/targeted/contexts/files/file_contexts
/etc/selinux/targeted/contexts/files/file_contexts.homedirs

Возможно, что каким-то образом эти файлы были каким-то образом повреждены, и в целом есть много подконтекстов, которые не могут быть полностью восстановлены с помощью вышеуказанных действий в зависимости от того, как эти файлы были изменены. Было бы неплохо изучить эти файлы и посмотреть, сможете ли вы найти добавленное сопоставление контекста и удалить его таким же образом.

Теоретически вы также можете взять виртуальную машину или другую машину (или, возможно, просто найти их в сети) и скопировать известные хорошие значения по умолчанию в соответствующие каталоги и позволить системе изменить метку, чтобы получить правильные значения по умолчанию. Тем не менее, это тоже будет иметь некоторые недостатки.

В конце концов, потребуется немного проб и ошибок, команды chcon / semanage, перечисленные выше, должны дать вам общие сведения, но, возможно, некоторые из ваших подкаталогов будут иметь свой собственный контекст.

Некоторые дополнительные контексты, которые могут быть полезны (все они находятся в / home / username:

ls -laZ / home / username

##context###########################  Directory##
unconfined_u:object_r:cache_home_t:s0 .cache
unconfined_u:object_r:config_home_t:s0 .config
unconfined_u:object_r:dbus_home_t:s0 .dbus
unconfined_u:object_r:gconf_home_t:s0 .gconf
unconfined_u:object_r:gconf_home_t:s0 .gconfd
unconfined_u:object_r:gpg_secret_t:s0 .gnupg
unconfined_u:object_r:gconf_home_t:s0 .local
unconfined_u:object_r:ssh_home_t:s0 .ssh

Обратите внимание, что это основано на моем домашнем каталоге, там будет больше, что вам, возможно, придется выследить, но если вы поймете большинство из них правильно, вы должны более или менее вернуться на правильный путь.

4
27.01.2020, 20:40

Теги

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