Графічні програми часто зберігають налаштування та інші конкретні для користувача дані у файлах конфігурації, записаних у домашній папці користувача . Основний механізм, який програми використовують для визначення того, що вони повинні використовувати як домашню папку користувача, є 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
-ва .Xauthority
, коли файли конфігурації будуть належати , як root
, це не завжди очевидно , що проблема (бо графічні програми будуть часто працювати, але не працюють дуже добре, і висновок яких - або корисних помилок в консолі). Іноді виправити великі клопоти, особливо, якщо ви хочете, щоб один чи більше файлів у вашому домашньому каталозі належало іншому, ніж ви (адже тоді ви не можете його виправити, просто рекурсивно chown
проводячи всі ваші файли назад до себе).
Тому sudo
(принаймні без -H
) не слід використовувати для запуску графічного додатку, якщо ви добре не знайомі з внутрішнім функціонуванням програми і точно знаєте, що він ніколи не намагається написати жодних файлів конфігурації.