Является ли разница между sudo и gksu такой же, как разница между sudo -i и sudo-s?

Разница между sudo cmd и gksu cmd, такая же, как разница между запуском оболочки с sudo -i и sudo -s?

... или иначе, Является ли sudo cmd таким же, как sudo -i cmd и gksu cmd так же, как sudo -s cmd?

EDIT: Основываясь на том, что я читал на странице документации Ubuntu, где говорится:

You should never use normal sudo to start graphical applications as root. You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets HOME=~root, and copies .Xauthority to a tmp directory. This prevents files in your home directory becoming owned by root. (AFAICT, this is all that's special about the environment of the started process with gksudo vs. sudo).

«AFAICT» действительно не дает мне полной уверенности, что в этом нет ничего более.

(.. запоздалый «AFAICT» : Я проверил свое сегодняшнее сообщение (2 месяца спустя) о: " Это предотвращает доступ к файлам в вашем домашнем каталоге root. «Все файлы, созданные мной через sudo / gksu, принадлежали« root », а группа была« root ».)

Я читал части info sudo и заметил, что корень -i и -s выполняет то же самое, что и проблема среды AFAICT ... но я попал в перегрузку .. поэтому я задал свой вопрос здесь.

PS .. Мой вопрос не о AFAICT vs root .. Это больше о: gksu так же, как sudo -s .. и если нет, то как они отличаются?

26
задан 6 January 2011 в 13:13

36 ответов

На самом деле это не ответ, но это может быть интересно ... Я начинаю понимать, что происходит с этими командами su, но я еще не совсем там ... I используйте gksu ... Это скорее путешествие понимания для меня ... и я не понимаю, если gksu справедливо для konsole или kate , или я должен использовать вариант KDE kdesu ..

Вот некоторые результаты некоторых тестов, которые я только что пробовал.

  От терминала пользователя fred, запускает gnome-terminal su, в результате чего пользовательский (ls) новый файл командной строки приглашает домой владение --------- --------  ------------ ------- ----- ---------- sudo .root @ DT: ~ # fred fred root gksu root @ DT:  / home / fred # root's fred root sudo -i root @ DT: ~ # root root root sudo -s .root @ DT: ~ # fred fred root  

Эти результаты не согласуются с страницей документации Ubuntu , где говорится:

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

UPDATE : Переменные XAUTHORITY env для вызываемых sudo и gksu терминалов различны (как указано на странице документации Ubuntu ) ..

  sudo  #### XAUTHORITY = / var / run / gdm / auth-for-fred-RsngLK / database sudo -i #### XAUTHORITY = / var / run / gdm / auth-for-fred-RsngLK / database sudo -s  #### XAUTHORITY = / var / run / gdm / auth-for-fred-RsngLK / database gksu #### XAUTHORITY = / tmp / libgksu-xR2OGn / .Xauthority  

Это показывает, что gksu определенно не совпадает с командой sudo -s , о которой я упоминал в вопросе ... и, следовательно, отвечает на мой отлогический вопрос (каким-то еще неясным образом) ... и ответ Криса, конечно, заставил меня задуматься над этим! ... Мне нужен кофе !!

5
ответ дан 10 August 2018 в 10:38

sudo для приложений командной строки, gksu / gksudo для графических

3
ответ дан 10 August 2018 в 10:38

sudo -i сбрасывает среду входа для целевого пользователя ( root , в этом случае). В основном, изменяется переменная среды HOME , что означает загрузку ~ / .bashrc целевого пользователя.

gksu [ ! d3], следовательно, подобно sudo -i , в котором находятся ключи $ HOME для пользователя root .

10
ответ дан 10 August 2018 в 10:38

sudo для приложений командной строки, gksu / gksudo для графических

3
ответ дан 13 August 2018 в 17:10
  • 1
    Спасибо, мой вопрос, возможно, был так же неясен, как и мое первоначальное понимание проблемы ... Я в первую очередь пытался выяснить, какова была конкретная разница, из-за чего было необходимо иметь обоих командующих. Похоже, что основное различие заключается в путь, который gksu работает из временной копии XAUTHORITY. Я не совсем понимаю, почему XAUTHORITY нужно обрабатывать специально, но это важная вещь, которая отличает ее поведение от sudo – Peter.O 7 November 2010 в 10:42

sudo -i сбрасывает среду входа для целевого пользователя ( root , в этом случае). В основном, изменяется переменная среды HOME , что означает загрузку ~ / .bashrc целевого пользователя.

gksu [ ! d3], следовательно, подобно sudo -i , в котором находятся ключи $ HOME для пользователя root .

10
ответ дан 13 August 2018 в 17:10
  • 1
    Спасибо KC .. Это начинает иметь смысл для меня (медленно, медленно) ... но кажется ясным, что gksu, создав копию XAUTHORITY и работая из (?), Ставит gksu в категорию совершенно отдельной формы любой из вариантов sudo , о которых я говорил ... и осознание этого было для меня Aha! моментом ... Результат: использовать gksu для GUI Программы! .. но я остался с еще одним неразрешенным quandry ... Использует ли gksu только к приложениям GTK , или , это прекрасно подходит для использования gksu при запуске приложения KDE GUI? – Peter.O 7 November 2010 в 10:53

На самом деле это не ответ, но это может быть интересно ... Я начинаю понимать, что происходит с этими командами su, но я еще не совсем там ... I используйте gksu ... Это скорее путешествие понимания для меня ... и я не понимаю, если gksu справедливо для konsole или kate , или я должен использовать вариант KDE kdesu ..

Вот некоторые результаты некоторых тестов, которые я только что пробовал.

  От терминала пользователя fred, запускает gnome-terminal su, в результате чего пользовательский (ls) новый файл командной строки приглашает домой владение --------- --------  ------------ ------- ----- ---------- sudo .root @ DT: ~ # fred fred root gksu root @ DT:  / home / fred # root's fred root sudo -i root @ DT: ~ # root root root sudo -s .root @ DT: ~ # fred fred root  

Эти результаты не согласуются с страницей документации Ubuntu , где говорится:

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

UPDATE : Переменные XAUTHORITY env для вызываемых sudo и gksu терминалов различны (как указано на странице документации Ubuntu ) ..

  sudo  #### XAUTHORITY = / var / run / gdm / auth-for-fred-RsngLK / database sudo -i #### XAUTHORITY = / var / run / gdm / auth-for-fred-RsngLK / database sudo -s  #### XAUTHORITY = / var / run / gdm / auth-for-fred-RsngLK / database gksu #### XAUTHORITY = / tmp / libgksu-xR2OGn / .Xauthority  

Это показывает, что gksu определенно не совпадает с командой sudo -s , о которой я упоминал в вопросе ... и, следовательно, отвечает на мой отлогический вопрос (каким-то еще неясным образом) ... и ответ Криса, конечно, заставил меня задуматься над этим! ... Мне нужен кофе !!

5
ответ дан 13 August 2018 в 17:10

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

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