TL; DR: Spróbuj zainstalować pakiety policykit-1
i policykit-1-gnome
.
Prawdopodobnie potrzebujesz polkit (aka PolicyKit).
Większość graficznych narzędzi do administrowania systemem w systemie Ubuntu, w tym Software Center, zwykle można uruchomić bez niego sudo
lub w podobny sposób. Po prostu uruchamiasz je w taki sam sposób jak dowolny program.
Kiedy przychodzi czas na wykonanie zadania wymagającego uprawnień roota, używają polkit do wykonania wymaganych działań. polkit to odrębny mechanizm od sudo, umożliwiający administratorom wykonywanie działań jako root. Jest instalowany na komputerowych systemach Ubuntu, ale domyślnie nie jest częścią instalacji Ubuntu Server.
Tak więc normalne zachowanie Centrum oprogramowania polega na tym, że można je wywołać w prosty sposób software-center
, ponieważ nie poprosi ono o uwierzytelnienie w tym czasie, ale wtedy, gdy poprosi go o zainstalowanie lub usunięcie oprogramowania, poprosi (graficznie) o uwierzytelnienie.
Z twojego opisu brzmi to tak, jakby Twój system zaczął działać jako system Ubuntu Server bez GUI, a następnie zainstalowałeś GUI. Prawdopodobnie pakiety policykit-1 i policykit-1-gnome nie zostały zainstalowane. Jeśli zainstalujesz, polkit najprawdopodobniej zacznie działać dla Software Center i innych podobnych narzędzi.
sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome
Wtedy powinieneś być w stanie po prostu uruchomić:
software-center
(Lub wybierz graficzne Centrum oprogramowania zgodnie z zainstalowanym środowiskiem komputerowym).
Jeśli potrzebujesz w pełni funkcjonalnego systemu Ubuntu, polecam zainstalowanie metapakietu dla dowolnego „smaku” Ubuntu, w który chcesz zmienić swój system. Zasadniczo, jeśli chcesz mieć zwykły system Ubuntu, zainstaluj ubuntu-desktop .
sudo apt-get update
sudo apt-get install ubuntu-desktop
Powinno to wypełnić różne luki, takie jak brak pakietu polkit, które są dostarczane z instalacją bardziej minimalnego interfejsu GUI w systemie serwera. Z drugiej strony, jeśli wolisz bardziej minimalny GUI, możesz po prostu zainstalować te pakiety polkit.
Aby uzyskać więcej informacji, zobacz Jak uruchomić Ubuntu Server z GUI?
sudo
z graficznym uwierzytelnieniem.
Jeśli naprawdę potrzebujesz uruchomić komendy jako root, ale otrzymasz graficzne okno uwierzytelnienia, to czego szukasz gksudo
( lubgksu
). Zapewnia to pakiet gksu . Jest to graficzna nakładka na sudo
.
Zwykle gksudo
służy do uruchamiania aplikacji graficznych jako root (lub inny użytkownik poza użytkownikiem uruchamiającym je). Ale możesz go również używać do uruchamiania poleceń nie graficznych - pod warunkiem, że można je uruchamiać sudo
.
Możesz biegać gksudo
z terminala, ale nie musisz. Możesz uruchomić go z okna dialogowego Alt+ F2(polecenie uruchomienia) lub umieścić w Exec=
wierszu .desktop
pliku (lub w dowolny inny sposób uruchamiania programów graficznych).
Zauważ, że powinieneś rozważyć użycie gksudo
do uruchamiania aplikacji graficznych jako root, nawet jeśli uruchamiasz je z terminala, ponieważ polecenia takie jak sudo ...
gdzie ...
jest aplikacją graficzną mogą faktycznie zepsuć konfiguracje dla aplikacji użytkowników innych niż root. (Na szczęście można to naprawić.) sudo gedit
Jest szczególnie notoryczne.
Aby uzyskać więcej informacji na temat problemu z sudo
aplikacjami graficznymi i co zamiast tego zrobić, zobacz:
Istnieje również graficzny sposób oparty na polkitach ... dla poleceń nie graficznych.
gksudo
działa dobrze do uruchamiania programów graficznych i nie graficznych. Powinieneś prawdopodobnie tego użyć.
Ale alternatywą jest użycie polkit zamiast sudo
i działanie tylko dla programów nie graficznychpkexec
.
Na przykład, jeśli uruchomisz pkexec touch /root/foo.txt
, pojawi się graficzne okno dialogowe uwierzytelniania, a jeśli uwierzytelnienie się powiedzie, touch /root/foo.txt
zostanie uruchomione, tworząc ( lub odświeżając ) foo.txt
w /root
folderze.
pkexec
użyje nie graficznego okna dialogowego, wymagającego terminala, na wypadek, gdyby nie mógł utworzyć graficznego okna dialogowego. Jest to jednak mało prawdopodobne, jeśli uruchamiasz go za pomocą narzędzia zapewnianego przez powłokę graficzną lub środowisko pulpitu.
- Dlaczego
pkexec
działa tylko w przypadku programów niegraficznych? W rzeczywistości działa również programy graficzne, ale tylko wtedy, gdy polkit został specjalnie skonfigurowany, aby na to pozwolić - co zwykle nie jest wykonywane. Zobacz man pkexec
(i wcześniejszą wersję ze zrzutami ekranu ), tę odpowiedź i tę odpowiedź, aby uzyskać szczegółowe informacje, jeśli jesteś zainteresowany.
sudo
vs. polkit (niektóre szczegóły techniczne, tylko jeśli jesteś zainteresowany)
Nowy gksu
/ gksudo
użyje pakietu polkit zamiast sudo
wykonywać swoją pracę , chociaż ta wersja nie została powszechnie przyjęta. I przede wszystkim dostosowania go polecić ten README
plik w kodzie źródłowym (napisany przez Gustavo Noronha Silva), co wyjaśnia najistotniejsze różnice pomiędzy sudo
i polkit. Cytując go krótko:
PolicyKit rozwiązuje problem aplikacji wymagającej wyższych uprawnień, udostępniając funkcje umożliwiające użytkownikom uwierzytelnianie się oraz aplikacje do weryfikacji informacji uwierzytelniających i autoryzacyjnych. Aplikacja musi być tak skonstruowana, aby wszystkie uprzywilejowane operacje były wykonywane przez (najlepiej) małą usługę D-Bus, która jest zarządzana przez nieuprzywilejowany kod. Wszystkie „akcje”, które są wykonywane, wymagają odpowiedniej autoryzacji, która jest obsługiwana przez Policykit.
4. Po co utrzymywać gksu?
Zasadniczo sprawia to, że gksu nie jest konieczne, ponieważ aplikacje nie muszą już działać jako użytkownik uprzywilejowany, a uwierzytelnianie użytkownika odbywa się przez Auth Agent PolicyKit. Jednak aplikacje muszą zostać zrefaktoryzowane, aby przyjęły tę nową strukturę, i są przypadki, w których to, czego chcesz, jest rzeczywiście działaniem programów jako root.
Te problemy leżą u podstaw sytuacji, w której, jak sądzę, jesteś:
- Centrum oprogramowania jest zaprojektowane do używania pakietu polkit do podnoszenia uprawnień, tak że tylko określone działania muszą być wykonywane jako root. W tym celu potrzebuje pakietu polkit, którego brakowało (lub było uszkodzone) w systemie.
- Ponieważ jest przeznaczony do korzystania z polkit, nie ma gotowego programu uruchamiającego, aby uruchomić Centrum oprogramowania jako root. Polkit eliminuje potrzebę uruchamiania graficznych narzędzi administracyjnych jako root.
- Ale czasami naprawdę musisz uruchomić program graficzny jako root. W takim przypadku możesz użyć
gksu
/ gksudo
.
(... Które ostatecznie mogą korzystać z Polkita za kulisami - ale gksudo
obecnie w Ubuntu jest tradycyjny, który używa sudo
).
gksu
był przestarzały i usunięty z Ubuntu 18.04Wygodnym sposobem jest utworzenie dedykowanego
.desktop
pliku lub dodanie poleceń do istniejącego, pytając o hasło za pomocą GUI (gksu). W poniższym przykładzie dodaję polecenie uruchomienia Gedit i Software Center z uprawnieniami sudo do programu uruchamiającego Gedit. Abygksu
móc korzystać z tej konfiguracji, musisz mieć zainstalowany:sudo apt-get install gksu
Skopiuj Gedit
.desktop file in
/ usr / share / applications /to
~ / .local / share / applications`:i otwórz go do edycji (przeciągnij go do otwartego okna gedit)
Poszukaj linii: Akcje = Okno; Dokument;
Dodaj nazwy swoich poleceń do wiersza (nie są to nazwy, które zobaczysz w interfejsie, używane tylko do wewnętrznego odwołania w pliku)
Dodaj odpowiednie sekcje na dole pliku:
Zamknij plik i przeciągnij go do programu uruchamiającego
Teraz możesz uruchomić gedit i Software Center z uprawnieniami sudo:
źródło
gksu
/gksudo
. Twoja odpowiedź jest więc dobra i konieczna! Mam tylko nadzieję, że OP również zainstaluje / naprawi pakiet polkit, ponieważ myślę, że dzięki temu system operacyjny będzie działał tak, jak tego chce.