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.
Contenu
su
La commande su 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, la commande su 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. Cela ne passe pas par sudo ou quelque chose comme ça. Au lieu de cela, vous êtes invité à saisir le mot de passe de l’utilisateur root car 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 et à l’environnement root.
sudo su
Cette commande demande le mot de passe de l’utilisateur actuel par opposition à root.
C’est essentiellement la même chose que d’exécuter su dans le shell, à une différence cruciale près. 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 si vous exécutiez su (ou su root). Si une commande est exécutée avec sudo devant elle, les privilèges root lui sont accordé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 savoir 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’utilisation de sudo -i est pratiquement identique à la commande sudo su à une exception près : elle n’interagit pas directement avec l’utilisateur root.
Tout comme sudo su, l’indicateur -i 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 de 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 plusieurs commandes root setuid 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.
Le commutateur -s 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 d’exécuter sudo -s, il obtient la racine mais ne modifie pas l’utilisateur ou l’environnement utilisateur. Votre maison ne sera pas la maison racine, etc.
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. Dans l’état actuel des choses, sudo -i est le moyen le plus pratique et le plus propre d’obtenir un environnement racine. D’un autre côté, 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 indiquerait 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 concernant l’exécution de sudo -i ou de toute autre variante dont nous avons parlé précédemment, par opposition à la saisie de sudo avant chaque commande que vous souhaitez exécuter en tant que root, est que la première n’enregistre pas votre historique de commandes dans /var/log/auth. Journal. 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 tapant 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 fait la commande autonome sudo -s.
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’enraciner (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.
Cet article est-il utile ? Oui Non