Betsy, ZFS и выпадающие терминалы… а причём здесь SELinux?

Алексей Федорчук

Не так давно я писал про прикручивание ZFS к LMDE, которое прошло вполне успешно. Настолько успешно, что я долгое время не перезагружал и не выключал машину: специфика ZFS такова, что с ней можно начинать работать сразу по подключении, а машина у меня нынче холодная и малошумная. Но в конце концов решил дать отдохнуть своему электронному другу, и выключил его на ночь.

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

Ну что же, подумал я, сбои бывают во всех программах — и назначил клавишу F12 для вызова терминала. Заодно подправив и все другие настройки — размер, положение, шрифт, цветовую схему. И всё стало прекрасно, но лишь до следующей перезагрузки, после чего всё повторилось сначала.

Первое предположение — что это было связано с каким-то неудачным обновлением пакета, — не подтвердилось: сама Tilda не обновлялась, а «поломка» библиотек, от которых она зависит (libgtk, libpango и так далее) повлияла бы на многие другие приложения. Тем не менее, я на всякий случай убрал её из автозапуска, в внёс в него специально установленную Guake — программу аналогичного назначения и функционала, но привязанную к libgtk2.

Однако и с Guake наблюдалась та же картина: автоматически она не стартовала, а, будучи запущенной вручную, теряла настройки после перезагрузки.

Без выпадающего терминала я себя чувствую буквально как без рук, так что проблема требовала скорейшего решения. В поисках её я вспомнил о пакете selinux, непонятно зачем оказавшемся в списке пакетов, которые рекомендовалось установить до сборки модулей ZFS, наряду со всякого рода инструментарием разработчика. А также о том, что в FAQ’е по ZFS рекомендовалось отключить SELinux при проблемах с автоматическим монтирование её файловых систем. У меня таких проблем не наблюдалось, но я на всякий случай решил последовать рекомендации — это был слабый, но единственный шанс поправить положение дел.

Я внёс в файл /etc/selinux/semanage.conf строку

SELINUX=disabled

закомментировав все остальные открытые там строки, запустил Tilda, заново её настроил и вернул в автозапуск. И — о чудо! После перезагрузки она не только заработала, но и сохраняла настройки при рестарте системы.

Таким образом, проблема разрешилась, к вящему моему удовольствию. Однако вопросы — остались. Первый из них — каким образом SELinux так тлетворно влияет на выпадающие терминалы? Второй — на все ли, или только на gtk based? Третий и главный — зачем он вообще был включён в список предустанавливаемых пакетов?

Очевидно, что для работы ZFS SELinux не только не нужен, но в ряде случаев прямо противопоказан. Необходим для сборки spl- и (или) zfs-модулей? Но и в Ubuntu, и в Mint’е собственно, и в Salix’е, и в Sabayon они прекрасно собираются без малейшего SELinux’а. Как и в openSUSE — в ней, правда, имеется AppArmor, выполняющий аналогичные функции, но его я тоже всегда отключал.

Все знают, что компьютеры существуют для того, чтобы решать проблемы, которых без них просто не было бы. Применительно к SELinux этот тезис можно конкретизировать: эта система придумана (в недрах АНБ, кстати) для решения проблем путём её отключения. По крайней мере, для настольных компьютеров индивидуального пользования это именно так…

Добавить комментарий