Чи різниця між судо і гксу однакова, як різниця між судо -і і судо -с?


26

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


(..а запізнілий ОНОВЛЕННЯ . Я сьогодні перевірив його заступництво (2 місяці пізніше) про:
"Це запобігає потраплянню файлів у вашому домашньому каталозі під корінь".
Усі файли, створені за допомогою sudo / gksu, належали " root ", і група була " корінь ".)


Я прочитав частини info sudoта помітив, -iі, -s здається, робив те саме, що і з проблемою оточення AFAICT ...
але я зазнав перевантаження .. тому я задав тут своє запитання.

PS .. Моє запитання не стосується sudo vs gksu
.. Це більше про те, чи gksu таке ж, як sudo -s
.. і якщо ні, як вони відрізняються?

Відповіді:


16

gksuце в основному графічний інтерфейс для sudo, який дозволяє запускати графічну команду без необхідності запускати емулятор термінала X та безпосередньо використовувати su. Це фактично просто GTK + шкіра для команд суперпользователя.

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


1
Я не знаю, що ви могли означати під graphicalфронтендом ... додаток GTK працює досить щасливо незалежно від того, запускається він через sudo чи gksu ... але він запускає прогаму в іншому середовищі ... (Я ' Додамо ще трохи до свого запитання, щоб зазначити, чому я поставив це питання ...
Peter.O

2
Я нарешті зрозумів, що ви маєте на увазі під собою graphical frontend. Я завжди використовую термінал для запуску sudo / gksu ... але в дусі грубої сили, пробуючи все, що я міг придумати, я спробував бігати sudoі gksuчерез Alt + F2 ... Бінго! .. 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до кореневого користувача.


Спасибі KC .. Починає мати сенс для мене (повільно, повільно) ... але здається зрозумілим, що gksu, створюючи копію XAUTHORITY і працюючи з (?) На неї, ставить gksu у категорію досить окремої форми будь-який з sudoваріантів, про які я згадував ... і розуміючи це, був Аха! момент для мене ... Підсумок: Використовуйте gksu для GUI-програм! .. але у мене залишається ще одна невирішена суть ... Чи застосовується gksu лише до додатків GTK , або цілком чудово використовувати gksu під час запуску програми графічного інтерфейсу KDE ?
Пітер.O

5

Це насправді не відповідь, але це може викликати певний інтерес ...
Я починаю розуміти, що відбувається з цими командами su,
але я ще не зовсім там ... Я використовую gksu. .. це більше подорож розуміння для мене ... і я wan't зрозуміти , якщо 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команда, про яку я згадував у питанні ... і тому відповідає моєму негативному питанню (якимось ще незрозумілим способом) ... і відповідь Кріса, безумовно, змусила мене задуматися над цим! ... мені потрібна кава !!


3

sudo призначений для програм командного рядка, gksu / gksudo - для графічних


Дякую, моє запитання могло бути таким же неясним, як моє первісне розуміння проблеми ... Я перш за все намагався з'ясувати, у чому полягає конкретна відмінність, що обумовило необхідність обох команд. спосіб, який gksuпрацює з тимчасової копії XAUTHORITY .. Мені не ясно в деталях, чому XAUTHORITY потрібно обробляти спеціально, але це головне, що відрізняє її поведінку відsudo
Peter.O
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.