Comment obtenir une invite de mot de passe GUI sudo sans ligne de commande?

Actuellement, pour toutes mes commandes nécessitant un access root, je dois les saisir sur une ligne de commande.

J’aimerais que l’interface graphique m’invite à saisir mon mot de passe, lorsque sudo est requirejs, 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 à partir d’une installation de serveur.

J’appendai 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 Ubuntu Software Center.

TL; DR: essayez d’installer les policykit-1 et policykit-1-gnome .

Vous avez probablement besoin de polkit (aka PolicyKit).

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.

Lorsque vient le temps d’exécuter une tâche nécessitant des privilèges root, ils utilisent polkit pour effectuer les actions requirejses. 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 centre logiciel a pour comportement normal de l’appeler simplement en tant que software-center , il ne vous demandera pas de vous authentifier à ce moment-là, mais lorsque vous lui demanderez d’installer ou de supprimer un logiciel, il vous le demandera (sous forme graphique). s’authentifier.

Votre description semble indiquer que votre système a démarré en tant que système Ubuntu Server sans interface graphique, puis que vous avez installé une interface graphique. Probablement le policykit-1 Installez policykit-1 et policykit-1-gnome Installez policykit-1-gnome les paquets 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 être capable de lancer:

 software-center 

(Ou sélectionnez le Centre de logiciel graphiquement 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éta-paquet 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 Installer ubuntu-desktop .

 sudo apt-get update sudo apt-get install ubuntu-desktop 

Cela devrait combler les lacunes, comme l’absence de 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 exécuter Ubuntu Server avec une interface graphique?

sudo avec authentification graphique.

Si vous avez vraiment besoin d’exécuter des commandes en tant gksudo root, mais obtenez une boîte de dialog d’authentification graphique, vous recherchez gksudo ( ou gksu ). Ceci est fourni par le gksu Installez gksu paquet. C’est une interface graphique pour sudo .

En général, gksudo est 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 gksudo . Vous pouvez l’exécuter à partir de la boîte de dialog Alt + F2 (commande d’exécution) ou le placer dans la ligne Exec= d’un fichier .desktop (ou de tout autre moyen d’exécuter des programmes graphiques).

Notez que vous devriez envisager d’utiliser gksudo pour exécuter des applications graphiques en tant gksudo root, même lorsque vous les exécutez depuis un terminal, car des commandes telles que sudo ...... est une application graphique peuvent en réalité rompre les configurations par application du système non les utilisateurs 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 sur la marche à suivre, voir:

  • Pourquoi les utilisateurs ne devraient-ils jamais utiliser sudo normal pour lancer des applications graphiques?
  • RootSudo dans le wiki de l’aide Ubuntu
  • man sudo pour les options -H et -i . sudo -H ... et sudo -i ... ne s’authentifient pas graphiquement, mais comme gksudo ... ils n’ont pas les problèmes de la simple sudo ...

Il y a aussi une manière graphique basée 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.

pkexec est une alternative, utilisant polkit à la place de sudo et ne fonctionnant que pour des programmes non graphiques .

Par exemple, si vous exécutez pkexec touch /root/foo.txt , une boîte de dialog d’authentification graphique vous sera pkexec touch /root/foo.txt et, si l’authentification réussit, touch /root/foo.txt est exécuté pour créer ( ou foo.txt ) foo.txt dans le dossier /root .

  • pkexec utilisera un dialog non graphique, nécessitant un terminal, au cas où il ne pourrait pas créer de dialog graphique. Mais il est peu probable que cela se produise si vous l’exécutez via une installation fournie par votre environnement graphique ou l’environnement de bureau.
  • Pourquoi pkexec fonctionne-t-il uniquement pour les programmes non graphiques? En réalité, 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 en amont, avec des captures d’écran ), cette réponse et cette réponse pour plus de détails, si cela vous intéresse.

sudo vs polkit (quelques détails techniques, uniquement si cela vous intéresse)

Un 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 les 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 sans privilège. Toutes les “actions” effectuées nécessitent une autorisation appropriée, gérée par le biais de Policykit.

4. Pourquoi maintenir le gksu?

Donc, 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 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 vous êtes dans ces situations:

  • Software Center est conçu pour utiliser polkit pour l’élévation de privilèges, de sorte que seules des actions spécifiques doivent être effectuées en tant que root. Pour cela, il vous faut polkit, qui était manquant (ou endommagé) sur votre système.
  • Comme il est conçu pour utiliser polkit, aucun lanceur préconçu ne permet de démarrer le Centre logiciel en tant que root. polkit évite d’avoir à exécuter des outils d’administration graphiques en tant que root, la plupart du temps.
  • Mais parfois, vous avez vraiment besoin de lancer un programme graphique en tant que root. Dans ce cas, vous pouvez utiliser gksu / gksudo .
    (… Qui peut éventuellement utiliser polkit dans les coulisses – mais le gksudo actuellement à Ubuntu est le traditionnel qui utilise le sudo ).

Un moyen pratique est de créer un fichier .desktop dédié ou d’append 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. Vous devez avoir installé gksu pour utiliser cette configuration: sudo apt-get install gksu

  1. Copiez le .desktop file in 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)

  2. Recherchez la ligne: Actions = Window; Document;

  3. 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; 
  4. 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; 
  5. Fermez le fichier et faites-le glisser sur le lanceur

Vous pouvez maintenant exécuter gedit et le centre logiciel avec les privilèges sudo:

entrez la description de l'image ici

entrez la description de l'image ici