4Aug

Quelle est la différence entre Sudo et Su sous Linux?

Si vous êtes un utilisateur Linux, vous avez probablement déjà vu des références à sudo et à su. Des articles ici sur How-To Geek et ailleurs instruisent les utilisateurs d'Ubuntu à utiliser sudo et d'autres utilisateurs de distributions Linux pour utiliser su, mais quelle est la différence?

Sudo et su sont deux façons différentes d'obtenir les privilèges root. Chacun fonctionne d'une manière différente, et différentes distributions Linux utilisent des configurations différentes par défaut.

L'utilisateur racine

su et sudo sont utilisés pour exécuter des commandes avec des permissions root. L'utilisateur root est fondamentalement équivalent à l'utilisateur administrateur sous Windows - l'utilisateur root a le maximum d'autorisations et peut faire n'importe quoi sur le système. Les utilisateurs normaux sous Linux s'exécutent avec des autorisations réduites - par exemple, ils ne peuvent pas installer de logiciel ou écrire dans les répertoires système.

Pour faire quelque chose qui nécessite ces permissions, vous devrez les acquérir avec su ou sudo.

Su VS Sudo

La commande su bascule vers le super utilisateur - ou l'utilisateur root - lorsque vous l'exécutez sans option supplémentaire. Vous devrez entrer le mot de passe du compte root. Ce n'est pas tout ce que la commande su fait, cependant - vous pouvez l'utiliser pour passer à n'importe quel compte d'utilisateur. Si vous exécutez la commande suffixe , vous serez invité à entrer le mot de passe de Bob et le shell basculera vers le compte utilisateur de Bob.

Une fois que vous avez terminé d'exécuter les commandes dans le shell racine, vous devez taper quitter pour quitter le shell racine et revenir en mode limité.

Sudo exécute une seule commande avec les privilèges root. Lorsque vous exécutez la commande sudo, le système vous demande le mot de passe de votre compte utilisateur actuel avant d'exécuter la commande en tant qu'utilisateur root. Par défaut, Ubuntu se souvient du mot de passe pendant quinze minutes et ne demandera plus de mot de passe jusqu'à ce que les quinze minutes soient écoulées.

Il s'agit d'une différence clé entre su et sudo. Su vous permet d'accéder au compte utilisateur root et requiert le mot de passe du compte root. Sudo exécute une seule commande avec les privilèges root - il ne passe pas à l'utilisateur root ou ne nécessite pas un mot de passe root distinct.

Ubuntu vs autres distributions Linux

La commande su est la manière traditionnelle d'acquérir des permissions root sous Linux. La commande sudo existe depuis longtemps, mais Ubuntu a été la première distribution Linux populaire à aller sudo uniquement par défaut. Lorsque vous installez Ubuntu, le compte root standard est créé, mais aucun mot de passe ne lui est attribué.Vous ne pouvez pas vous connecter en tant que root avant d'avoir attribué un mot de passe au compte root.

Il y a plusieurs avantages à utiliser sudo au lieu de su par défaut. Les utilisateurs d'Ubuntu doivent seulement fournir et se souvenir d'un seul mot de passe, alors que Fedora et d'autres distributions exigent que vous créiez des mots de passe de compte root et utilisateur séparés pendant l'installation.

Un autre avantage est qu'il décourage les utilisateurs de se connecter en tant qu'utilisateur root - ou d'utiliser su pour obtenir un shell root - et de garder le shell root ouvert pour faire son travail normal. L'exécution de moins de commandes en tant que root augmente la sécurité et empêche les modifications accidentelles à l'échelle du système.

Les distributions basées sur Ubuntu, incluant Linux Mint, utilisent aussi sudo au lieu de su par défaut.

Quelques astuces

Linux est flexible, donc il ne faut pas beaucoup de travail pour que su fonctionne comme sudo - ou vice versa.

Pour exécuter une seule commande en tant qu'utilisateur root avec su, exécutez la commande suivante:

su -c 'commande'

Ceci est similaire à l'exécution d'une commande avec sudo, mais vous aurez besoin du mot de passe du compte root au lieu de votre utilisateur actuelmot de passe du compte.

Pour obtenir un shell racine interactif complet avec sudo, exécutez sudo -i.

Vous devrez fournir le mot de passe de votre compte actuel à la place du mot de passe du compte root.

Activation de l'utilisateur racine dans Ubuntu

Pour activer le compte utilisateur racine sur Ubuntu, utilisez la commande suivante pour définir un mot de passe. Gardez à l'esprit que Ubuntu recommande contre cela.

sudo passwd racine

Sudo vous demandera le mot de passe de votre compte utilisateur actuel avant de pouvoir définir un nouveau mot de passe. Utilisez votre nouveau mot de passe pour vous connecter en tant que root depuis une invite de connexion au terminal ou avec la commande su. Vous ne devez jamais exécuter un environnement graphique complet en tant qu'utilisateur root. Il s'agit d'une pratique de sécurité très médiocre et de nombreux programmes refusent de fonctionner.

Ajout d'utilisateurs au fichier Sudoers

Seuls les comptes de type administrateur dans Ubuntu peuvent exécuter des commandes avec sudo. Vous pouvez modifier le type d'un compte d'utilisateur à partir de la fenêtre de configuration des comptes d'utilisateurs.

Ubuntu désigne automatiquement le compte utilisateur créé lors de l'installation en tant que compte administrateur.

Si vous utilisez une autre distribution Linux, vous pouvez accorder à un utilisateur l'autorisation d'utiliser sudo en exécutant la commande visudo avec les privilèges root( exécutez donc su en premier ou utilisez su -c ).

Ajoutez la ligne suivante au fichier, en remplaçant utilisateur par le nom du compte utilisateur:

utilisateur ALL =( ALL: ALL) ALL

Appuyez sur Ctrl-X puis Y pour enregistrer le fichier. Vous pouvez également ajouter un utilisateur à un groupe spécifié dans le fichier. Les utilisateurs des groupes spécifiés dans le fichier auront automatiquement des privilèges sudo.

Les versions graphiques de Su

Linux supportent également les versions graphiques de su, qui demandent votre mot de passe dans un environnement graphique. Par exemple, vous pouvez exécuter la commande suivante pour obtenir une invite de mot de passe graphique et exécuter le navigateur de fichiers Nautilus avec les autorisations root. Appuyez sur Alt-F2 pour exécuter la commande à partir d'une boîte de dialogue d'exécution graphique sans lancer de terminal.

gksu nautilus

La commande gksu a également quelques autres astuces: elle préserve vos paramètres de bureau actuels, de sorte que les programmes graphiques ne semblent pas hors de propos lorsque vous les lancez en tant qu'utilisateur différent. Des programmes tels que gksu sont le moyen préféré de lancer des applications graphiques avec des privilèges root.

Gksu utilise un backend su ou sudo, en fonction de la distribution Linux que vous utilisez.

Vous devriez maintenant être prêt à rencontrer su et sudo! Vous rencontrerez les deux si vous utilisez différentes distributions Linux.