- Вопрос или проблема
- Ответ или решение
- 1. Исполнение приложений с правами root
- 2. Правильное использование sudo
- 3. Рекомендации по запуску
- 3.1 sudo dbus-run-session -- <application>
- 4. Открытие файлов с правами root
- 5. Рекомендации для работы с файлами
- 5.1 Используйте sudoedit
- 5.2 Используйте pkexec для графических приложений
- 6. Заключение
Вопрос или проблема
Когда я пытаюсь открыть файловый менеджер от имени 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 предоставляет вам необходимые возможности без рисков для системы.