Cet article explore les différences entre le sudo et su commandes sous Linux. Vous pouvez également regarder cette vidéo pour en savoir plus sur ces commandes. Devenir root de façon permanente avec su est un "non-non" bien connu dans l'univers *nix. Pourquoi? Parce que devenir root avec su signifie que vous êtes root, ce qui revient à vous connecter à un terminal en tant qu'utilisateur root avec le mot de passe root. Et c'est dangereux pour de nombreuses raisons.
[ Vous pourriez également apprécier : L'essentiel de la ligne de commande Linux :sudo ]
Travailler en tant que root signifie que vous avez le pouvoir de :
- Supprimer tout ou partie des fichiers
- Modifier les autorisations d'un ou de tous les fichiers
- Modifier le niveau d'exécution du système
- Modifier les comptes utilisateur
- Monter ou démonter des systèmes de fichiers
- Supprimer ou installer un logiciel
- Créer, supprimer et modifier des systèmes de fichiers
Fondamentalement, vous pouvez faire n'importe quoi sur le système en tant qu'utilisateur root. C'est le tout-puissant compte administratif. Et, contrairement à d'autres systèmes d'exploitation plus bavards, vous ne verrez pas de "Êtes-vous sûr ?" boîte de dialogue pour être sûr que le rm -rf * la commande que vous venez de lancer était dans /opt/tmp plutôt qu'à / . Comme vous pouvez l'imaginer, les erreurs commises en tant qu'utilisateur root peuvent être irréversibles et dévastatrices. Il existe une alternative :sudo .
sudo
sudo , qui est un acronyme pour superuser do ou substituer user do , est une commande qui exécute une invite élevée sans qu'il soit nécessaire de modifier votre identité. En fonction de vos paramètres dans le /etc/sudoers fichier, vous pouvez émettre des commandes uniques en tant que root ou en tant qu'un autre utilisateur. Pour continuer à exécuter des commandes avec le pouvoir root, vous devez toujours utiliser la commande sudo. Par exemple, si vous souhaitez installer Nginx package, vous exécutez :
$ dnf install nginx Mais vous verrez une erreur si vous n'êtes pas root ou dans le groupe sudo. Au lieu de cela, si vous exécutez cette commande :
$ sudo dnf install nginx Il vous sera demandé de saisir votre mot de passe, puis vous pourrez exécuter la commande si vous faites partie du groupe sudo.
Une manière simple de passer à une session interactive en tant qu'utilisateur root est la suivante :
$ sudo -i La théorie derrière l'utilisation de sudo est que le fait d'émettre la commande sudo avant toute commande que vous exécutez vous fait réfléchir davantage à ce que vous faites et, espérons-le, faire moins d'erreurs avec un compte qui possède un pouvoir illimité.
su
su , d'autre part, est un acronyme pour changer d'utilisateur ou remplacer l'utilisateur . Vous passez essentiellement à un utilisateur particulier et vous avez besoin du mot de passe de l'utilisateur vers lequel vous passez. Le plus souvent, le compte utilisateur vers lequel vous basculez est le compte racine, mais il peut s'agir de n'importe quel compte du système.
Par exemple, si vous tapez :
$ su -
Dans l'exemple ci-dessus, vous passez à root et vous avez besoin du mot de passe root. Le (- ) switch vous fournit l'environnement root (variables de chemin et de shell) plutôt que de simplement vous donner le pouvoir d'utilisateur root pour une seule commande tout en conservant votre propre environnement.
$ su bryant Pour le deuxième exemple, vous passez à bryant , et donc vous avez besoin du mot de passe de Bryant sauf si vous êtes root.
Si vous souhaitez passer au bryant compte utilisateur, y compris le chemin de bryant et les variables d'environnement, utilisez le (- ) bascule :
$ su - bryant
Le (- ) a le même effet que la connexion directe à un système avec ce compte d'utilisateur. Essentiellement, vous devenez cet utilisateur.
Récapitulez
Récapitulons ce que vous avez appris.
sudovous permet d'émettre des commandes en tant qu'autre utilisateur sans changer votre identité- Vous devez avoir une entrée dans
/etc/sudoerspour exécuter ces autorisations restreintes sudo -ivous amène à une session interactive en tant que rootsusignifie passer à un utilisateur particulier- Il suffit de taper
supasse à l'utilisateur root sudovous demandera votre mot de passe, tandis quesudemandera le mot de passe de l'utilisateur vers lequel vous basculez
[ Vous voulez en savoir plus sur la sécurité ? Consultez la liste de vérification de la sécurité informatique et de la conformité. ]
Mais quand en utilisez-vous un, pas un autre ? Depuis le sudo la politique est définie dans /etc/sudoers , cela peut donner de puissants contrôles d'autorisation. Depuis sudo peut à peu près tout faire su peut, je dirais qu'il est préférable de s'en tenir à sudo sauf si vous travaillez avec des codes hérités qui nécessitent le su commande.