К основному контенту

Две команды, чтобы Xorg-приложения работали под sudo

Пришла новая Fedora 30! А с ней некоторые графические приложения перестали запускаться под sudo. Где-то поломался GEdit, где-то не запускается установщик VMWare Remote Console (безобразный продукт), где-то фейлится рандомная фигня, которая раньше работала на 29й федоре. Почему они работали ранее вообще — интересный вопрос, ведь по-умолчанию приложениям из-под sudo, работающим на X11/Xorg, запрещён доступ к вашему графическому рабочему столу. Более технично — у root-юзера нет прав на доступ к Xorg серверу. С Wayland как-то попроще, но на вейланде сейчас один только GNOME-shell и его файловый менеджер Nautilus.

Ошибки выводятся разные, но они все говорят об интерфейсе:

# Это вылезло из установщика VMWare Remote Console
User interface initialization failed.

# Вообще, у меня большая часть приложений на основе electron
# или nw.js и их в принципе нельзя запускать под рутом,
# поэтому вот вам ошибка, возвращаемая Xeyes 👀
No protocol specified
Error: Can't open display: :0

Варнинг: прежде чем что-то выполнять под sudo, десять раз подумайте, что может натворить прога, удалив системные файлы и записав конфиги в не те директории, и что могут наделать хацкеры с вашим декстопом, пока пьёте чай. Потом всё равно выполните под судо.

Решается проблема элементарно — на время отключается контроль доступа к Xorg. Делается через команду xhost.

xhost +
# здесь идёт, сопсна, ваша команда, использующая Xorg
xhost -

Та-да-а-а!

Комментарии

Популярные сообщения из этого блога

Что делать, если Error mounting: can't read superblock

Вот такая радость меня встретила сегодня утром — дополнительный жёсткий диск в ноутбуке перестал работать. Часть прог не работает, другие не могут найти рабочие проекты. При монтировании диска через тот же Наутилус пишет: Error mounting system-managed device dev/sdb3: can't read superblock on /dev/sdb3 (udisks-error-quark, 0)

Как обновить Fedora, если Error running transaction: package X is already installed

Наконец-то руки дошли обновить федору до версии 33. Только вот нельзя просто так взять её и обновить — ГУИшный установщик ПО найдёт, где выпендриться. Ошибка значит в переводе, что не удаётся провести транзакцию (грубо говоря, установку), из-за того, что такой-то пакет уже установлен. О ужас! Почему это считается вообще ошибкой — философский вопрос, а чинить как-то надо. Запускаем командную строку. Выполняем команды (только прочитайте сначала текст ниже): sudo dnf upgrade --refresh -y sudo dnf update dnf-plugin-system-upgrade -y sudo dnf system-upgrade download --releasever=33 --allowerasing -y -b Первая команда обновляет все пакеты в системе. Вторая обновляет плагин для обновления самой системы. (На самом деле, плагин и так обновится первой командой. Это скорее для проверки существования самого пакета. Если команда валится и пишет, что такого пакета нет, выполните sudo dnf install dnf-plugin-system-upgrade .) Третья скачивает все пакеты, которые нужны для самого обновления

Установить Midnight Commander на Fedora, CentOS и RHEL — файловый менеджер в терминале

Волей-неволей в жизни девопса иногда приходится работать без графического интерфейса. Или же нужно сделать что-то в своей файловой системе без иксов. Midninght Commander — это файловый менеджер с терминальным интерфейсом, который схож визуально с Total Commander с его разделением на два окна. Миднайт командер также поддерживает управлению мышью, да и в общем идеален для тех, кто привык к графическим интерфейсам и боится vim -а (как я). Если ввести dnf search midnight commander , то ничего не найдётся. Всё потому, что в пакетных менеджерах называется он просто mc , а в описании полного названия нет: Устанавливается он довольно просто. Для Fedora: sudo dnf install -y mc Для RHEL/CentOS: sudo yum install -y mc И всё, можно пользоваться: mc