Как правильно открывать файлы/программы от имени root?

Вопрос или проблема

Когда я пытаюсь открыть файловый менеджер от имени root, вызывая, например, sudo thunar, слева появляются единицы без подписей (также некоторые, которые не должны появляться, такие как dev, pts, proc, sys):

введите описание изображения здесь

Если я вызываю sudo dbus-launch thunar, он загружается нормально (как обычный пользователь), однако после закрытия приложения экземпляр dbus-daemon продолжает работать вечно.

Если я вызываю sudo dbus-run-session -- thunar, он загружается нормально, так что это выглядит как правильный способ сделать это. Однако если я хочу открыть файл вместо приложения, мне нужно вызвать либо xdg-open, либо gio open (например, sudo dbus-run-session -- xdg-open /home/test.txt или sudo dbus-run-session -- gio open /home/test.txt), но в обоих случаях, когда я просматриваю файл изнутри приложения, единицы появляются неправильным образом, и вывод терминала заполняется следующим:

(mousepad:7837): dconf-WARNING **: 19:33:35.947: не удалось зафиксировать изменения в dconf: Не удалось подключиться: Соединение отказано

Есть ли хорошее решение для этого беспорядка?

Тестировалось на Slackware Live Xfce с декабря 2021 года. Но на самом деле не имеет значения, какая дистрибуция — то же самое происходит и в Ubuntu.

Примечание: Я буду очень признателен, если люди пропустят «почему вы хотите это сделать/вы не должны это делать». Спасибо!

Не является хорошей практикой запускать приложения от имени root.

Чтобы редактировать файл от имени root, используйте sudoedit:

sudoedit file

Чтобы использовать другой редактор, выполните:

EDITOR=ваш_любимый_редактор sudoedit file

Ответ или решение

Открытие файлов или приложений с правами root — задача, требующая высокой осторожности и знания нюансов архитектуры операционной системы. В данной статье мы рассмотрим, как правильно открывать приложения и файлы с правами суперпользователя, чтобы избежать распространённых проблем.

1. Исполнение приложений с правами root

Запуск файловых менеджеров или графических приложений с правами root может приводить к ряду неожиданных эффектов. Часто вы можете столкнуться с отсутствием меток в боковой панели или даже с тем, что некоторые файловые системы отображаются неверно. Это связано с особенностями взаимодействия приложений с системой с использованием D-Bus.

2. Правильное использование sudo

Проблемы, которые вы описали, связаны с несколькими способами запуска приложений. Использование:

sudo thunar

приводит к проблемам с D-Bus, поэтому в данном случае имеет смысл использовать подходы для изолированного запуска сессии D-Bus.

3. Рекомендации по запуску

3.1 sudo dbus-run-session -- <application>

Этот способ является правильным, когда вы хотите запустить приложение из графического интерфейса с привилегиями root. Например:

sudo dbus-run-session -- thunar

Этот метод обеспечивает корректное взаимодействие приложения с D-Bus и другими системными службами.

4. Открытие файлов с правами root

Когда речь идёт об открытии файлов, часто случается так, что вы используете утилиты, такие как xdg-open или gio open. Например:

sudo dbus-run-session -- xdg-open /home/test.txt

Однако могут возникнуть проблемы с ошибками dconf. Это связано с тем, что сессия пользователя отличается от сессии root, и настройки конфигураций не могут быть применены.

5. Рекомендации для работы с файлами

5.1 Используйте sudoedit

Для редактирования текстовых файлов с правами root рекомендуется использовать:

sudoedit filename

Эта команда открывает файл в вашем любимом текстовом редакторе, но при этом сохраняет все изменения в временном файле, который будет перемещён в изначальное местоположение с привилегиями root. Чтобы использовать редактор по умолчанию, выполните:

EDITOR=ваш_редактор sudoedit filename

5.2 Используйте pkexec для графических приложений

Для графических приложений можно использовать pkexec. Например:

pkexec thunar

Эта команда предоставит вам окно аутентификации, и приложение будет запущено с правами root, при этом соблюдается изоляция окружения.

6. Заключение

Правильное открытие файлов и приложений от имени суперпользователя необходимо для поддержания стабильности системы и избежания проблем с интерфейсами. Используйте приведенные рекомендации, чтобы минимизировать риски и повысить эффективность работы с файловой системой на уровне root.

Следуя указанным методам, вы сможете избежать распространённых ошибок, связанных с D-Bus и конфигурациями. Применение безопасных практик при работе с root предоставляет вам необходимые возможности без рисков для системы.

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

Капча загружается...