Quelle est la différence entre Sudo et Su sous Linux?
Si vous utilisez Linux, vous avez probablement déjà vu des références à sudo et à su. Des articles ici sur How-To Geek et ailleurs incitent les utilisateurs Ubuntu à utiliser sudo et les autres utilisateurs de distributions Linux à utiliser su, mais quelle est la différence?
Sudo et su sont deux manières différentes d'obtenir des privilèges root. Chacune fonctionne de manière différente, et différentes distributions Linux utilisent différentes configurations par défaut..
L'utilisateur racine
Su et sudo sont tous deux utilisés pour exécuter des commandes avec des autorisations root. L'utilisateur root est fondamentalement équivalent à l'utilisateur administrateur sous Windows - l'utilisateur root dispose des autorisations maximales et peut faire n'importe quoi pour le système. Les utilisateurs normaux sous Linux fonctionnent avec des autorisations réduites. Par exemple, ils ne peuvent pas installer de logiciel ni écrire dans les répertoires système..
Pour faire quelque chose qui nécessite ces autorisations, 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 options supplémentaires. Vous devrez entrer le mot de passe du compte root. Cependant, ce n'est pas tout ce que fait la commande su - vous pouvez l'utiliser pour passer à n'importe quel compte d'utilisateur. Si vous exécutez le su bob commande, vous serez invité à entrer le mot de passe de Bob et le shell basculera sur son compte utilisateur.
Une fois que vous avez terminé d’exécuter des commandes dans le shell root, vous devez taper sortie quitter le shell root et revenir au mode privilèges limités.
Sudo exécute une seule commande avec les privilèges root. Quand vous exécutez commande sudo, le système vous demande le mot de passe de votre compte utilisateur actuel avant de lancer commander en tant qu'utilisateur root. Par défaut, Ubuntu conserve le mot de passe pendant quinze minutes et ne vous le demandera plus avant que les quinze minutes ne soient écoulées..
C'est une différence clé entre su et sudo. Su vous renvoie 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 bascule pas vers l'utilisateur root ni ne requiert un mot de passe utilisateur root séparé..
Ubuntu vs. Autres distributions Linux
La commande su est la méthode traditionnelle d’acquisition des autorisations root sur Linux. La commande sudo existe depuis longtemps, mais Ubuntu a été la première distribution Linux populaire à utiliser 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 tant que vous n'avez pas attribué de mot de passe au compte root..
Il y a plusieurs avantages à utiliser sudo au lieu de su par défaut. Les utilisateurs Ubuntu doivent uniquement fournir et mémoriser un seul mot de passe, tandis que Fedora et les autres distributions nécessitent de créer des mots de passe distincts pour les comptes utilisateur et root lors de 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 effectuer leur 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, y compris Linux Mint, utilisent également sudo au lieu de su par défaut.
Quelques astuces
Linux est flexible, il ne faut donc pas beaucoup de travail pour que su fonctionne de la même manière que 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 du mot de passe de votre compte utilisateur actuel..
Pour obtenir un shell root complet et interactif avec sudo, exécutez sudo -i.
Vous devrez fournir le mot de passe de votre compte utilisateur actuel au lieu du mot de passe du compte root..
Activation de l'utilisateur racine dans Ubuntu
Pour activer le compte d'utilisateur root sur Ubuntu, utilisez la commande suivante pour définir un mot de passe pour celui-ci. Gardez à l’esprit que Ubuntu recommande contre cela.
sudo passwd root
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 à partir d'une invite de connexion au terminal ou à l'aide de la commande su. Vous ne devriez jamais exécuter un environnement graphique complet en tant qu'utilisateur root - ceci est une pratique de sécurité très médiocre, et de nombreux programmes refuseront de fonctionner..
Ajout d'utilisateurs au fichier Sudoers
Seuls les comptes de type administrateur sous 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 autoriser un utilisateur à utiliser sudo en exécutant le programme visudo commande avec les privilèges root (donc exécutez su premier ou utiliser su -c).
Ajoutez la ligne suivante au fichier en remplaçant utilisateur avec le nom du compte utilisateur:
utilisateur ALL = (ALL: ALL) ALL
presse Ctrl-X et alors Y pour sauvegarder le fichier. Vous pourrez également ajouter un utilisateur à un groupe spécifié dans le fichier. Les utilisateurs des groupes spécifiés dans le fichier auront automatiquement les privilèges sudo.
Versions graphiques de Su
Linux prend également en charge 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 des autorisations root. presse Alt-F2 exécuter la commande à partir d'une boîte de dialogue d'exécution graphique sans lancer de terminal.
gksu nautilus
La commande gksu contient également quelques autres astuces: elle préserve les paramètres actuels de votre bureau. Ainsi, les programmes graphiques ne vous paraîtront pas déplacés si vous les lancez en tant qu'utilisateur différent. Des programmes tels que gksu sont le moyen privilégié de lancer des applications graphiques avec des privilèges root..
Gksu utilise un backend basé sur su ou sudo, selon la distribution Linux que vous utilisez.
Vous devriez maintenant être prêt à rencontrer à la fois su et sudo! Vous rencontrerez les deux si vous utilisez différentes distributions Linux.