Вы никогда не должны использовать normal sudoдля запуска графических приложений от имени пользователя root. Вы должны использовать gksudo( kdesudoна Kubuntu) для запуска таких программ.
gksudoустанавливает HOME=/rootи копирует .Xauthorityв tmpкаталог. Это предотвращает принадлежность файлов в вашем домашнем каталоге пользователю root.
Обратите внимание, что это в первую очередь о файлах конфигурации . Если вы запустите Nautilus как root, даже с gksu/ gksudo, и создадите файл или папку где угодно с ним (в том числе в своем домашнем каталоге), этот файл или папка будет принадлежать root. Но если вы запустите Nautilus (или большинство других графических приложений) , как rootс sudo, они могут сохранить свои конфигурационные файлы в вашем домашнем каталоге (а не rootдомашний каталог). Эти файлы конфигурации могут принадлежать rootи недоступны, когда вы не работаете от имени пользователя root, что может серьезно испортить ваши настройки и даже может помешать работе некоторых приложений в целом.
Решение, после того как вы сделали эту ошибку, состоит в том, чтобы найти файлы конфигурации и удалить их или chownих обратно в собственность вашего не rootпользователя. Многие такие файлы начинаются с .или содержатся в каталоге, который начинается с .. Некоторые из них находятся внутри .configпапки в вашем домашнем каталоге. Чтобы просмотреть файлы и папки, начинающиеся с .буквы « а» в Nautilus, нажмите Ctrl+ H(это показывает скрытые файлы .) Чтобы просмотреть их с lsпомощью флага -a(или -A).
Чтобы выяснить, есть ли в вашем домашнем каталоге файлы, не принадлежащие вам, вы можете использовать следующую команду в терминале:
find $HOME -not -user $USER -exec ls -lad {} \;
в котором будут перечислены все файлы в домашнем каталоге, которые не принадлежат пользователю.
Я уже использовал «sudo nautilus». Это означает, что мой домашний каталог теперь принадлежит пользователю root? (PS: мой английский не идеален)
DrKenobi
22
Нет, это означает, что во время работы Nautilus от имени root все файлы, созданные в домашнем каталоге, будут принадлежать пользователю root. Это может включать эскизы и другие вспомогательные файлы, которые Nautilus создает автоматически.
Райан Томпсон
1
, Цитируемый segemnet, который вы использовали, озадачил меня с тех пор, как я впервые прочитал его; в частности там, где говорится: «Это предотвращает принадлежность файлов в вашем домашнем каталоге пользователю root». .. Я проверил это сегодня, создав несколько тестовых файлов 10.04, 10.04 (ВМ), 10.10 (ВМ) и независимо от того, как я запустил sudo / gksudo (Терминал-> Наутилус, Терминал-> Гедит, Alt + F2 .. . ... ... во всех случаях мой недавно созданный владел "root" с группой "root" .. Может быть, я что-то упустил, но я думаю, что часть цитируемого сегмента вводит людей в заблуждение ...
Питер. О
Хм, я просто цитировал вики-страницу. У меня нет глубокого понимания разницы между этими двумя инструментами. Возможно, кто-то на unix.stakexchange.com может помочь?
2
@ Peter.O Я расширил этот ответ, чтобы ответить на этот вопрос и объяснить, с какими файлами по-разному обращаются sudo, через gksu/ gksudo. (@ChrisWilson Не стесняйтесь откатить или откорректировать это редактирование, если вы чувствуете, что оно не полностью входит в рамки вашего ответа ... мне кажется, что это так, но это полностью ваш призыв.)
Элия Каган
9
Знаете ли вы, что есть дополнение Nautilus под названием nautilus-gksu, которое добавляет «открыть как администратор» в меню правой кнопки мыши nautilus?
Примечание. Недоступно в Ubuntu 12.04 и более поздних версиях.
nautilus-gksuбольше не доступен в Ubuntu 12.04 и выше.
IQAndreas
А ваша ссылка показывает только то, что она доступна до 11.10 ...
Уилф
5
Если вы запустите графическое приложение с помощью sudo, вы можете испортить владение вашими файлами, что может привести к поломке ваших приложений. Никогда не делай этого. Проверьте Справку Сообщества :
Вы никогда не должны использовать обычный sudo для запуска графических приложений от имени Root . Вы должны использовать gksudo (kdesudo на Kubuntu) для запуска таких программ. gksudo устанавливает HOME = ~ root и копирует .Xauthority в каталог tmp. Это предотвращает принадлежность файлов в вашем домашнем каталоге Root. (AFAICT, это все, что особенного в среде запущенного процесса с gksudo vs. sudo).
По умолчанию sudo сохраняет вашу переменную $ HOME. Например, если вы запустите, sudo firefoxвы будете работать с привилегиями root, но с вашей конфигурацией. Если вы измените настройки в этой ситуации, вы получите части своей конфигурации, принадлежащие пользователю root, а не свой идентификатор пользователя.
В Ubuntu (17.10) 17.10.1 и, вероятно, будущие версии Ubuntu gksuи gksudoустарели. Они работают в Xorg, но не в Wayland. Но вы можете использовать sudo -Hдля запуска прикладных программ с графическим интерфейсом без ущерба для ваших файлов конфигурации. Как не использовать обычный sudo.
Если вы используете Wayland (новую графическую систему, заменяющую Xorg), вам также нужна команда с xhost.
xhost +si:localuser:root # if Wayland
sudo -H nautilus --no-desktop
Смотрите следующую ссылку для более подробной информации,
Найдено в файле, сгенерированном командой терминала 'info gksudo':
gksu - это интерфейс su, а gksudo - интерфейс sudo. Их основная цель - запуск графических команд, которым требуется root, без необходимости запуска эмулятора X-терминала и непосредственного использования su.
Я обнаружил, что во многих случаях файлы 'info' содержат полезные описания, а также полезную информацию о параметрах. Я настоятельно рекомендую, чтобы изучение любой команды началось с доступа к файлу 'info' этой команды.
Для новичка в терминале введите или вставьте информацию о команде с именем команды, в которой вы заинтересованы в качестве параметра. Формат такой info [command_name](не забудьте включить командную строку или скобки). Предлагаемые терминальные записи для начинающих:
Ответы:
Взято отсюда :
Обратите внимание, что это в первую очередь о файлах конфигурации . Если вы запустите Nautilus как
root
, даже сgksu
/gksudo
, и создадите файл или папку где угодно с ним (в том числе в своем домашнем каталоге), этот файл или папка будет принадлежатьroot
. Но если вы запустите Nautilus (или большинство других графических приложений) , какroot
сsudo
, они могут сохранить свои конфигурационные файлы в вашем домашнем каталоге (а неroot
домашний каталог). Эти файлы конфигурации могут принадлежатьroot
и недоступны, когда вы не работаете от имени пользователя root, что может серьезно испортить ваши настройки и даже может помешать работе некоторых приложений в целом.Решение, после того как вы сделали эту ошибку, состоит в том, чтобы найти файлы конфигурации и удалить их или
chown
их обратно в собственность вашего неroot
пользователя. Многие такие файлы начинаются с.
или содержатся в каталоге, который начинается с.
. Некоторые из них находятся внутри.config
папки в вашем домашнем каталоге. Чтобы просмотреть файлы и папки, начинающиеся с.
буквы « а» в Nautilus, нажмите Ctrl+ H(это показывает скрытые файлы .) Чтобы просмотреть их сls
помощью флага-a
(или-A
).Чтобы выяснить, есть ли в вашем домашнем каталоге файлы, не принадлежащие вам, вы можете использовать следующую команду в терминале:
в котором будут перечислены все файлы в домашнем каталоге, которые не принадлежат пользователю.
источник
sudo
, черезgksu
/gksudo
. (@ChrisWilson Не стесняйтесь откатить или откорректировать это редактирование, если вы чувствуете, что оно не полностью входит в рамки вашего ответа ... мне кажется, что это так, но это полностью ваш призыв.)Знаете ли вы, что есть дополнение Nautilus под названием nautilus-gksu, которое добавляет «открыть как администратор» в меню правой кнопки мыши nautilus?
Примечание. Недоступно в Ubuntu 12.04 и более поздних версиях.
источник
nautilus-gksu
больше не доступен в Ubuntu 12.04 и выше.Если вы запустите графическое приложение с помощью sudo, вы можете испортить владение вашими файлами, что может привести к поломке ваших приложений. Никогда не делай этого. Проверьте Справку Сообщества :
источник
По умолчанию sudo сохраняет вашу переменную $ HOME. Например, если вы запустите,
sudo firefox
вы будете работать с привилегиями root, но с вашей конфигурацией. Если вы измените настройки в этой ситуации, вы получите части своей конфигурации, принадлежащие пользователю root, а не свой идентификатор пользователя.источник
sudo -H GUI-application-program
В Ubuntu (17.10) 17.10.1 и, вероятно, будущие версии Ubuntu
gksu
иgksudo
устарели. Они работают в Xorg, но не в Wayland. Но вы можете использоватьsudo -H
для запуска прикладных программ с графическим интерфейсом без ущерба для ваших файлов конфигурации. Как не использовать обычныйsudo
.Если вы используете Wayland (новую графическую систему, заменяющую Xorg), вам также нужна команда с
xhost
.Смотрите следующую ссылку для более подробной информации,
Почему gksu / gksudo или запуск графического приложения с sudo не работают с Wayland?
источник
Найдено в файле, сгенерированном командой терминала 'info gksudo':
Я обнаружил, что во многих случаях файлы 'info' содержат полезные описания, а также полезную информацию о параметрах. Я настоятельно рекомендую, чтобы изучение любой команды началось с доступа к файлу 'info' этой команды.
Для новичка в терминале введите или вставьте информацию о команде с именем команды, в которой вы заинтересованы в качестве параметра. Формат такой
info [command_name]
(не забудьте включить командную строку или скобки). Предлагаемые терминальные записи для начинающих:источник
Если вы выбираете gksudo nautilus, вы спрашиваете свой пароль графически. С sudo вы спрашиваете это в терминале
источник