web-dev-qa-db-fra.com

Quelle est la différence entre 'su -', 'Sudo bash' et 'Sudo sh'?

J'aimerais savoir quelle est la différence entre

  • su -
  • Sudo bash
  • Sudo sh

Je ne peux pas me connecter en tant que root avec su - car je n'ai pas le mot de passe root. Je veux dire que j'ai mon mot de passe utilisateur avec lequel je peux Sudo "command" mais ce mot de passe ne fonctionne pas pour su - Je peux me connecter en tant que root avec Sudo bash avec mon mot de passe utilisateur et Je peux me connecter en faisant Sudo sh mais je reçois alors une invite de commande sous cette forme #

29
Patryk

Arrière-plan

Dans Linux (et Unix en général), il existe un superutilisateur nommé Root . Le super-utilisateur peut tout faire et tout le travail, et par conséquent, le travail quotidien en tant que super-utilisateur peut être dangereux. Vous pourriez taper une commande de manière incorrecte et détruire le système. Idéalement, vous vous exécutez en tant qu'utilisateur disposant uniquement des privilèges requis pour la tâche à accomplir. Dans certains cas, il s’agit nécessairement de la racine, mais la plupart du temps, il s’agit d’un utilisateur régulier.

su -

Cette commande est utilisée pour vous connecter au compte root.
Par défaut, le mot de passe du compte racine est verrouillé dans Ubuntu. Cela signifie que vous ne pouvez pas vous connecter directement en tant que racine ni utiliser la commande su pour devenir l'utilisateur racine. Cependant, étant donné que le compte racine existe physiquement, il est toujours possible d'exécuter des programmes avec des privilèges de niveau racine. C’est là que Sudo intervient - il permet aux utilisateurs autorisés (normalement les utilisateurs "Administratifs") d’exécuter certains programmes en tant que Root sans avoir à connaître le mot de passe root.

Voir Comment activer un compte racine .

Sudo sh

Cette commande lance "sh" en tant que super utilisateur.
L'utilitaire sh est un interpréteur en langage de commande qui doit exécuter les commandes lues à partir d'une chaîne de ligne de commande, de l'entrée standard ou d'un fichier spécifié.

Sudo bash

Cette commande lance "bash" en tant que super utilisateur.
Bash est le shell, ou interpréteur de langage de commande. Bash est un shell compatible sh qui intègre des fonctionnalités utiles de Korn Shell (ksh) et C Shell (csh). Il est conçu pour être conforme à la norme IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools. Il offre des améliorations fonctionnelles par rapport à sh pour la programmation et l’utilisation interactive. De plus, la plupart des scripts sh peuvent être exécutés par Bash sans modification.

Références: 1 , 2 , .

26
desgua

su -:

Cela va changer votre identifiant d'utilisateur et hériter des variables d'environnement comme si vous vous étiez connecté avec cet utilisateur. Normalement, vous utiliseriez le format su - <userid> pour vous connecter en tant qu'utilisateur. Si vous supprimez l'ID utilisateur, cela suppose que vous essayez de vous connecter en tant que root - ce que vous ne pouvez pas (sauf si vous modifiez le mot de passe root).

Sudo bash & Sudo sh:

Tout ce qui suit Sudo est un programme à exécuter - dans ces cas, vous demandez de lancer deux obus - bash et dash, respectivement. utilisez man bash et man sh pour plus de détails sur les différents shells.


Questions connexes:

6
fossfreedom