Какие конкретные плохие вещи случаются, когда gedit используется с sudo?

Я читаю этот ответ, объясняя, что "иногда" root может владеть чем-то /home/$USER каталог.

Может кто-нибудь привести пример, как это доказать. Просто приведите тестовый случай, когда что-то действительно плохое случится, когда я бегу

sudo gedit /etc/rc.local

отредактируйте файл и сохраните.

Я получил много отрицательных отзывов, пытаясь помочь OP, и комментарии были залиты тем, что запускать gedit с sudo - преступление.

Кто-нибудь может привести реальный пример?

Я четко объяснил, почему этот вопрос не является дубликатом. Нет конкретного ответа для gedit на связанный вопрос.

И важно объяснить, почему широко используется sudo gedit плохо или не очень и т. д.

2 ответа

Решение

Так далеко как sudo gedit Ничего страшного, просто плохая практика, особенно в последнее время. Насколько сложнее было бы предложить sudo -H gedit?

-H , --set-home Запросите, чтобы в политике безопасности для переменной среды HOME был задан домашний каталог, указанный в записи базы данных паролей целевого пользователя. В зависимости от политики это может быть поведение по умолчанию.

Что происходит?

Вы получаете пару корневых файлов в вашей домашней папке. Один (recently-used.xbel) скорее всего вернется в собственность пользователя. Это может произойти, когда файл удален и создан заново. Чтобы увидеть, что sudo gedit изменился, беги find ~ -user root -group root и посмотрим, что возвращается. По умолчанию это должно быть ничто.

С помощью этой команды вы можете увидеть пару файлов, принадлежащих пользователю root. Один будет новым .file, .gvfs и рано или поздно владелец ~/.cache/dconf и вышеупомянутые recently-used.xbel,

Так что нет "небо рушится", но все же. Теперь появились сообщения о том, что дальнейшее использование вызывает другие проблемы, но не претендует на то, чего я здесь не вижу.

Также обратите внимание, что по состоянию на 13.10 sudo gedit будет использовать конфигурацию пользователя gedit, а не конфигурацию root. Опять просто плохая практика, так почему же продолжать это делать или предлагать другим делать это?

Ну, может быть, это фантастика, но многие люди говорят одно и то же:

  • Почему я должен использовать gksudo для приложений Gtk вместо sudo?

    Однако бывают и другие случаи, когда побочные эффекты могут быть такими же слабыми, как и не зависающие расширения Firefox, или настолько сильными, как невозможность входа в систему из-за изменения прав доступа к вашему домену.ICEauthority.

  • Почему пользователи никогда не должны использовать обычный sudo для запуска графических приложений?

    Предположим, вы используете gedit (графический текстовый редактор) от имени пользователя root. Если вы запустите sudo gedit, HOME продолжит указывать на ваш домашний каталог, даже если программа работает от имени пользователя root. Следовательно, gedit запишет файлы конфигурации от имени root в ваш домашний каталог. Это иногда приводит к тому, что файлы конфигурации принадлежат пользователю root и, следовательно, недоступны для вас (когда вы позже запустите программу от имени пользователя, а не от имени пользователя root).

  • Как запустить программу с графическим интерфейсом от имени другого пользователя (Debian)?

    Во-первых, не используйте sudo или su, чтобы изменить пользователей для запуска графического процесса, или у вас могут возникнуть проблемы в дальнейшем (~/.ICEauthority изменение владельца является заметной проблемой). Вместо этого создайте ярлык, который использует следующую команду:

  • Запуск Судо Графически

    Ну, если честно, в большинстве случаев это не так. Для многих приложений вы можете запускать их ненадлежащим образом - использовать sudo для графических приложений и не видеть никаких побочных эффектов.

    ...

    Эти ошибки возникают потому, что иногда, когда sudo запускает приложение, оно запускается с привилегиями root, но использует файл конфигурации пользователя.

    Этот почтовый архив также может быть вам интересен.

Итак, давайте проверим это.

2 совершенно новые виртуальные коробки. Убунту 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/) принадлежат root (.., .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 в приложении с графическим интерфейсом.

Финальный тест: запустите его с -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,

Другие вопросы по тегам