Comment exécuter des programmes en tant que superutilisateur (root) depuis le lanceur sous Linux ?

Dernière mise à jour: 15 Octobre 2026
  • L'utilisateur root offre un contrôle total, mais Ubuntu et d'autres distributions le désactivent par défaut afin de réduire les risques.
  • Sudo vous permet d'élever les privilèges au cas par cas et conserve un historique des personnes qui exécutent chaque commande.
  • Pour les applications graphiques, il existe des utilitaires tels que kdesu, gksu, gksudo ou pkexec, qui peuvent être utilisés dans les lanceurs .desktop.
  • La sécurité repose sur l'utilisation du principe du moindre privilège, l'évitement des scripts non fiables et l'audit des accès élevés.

Ingénieur système en charge de la gestion des serveurs dans un centre de données moderne.

Sous Windows, beaucoup d'utilisateurs ont l'habitude d'appuyer sur Maj+Entrée ou Maj+clic gauche pour ouvrir un programme avec des privilèges élevés depuis le menu Démarrer. Sous Linux, la procédure est plus complexe, car la sécurité repose sur l'utilisation de root, de sudo et d'assistants graphiques , et chaque environnement de bureau possède ses propres outils. Il existe néanmoins des méthodes relativement simples pour lancer des applications en tant que superutilisateur (root) depuis un lanceur d'applications, un raccourci ou le menu des applications, à condition de bien comprendre les implications de cette opération.

L'élément clé est que l'utilisateur root dispose d' un contrôle absolu sur le système , et les distributions modernes, notamment Ubuntu et ses dérivés, désactivent généralement la connexion directe. Par conséquent, il est rare de se connecter en tant que root ; on préfère plutôt élever ses privilèges ponctuellement à l'aide de `sudo` ou d'une interface graphique demandant le mot de passe. Si l'on souhaite qu'une icône de lanceur permette d'ouvrir une application avec ces privilèges, il faudra modifier la commande qu'elle exécute ou créer un lanceur spécifique.

Que signifie réellement exécuter un programme en tant que root ?

Poste de travail d'administration système avec plusieurs écrans affichant des terminaux Linux.

Sous Linux, le compte root (UID 0) dispose de privilèges illimités . Il peut lire, modifier ou supprimer n'importe quel fichier, installer des logiciels, modifier la configuration du noyau et contrôler les processus de n'importe quel utilisateur. Cela en fait un outil extrêmement puissant, mais aussi très risqué en cas d'utilisation imprudente. Une simple faute de frappe avec les commandes `rm` ou `mv` peut rendre le système inutilisable, et un script malveillant exécuté en tant que root peut installer des portes dérobées, modifier les mesures de sécurité ou voler des données sans laisser de traces.

Sous Ubuntu, le compte root n'a pas de mot de passe par défaut et la connexion directe est interdite. Le principe est d'utiliser son compte utilisateur habituel et d'utiliser `sudo` pour des tâches spécifiques . `sudo` permet d'exécuter une commande en tant qu'autre utilisateur, généralement root, après s'être authentifié avec son propre mot de passe si l'on appartient au groupe `sudo`. Cela limite la durée d'exposition de votre compte et conserve un historique des actions effectuées.

Toutefois, dans des situations très spécifiques, comme la récupération d'un système endommagé, le travail dans des environnements restreints ou la configuration de services nécessitant un accès permanent, l'activation temporaire des privilèges root peut être envisagée. Il est généralement recommandé de les désactiver dès que le besoin s'en fait sentir. Moins vous passez de temps en tant que root, meilleure sera la stabilité et la sécurité de votre machine.

Risques liés à l'utilisation de la racine sans précaution

L'un des dangers les plus évidents est la suppression accidentelle de fichiers essentiels . En tant qu'administrateur, aucune restriction de permissions n'est appliquée ; une commande comme `sudo rm -rf /` peut effacer le système sans avertissement. De plus, il n'y a généralement pas de corbeille pour ces suppressions, la récupération des données peut donc nécessiter des outils d'analyse forensique complexes, voire une réinstallation complète du système.

Un autre risque réside dans l'exécution de scripts non fiables. Si vous exécutez du code téléchargé depuis un site web avec des privilèges élevés, vous lui donnez en quelque sorte un accès illimité à votre système . Même si le script semble inoffensif, il pourrait contenir des instructions destructrices ou installer un logiciel malveillant disposant des privilèges d'administrateur. Il est donc conseillé d'examiner le code, d'utiliser des sources officielles, de vérifier les sommes de contrôle et de le tester dans une machine virtuelle ou un conteneur avant de le déployer en production.

  Correctifs Linux pour la prise en charge de RAS sur les plateformes Qualcomm

Il existe également un problème de traçabilité. Lorsque vous utilisez `sudo`, le système enregistre la commande, l'utilisateur qui l'a exécutée et l'heure dans `/var/log/auth.log`, `/var/log/secure` ou `journalctl` . Si vous vous connectez directement en tant que root, toutes les actions apparaissent sous son nom, et vous perdez la possibilité de savoir qui a effectué chaque modification. Dans les environnements comportant plusieurs administrateurs ou soumis aux normes d'audit ISO 27001, PCI DSS ou autres, ce manque de traçabilité constitue une faiblesse majeure.

Moyens d'obtenir des privilèges depuis le terminal

Capture d'écran détaillée des terminaux Ubuntu montrant les journaux système et la surveillance des processus.

La méthode la plus courante et recommandée consiste à faire précéder une commande de `sudo`. Par exemple, pour mettre à jour des paquets, redémarrer un service ou modifier un fichier protégé, `sudo` vous demandera votre mot de passe utilisateur (et non celui de l'administrateur). Après authentification, la commande sera exécutée avec des privilèges élevés. Si vous souhaitez l'exécuter avec un autre compte utilisateur, utilisez `sudo -u nom_utilisateur commande` . Enfin, si vous avez oublié d'utiliser `sudo`, vous pouvez répéter la dernière commande avec `sudo !! `.

Lorsque vous devez effectuer plusieurs tâches d'administration à la suite, il peut être pratique d'ouvrir une session root temporaire. La commande `sudo -i` simule une connexion root complète, charge l'environnement root et vous place dans votre répertoire personnel. Les commandes `sudo su` et `sudo su -` fonctionnent également, mais `sudo -i` est généralement plus fiable. Pour quitter cette session, il suffit de taper `exit`. Il est déconseillé de laisser une session root ouverte sans surveillance.

La commande `su`, quant à elle, permet de changer d'utilisateur. `su - root` ou simplement `su -` adoptent également les variables d'environnement de l'utilisateur cible, tandis que `su root` ou `su` sans tiret conserve une partie de l'environnement précédent. Cette différence explique les erreurs telles que « commande introuvable » : les commandes d'administration se trouvent généralement dans `/usr/local/sbin`, `/usr/sbin` et `/sbin`, des chemins qui ne figurent pas toujours dans le PATH d'un utilisateur standard. Si vous utilisez `su` sans tiret, vous devrez saisir le chemin complet ou passer à `su -` pour hériter du PATH de l'utilisateur root.

Pour activer un mot de passe pour l'utilisateur root, utilisez la commande `sudo passwd root` . Ubuntu déconseille cette pratique, mais autorise techniquement l'utilisation d'un mot de passe pour root. Pour verrouiller le compte, utilisez `sudo passwd -l root` , et pour le déverrouiller, `sudo passwd -u root`. En SSH, l'accès direct à root est contrôlé par la directive `PermitRootLogin` dans le fichier `/etc/ssh/sshd_config`. Il est plus sûr de la paramétrer sur `no` ou, au maximum, sur `prohibit-password` afin d'autoriser uniquement les mots de passe SSH. Enfin, vous devrez redémarrer le service SSH.

Configurez les pulls avec précision

Le fichier `/etc/sudoers` définit qui peut utiliser `sudo` et dans quel but. Il est préférable de ne pas le modifier manuellement ; la méthode recommandée consiste à utiliser `sudo visudo` , qui verrouille le fichier et vérifie sa syntaxe avant de l'enregistrer. La règle de base se présente sous la forme `hôte utilisateur=(utilisateur_cible)`. Par exemple, `bob ALL=(ALL) ALL` autorise `bob` à exécuter n'importe quelle commande en tant que superutilisateur (root) sur n'importe quelle machine. Les groupes peuvent également être utilisés, comme `%admin ALL=(ALL) ALL`.

  Noyau Liquorix sous Linux : noyau optimisé pour les ordinateurs de bureau et les jeux.

Pour accorder des permissions plus précises, on utilise des alias. `User_Alias ​​ADMINS = alice, bob` regroupe les utilisateurs, et `Cmnd_Alias ​​LOCATE = /usr/sbin/updatedb` regroupe les commandes. Ensuite, `ADMINS ALL = LOCATE` permet aux utilisateurs autorisés d'exécuter uniquement les commandes correspondantes. Des alias comme `NETWORKING` peuvent être créés pour des commandes telles que `route`, `ifconfig`, `ping`, `iptables`, etc. Ceci applique le principe du moindre privilège sans accorder un accès root complet.

L' option NOPASSWD permet d'exécuter certaines commandes sans mot de passe, par exemple `pi ALL=(ALL)`. NOPASSWD : ALL. C'est pratique, mais dangereux en cas d'abus. De plus, chaque utilisation de `sudo` est enregistrée, ce qui facilite le suivi des accès et le dépannage. En cas de dysfonctionnement, la consultation de ces journaux peut indiquer quelle modification récente a provoqué la panne.

Lancer des applications graphiques en tant que superutilisateur depuis le lanceur

Vue d'un terminal Linux affichant la liste des fichiers du répertoire racine /.

Pour les programmes dotés d'une interface graphique, l'utilisation de `sudo` seule ne fonctionne généralement pas correctement, car aucun terminal n'est présent pour demander le mot de passe. C'est là qu'interviennent les assistants graphiques . Sous KDE, on trouve `kdesu` : si vous connaissez la commande qui lance l'application, vous pouvez exécuter `kdesu cette_commande`. L'option « Exécuter la commande » du menu KDE permet également de lancer une application en tant qu'autre utilisateur en saisissant ses identifiants. Dans les environnements GNOME et GTK , `gksu` et `gksudo` étaient largement utilisés ; ce sont des interfaces graphiques pour `sudo` ou `su`. Par exemple, `gksu synaptic` ou `gksudo gparted` ouvrent l'application et demandent le mot de passe.

Dans les systèmes modernes, l'utilisation de gksu est déconseillée, voire obsolète. Son alternative habituelle est pkexec , basé sur PolicyKit, qui permet aux programmes de s'exécuter avec des privilèges définis selon des politiques prédéfinies. De nombreux lanceurs actuels utilisent pkexec pour les tâches d'administration. Le principe est le même : l'utilisateur n'a pas besoin d'ouvrir de terminal, mais le système valide l'autorisation de manière contrôlée.

Pour créer un raccourci dans le lanceur, modifiez un fichier .desktop . La ligne `Exec` est essentielle. Pour exécuter le programme en tant que superutilisateur (root), utilisez une ligne comme `Exec=gksu /chemin/vers/programme`, `Exec=kdesu /chemin/vers/programme` ou `Exec=pkexec /chemin/vers/programme`. Si vous utilisez directement `sudo`, le lanceur doit avoir l'option `Terminal=true` ou vous devez configurer une interface graphique pour demander l'autorisation. Vous pouvez également essayer d'appuyer sur Alt+F2 et de saisir l'utilitaire suivi du nom du programme, par exemple `gksu synaptic`. Sous KDE, `kdesu synaptic` ou l'option permettant d'exécuter le programme en tant qu'autre utilisateur remplit une fonction similaire.

Il existe une alternative classique appelée consolehelper , une interface pour les applications graphiques. Vous créez un lien symbolique, par exemple /usr/bin/xterm-root, pointant vers /usr/sbin/consolehelper. Ensuite, vous configurez PAM en créant le fichier /etc/pam.d/xterm-root avec les paramètres d'authentification, de compte et de session définis par config-util. Puis, vous définissez le fichier /etc/security/console.apps/xterm-root avec USER=root et PROGRAM=/usr/bin/xterm. Lorsque vous exécutez xterm-root, consolehelper vous invite à vous authentifier via PAM et lance xterm en tant que root. Si vous rencontrez l'erreur « Connexion Xlib à :0.0 refusée par le serveur », la commande xhost local:root peut résoudre le problème.

Dans tous les cas, l'ouverture d'applications graphiques en tant que superutilisateur (root) présente des inconvénients : elle modifie les variables d'environnement, peut perturber le bus de session, affecter Wayland ou X11 et créer des fichiers appartenant à l'utilisateur dans votre répertoire personnel. Il est préférable de l'utiliser uniquement pour des outils d'administration spécifiques et de les fermer dès que vous avez terminé. Évitez de naviguer sur Internet ou d'ouvrir des documents suspects en tant que superutilisateur , car toute faille de sécurité exploitée bénéficierait de privilèges complets.

Exemples courants de tâches nécessitant un accès root

De nombreuses opérations quotidiennes nécessitent des privilèges élevés. La gestion des paquets avec apt, zypper, dnf ou yum requiert souvent sudo. Par exemple : `sudo apt update` , `sudo apt install firefox` ou `sudo zypper install docker-ce`. Il en va de même pour les services système : `sudo systemctl restart apache2`, `sudo systemctl restart ssh` ou `sudo systemctl restart nginx`. Pour modifier les comptes utilisateurs, utilisez `sudo usermod`, et pour changer le propriétaire d'un fichier, utilisez `sudo chown`. La modification des fichiers de configuration critiques, tels que `/etc/ssh/sshd_config`, requiert également les privilèges root si elle est effectuée avec nano, vim ou gedit.

  Comment réparer GRUB sans LiveCD, étape par étape

Vous n'avez pas besoin de `sudo` pour les commandes qui se contentent de lire des informations ou de ne pas modifier le système, comme `zypper repos` ou `systemctl status NetworkManager`. Utiliser `sudo` systématiquement par habitude est une mauvaise pratique. Il est préférable de n'élever les privilèges que lorsque la tâche l'exige , puis de revenir à l'utilisateur normal dès que possible.

Meilleures pratiques lors de l'utilisation de privilèges élevés

Gros plan sur une baie de serveurs éclairée en bleu dans un centre de données.

Le principe du moindre privilège doit guider toutes vos actions. Utilisez `sudo` pour les commandes individuelles autant que possible, évitez les sessions root persistantes sauf en cas d'absolue nécessité, et quittez-les dès que vous avez terminé. N'exécutez pas de scripts provenant de sources inconnues en tant que root ; examinez le code au préalable, téléchargez-le depuis les dépôts officiels ou des projets réputés, vérifiez les sommes de contrôle et testez-le dans un environnement isolé en cas de doute. Un sain scepticisme est de mise lorsqu'on manipule du code tiers disposant de privilèges complets.

Il est également conseillé de configurer les droits sudo de manière granulaire, en ne se fiant pas uniquement au groupe sudo pour toutes les opérations, et de tenir à jour les journaux d'activité. Si vous administrez des serveurs, consultez les fichiers `/var/log/auth.log`, `/var/log/secure` ou utilisez `journalctl -xe` pour détecter les abus. Dans les environnements multi-utilisateurs, il est essentiel de savoir qui a exécuté chaque commande pour garantir la traçabilité et la conformité aux réglementations de sécurité.

Activer et désactiver le root avec un en-tête

Si vous décidez d'activer l'accès root, définissez un mot de passe avec `sudo passwd root`, utilisez-le uniquement pour les tâches essentielles, puis verrouillez à nouveau le compte. Pour désactiver la connexion SSH directe, modifiez le fichier `sshd_config` et définissez `PermitRootLogin no` ou `prohibit-password`, puis redémarrez SSH. Pour verrouiller le compte localement, utilisez `sudo passwd -l root`. Pour le déverrouiller, utilisez `sudo passwd -u root`. Ces mesures réduisent la surface d'attaque et empêchent les attaques par force brute contre le compte disposant des privilèges les plus élevés.

Dans la plupart des cas, la réponse pratique à la question initiale est oui : vous pouvez lancer un programme depuis le lanceur avec les privilèges root, soit en utilisant un utilitaire graphique comme kdesu, gksu, gksudo ou pkexec, soit en créant un fichier .desktop contenant la commande appropriée. Cependant, il est déconseillé de configurer cela pour n'importe quelle application. Il est préférable d'utiliser des lanceurs d'administration spécifiques, clairement nommés, et de ne les utiliser qu'en cas de besoin.

L'essentiel à retenir est que le privilège root n'est pas un jouet, et que la commande sudo existe précisément pour vous donner plus de pouvoir sans transformer chaque clic en un risque permanent. Si vous devez lancer une application graphique en tant que superutilisateur, privilégiez les programmes nécessitant un mot de passe, vérifiez que l'application en a réellement besoin et limitez son utilisation aux tâches d'administration. Ainsi, vous profiterez de la simplicité du lanceur sans sacrifier la sécurité qui fait la force de Linux.