TL; DR: Спробуйте встановити пакети policykit-1
та policykit-1-gnome
.
Ймовірно, вам потрібен polkit (він же PolicyKit).
Більшість утилітів для графічного адміністрування системи Ubuntu, включаючи Програмний центр, зазвичай можна запускати без sudo
нічого подібного. Ви просто запускаєте їх так само, як і будь-яку програму.
Коли настає час виконати завдання, що вимагає привілеїв root, вони використовують polkit для виконання необхідних дій. polkit - це окремий механізм від sudo, що дозволяє адміністраторам виконувати дії як root. Він встановлений у настільних системах Ubuntu, але за замовчуванням не є частиною установок сервера Ubuntu.
Таким чином, звичайна поведінка Програмного центру полягає в тому, що ви можете викликати його просто так software-center
, він не запропонує вам аутентифікувати в той час, але тоді, коли ви скажете йому встановити або видалити програмне забезпечення, він запропонує (графічно) пройти автентифікацію.
З вашого опису звучить так, що ваша система запускалася як система Ubuntu Server без графічного інтерфейсу, а потім ви встановили графічний інтерфейс. Можливо, пакети policykit-1 та policykit-1-gnome не встановлені. Якщо ви встановите, polkit, швидше за все, почне працювати для Software Center та інших подібних утиліт.
sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome
Тоді ви зможете просто запустити:
software-center
(Або виберіть Програмний центр графічно, як це передбачено будь-яким середовищем на робочому столі, яке ви встановили.)
Якщо ви хочете повністю функціональну систему настільних систем Ubuntu, я рекомендую встановити метапакет для будь-якого "аромату" Ubuntu, в який ви хочете перетворити вашу систему. В основному, якщо ви хочете звичайну систему настільних систем Ubuntu, встановіть ubuntu-desktop .
sudo apt-get update
sudo apt-get install ubuntu-desktop
Це повинно заповнювати різні прогалини, як, наприклад, не мати polkit, які поставляються із встановленням мінімальної GUI на вашій серверній системі. З іншого боку, якщо ви віддаєте перевагу більш мінімальний графічний інтерфейс, ви можете просто встановити ці пакети polkit.
Для отримання додаткової інформації див. Як запускати Ubuntu Server з графічним інтерфейсом?
sudo
з графічною автентифікацією.
Якщо вам дійсно потрібні запустити команди як root, але ви отримаєте графічний діалог аутентифікації, ви шукаєте gksudo
( абоgksu
). Це передбачено пакетом gksu . Це графічний інтерфейс для sudo
.
Зазвичай gksudo
використовується для запуску графічних додатків як root (або якийсь інший користувач, крім користувача, який запускає їх). Але ви також можете використовувати його для запуску не графічних команд - за умови, що команди можна запускати sudo
.
Ви можете бігти gksudo
з терміналу, але цього не потрібно. Ви можете запустити його з діалогового вікна Alt+ F2(запустити команду) або поставити його у Exec=
рядок .desktop
файлу (або будь-яким з інших способів запуску графічних програм).
Зауважте, що вам слід розглянути можливість використання gksudo
графічних додатків як root, навіть коли ви запускаєте їх з терміналу, оскільки такі команди, як, 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
vs. polkit (деякі технічні деталі, лише якщо вас цікавить)
Новий gksu
/ gksudo
використовуватиме polkit замість того, sudo
щоб виконувати свою роботу , хоча ця версія не була широко прийнята. В основному я рекомендую цей README
файл у його вихідному коді (написаний Густаво Норонха Сільва), який пояснює важливі відмінності між sudo
і polkit. Коротко цитую це:
PolicyKit вирішує проблему програми, яка потребує більш високих привілеїв, надаючи засоби, що дозволяють користувачам аутентифікувати себе, а також для додатків для перевірки інформації про автентифікацію та авторизацію. Додаток має бути структуровано таким чином, що всі привілейовані операції виконуються (бажано) невеликою послугою D-Bus, якою командує непривілейований код. Усі "дії", які виконуються, потребують належної авторизації, яка обробляється через Policykit.
4. Навіщо підтримувати гксу?
Отже, це по суті робить gksu непотрібним, оскільки додатки більше не потрібно запускати як привілейований користувач, а автентифікацію користувача здійснює Auth Agent PolicyKit. Але додатки потрібно переробити, щоб прийняти цю нову структуру, і є деякі випадки, коли те, що ви хочете, справді є те, що запускає програми як root.
Ці проблеми лежать в основі ситуації, на яку я вважаю:
- Програмний центр розроблений для використання polkit для підвищення привілеїв, так що в якості root потрібно виконувати лише конкретні дії. Для цього йому потрібен polkit, якого бракувало (або зламано) у вашій системі.
- Оскільки він розроблений для використання polkit, не існує заздалегідь зробленого запуску для запуску Software Center як root. polkit ухиляється від необхідності використовувати інструменти графічного адміністрування як root, більшу частину часу.
- Але іноді вам дійсно потрібно запустити графічну програму як root. У такому випадку ви можете використовувати
gksu
/ gksudo
.
(... Що в кінцевому підсумку може використовувати polkit за кадром - але gksudo
наразі в Ubuntu це традиційний, який використовується sudo
).