судо проти гксудо. різниця?


37

Яка різниця між sudoі gksudo?


1
Гарне питання. Зараз я вивчаю Linux (Ви можете бачити, що я ще не знайшов розкладку клавіатури) Ха-ха!
r0ca

Відповіді:


27

sudoзапитує пароль у командному рядку та gksudoспливає діалогове вікно для нього.


6
gksu (do) також має власну конфігурацію того, які змінні середовища потрібно передати дитині, окремо від власних su (do). Наприклад, якщо ваш sudoers config вказує! Keep_env, відсутність $ DISPLAY може не допустити запуску графічних програм, але gksudo має працювати. Деякі відомості ви можете знайти на сайті git.debian.org/?p=users/kov/gksu-polkit.git;a=blob;f=common/… або live.gnome.org/gksu .
ефемія

@ephemient Отже, крім графічного підказки, sudo -Eеквівалентно gksudo?
ізоморфізми

3
відповідь нижче здається значно кращою superuser.com/a/726249/112542
johny чому

4
Хочу підкреслити, що це зовсім не вирішальна різниця, і ця відповідь є досить оманливою для новачків. Тут пояснюється основна відмінність: askubuntu.com/a/11766/81034, і відповідь нижче (з якою посилається @johnywhy) йде на крок за рамками, щоб додати до цього певного нюансу. Будь ласка, прочитайте питання askubuntu, а не покладаючись на цю оманливу відповідь.
sundar

31

gksudoє GTK на основі фронтенда sudo(BTV, kdesudoє Qt на основі інтерфейсу), однак він (за замовчуванням) обробляє понад екологічний змінні ( HOME, XAUTHORITYі т.д.) , ніж в sudoрезультаті чого запущених команд , як коренева безпечніше.


Наскільки я бачу, лише відповідь @Logics є правильною (@Ignacio Vazquez-Abrams не є повною). Ось спробу уникати роз'яснень до відповіді / коментарів @Davros @knitti (Будь ласка, видаліть / відредагуйте їх, коли це не потрібно):

  1. Хоча обидві команди справді представляють sudo, використовуваний інтерфейс НЕ є єдиною різницею двох команд.
  2. Запуск програми GUI НЕ єдина ситуація, коли ви повинні використовувати gk / kdesudo, замість цього ви повинні використовувати gk / kdesudo, коли ви не можете визначити, чи буде команда створювати / записувати файли у ваш домашній каталог (на що HOMEзмінна середовища вказує у sudoкомандування в якійсь системі та ситуаціях). Не всі програми GUI записують у ваш домашній каталог, а не всі програми CLI - ні , тому тип команди не є ключовим моментом.
  3. Ви все ще можете використовувати sudoкоманду запуску GUI додатків в кореневому каталозі (для перегляду виведення консольних додатків в якості прикладу), однак ви повинні ручки HOME(і інші , такі як XAUTHORITY, DISPLAY, введення-метод пов'язаних-матеріалу і т.д.) змінні оточення правильно так що запущена програма не вийде з ладу, втратить функціональність або зробить дійсно погані речі. Далі - моя сьогоднішня рекомендація щодо використанняsudo
    • sudo -H <rest of the command>
      • (з сторінки sudoрозділу 8 вручну) -H ( HOME )Опція вимагає, щоб політика безпеки встановила HOMEзмінну середовища в домашній каталог цільового користувача (root за замовчуванням), як зазначено в базі даних паролів. Залежно від політики, це може бути поведінка за замовчуванням.
      • Це має принаймні запобігати створенню файлів у sudoдомашній довідці абонента
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • Це має дозволити <GUI-програму> виконуватись у терміналі TTY та відображатись у вашому робочому середовищі
  4. Поведінка sudoкоманди не однакова у всіх системах і її можна налаштувати за допомогою visudoкоманди, будь ласка, перегляньте сторінку сторінки sudoers(5)для отримання додаткової інформації.

2
здається набагато кращим поясненням, ніж те, що отримує всі голоси. більш ретельний, правильніший. навіть ОП відповіла "це все?" на відповідь, яка отримала всі голоси.
Джоні, чому

2

Використання звичайних судо для запуску графічних програм рідко пошкодить дозволи на деякі файли. Для безпечного використання gksudo (або kdesudo у відповідних випадках) слід використовувати для запуску програм з графічним інтерфейсом. Я думаю, що це справді помилка, хоча я чув пояснення, що gksudo розуміє змінні сервери X, а sudo, можливо, не призводить до проблем. Так само, як підказка; якщо ви запускаєте графічні програми як корінь, замість того, щоб відкривати один термінал для кожної програми, яку потрібно запустити, введіть ALT-F2 (одночасно alt та функціональну клавішу), а потім введіть діалогове вікно, яке з'явиться "gksudo програма "без лапок та програми, заміненої програмою, яку потрібно запустити.


2

sudo працює як поточний користувач із підвищеними привілеями. Це може змінити права доступу до певних файлів конфігурації користувача (що стосуються вашого графічного середовища) під час роботи графічних програм. Ви можете виявити помилки при повторному запуску цих додатків без sudo.

gksudo (kdesudo під KDE) запускає програми як користувач root, тому будь-які дозволені файли стосуються файлів root, а не файлів користувачів. запуск цих програм знову без gksudo / kdesudo завжди матиме очікувану поведінку.


0

Поточна відповідь невірна. Відповідно до вікі Ubuntu RootSudo :

"Ніколи не слід використовувати звичайний sudo для запуску графічних додатків як root. Для запуску таких програм слід використовувати gksudo (kdesudo на Kubuntu). Gksudo встановлює HOME = ~ root та копіює .Xauthority у каталог tmp. Це запобігає файлам у вашому домі. каталог стає власністю root. (AFAICT, це все, що особливо стосується середовища розпочатого процесу з gksudo vs. sudo). "


2
Є ще чотири відповіді; яка з них неправильна? Хіба ваша відповідь по суті не така, як відповідь Давроса?
fixer1234

Я мав на увазі відповідь, позначену як правильну. Так, Даврос говорить те саме, але я додав це, оскільки його не містило посилання на джерело.
eugene1832

1
Кращим рішенням буде запропонувати редагування цієї відповіді. Поліпшення відповіді, ймовірно, буде прийнято (+2 повторення), тоді як, по суті, дублювання відповіді, ймовірно, приверне зворотні голоси.
fixer1234
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.