Почему плохо запускать графические приложения как sudo? [dубликат]

@Lekensteyn - вот простое описание этих команд:

скачать и установить библиотеку libimobiledevice-utils из известных источников
sudo apt-get install libimobiledevice-utils
и после этого
;
отключить и установить iPhone [ f3]

Запуск команды с sudo потребует наличия прав доступа root, и вам будет предложено ввести пароль для пользователя root. Так что технически это может быть невозможно в корпоративной / заблокированной среде, где пользователи не имеют права доступа root.

94
задан 20 March 2016 в 14:38

8 ответов

Графические приложения часто хранят настройки и другие пользовательские данные в файлах конфигурации, написанных внутри домашней папки пользователя. Приложения основного механизма используют для определения того, что они должны использовать, поскольку домашняя папка пользователя является переменной среды HOME. (Вы можете проверить его самостоятельно с помощью echo $HOME).

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

Это основная причина, почему вы должны запускать графические приложения с графическим sudo, а не с прямым sudo. В Ubuntu и большинстве его производных (включая Xubuntu и Lubuntu) стандартным графическим интерфейсом является root . В Kubuntu это kdesudo. (Это зависит от используемого вами .)

Если вы используете ваш , чтобы использовать sudo для запуска графического приложения, например gedit ], вы можете запустить:

sudo -H gedit

Флаг -H делает sudo установленным HOME для указания на домашнюю папку root [который является kdesudo ).

Это все еще не будет автоматически обрабатывать права собственности на .Xauthority, скопировав его в папку temp (это другая вещь, о которой заботятся графические интерфейсы sudo). Но в редком случае, когда .Xauthority недоступен, вы получите сообщение об ошибке, а затем устраните проблему, удалив ее (sudo rm ~/.Xauthority), поскольку она автоматически восстанавливается. Таким образом, защита прав и прав .Xauthority менее важна, чем защита прав собственности и разрешений файлов конфигурации.

В отличие от root -удаленного .Xauthority, когда файлы конфигурации становятся собственными как root, не всегда так очевидно, что проблема (потому что графические программы часто запускаются, но не работают очень хорошо, и выводят любые полезные ошибки в консоль). И иногда бывает больно хлопотать, особенно если вы находитесь в ситуации, когда хотите, чтобы один или несколько файлов в вашем домашнем каталоге принадлежали кому-то, кроме вас (потому что тогда вы не можете исправить это просто рекурсивно chown ing все ваши файлы обратно к себе).

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

105
ответ дан 18 July 2018 в 03:26

Графические приложения часто хранят настройки и другие пользовательские данные в файлах конфигурации, написанных внутри домашней папки пользователя. Приложения основного механизма используют для определения того, что они должны использовать, поскольку домашняя папка пользователя является переменной среды HOME. (Вы можете проверить его самостоятельно с помощью echo $HOME).

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

Это основная причина, почему вы должны запускать графические приложения с графическим sudo, а не с прямым sudo. В Ubuntu и большинстве его производных (включая Xubuntu и Lubuntu) стандартным графическим интерфейсом является root . В Kubuntu это kdesudo. (Это зависит от используемого вами .)

Если вы используете ваш , чтобы использовать sudo для запуска графического приложения, например gedit ], вы можете запустить:

sudo -H gedit

Флаг -H делает sudo установленным HOME для указания на домашнюю папку root [который является kdesudo ).

Это все еще не будет автоматически обрабатывать права собственности на .Xauthority, скопировав его в папку temp (это другая вещь, о которой заботятся графические интерфейсы sudo). Но в редком случае, когда .Xauthority недоступен, вы получите сообщение об ошибке, а затем устраните проблему, удалив ее (sudo rm ~/.Xauthority), поскольку она автоматически восстанавливается. Таким образом, защита прав и прав .Xauthority менее важна, чем защита прав собственности и разрешений файлов конфигурации.

В отличие от root -удаленного .Xauthority, когда файлы конфигурации становятся собственными как root, не всегда так очевидно, что проблема (потому что графические программы часто запускаются, но не работают очень хорошо, и выводят любые полезные ошибки в консоль). И иногда бывает больно хлопотать, особенно если вы находитесь в ситуации, когда хотите, чтобы один или несколько файлов в вашем домашнем каталоге принадлежали кому-то, кроме вас (потому что тогда вы не можете исправить это просто рекурсивно chown ing все ваши файлы обратно к себе).

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

105
ответ дан 24 July 2018 в 17:50

Графические приложения часто хранят настройки и другие пользовательские данные в файлах конфигурации, написанных внутри домашней папки пользователя . Основные приложения, используемые механизмом для определения того, что они должны использовать, поскольку домашняя папка пользователя является переменной среды HOME . (Вы можете проверить его самостоятельно с помощью echo $HOME).

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

Это основная причина, по которой вы должны запускать графические приложения с графическим sudo, а не с прямым sudo. В Ubuntu и большинстве его производных (включая Xubuntu и Lubuntu) стандартным графическим интерфейсом является gksu / gksudo . В Kubuntu это kdesudo . (Это зависит от среды рабочего стола .)

Если вы хотите использовать sudo для запуска графического приложения, например gedit , вы можете запустить:

sudo -H gedit

Флаг -H делает sudo установленным HOME для указания на домашнюю папку root (которая является /root ).

Это все еще не будет автоматически обрабатывать право собственности на .Xauthority , скопировав его в папку temp (это другая вещь, которую используют графические интерфейсы sudo заботиться о вас). Но в редком случае, когда .Xauthority недоступен, вы получите сообщение об ошибке, а затем устраните проблему, удалив ее (sudo rm ~/.Xauthority), поскольку она автоматически восстанавливается. Таким образом, защита прав и прав .Xauthority менее важна, чем защита прав собственности и разрешений конфигурационных файлов.

В отличие от root -удаленного .Xauthority, когда файлы конфигурации становятся собственными как root, не всегда так очевидно, что проблема (потому что графические программы часто запускаются, но не работают очень хорошо, и выводят любые полезные ошибки в консоль). Иногда бывает сложно решить проблему, особенно , если вы хотите, чтобы один или несколько файлов в вашем домашнем каталоге принадлежали кому-то, кроме вас (потому что тогда вы не можете это исправить

Поэтому sudo (по крайней мере без -H) не следует использовать для запуска графического приложения , если только

g18] вы хорошо знакомы с внутренней работой приложения и знаете наверняка, что он никогда не пытается писать какие-либо файлы конфигурации.

105
ответ дан 14 August 2018 в 18:46

Проще говоря:

Это предотвращает доступ к файлам в вашем домашнем каталоге root.

Читайте здесь. Кроме того, возможно, дубликат «Какая разница между« gksudo nautilus », и "sudo nautilus"?

23
ответ дан 18 July 2018 в 03:26

Альтернативой gksu nautilus и gksu gedit является использование надстройки nautilus-admin. Он позволяет просматривать файлы и каталоги с помощью Nautilus, а затем открывать их как root (Administrator).

Установка выполняется прямо:

sudo apt install nautilus-admin

Теперь, когда вы находитесь в наутилусе, у вас есть дополнительная опция Редактировать как администратор:

gedit как root не разрешает настройки

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

Чтобы решить это я написал сценарий sgedit, чтобы наследовать пользовательские настройки и применять их к root:

Вызов с помощью sgedit filename1 filename2 ... Получает настройки gedit пользователя для табуляторов, шрифтов, строк -wrap и т. д. Повышает до sudo -H, чтобы сохранить владение файлами, получая полномочия root. Запросит пароль, если последний sudo отключен. Получает настройки gedit sudo Сравнивает различия между настройками пользователя и sudo gedit Запускает настройки gsettings только на основе различий (уменьшает 174 команды набора до десятка или меньше. В следующий раз она запускается, возможно, только с одним или двумя изменениями, но часто не изменяется. Вызовы gedit в качестве фоновой задачи, так что подсказка терминала сразу появляется.
0
ответ дан 18 July 2018 в 03:26

Проще говоря:

Это предотвращает доступ к файлам в вашем домашнем каталоге root.

Читайте здесь. Кроме того, возможно, дубликат «Какая разница между« gksudo nautilus », и "sudo nautilus"?

23
ответ дан 24 July 2018 в 17:50

Альтернативой gksu nautilus и gksu gedit является использование надстройки nautilus-admin. Он позволяет просматривать файлы и каталоги с помощью Nautilus, а затем открывать их как root (Administrator).

Установка выполняется прямо:

sudo apt install nautilus-admin

Теперь, когда вы находитесь в наутилусе, у вас есть дополнительная опция Редактировать как администратор:

gedit как root не разрешает настройки

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

Чтобы решить это я написал сценарий sgedit, чтобы наследовать пользовательские настройки и применять их к root:

Вызов с помощью sgedit filename1 filename2 ... Получает настройки gedit пользователя для табуляторов, шрифтов, строк -wrap и т. д. Повышает до sudo -H, чтобы сохранить владение файлами, получая полномочия root. Запросит пароль, если последний sudo отключен. Получает настройки gedit sudo Сравнивает различия между настройками пользователя и sudo gedit Запускает настройки gsettings только на основе различий (уменьшает 174 команды набора до десятка или меньше. В следующий раз она запускается, возможно, только с одним или двумя изменениями, но часто не изменяется. Вызовы gedit в качестве фоновой задачи, так что подсказка терминала сразу появляется.
0
ответ дан 24 July 2018 в 17:50

Проще говоря:

Это предотвращает доступ к файлам в вашем домашнем каталоге root.

Прочитайте здесь . Кроме того, возможно, дубликат В чем разница между «gksudo nautilus»? и "sudo nautilus"?

23
ответ дан 2 August 2018 в 13:58

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

Похожие вопросы: