su ou sudo ?

Mes notes et quelques informations à propos de su et sudo, pour élever vos privilèges dans un système Linux.

Les commandes su et sudo sont toutes deux utilisées pour accéder à un compte superutilisateur dans les systèmes d’exploitation basés sur Unix/Linux. Cependant, ces commandes présentent des différences essentielles.

SU et SU -#

Acronyme de “substitute user”, la commande su permet de basculer vers un autre compte utilisateur, généralement “root”. L’authentification nécessite le mot de passe du compte cible, tandis que le système d’authentification PAM de Linux est utilisé pour vérifier les informations.

Vous devez connaître le mot de passe de l’utilisateur pour pouvoir s’y authentifier. Ainsi, en faisant un su root, le mot de passe du compte “root” vous sera demandé. SU utilise le système “PAM” interne de Linux pour authentifier les comptes.

Bien que su soit pratique, il conserve l’UID et le GID du compte original, ce qui peut provoquer des confusions dans le répertoire de travail et les identifiants. Pour une connexion complète au compte cible, su - est recommandé. Le - indique --login, assurant une connexion authentique.

bash
# Connexion à l'utilisateur "bob" depuis son compte personnel
su bob

# Connexion "complète" avec l'utilisateur julien
su - julien

Le - (trait d’union) est le diminutif de --login. En forçant cet attribut, vous vous assurez d’être vraiment l’utilisateur souhaité et pas dans un état de “prêt de compte”.

SUDO#

L’usage de la commande sudo exige l’installation du paquet “sudo” sur la machine. Cette commande, omniprésente dans la documentation et les saisies de commandes, octroie à l’utilisateur deux capacités : l’exécution de commandes avec des privilèges élevés et la possibilité d’opérer comme un autre utilisateur spécifié.

bash
#Debian/Ubuntu
apt install sudo

#Archlinux
pacman -S sudo

#Fedora/CentOS
yum install sudo

Vous avez forcément vu “sudo” un peu partout, que ce soit dans des documentations que votre collègue en train de saisir des commandes. Saisir une commande avec sudo, c’est permettre deux choses à un utilisateur :

  • Exécuter des commandes avec des droits dits “élevés”, exécuter des commandes dont il n’aurait pas eu l’accès avant ;
  • Exécuter des commandes grâce à un utilisateur spécifié, avec les droits de l’utilisateur spécifié.

sudo va au-delà de su en intégrant des plugins pour la sécurité, l’authentification forte, la journalisation et l’exploitation de comptes LDAP. Pour activer sudo, l’utilisateur doit appartenir au groupe “sudo”, modifiable via usermod -aG sudo nom_utilisateur.

Plusieurs exploitations de sudo sont visibles : sudo -i ; sudo su ; sudo command1… Elles se valent presque toutes.

  • sudo -i se connecte vraiment au compte utilisateur “root” et utilisera son .bashrc et son .profile.
  • sudo su est une combinaison de deux commandes différentes : “sudo” et “su”. En tapant “sudo su”, vous exécutez la commande “su” en tant que root. Cela signifie que vous devrez entrer votre propre mot de passe d’utilisateur, pas celui du compte root.
  • sudo command : exécute la commande souhaitée avec des droits privilégiés (si vous faites partie du groupe “sudo”)

Pour aller plus loin avec sudo#

En plus de sa flexibilité, sudo offre un contrôle précis en restreignant les privilèges pour certaines commandes. Cette fonctionnalité sépare les tâches d’administration des opérations courantes, réduisant les abus potentiels. Cependant, la possibilité de ne pas saisir le mot de passe à chaque fois exige de la prudence pour éviter les erreurs. De plus, sudo peut s’intégrer à des politiques de sécurité sophistiquées et permet l’utilisation de plugins pour des besoins spécifiques.

Une autre caractéristique importante de sudo est la possibilité de configurer des commandes spécifiques à exécuter sans avoir besoin de saisir un mot de passe à chaque fois. Bien que cela puisse améliorer l’efficacité en évitant des saisies répétées, il est essentiel de l’utiliser avec précaution. Cela peut augmenter les risques d’erreurs, surtout si les commandes spécifiées ont des conséquences importantes.

Outre ces aspects, sudo peut être intégré avec des politiques de sécurité sophistiquées, permettant des authentifications à deux facteurs ou des contrôles d’accès basés sur le contexte. L’utilisation de plugins étend les possibilités de personnalisation pour répondre aux besoins spécifiques de l’environnement.

Et vous ?#

En conclusion, l’utilisation de sudo est généralement privilégiée à su pour sa flexibilité et sa sécurité renforcée. Il offre un équilibre entre les tâches d’administration et l’atténuation des erreurs potentielles. Pour des raisons de sécurité, restreindre l’utilisation des privilèges au strict nécessaire et configurer les politiques sudo s’impose. Bien que su ait son utilité, sudo représente une approche moderne et sécurisée pour gérer les privilèges sur les systèmes Linux.

Pour ma part, j’utilise sudo dès que possible. Selon les serveurs et le besoin de sécurité, j’enlève le paquet sudo et j’utilise directement le compte root, en m’y connectant via su.

Articles similaires

#blog Aucune image
#vagrant

Premiers pas avec Vagrant

Utilisateurs (ou futurs) de Vagrant, cette documentation vous permet de prendre en main rapidement l'outil et de comprendre son utilité.

Lire l'article
#linux Aucune image
#kernel

Compiler et installer le kernel stable 6.12.x

Cette page vous donne une méthode simple pour compiler un kernel Linux, sous Debian, avec les options minimales et fonctionnelles pour tous les systèmes x86_64.

Lire l'article
#blog Aucune image
#linux

Pourquoi je suis passé de Windows 11 à Linux

Mon retour d'expérience du passage de Windows à Linux. Pourquoi passer d'un système à l'autre ? Je vous explique les différentes étapes de ma démarche.

Lire l'article

Derniers dans #blog

Nouvelle version du site, v8

Nouvelle version du site, v8

La nouvelle version v8 du site en 2026 : simplification et minimalisme après 5 ans passés sur des serveurs virtuels.

Lire l'article
#blog Aucune image

Le principe du DevOps

Beaucoup de choses peuvent se cacher derrière un mot, et DevOps en fait partie. Que veut dire ce mot, qu'implique-t-il ?

Lire l'article
#blog Aucune image

Et si on s'y remettait ?!

Après 10 ans de blogs et la fermeture de ComputerZ Solutions en 2022, pourquoi je repars sur un tout nouveau site.

Lire l'article