TL; DR: essayez d'installer les packages policykit-1
et policykit-1-gnome
.
Vous avez probablement besoin de polkit (alias PolicyKit).
La plupart des utilitaires d'administration système graphique d'Ubuntu, y compris le Centre logiciel, peuvent généralement être exécutés sans sudo
ou quelque chose de similaire. Vous les exécutez simplement de la même manière que vous exécuteriez n'importe quel programme.
Quand vient le temps d'effectuer une tâche nécessitant des privilèges root, ils utilisent polkit pour effectuer les actions requises. polkit est un mécanisme distinct de sudo, pour permettre aux administrateurs d'effectuer des actions en tant que root. Il est installé sur les systèmes Ubuntu de bureau mais par défaut ne fait pas partie des installations d'Ubuntu Server.
Ainsi, le comportement normal du Centre logiciel est que vous pouvez l'invoquer simplement car software-center
il ne vous invitera pas à vous authentifier à ce moment-là, mais lorsque vous lui direz d'installer ou de supprimer un logiciel, il vous invitera (graphiquement) à vous authentifier.
Il ressort de votre description que votre système a commencé comme un système Ubuntu Server sans interface graphique, puis vous avez installé une interface graphique. Les packages policykit-1 et policykit-1-gnome n'ont probablement pas été installés. Si vous installez le, polkit commencera très probablement à travailler pour Software Center et d'autres utilitaires de ce type.
sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome
Ensuite, vous devriez pouvoir exécuter:
software-center
(Ou sélectionnez graphiquement le Centre logiciel comme le prévoit l'environnement de bureau que vous avez installé.)
Si vous voulez un système de bureau Ubuntu entièrement fonctionnel, je vous recommande d'installer le métapaquet pour la "saveur" d'Ubuntu dans laquelle vous souhaitez transformer votre système. Fondamentalement, si vous voulez un système de bureau Ubuntu standard, installez ubuntu-desktop .
sudo apt-get update
sudo apt-get install ubuntu-desktop
Cela devrait combler les diverses lacunes, comme l'absence de polkit, qui accompagnent l'installation d'une interface graphique plus minimale sur votre système de serveur. D'un autre côté, si vous préférez une interface graphique plus minimale, vous pouvez simplement installer ces packages polkit.
Pour plus d'informations, voir Comment exécuter Ubuntu Server avec une interface graphique?
sudo
avec authentification graphique.
Si vous avez vraiment besoin d'exécuter des commandes en tant que root mais que vous obtenez une boîte de dialogue d'authentification graphique, ce que vous recherchez est gksudo
( ougksu
). Ceci est fourni par le paquet gksu . C'est une interface graphique pour sudo
.
gksudo
Est généralement utilisé pour exécuter des applications graphiques en tant que root (ou un autre utilisateur que l'utilisateur qui les lance). Mais vous pouvez également l'utiliser pour exécuter des commandes non graphiques - à condition que les commandes puissent être exécutées avec sudo
.
Vous pouvez exécuter à gksudo
partir d'un terminal, mais ce n'est pas obligatoire. Vous pouvez l'exécuter à partir de la boîte de dialogue Alt+ F2(exécuter la commande) ou le placer dans la Exec=
ligne d'un .desktop
fichier (ou de n'importe quelle autre manière d'exécuter des programmes graphiques).
Notez que vous devriez envisager d'utiliser gksudo
pour exécuter des applications graphiques en tant que root même lorsque vous les exécutez à partir d'un terminal, car des commandes telles que sudo ...
où se ...
trouve une application graphique peuvent en fait casser les configurations par application des utilisateurs non root qui les exécutent. (Heureusement, c'est réparable.) sudo gedit
Est particulièrement notoire.
Pour plus d'informations sur le problème sudo
des applications graphiques et que faire à la place, voir:
Il existe également un moyen graphique basé sur polkit ... pour les commandes non graphiques.
gksudo
fonctionne très bien pour exécuter des programmes graphiques et non graphiques. Vous devriez probablement l'utiliser.
Mais une alternative, en utilisant polkit au lieu de sudo
et ne fonctionnant que pour des programmes non graphiques , est pkexec
.
Par exemple, si vous exécutez pkexec touch /root/foo.txt
, vous serez invité avec une boîte de dialogue d'authentification graphique, et si l'authentification réussit, touch /root/foo.txt
est exécutée, créant ( ou rafraîchissant ) foo.txt
dans le /root
dossier.
pkexec
utilisera une boîte de dialogue non graphique, nécessitant un terminal, dans le cas où il ne peut pas créer une boîte de dialogue graphique. Mais il est peu probable que cela se produise si vous l'exécutez via une fonctionnalité fournie par votre environnement graphique ou de bureau.
- Pourquoi ne
pkexec
fonctionne que pour les programmes non graphiques? En fait, il exécute également des programmes graphiques, mais uniquement si polkit a été spécialement configuré pour le permettre - ce qui n'est généralement pas fait. Voir man pkexec
(et la version en amont, avec des captures d'écran ), cette réponse et cette réponse pour quelques détails, si vous êtes intéressé.
sudo
vs polkit (quelques détails techniques, seulement si cela vous intéresse)
Un nouveau gksu
/ gksudo
utilisera polkit au lieu de sudo
faire son travail , bien que cette version n'ait pas été largement adoptée. Je l'amène principalement à recommander le README
fichier dans son code source (écrit par Gustavo Noronha Silva), ce qui explique les différences importantes entre sudo
et polkit. Pour en citer brièvement:
PolicyKit résout le problème d'une application nécessitant des privilèges plus élevés en fournissant des fonctionnalités permettant aux utilisateurs de s'authentifier et aux applications de vérifier les informations d'authentification et d'autorisation. L'application doit être structurée de manière à ce que toutes les opérations privilégiées soient effectuées par un (de préférence) petit service D-Bus, commandé par le code non privilégié. Toutes les "actions" qui sont effectuées nécessitent une autorisation appropriée, qui est gérée via Policykit.
4. Pourquoi maintenir gksu?
Ainsi, cela rend essentiellement gksu inutile, car les applications n'ont plus besoin de s'exécuter en tant qu'utilisateur privilégié et l'authentification de l'utilisateur est effectuée par l'agent d'authentification de PolicyKit. Mais les applications doivent être refactorisées pour adopter cette nouvelle structure, et dans certains cas, ce que vous voulez est en fait quelque chose qui exécute des programmes en tant que root.
Ces questions sous-tendent la situation dans laquelle je pense que vous vous trouvez:
- Le Centre logiciel est conçu pour utiliser polkit pour l'élévation des privilèges, de sorte que seules des actions spécifiques doivent être effectuées en tant que root. Pour cela, il a besoin de polkit, qui était manquant (ou cassé) sur votre système.
- Parce qu'il est conçu pour utiliser polkit, il n'y a pas de lanceur prédéfini pour démarrer le Software Center en tant que root. polkit évite d'avoir à exécuter des outils d'administration graphique en tant que root, la plupart du temps.
- Mais parfois, vous avez vraiment besoin d'exécuter un programme graphique en tant que root. Dans ce cas, vous pouvez utiliser
gksu
/ gksudo
.
(... Qui peut éventuellement utiliser polkit dans les coulisses - mais gksudo
actuellement dans Ubuntu est le traditionnel qui utilise sudo
).