Jak uzyskać GUI sudo hasło bez wiersza poleceń?


10

Obecnie dla wszystkich moich poleceń wymagających dostępu do konta root muszę je wpisać w wierszu poleceń.

Chciałbym, aby GUI monitował mnie o podanie hasła, gdy wymagane jest sudo, zamiast wpisywania poleceń z wiersza poleceń.

Czy jest jakiś sposób, aby to włączyć? Poprzednio jedna wersja Ubuntu Desktop posiadała tę funkcję od razu po wyjęciu z pudełka.

Ta wersja Ubuntu (którą teraz uruchomiłem) zaktualizowałem z instalacji serwera.

Dodam, moje konto użytkownika zostało już dodane do grupy sudo. Dzięki temu mogę uruchamiać polecenia takie jak sudo geditlub, sudo apt-getale nie jestem w stanie zainstalować oprogramowania w Centrum oprogramowania Ubuntu.

Odpowiedzi:


10

TL; DR: Spróbuj zainstalować pakiety policykit-1i 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 sudolub 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-1Zainstaluj policykit-1 i policykit-1-gnomeZainstaluj 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-desktopZainstaluj 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 gksuZainstaluj gksu . Jest to graficzna nakładka na sudo.

Zwykle gksudosł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ć gksudoz terminala, ale nie musisz. Możesz uruchomić go z okna dialogowego Alt+ F2(polecenie uruchomienia) lub umieścić w Exec=wierszu .desktoppliku (lub w dowolny inny sposób uruchamiania programów graficznych).

Zauważ, że powinieneś rozważyć użycie gksudodo 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 geditJest szczególnie notoryczne.

Aby uzyskać więcej informacji na temat problemu z sudoaplikacjami graficznymi i co zamiast tego zrobić, zobacz:

Istnieje również graficzny sposób oparty na polkitach ... dla poleceń nie graficznych.

gksudodziała dobrze do uruchamiania programów graficznych i nie graficznych. Powinieneś prawdopodobnie tego użyć.

Ale alternatywą jest użycie polkit zamiast sudoi 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.txtzostanie uruchomione, tworząc ( lub odświeżając ) foo.txtw /rootfolderze.

  • pkexecuż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 pkexecdział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.

sudovs. polkit (niektóre szczegóły techniczne, tylko jeśli jesteś zainteresowany)

Nowy gksu/ gksudoużyje pakietu polkit zamiast sudowykonywać swoją pracę , chociaż ta wersja nie została powszechnie przyjęta. I przede wszystkim dostosowania go polecić ten READMEplik w kodzie źródłowym (napisany przez Gustavo Noronha Silva), co wyjaśnia najistotniejsze różnice pomiędzy sudoi 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 gksudoobecnie w Ubuntu jest tradycyjny, który używa sudo).

1
Cześć Eliah, tak, to był serwer bez GUI i właśnie wypróbowałem GUI ubuntu, uruchomiłem polecenie sudo apt-get install ubuntu-desktop im nie jestem pewien, czy zestaw zasad jest zainstalowany. Mimo to spróbuje go zainstalować. Obecnie aktualizuję z 12.04 do 14.04.
Sean

Zetknąłem się z sytuacją, w której mam aplikację GUI, którą chcę normalnie uruchamiać (użytkownika innego niż root), ale musi ona tylko czytać z portu szeregowego, którego właścicielem jest root. Niemożność przyznania temu programowi jednego przywileju jest naprawdę denerwująca (innymi słowy, chcę system pełnego obiektu).
CMCDragonkai

3
Proszę nie, że gksubył przestarzały i usunięty z Ubuntu 18.04
Nathan F.

5

Wygodnym sposobem jest utworzenie dedykowanego .desktoppliku 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. Aby gksumóc korzystać z tej konfiguracji, musisz mieć zainstalowany:sudo apt-get install gksu

  1. Skopiuj Gedit .desktop file in/ usr / share / applications / to~ / .local / share / applications`:

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

    i otwórz go do edycji (przeciągnij go do otwartego okna gedit)

  2. Poszukaj linii: Akcje = Okno; Dokument;

  3. 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)

    Actions=Window;Document;gedit;Ubuntu Software Center;
    
  4. Dodaj odpowiednie sekcje na dole pliku:

    [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. Zamknij plik i przeciągnij go do programu uruchamiającego

Teraz możesz uruchomić gedit i Software Center z uprawnieniami sudo:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj


W rzeczy samej. Nie mam nic przeciwko Powodem, dla którego skomentowałem USC, jest to, że główna część pytania dotyczy tego, w jaki sposób OP może sprawić, aby ich system, który został utworzony z instalacji serwera, działał jak normalny system komputerowy Ubuntu w odniesieniu do graficznego uwierzytelniania do zadań administracyjnych. Moja odpowiedź skupia się na tym i objaśnia ogólne zasady działania programów jako root. Robiąc to, omija mechanikę 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.
Eliah Kagan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.