GNU/Linux >> Tutoriels Linux >  >> Linux

Explorer les différences entre les commandes sudo et su sous Linux

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.

  • sudo vous permet d'émettre des commandes en tant qu'autre utilisateur sans changer votre identité
  • Vous devez avoir une entrée dans /etc/sudoers pour exécuter ces autorisations restreintes
  • sudo -i vous amène à une session interactive en tant que root
  • su signifie passer à un utilisateur particulier
  • Il suffit de taper su passe à l'utilisateur root
  • sudo vous demandera votre mot de passe, tandis que su demandera 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.


Linux
  1. Apprenez la différence entre les commandes "su" et "su -" sous Linux

  2. Différence entre les commandes "su" et "su -" sous Linux

  3. Comment autoriser l'utilisateur à utiliser sudo dans Ubuntu Linux

  4. Quelle est la différence entre Sudo Su - et Sudo Su - ?

  5. Windows UAC contre Linux sudo

Comprendre la différence entre les commandes sudo et su sous Linux

Exécutez des commandes en tant qu'autre utilisateur via Sudo sous Linux

Tapez les commandes Linux en majuscules pour les exécuter en tant qu'utilisateur Sudo

Comment connaître les groupes d'un utilisateur Linux

Commandes Linux avancées pour l'utilisateur expérimenté

Apprendre les commandes de suppression d'utilisateur Linux ou d'ajout d'utilisateur Linux