Les différences entre Su, Sudo Su, Sudo -s et Sudo -i

Les différences entre Su, Sudo Su, Sudo -s et Sudo -i

⌛ Reading Time: 6 minutes

Il existe de nombreuses façons d’obtenir une session root dans le terminal Linux. Cela peut créer une certaine confusion, car la plupart des utilisateurs débutants qui cherchent à obtenir des privilèges root peuvent ne pas savoir comment chaque commande peut obtenir un accès root, en quoi elles sont différentes et quand ces différences sont importantes. Ici, nous démontons chacune des nombreuses commandes différentes utilisées pour obtenir un accès root dans un terminal, expliquons comment elles obtiennent root, quand les utiliser et tout le reste.

su

Les su La commande remplace l’utilisateur actuel que le système utilise dans le shell.

Vous pouvez passer à n’importe quel utilisateur en tapant su et en ajoutant un nom d’utilisateur après. Cela indiquera au système de basculer (et essentiellement de se déconnecter) de l’utilisateur actuel à celui spécifié. Alternativement, le su commande peut obtenir un accès root en entrant su sans rien spécifier après la commande.

“su” est mieux utilisé lorsqu’un utilisateur souhaite un accès direct au compte root sur le système. ça ne passe pas sudo ou quelque chose comme ça. Au lieu de cela, vous êtes invité à entrer le mot de passe de l’utilisateur root parce que vous vous y connectez littéralement. De plus, d’autres moyens d’obtenir un accès root n’ont pas l’avantage d’accéder également au répertoire de base racine et à l’environnement racine.

sudo su

Cette commande demande le mot de passe de l’utilisateur actuel par opposition à root.

Linuxsudo Sudosu

C’est essentiellement la même chose que de courir su dans le shell, à l’exception d’une différence cruciale. Au lieu de dire au système de « changer d’utilisateur » directement, vous lui dites d’exécuter la commande « su » en tant que root. Lorsque sudo su est exécuté, « .profile », « .bashrc » et « /etc/profile » seront lancés, un peu comme lorsque vous exécutez su (ou su root). Si une commande est exécutée avec sudo devant lui, les privilèges root lui sont attribués.

Bien qu’il n’y ait pas une grande divergence entre “sudo su” et “su”, sudo su est toujours une commande très utile pour une raison importante : lorsqu’un utilisateur exécute « su » pour obtenir un accès root sur un système, il doit connaître le mot de passe root. La racine est donnée avec sudo su en demandant le mot de passe de l’utilisateur actuel. Cela permet de gagner root sans le mot de passe root ce qui augmente la sécurité.

sudo -i

À l’aide de sudo -i est pratiquement le même que le sudo su commande à une exception près : elle n’interagit pas directement avec l’utilisateur root.

Linuxsudo Sudoi

Un peu comme sudo su, les -i flag permet à un utilisateur d’obtenir un environnement root sans avoir à connaître le mot de passe du compte root. sudo -i est également très similaire à l’utilisation sudo su, car il lira tous les fichiers environnementaux (.profile, etc.) et définira l’environnement à l’intérieur du shell.

Là où il diffère de « sudo su », c’est que sudo -i est un moyen beaucoup plus propre d’obtenir un root et un environnement root sans interagir directement avec l’utilisateur root. Pour clarifier : Avec sudo su vous utilisez plus d’une racine setuid commande en arrière-plan. Cela rend beaucoup plus difficile de déterminer quelles variables environnementales seront conservées et lesquelles seront modifiées (lors du passage à l’environnement racine). Ce n’est pas vrai avec sudo -i. Pour cette raison, la plupart des gens le considèrent comme la méthode préférée pour obtenir la racine sans se connecter directement.

sudo -s

Cette commande invoque un shell avec votre variable $SHELL.

Linuxsudo Sudos

Les -s Le commutateur pour la commande « sudo » lit la variable $SHELL de l’utilisateur courant exécutant les commandes. Cette commande fonctionne comme si l’utilisateur exécutait sudo /bin/bash. Sudo -s est un shell de style “sans connexion”. Contrairement à une commande comme sudo -i ou sudo su, le système ne lira aucun fichier environnemental. Lorsqu’un utilisateur demande au shell de s’exécuter sudo -s, il gagne la racine mais ne changera pas l’utilisateur ou l’environnement de l’utilisateur. Votre maison ne sera pas la maison racine, etc.

Linuxsudo Shellupdate

Cette commande est mieux utilisée lorsque l’utilisateur ne souhaite pas basculer en root mais souhaite un shell interactif avec sa valeur d’environnement $SHELL. Les autres commandes mentionnées ci-dessus obtiennent un accès root mais touchent les fichiers environnementaux root et permettent aux utilisateurs un accès plus complet à root (ce qui peut être un problème de sécurité).

Questions fréquemment posées

1. Quelle commande dois-je utiliser ?

Chaque commande a son cas d’utilisation. L’important ici est de comprendre ce que fait chaque commande et quand les utiliser. Tel qu’il est, sudo -i est le moyen le plus pratique et le plus propre d’obtenir un environnement racine. En revanche, ceux qui utilisent sudo -s découvriront qu’ils peuvent obtenir un shell racine sans avoir la possibilité de toucher l’environnement racine, ce qui présente des avantages supplémentaires en matière de sécurité.

2. L’accès à la racine peut-il nuire à mon système ?

Dans certains cas, oui. À moins que vous ne soyez absolument sûr de devoir accéder à root pour tout dans une session de terminal particulière, il est souvent préférable de simplement taper sudo suivi d’une commande si vous souhaitez accéder à root pour cette commande particulière. Par exemple, taper sudo apt install vlc dans n’importe quelle version de Linux basée sur Debian dirait au système d’exploitation d’accéder à la racine juste pour exécuter le gestionnaire de packages APT pour installer VLC.

Une mise en garde très importante pour courir sudo -i ou toute autre variante dont nous avons parlé plus tôt par opposition à la saisie sudo avant chaque commande que vous souhaitez exécuter en tant que root, la première n’enregistre pas votre historique de commandes dans /var/log/auth.log. Si vous vous trompez, vous ne pouvez pas revenir en arrière et vérifier ce que vous avez fait afin de pouvoir le corriger. Vous devrez opérer à court de mémoire, car les sessions root ne sont pas enregistrées.

3. Lorsque je tape « sudo » avant une commande, quelle variante de « sudo su » suis-je en train d’exécuter ?

En tappant sudo pour exécuter une commande (c’est-à-dire que vous la tapez sur la même ligne que la commande que vous souhaitez exécuter), vous l’exécutez essentiellement sous un shell racine interactif. Ce serait ce que le sudo -s la commande autonome le fait.

Emballer

Il n’y a vraiment pas une commande sur cette liste qui soit la meilleure à 100%. Au fur et à mesure que les utilisateurs se familiariseront avec la ligne de commande, ils devront prendre en compte chaque façon de s’ancrer (et il y en a beaucoup), peser le pour et le contre et agir en conséquence. J’espère qu’avec l’aide de cet article, ces décisions seront plus faciles à prendre. Si vous souhaitez en savoir plus sur les commandes, lisez cet article sur les commandes Linux utiles pour lister le contenu d’un répertoire.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.