TL; DR: Versuchen Sie, die Pakete policykit-1
und policykit-1-gnome
zu installieren .
Sie benötigen wahrscheinlich ein Polkit (auch bekannt als PolicyKit).
Die meisten Dienstprogramme zur grafischen Systemverwaltung in Ubuntu, einschließlich des Software Centers, können normalerweise ohne sudo
oder etwas Ähnliches ausgeführt werden. Sie führen sie genauso aus, wie Sie ein Programm ausführen würden.
Wenn es an der Zeit ist, eine Aufgabe auszuführen, für die Root-Rechte erforderlich sind, verwenden sie polkit , um die erforderlichen Aktionen auszuführen. polkit ist ein von sudo separater Mechanismus, mit dem Administratoren Aktionen als root ausführen können. Es ist auf Ubuntu-Desktop-Systemen installiert, gehört jedoch standardmäßig nicht zu den Ubuntu Server-Installationen.
Daher ist das normale Verhalten des Software Centers, dass Sie es einfach aufrufen können, da software-center
Sie zu diesem Zeitpunkt nicht zur Authentifizierung aufgefordert werden. Wenn Sie es jedoch anweisen, Software zu installieren oder zu entfernen, werden Sie (grafisch) zur Authentifizierung aufgefordert.
Aus Ihrer Beschreibung geht hervor, dass Ihr System als Ubuntu Server-System ohne GUI gestartet wurde und Sie dann eine GUI installiert haben. Wahrscheinlich wurden die Pakete policykit-1 und policykit-1-gnome nicht installiert. Wenn Sie das installieren, wird polkit höchstwahrscheinlich für Software Center und andere solche Dienstprogramme funktionieren.
sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome
Dann sollten Sie einfach laufen können:
software-center
(Oder wählen Sie das Software Center grafisch aus, wie es in der von Ihnen installierten Desktop-Umgebung vorgesehen ist.)
Wenn Sie ein voll funktionsfähiges Ubuntu-Desktopsystem wünschen, empfehle ich, das Metapaket für jede "Variante" von Ubuntu zu installieren, in die Sie Ihr System verwandeln möchten. Wenn Sie ein normales Ubuntu-Desktop-System möchten, installieren Sie grundsätzlich Ubuntu-Desktop .
sudo apt-get update
sudo apt-get install ubuntu-desktop
Dies sollte die verschiedenen Lücken füllen, z. B. das Fehlen eines Polkits, die mit der Installation einer minimaleren GUI auf Ihrem Serversystem einhergehen. Wenn Sie jedoch eine minimalere Benutzeroberfläche bevorzugen, können Sie diese Polkit-Pakete einfach installieren.
Weitere Informationen finden Sie unter Wie führen Sie Ubuntu Server mit einer grafischen Benutzeroberfläche aus?
sudo
mit grafischer Authentifizierung.
Wenn Sie wirklich Ausführungsbefehle als root benötigen, aber einen grafischen Authentifizierungsdialog erhalten, suchen Sie gksudo
( odergksu
). Dies wird durch das gksu- Paket bereitgestellt. Es ist ein grafisches Frontend für sudo
.
Wird normalerweise gksudo
verwendet, um grafische Anwendungen als Root auszuführen (oder als ein anderer Benutzer neben dem Benutzer, der sie startet). Sie können es aber auch verwenden, um nicht grafische Befehle auszuführen - vorausgesetzt, die Befehle können mit ausgeführt werden sudo
.
Sie können gksudo
von einem Terminal aus laufen , müssen es aber nicht. Sie können es über das Dialogfeld Alt+ F2(Befehl ausführen) ausführen oder in die Exec=
Zeile einer .desktop
Datei einfügen (oder auf eine andere Art und Weise, wie Sie grafische Programme ausführen).
Beachten Sie, dass Sie die Verwendung gksudo
von grafischen Anwendungen als Root in Betracht ziehen sollten, auch wenn Sie sie von einem Terminal aus ausführen, da Befehle wie " sudo ...
Wo ...
ist eine grafische Anwendung?" Die anwendungsspezifischen Konfigurationen der Nicht-Root-Benutzer, die sie ausführen, tatsächlich beschädigen können. (Zum Glück ist dies reparabel.) Ist sudo gedit
besonders berüchtigt.
Weitere Informationen zum Problem mit sudo
für grafische Anwendungen und was stattdessen zu tun ist, finden Sie unter:
Es gibt auch eine Polkit-basierte grafische Methode ... für nicht grafische Befehle.
gksudo
funktioniert gut zum Ausführen von grafischen und nicht grafischen Programmen. Sie sollten das wahrscheinlich verwenden.
Eine Alternative ist die Verwendung von Polkit anstelle von sudo
und nur für nicht grafische Programme pkexec
.
Wenn Sie beispielsweise ausführen pkexec touch /root/foo.txt
, wird ein grafisches Authentifizierungsdialogfeld angezeigt. Wenn die Authentifizierung erfolgreich ist, touch /root/foo.txt
wird sie ausgeführt und im Ordner erstellt ( oder aktualisiert ) .foo.txt
/root
pkexec
verwendet einen nicht grafischen Dialog, für den ein Terminal erforderlich ist, falls kein grafischer Dialog erstellt werden kann. Dies ist jedoch unwahrscheinlich, wenn Sie es über eine Einrichtung ausführen, die von Ihrer grafischen Shell oder Desktop-Umgebung bereitgestellt wird.
- Warum funktioniert
pkexec
nur für nicht- grafische Programme? Tatsächlich werden auch grafische Programme ausgeführt, jedoch nur, wenn polkit speziell dafür konfiguriert wurde - was normalerweise nicht der Fall ist. Siehe man pkexec
(und die Upstream-Version mit Screenshots ), diese und jene Antwort für einige Details, wenn Sie interessiert sind.
sudo
Polkit (einige technische Details, nur wenn Sie interessiert sind)
Ein neues gksu
/ gksudo
wird Polkit verwenden, anstatt sudo
seine Arbeit zu erledigen , obwohl diese Version nicht weit verbreitet ist. Ich spreche es hauptsächlich an, um die README
Datei in ihrem Quellcode (geschrieben von Gustavo Noronha Silva) zu empfehlen , der die wichtigen Unterschiede zwischen sudo
und polkit erklärt. Um es kurz zu zitieren:
PolicyKit löst das Problem, dass eine Anwendung höhere Berechtigungen benötigt, indem Funktionen bereitgestellt werden, mit denen sich Benutzer authentifizieren können, und Anwendungen, um Authentifizierungs- und Autorisierungsinformationen zu überprüfen. Die Anwendung muss so strukturiert sein, dass alle privilegierten Operationen von einem (vorzugsweise) kleinen D-Bus-Dienst ausgeführt werden, der vom nichtprivilegierten Code befohlen wird. Alle "Aktionen", die ausgeführt werden, benötigen eine ordnungsgemäße Autorisierung, die über Policykit ausgeführt wird.
4. Warum gksu pflegen?
Dies macht gksu im Wesentlichen unnötig, da Anwendungen nicht mehr als privilegierter Benutzer ausgeführt werden müssen und die Benutzerauthentifizierung durch den Auth Agent von PolicyKit erfolgt. Aber Anwendungen müssen überarbeitet werden, um diese neue Struktur zu übernehmen, und es gibt einige Fälle, in denen Sie tatsächlich Programme als Root ausführen möchten.
Diese Probleme liegen der Situation zugrunde, in der Sie sich befinden:
- Das Software Center ist so konzipiert, dass Polkit zur Erhöhung von Berechtigungen verwendet wird, sodass nur bestimmte Aktionen als Root ausgeführt werden müssen. Dafür benötigt es ein Polkit, das auf Ihrem System fehlte (oder kaputt war).
- Da es für die Verwendung von Polkit ausgelegt ist, gibt es keinen vorgefertigten Starter, um das Software Center als Root zu starten. polkit macht es meistens überflüssig, grafische Verwaltungstools als Root auszuführen.
- Aber manchmal müssen Sie wirklich ein grafisches Programm als root ausführen. In diesem Fall können Sie
gksu
/ verwenden gksudo
.
(... die möglicherweise hinter den Kulissen Polkit verwenden - aber das gksudo
derzeit in Ubuntu verwendete ist das traditionelle, das verwendet wird sudo
).