Actuellement, pour toutes mes commandes nécessitant un accès root, je dois les saisir sur une ligne de commande.
J'aimerais que l'interface graphique me demande de saisir mon mot de passe lorsque Sudo est requis, au lieu de devoir saisir les commandes à partir de la ligne de commande.
Est-il possible d'activer cela? Auparavant, une version du bureau Ubuntu avait cette fonctionnalité prête à l'emploi.
Cette version d'Ubuntu (que j'utilise actuellement) est mise à niveau depuis une installation de serveur.
J'ajouterai que mon compte d'utilisateur a déjà été ajouté au groupe Sudo. Ainsi, je peux exécuter des commandes telles que Sudo gedit
ou Sudo apt-get
mais je ne parviens pas à installer de logiciel dans le Centre logiciel Ubuntu.
TL; DR: Essayez d'installer les packages policykit-1
et policykit-1-gnome
.
La plupart des utilitaires d’administration de système graphique dans Ubuntu, y compris le Centre de logiciel, peuvent généralement être exécutés sans Sudo
ou quoi que ce soit du genre. Vous les exécutez simplement de la même manière que n'importe quel programme.
Quand vient le temps d'exécuter 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, permettant 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 du serveur Ubuntu.
Ainsi, le comportement normal du Centre de logiciel est que vous pouvez l’appeler simplement en tant que software-center
. Il ne vous demandera pas de vous authentifier à ce moment-là. .
D'après votre description, il semble que votre système ait démarré en tant que système Ubuntu Server sans interface graphique, puis vous avez installé une interface graphique. Probablement le policykit-1 et policykit-1-gnome les packages n’ont pas été installés. Si vous installez le, polkit commencera probablement à fonctionner pour Software Center et d’autres utilitaires similaires.
Sudo apt-get update
Sudo apt-get install policykit-1 policykit-1-gnome
Ensuite, vous devriez pouvoir lancer:
software-center
(Ou sélectionnez le Centre logiciel de manière graphique, comme prévu par 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 n'importe quelle "saveur" Ubuntu vous voulez transformer votre système en. Fondamentalement, si vous voulez un système de bureau Ubuntu normal, installez buntu-desktop .
Sudo apt-get update
Sudo apt-get install ubuntu-desktop
Cela devrait combler les lacunes, telles que ne pas avoir polkit, qui accompagne l'installation d'une interface graphique plus minimale sur votre système serveur. D'autre part, si vous préférez une interface graphique plus minimale, vous pouvez simplement installer ces packages polkit.
Pour plus d'informations, voir Comment utilisez-vous Ubuntu Server avec une interface graphique?
Sudo
avec authentification graphique.Si vous avez vraiment besoin d'exécuter des commandes en tant qu'utilisateur root, mais que vous obteniez une boîte de dialogue d'authentification graphique, vous rechercherez gksudo
( ou gksu
). Ceci est fourni par le gksu package. 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 en plus de 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 depuis le Alt+F2 (commande d'exécution) ou placez-le dans la ligne Exec=
d'un fichier .desktop
(ou de l'un des autres moyens par lesquels vous exécutez 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 depuis un terminal, car des commandes telles que Sudo ...
, où ...
est une application graphique, peuvent en réalité rompre les configurations par application des utilisateurs non-root les exécutant. (Heureusement, cela est réparable.) Sudo gedit
est particulièrement notoire.
Pour plus d'informations sur le problème rencontré avec Sudo
pour les applications graphiques et la procédure à suivre, voir:
man Sudo
pour les options -H
et -i
. Sudo -H ...
et Sudo -i ...
ne s'authentifient pas graphiquement, mais comme gksudo ...
, ils ne rencontrent pas les problèmes de Plain Sudo ...
.gksudo
fonctionne très bien pour exécuter des programmes graphiques et non graphiques. Vous devriez probablement l'utiliser.
Mais une alternative, 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
, une boîte de dialogue d'authentification graphique vous sera proposée. Si l'authentification réussit, touch /root/foo.txt
est exécuté et crée ( ou rafraîchissement ) foo.txt
dans le dossier /root
.
pkexec
utilisera un dialogue non graphique, nécessitant un terminal, au cas où il ne pourrait pas créer de dialogue graphique. Mais il est peu probable que cela se produise si vous l'exécutez via une installation fournie par votre environnement graphique Shell ou de bureau.pkexec
fonctionne-t-il uniquement pour les programmes non - graphiques? En fait, il exécute aussi des programmes graphiques, mais seulement 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 amont, avec des captures d'écran ), cette réponse et cette réponse pour certains détails, si tu es intéressé.Sudo
vs. polkit (quelques détails techniques, uniquement si cela vous intéresse) n nouveau gksu
/gksudo
utilisera polkit au lieu de Sudo
pour faire son travail , bien que cette version n’ait pas été largement adoptée. Je l’amène principalement à recommander le fichier README
dans son code source (écrit par Gustavo Noronha Silva), ce qui explique le Différences importantes entre Sudo
et polkit. Pour en citer brièvement:
PolicyKit résout le problème des applications 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" effectuées nécessitent une autorisation appropriée, gérée par le biais de Policykit.
4. Pourquoi maintenir gksu?
Donc, cela rend essentiellement gksu inutile, car les applications ne doivent plus 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 il existe des cas dans lesquels ce que vous voulez est en effet quelque chose qui exécute des programmes en tant que root.
Je pense que ces problèmes sont à la base de la situation:
gksu
/gksudo
.gksudo
actuellement dans Ubuntu est le traditionnel qui utilise Sudo
).Un moyen pratique consiste à créer un fichier .desktop
dédié ou à ajouter vos commandes à un fichier existant en demandant votre mot de passe via une interface graphique (gksu). Dans l'exemple ci-dessous, j'ajoute la commande permettant d'exécuter Gedit et Software Center avec les privilèges Sudo sur le lanceur Gedit. gksu
doit être installé pour utiliser cette configuration: Sudo apt-get install gksu
Copiez le Gedit .desktop file in
/usr/share/applications/to
~/.local/share/applications`:
cp /usr/share/applications/gedit.desktop ~/.local/share/applications/gedit.desktop
et ouvrez-le pour le modifier (faites-le glisser sur une fenêtre ouverte de gedit)
Recherchez la ligne: Actions = Window; Document;
Ajoutez les noms de vos commandes à la ligne (ce ne sont pas les noms que vous verrez dans votre interface, mais uniquement utilisés comme référence interne dans le fichier).
Actions=Window;Document;gedit;Ubuntu Software Center;
Ajoutez les sections correspondantes au bas du fichier:
[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;
Fermez le fichier et faites-le glisser sur le lanceur
Vous pouvez maintenant exécuter gedit et Software Center avec les privilèges Sudo: