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.

# 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é.

#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.

Partager l'article