Графические приложения часто хранят настройки и другие пользовательские данные в файлах конфигурации, записанных в домашней папке пользователя . Основным механизмом, который приложения используют для определения того, что они должны использовать в качестве домашней папки пользователя, является HOME
переменная окружения . (Вы можете проверить это сами echo $HOME
).
Предположим, вы работаете gedit
(графический текстовый редактор) как root
. Если вы запустите sudo gedit
, HOME
будет продолжать указывать на ваш домашний каталог, даже если программа работает какroot
. Следовательно, gedit
файлы конфигурации будут записываться какroot
в ваш домашний каталог. Это иногда приводит в файлах конфигурация будучи принадлежащий наroot
и , следовательно , недоступные для вас (если вы позже запустить программу , как сами себя , а не как root
). В основном это происходит, когда приложение должно создать новый файл конфигурации. По умолчанию вновь созданные файлы принадлежат пользователю, который их создает (в данном случае это root
не вы).
Это основная причина, почему вы должны запускать графические приложения с графическим sudo
интерфейсом, а не с прямым sudo
. В Ubuntu и большинстве его производных (включая Xubuntu и Lubuntu) стандартным графическим интерфейсом является gksu
/gksudo
. В Кубунту это так kdesudo
. (Это зависит от используемой среды рабочего стола .)
Если вы хотите использовать sudo
непосредственно для запуска графического приложения, как gedit
, вы можете запустить:
sudo -H gedit
-H
Флаг делает sudo
набор , HOME
чтобы указать на root
«s домашней папки (это /root
).
Это все равно не будет автоматически обрабатывать владение .Xauthority
, копируя его во временную папку (это еще одна вещь, о которой sudo
заботятся графические интерфейсы). Но в нечастом событии, .Xauthority
которое недоступно, вы получите сообщение об ошибке, и это можно исправить, удалив его ( sudo rm ~/.Xauthority
), так как он автоматически создается заново. Таким образом, защита .Xauthority
владения и разрешений менее важна, чем защита владения и разрешений файлов конфигурации.
В отличие от root
-owned .Xauthority
, когда файлы конфигурации становятся собственностью as root
, проблема не всегда очевидна (поскольку графические программы часто работают, но работают не очень хорошо и выводят любые полезные ошибки на консоль). И иногда это труднее исправить, особенно если вы находитесь в ситуации, когда вы хотите, чтобы один или несколько файлов в вашем домашнем каталоге принадлежали кому-то, кроме вас (потому что тогда вы не можете это исправить, просто рекурсивно chown
извлекая все свои файлы обратно к себе).
Поэтому sudo
(по крайней мере, без -H
) не следует использовать для запуска графического приложения, если вы не очень хорошо знакомы с внутренней работой приложения и точно знаете, что оно никогда не пытается писать какие-либо файлы конфигурации.