Разница между sudo и gksu такая же, как разница между sudo -i и sudo -s?

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

... или, другими словами,
Является ли sudo cmd таким же, как sudo -i cmd
и gksu cmd, как sudo -s cmd?

РЕДАКТИРОВАТЬ: На основании того, что я прочитал на странице документации 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» действительно не дают мне полная уверенность, что в этом нет ничего более.


(.. запоздалое ОБНОВЛЕНИЕ : сегодня я проверил его комментарий (2 месяца спустя) о:
«Это предотвращает файлы в вашем доме» каталог становится владельцем root. "
Все файлы, созданные мной с помощью sudo / gksu, принадлежали" root ", а группа была" root ".)


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

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

26
задан 03.11.2019, 02:47

4 ответа

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

0
ответ дан 03.11.2019, 02:47
  • 1
    Спасибо, мой вопрос, возможно, был столь же неясен, как и мое первоначальное понимание вопроса ... Я прежде всего пытался выяснить, в чем конкретно заключалась разница между двумя командирами. Кажется, что главное отличие заключается в способ, которым gksu работает из временной копии XAUTHORITY .. Я не понимаю деталей того, почему XAUTHORITY должен обрабатываться специально, но это главное, что отличает его поведение от sudo – SaP 03.11.2019, 02:48

gksu является в основном графическим интерфейсом для sudo, который позволяет выполнять графическую команду без необходимости запуска эмулятора X-терминала и непосредственного использования su. Это фактически просто GTK + скин для команд суперпользователя.

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

0
ответ дан 03.11.2019, 02:48
  • 1
    PS .. Я только что попробовал gksu в новом терминале .. Там тоже всплывает диалоговое окно с паролем ... Я, наверное, видел это раньше, но ассоциировался с паролем (только), а не с тем, что это был GUI диалоговое окно из команды терминала ... ("Я вижу". Сказал слепой :) ... Спасибо ... – Simon D 03.11.2019, 02:48
  • 2
    Я не знаю, что вы могли бы понимать под graphical внешним интерфейсом ... GTK-приложение работает довольно счастливо, независимо от того, запускается ли оно с помощью sudo или gksu ... но оно запускает программу в другой среде ... (Я добавлю еще немного к своему вопросу, чтобы указать, почему я задал вопрос ... – Michael Baldry 03.11.2019, 02:49
  • 3
    , В продолжение, подстегнутым вашим ответом, кажется, что gksu изменяет папку XAUTHORITY, а sudo нет ... Я не уверен, что это все, но это кажется значительным! ... Это имеет значение решил мою дилемму ... (подробности в моем ответе ниже) – krsoni 03.11.2019, 02:49
  • 4
    Я наконец понял, что вы подразумеваете под graphical frontend. Я всегда использую терминал для запуска sudo / gksu ... но в духе грубой силы, пробуя все, что только мог придумать, я пытался запустить sudo и gksu через Alt + F2 ... Bingo! .. sudo исчез в пустоте, но gksu подошел к случаю и подарил мне (легендарное) graphical forntend ... Это тот же диалог, который появляется для Synaptic Package Manager ] так далее... – Erik Pukinskis 03.11.2019, 02:50

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

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

0
ответ дан 03.11.2019, 02:48
  • 1
    Спасибо KC .. Это начинает иметь смысл для меня (медленно, медленно) ... но кажется очевидным, что gksu, создав копию XAUTHORITY и работая с (?) Ею, переводит gksu в совершенно отдельную форму категории любой из sudo вариантов, на которые я ссылался ... и осознавая, что для меня это был момент Ага! ... В результате: используйте gksu для приложений с графическим интерфейсом! ... но у меня остался еще один неразрешенный вопрос ... Относится ли gksu только к приложениям GTK , или - прекрасно ли использовать gksu при запуске KDE приложение с графическим интерфейсом? – Andrei 03.11.2019, 02:49

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

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

From user fred's terminal, launch gnome-terminal

su style   resulting            custom   (ls)   new file
command    prompt               prompt   home   ownership
---------  -------------------- -------  -----  ----------
sudo      .root@DT:~#           fred's   fred   root
gksu       root@DT:/home/fred#  root's   fred   root
sudo -i    root@DT:~#           root's   root   root
sudo -s   .root@DT:~#           fred's   fred   root

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

 This prevents files in your home directory becoming owned by root

ОБНОВЛЕНИЕ: переменные 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, о которой я говорил в этом вопросе ... и поэтому отвечает на мой первоначальный вопрос (каким-то еще неясным способом) ... и вопрос Криса Ответ, конечно, заставил меня задуматься над этим! ... мне нужен кофе !!

0
ответ дан 03.11.2019, 02:49

Теги

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