Ответы:
sudo
запрашивает пароль в командной строке и gksudo
открывает диалоговое окно для него.
sudo -E
эквивалентно gksudo
?
gksudo
является GTK на основе фронтенда sudo
(BTV, kdesudo
является Qt на основе интерфейса), однако он (по умолчанию) обрабатывает более экологический переменные ( HOME
, XAUTHORITY
и т.д.) , чем в sudo
результате чего запущенных команд , как корневая безопаснее.
Насколько я вижу, только ответ @Logics является правильным (@Ignacio Vazquez-Abrams не является полным). Вот попытка избежать разъяснения к @Davros @knitti answer / comments (пожалуйста, удалите / отредактируйте их, когда это не нужно):
sudo
, используемый интерфейс НЕ является единственным отличием этих двух команд. HOME
указывает переменная среды в sudo
команда в некоторых системах и ситуациях). Не все приложения с графическим интерфейсом пишут в ваш домашний каталог, а не все приложения с интерфейсом командной строки - нет , поэтому тип команды не является ключевым моментом. sudo
команду запуска GUI приложений в корневом каталоге (для просмотра вывода консольных приложений в качестве примера), однако вы должны ручки HOME
(и другие , такие как XAUTHORITY
, DISPLAY
, ввод-метод связанных-материала и т.д.) переменные окружения правильно так что запущенное приложение не выйдет из строя, не потеряет функциональность и не сделает ничего плохого. Ниже моя текущая рекомендация по использованиюsudo
sudo -H <rest of the command>
sudo
раздела 8 страницы руководства) -H ( HOME )
Опция требует, чтобы в политике безопасности была задана HOME
переменная среды для домашнего каталога целевого пользователя (по умолчанию root), как указано в базе данных паролей. В зависимости от политики это может быть поведение по умолчанию.sudo
домашнем каталоге вызывающегоsudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
sudo
команды не одинаково на всех системах и может быть настроено с помощью visudo
команды, пожалуйста, проверьте sudoers(5)
man-страницу для получения дополнительной информации.Использование обычного sudo для запуска графических программ в редких случаях может испортить права на некоторые файлы. Для безопасности gksudo (или kdesudo в зависимости от ситуации) следует использовать для запуска программ с графическим интерфейсом. Я думаю, что это действительно ошибка, хотя я слышал объяснения, что gksudo понимает переменные X-сервера и sudo, возможно, не приводит к проблемам. Просто как совет; если вы запускаете графические программы от имени пользователя root, вместо того, чтобы открывать по одному терминалу для каждой программы, которую вы хотите запустить, введите ALT-F2 (alt и функциональная клавиша 2 одновременно), а затем введите всплывающее диалоговое окно «gksudo» Программа "без кавычек и программа заменяется на приложение, которое вы хотите запустить.
sudo работает как текущий пользователь с повышенными привилегиями. Это может привести к изменению прав доступа к файлам определенных пользовательских конфигурационных файлов (связанных с вашей графической средой) при запуске графических приложений. Вы можете обнаружить ошибки, возникающие при повторном запуске этих приложений без sudo.
gksudo (kdesudo под KDE) запускает приложения от имени пользователя root, поэтому любые права доступа к файлам относятся к файлам root, а не к файлам пользователей. повторный запуск этих приложений без gksudo / kdesudo всегда будет иметь ожидаемое поведение.
Текущий ответ неверен. Согласно вики Ubuntu RootSudo :
«Вы никогда не должны использовать обычный sudo для запуска графических приложений от имени пользователя root. Вы должны использовать gksudo (kdesudo на Kubuntu) для запуска таких программ. Gksudo устанавливает HOME = ~ root и копирует .Xauthority в каталог tmp. Это предотвращает файлы в вашем доме. каталог становится владельцем root. (AFAICT, это все, что особенного в среде запущенного процесса с gksudo vs. sudo). "