Ну, можливо, це фантазія, але є багато людей, які говорять те саме:
Чому я повинен використовувати gksudo для програм Gtk замість sudo?
Однак є й інші випадки, коли побічні ефекти можуть бути такими ж легкими, як розширення Firefox, не стирчать або настільки екстремальними, як неможливість увійти в систему, оскільки дозволи на ваш .ICEauthority змінилися.
Чому користувачі ніколи не повинні використовувати звичайний sudo для запуску графічних програм?
Припустимо, ви використовуєте gedit (графічний редактор тексту) як корінь. Якщо ви запустили sudo gedit, HOME продовжить вказувати на ваш домашній каталог, навіть якщо програма працює як root. Отже, gedit запише конфігураційні файли як корінь у ваш домашній каталог. Іноді це призведе до того, що файли конфігурації належать root та, таким чином, недоступні для вас (коли пізніше ви запускаєте програму як себе, а не як root).
Як запустити програму GUI як іншого користувача (Debian)?
По-перше, не використовуйте sudo чи su для того, щоб змінити користувачів для запуску графічного процесу, або ви можете мати проблеми вниз (~ / .ICEauthority change last - важлива проблема). Замість цього створіть ярлик, який використовує таку команду:
Запуск судо графічно
Ну, якщо бути чесним, то в більшості випадків це не так. У багатьох програмах ви можете запустити їх неналежним чином - використовуючи sudo для графічних додатків і не бачачи негативних побічних ефектів.
...
Ці помилки трапляються, оскільки іноді під час sudo
запуску програми він запускається з привілеями root, але використовує файл конфігурації користувача.
Цей поштовий архів може також зацікавити вас.
Отже, давайте перевіримо це.
2 абсолютно нових віртуальних коробки. Ubuntu 14.04. Ніколи не запускайте на них Firefox. Що буде, коли я запускаю команду sudo firefox
?
tim@Hairy14CVB:~$ sudo firefox
(process:4857): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
...
shutdownObserver@XPIProvider.jsm:2192:13
Це те саме (або принаймні дуже схоже) для обох віртуальних коробок. Поки Firefox працював, я встановив розширення youtube - популярне. Потім я закрив firefox і перевірив вихід.
tim@Hairy14CVB:~$ ls -la .ICEauthority
-rw------- 1 tim tim 1336 Jun 4 21:31 .ICEauthority
Ну, .ICEauthority
добре! Однак ...
tim@Hairy14CVB:~$ ls -la | grep root
drwxr-xr-x 3 root root 4096 Jun 1 20:49 ..
drwx------ 3 root root 4096 Jun 5 22:41 .dbus
drwx------ 4 root root 4096 Jun 5 22:41 .mozilla
3 речей в моїй домашній папці ( /home/tim/
) належить корені ( ..
, .dbus
і .mozilla
). Це те саме (або принаймні дуже схоже) для обох віртуальних коробок.
Отже, чи це має значення. Я не був впевнений, тому я запустив firefox, як це:
tim@Hairy14CVB:~$ firefox
(process:4959): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Error: Access was denied while trying to open files in your profile directory.
І ця потворна помилка:
Щоб отримати повний термінальний вихід (включаючи дзвінку Firefox), дивіться ці два пасти, тут і тут .
Я досі можу запустити firefox як root, до речі. Але тепер більше файлів було змінено:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
drwx------ 3 root root 4096 Jun 5 22:55 .adobe
drwx------ 3 root root 4096 Jun 5 22:40 .dbus
drwx------ 3 root root 4096 Jun 5 22:55 .macromedia
drwx------ 4 root root 4096 Jun 5 22:40 .mozilla
Це було тому, що я завантажив зображення на imgur.com? Не впевнений.
Як я це виправив? chown
. Я цього не розумію, але в Інтернеті сказали це зробити, і це віртуальна скринька, так йоло.
sudo chown -R tim:tim /home/tim/
І це зафіксувало. Тепер вихід - лише ..
файл:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
І те саме на моєму комп’ютері. О, і на моєму віртуальному вікні Kubuntu:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 3 root root 4096 May 16 14:10 ..
Який ніколи навіть не виконував команду sudo. Так що все добре. Просто не запускайте sudo
програму GUI.
Заключний тест: запустіть його зі значками -H
та -i
прапорами:
sudo -H firefox
і
sudo -i firefox
І хороші новини! І все-таки єдиний корінь «річ» ..
. І я можу бігати firefox
без кореня.
ОП хоче, щоб я розповів про Гедіт.
Я побіг
sudo gedit
Потім встановлено кілька випадкових плагінів. Це був вихід:
tim@Hairy14VB:~$ ls -la | grep root
ls: cannot access .gvfs: Permission denied
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
Зауважте, що я навіть не можу переглянути право власності, .gvfs
тому я це зробив:
tim@Hairy14VB:~$ sudo ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
dr-x------ 2 root root 0 Jun 6 10:05 .gvfs
Таким чином, запуск sudo gedit
змінює файл у моєму домашньому каталозі на root.
Я ще можу відкрити gedit, але цього разу дістаю сміття:
(gedit:7422): Gtk-WARNING **: Attempting to read the recently used resources file at `/home/tim/.local/share/recently-used.xbel', but the parser failed: Failed to open file '/home/tim/.local/share/recently-used.xbel': Permission denied.
І це говорить про те, що є ще один файл ( ~.local/share/recently-used.xbel
), який було змінено. Я думаю, що це нещодавно використаний список файлів, і (пощастило здогадатися) у мене зараз немає свого списку нещодавно використаних файлів:
Там має бути файл, який називається output2.txt.save2
. Мої займенники - Він / Він