Как получить GUI sudo, пароль запрашивают без командной строки?

В настоящее время, для всех моих команд, которые требуют корневого доступа, я должен вывести их на командной строке.

Я хотел бы за GUI предложить мне вводить свой пароль, когда sudo требуется, вместо того, чтобы иметь необходимость вывести команды из командной строки.

Там какой-либо путь состоит в том, чтобы включить это? Ранее одна версия рабочего стола Ubuntu имела эту функцию из поля.

Эта версия Ubuntu (что я теперь работаю) я обновил от установки сервера.

Я добавлю, моя учетная запись пользователя уже добавляется к sudo группе. Таким образом я могу выполнить команды такой как sudo gedit или sudo apt-get но я не могу установить программное обеспечение в Центре программного обеспечения Ubuntu.

8
задан 24 June 2016 в 00:29

2 ответа

Удобный способ состоит в том, чтобы создать специализированное .desktop файл или добавить Ваши команды к существующей, спросив Ваш пароль через GUI (gksu). В примере ниже, я добавляю команду для выполнения Gedit и Software Center с sudo полномочиями к средству запуска Gedit. Вы должны будете иметь gksu установленный для использования этой установки: sudo apt-get install gksu

  1. Копия Gedit .desktop file in/usr/share/applications / to ~/.local/share/applications':

    cp /usr/share/applications/gedit.desktop ~/.local/share/applications/gedit.desktop
    

    и открытый это для редактирования (перетаскивают его на открытое gedit окно)

  2. Ищет строку: Actions=Window; Документ;

  3. Добавляют названия Ваших команд к строке (это не имена, которые Вы будете видеть в своем интерфейсе, только используемый для внутренней ссылки в файле)

    Actions=Window;Document;gedit;Ubuntu Software Center;
    
  4. Добавляют соответствующие разделы у основания файла:

    [Desktop Action gedit]
    Name=Gedit  (with gksu)
    Exec=gksudo gedit
    OnlyShowIn=Unity;
    
    [Desktop Action Ubuntu Software Center]
    Name=Ubuntu Software Center (with gksu)
    Exec=gksudo /usr/bin/software-center
    OnlyShowIn=Unity;
    
  5. Близко файл и перетаскивает его на средство запуска

Теперь, можно выполнить gedit и Центр программного обеспечения с sudo полномочиями:

enter image description here

enter image description here

4
ответ дан 23 November 2019 в 05:32

TL; DR: Попытайтесь установить policykit-1 и policykit-1-gnome пакеты.

Вам, вероятно, нужен polkit (иначе. PolicyKit).

Большинство графических утилит системного администрирования в Ubuntu, включая Центр программного обеспечения, может обычно выполняться без sudo или что-либо вполне как он. Вы просто выполняете их тот же способ, которым Вы запустили любую программу.

Когда это прибывает время для выполнения задачи, требующей полномочий пользователя root, они используют polkit для выполнения необходимых действий. polkit является отдельным механизмом от sudo для разрешения администраторам выполнить действия как корень. Это установлено в настольных системах Ubuntu, но по умолчанию не является частью установок Сервера Ubuntu.

Таким образом нормальное поведение Центра программного обеспечения состоит в том, что можно вызвать его просто как software-center, это не предложит Вам проходить проверку подлинности в то время, но затем когда Вы скажете этому устанавливать или удалять программное обеспечение, это предложит Вам (графически) проходить проверку подлинности.

Это звучит из Вашего описания как Ваша система, запущенная как система Сервера Ubuntu без GUI, и затем Вы установили GUI. Вероятно, policykit-1Install policykit-1 и policykit-1-gnomeInstall policykit-1-gnome пакеты не были установлены. Если Вы установите, то polkit, скорее всего, начнет работать на Центр программного обеспечения и другие такие утилиты.

sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome

Затем необходимо смочь просто работать:

software-center

(Или выберите Центр программного обеспечения графически как предусмотрено для любой настольной средой, которую Вы установили.)

Если Вы хотите полностью функциональную настольную систему Ubuntu, я рекомендую установить метапакет для любой "разновидности" Ubuntu, в которую Вы хотите повернуть свою систему. В основном, если Вы хотите регулярную настольную систему Ubuntu, устанавливаете рабочий стол человечностиInstall ubuntu-desktop.

sudo apt-get update
sudo apt-get install ubuntu-desktop

Это должно заполнить различные разрывы, как не наличие polkit, это идет с установкой более минимального GUI в Вашей системе сервера. С другой стороны, если Вы предпочитаете более минимальный GUI, можно просто установить те polkit пакеты.

Для получения дополнительной информации посмотрите, Как Вы выполняете Сервер Ubuntu с GUI?

sudo с графической аутентификацией.

Если Вы действительно нуждаетесь в командах выполнения как в корне, но получаете графический диалог аутентификации, что Вы ищете, gksudo (или gksu). Это обеспечивается gksuInstall gksu пакетом. Это - графический frontend для sudo.

Обычно gksudo используется для запуска графических приложений как корня (или некоторый другой пользователь помимо пользователя, запускающего их). Но можно также использовать его для выполнения неграфических команд - если команды могут быть выполнены с sudo.

Можно работать gksudo от терминала, но Вы не имеете к. Можно выполнить его от Alt+F2 (команда выполнения) диалоговое окно или вставить его Exec= строка a .desktop файл (или любой из других путей Вы запускаете графические программы).

Обратите внимание, что необходимо рассмотреть использование gksudo запустить графические приложения как корень, даже когда Вы выполняете их от терминала, потому что команды как sudo ... где ... графическое приложение, может на самом деле повредить на конфигурации приложения из некорневых пользователей, выполняющих их. (К счастью, это является закрепляемым.) sudo gedit особенно известно.

Для получения дополнительной информации о проблеме с sudo для графических приложений и что сделать вместо этого, см.:

Существует также находящийся в polkit графический путь... к неграфическим командам.

gksudo хорошо работает для того, чтобы запустить и графические и неграфические программы. Необходимо, вероятно, использовать это.

Но альтернатива, с помощью polkit вместо sudo и только работая на неграфические программы, pkexec.

Например, если Вы работаете pkexec touch /root/foo.txt, Вам предложат с графическим диалогом аутентификации, и если аутентификация успешно выполняется, touch /root/foo.txt выполняется, создавая (или обновляясь) foo.txt в /root папка.

  • pkexec будет использовать неграфическое диалоговое окно, требуя терминала, если это не может создать графическое диалоговое окно. Но это вряд ли произойдет при выполнении его через услугу, предоставленную графической средой оболочки или настольной средой.
  • Почему делает pkexec работать только на неграфические программы? На самом деле это также запускает графические программы, но только если polkit был особенно настроен для разрешения его - который обычно не делается. Посмотрите man pkexecвосходящая версия, со снимками экрана), этот ответ и тот ответ для некоторых деталей, если Вам интересно.

sudo по сравнению с polkit (некоторые технические детали, только если Вам интересно),

Новое gksu/gksudo будет использовать polkit вместо sudo сделать ее работу, хотя эта версия не была широко принята. Я главным образом поднимаю его для рекомендации README файл в его исходном коде (записанный Gustavo Noronha Silva), который объясняет важные различия между sudo и polkit. Заключить в кавычки из него кратко:

PolicyKit решает проблему приложения, бывшего нужного в более высоких полномочиях путем предоставления услуг, чтобы позволить пользователям аутентифицировать себя и чтобы приложения проверили информацию об аутентификации и авторизации. Приложение должно быть структурировано способом, что вся привилегированная операция сделана (предпочтительно) маленьким D-автобусным-сообщением, которым управляет непривилегированный код. Все "действия", которые выполняются соответствующие полномочия потребности, которые обрабатываются через Policykit.

4. Почему поддерживают gksu?

Так, это по существу делает gksu ненужный, так как приложения больше не должны работать как привилегированный пользователь, и аутентификация пользователя сделана Подлинным Агентом PolicyKit. Но приложения должны быть пересмотрены для принятия этой новой структуры, и существуют некоторые случаи, в, которых что Вы хотите, действительно что-то, что запускает программы как корень.

Эти проблемы лежат в основе ситуации, я полагаю, что Вы находитесь в:

  • Центр программного обеспечения разработан для использования polkit для расширения полномочий, так, чтобы только определенные действия были выполнены как корень. Для этого этому нужен polkit, который отсутствовал (или поврежденный) в Вашей системе.
  • Поскольку это разработано для использования polkit, нет никакого предварительно сделанного средства запуска для запуска Центра программного обеспечения как корня. polkit устраняет потребность выполнить инструменты графического администрирования как корень большую часть времени.
  • Но иногда действительно необходимо запустить графическую программу как корень. В этом случае можно использовать gksu/gksudo.
    (... Который может в конечном счете использовать polkit негласно - но gksudo в настоящее время в Ubuntu традиционный, который использует sudo).
9
ответ дан 23 November 2019 в 05:32

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

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