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

26

Является ли разница между 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» doen't действительно дают мне полную уверенность в том , что нет ничего больше к нему.


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


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

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

Peter.O
источник

Ответы:

16

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

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


источник
1
Я не знаю, что вы подразумеваете под graphicalвнешним интерфейсом ... Приложение GTK работает довольно счастливо, независимо от того, запускается ли оно с помощью sudo или gksu ... но оно запускает программу в другой среде ... (Я Я добавлю еще немного к моему вопросу, чтобы указать, почему я задал вопрос ...
Peter.O
2
Я наконец понял, что вы подразумеваете под graphical frontend. Я всегда использую терминал для запуска sudo / gksu ... но в духе грубой силы, пробуя все, что только мог придумать, я пытался бежать sudoи gksuчерез Alt + F2 ... Bingo! ... sudoисчез в пустоте, но gksuподошел к этому случаю и подарил мне (легендарное) graphical forntend... Это тот же диалог, что и в Synaptic Package Manager и т. д. ...
Peter.O
PS .. Я только что попробовал gksu в новом терминале .. Там тоже всплывает диалоговое окно пароля ... Я, наверное, видел его раньше, но связано с паролем (только), а не с тем фактом, что это был диалог GUI от Терминальная команда ... ("
Понятно
, В продолжение, подстегнутый вашим ответом, кажется, что он gksuизменяет папку XAUTHORITY, а sudoне ... Я не уверен, что это все, но это кажется значительным! ... Это решило мою дилемму ... (подробности в моем ответе ниже)
Peter.O
10

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

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

Кис Кук
источник
Спасибо KC .. Это начинает иметь смысл для меня (медленно, медленно) ... но кажется ясным, что gksu, создав копию XAUTHORITY и работая с (?) Ею, переводит gksu в совершенно отдельную форму категории любой из sudoвариантов, на которые я ссылался ... и понимая, что это Ага! момент для меня ... Результат: используйте gksu для приложений с графическим интерфейсом! ... но у меня остался еще один неразрешенный вопрос ... Относится ли gksu только к приложениям GTK , или вполне нормально использовать gksu при запуске приложения KDE GUI?
Peter.O
5

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

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

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

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

Peter.O
источник
3

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

karthick87
источник
Спасибо, мой вопрос, возможно, был так же неясен, как и мое первоначальное понимание вопроса ... Я прежде всего пытался выяснить, в чем заключалась конкретная разница, которая заставила обоих командовать ... Кажется, что главное отличие заключается в это gksuработает из временной копии XAUTHORITY .. Я не совсем понимаю, почему XAUTHORITY нужно обрабатывать специально, но это главное, что отличает его поведение отsudo
Peter.O