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