logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


Titre de Votre Tuto

Introduction

Je veux exécuter ma_commande en root, je peux utiliser différents moyens. Mais tous ne se valent pas. Voici les différentes méthodes que nous allons comparer:

  • se connecter en root depuis le TTY ([Ctrl]+[Alt]+[F1]/[F2]/etc. puis entrer ma_commande
  • su puis entrer ma_commande
  • su -c “ma_commande”
  • su -l puis entrer ma_commande
  • su -l -c “ma_commande”
  • sudo ma_commande
  • sudo -s puis entrer ma_commande
  • sudo -i ma_commande
  • sudo -i puis entrer ma_commande

Authentification et mot de passe

Mot de passe //root//

Lorsque l'on utilise su sans spécifier d'utilisateur, c'est implicitement les droits de root que l'on cherche à obtenir. Et c'est également le mot de passe de l'utilisateur root qui nous est demandé.

Dans certains cas, l'utilisateur root s'est vu désactiver son mot de passe (c'est le cas par défaut sous ubuntu, ou sous debian si l'on laisse le mot de passe root vide lors de l'installation). Dans ce cas, on ne peut ni se connecter en root depuis le TTY, ni taper utiliser une des méthodes su ci-dessus.

Il est toujours possible de créé un mot de passe pour root, ce qui permettra alors d'utiliser ces commandes.

Mot de passe ''sudo''

Lorsque l'on utilise sudo, c'est (sauf si vous vous êtes amusés à configurer votre fichier /etc/sudoers différemment) le mot de passe de l'utilisateur courant qui est demandé.

Sous debian, par défaut, seuls les utilisateurs membres du groupe sudo sont autoriser à utiliser la commande sudo pour obtenir les droits root. En particulier, si vous avez installé Debian sans mettre de mot de passe root, le premier utilisateur que vous avez créé a été ajouté automatiquement au groupe sudo et a donc le droit d'utiliser la commande.

Vous pouvez à tout moment ajouter ou retirer un membre du groupe sudo. Attention cependant à ne pas scier la branche sur laquelle vous êtes assis !

Shell ou pas shell

Une première différence entre ces différentes commandes est que certaines ouvrent un shell en tant que root, alors que d'autres se contentent d'exécuter une seule commande avec les droits root puis vous ramènent dans votre shell utilisateur.

Les méthodes suivantes vous ouvrent un shell, dans lequel vous pouvez taper autant de commande que vous voulez, qui seront exécutées avec les droits root:

  • se connecter en root depuis le TTY ([Ctrl]+[Alt]+[F1]/[F2]/etc. puis entrer ma_commande
  • su puis entrer ma_commande
  • su -l puis entrer ma_commande
  • sudo -s puis entrer ma_commande
  • sudo -i puis entrer ma_commande

Alors que les commandes suivantes ne permettent que d'exécuter une commande à la fois :

  • su -c “ma_commande”
  • su -l -c “ma_commande”
  • sudo ma_commande
  • sudo -i ma_commande
Lorsque vous avez plusieurs commandes à taper, ou que vous ne savez pas forcément à l'avance toutes les commandes que vous avez à taper, privilégiez une commande de la première liste. Si vous savez que vous n'avez qu'une commande à taper, la seconde liste peut offrir une alternative intéressante.

Environnement

Outre les droits d'exécution d'un programme, un point que l'on néglige souvent ou que l'on oublie de mentionner, c'est l'importance des variables d'environnement et du dossier de travail.

Afin de savoir depuis quel dossier seront exécutées les différentes commandes, faisons un test avec pwd, qui est une commande affichant le dossier courant (print work directory). Et avant de lancer les commandes, nous allons nous placer dans /tmp avec cd

Méthode utilisée pwd
connexion root depuis le TTY + ma_commande /root
su + ma_commande /tmp
su -c “ma_commande” /tmp
su -l + ma_commande /root
su -l -c “ma_commande” /root
sudo ma_commande /tmp
sudo -s + ma_commande /tmp
sudo -i ma_commande /root
sudo -i + ma_commande /root
Vous voyez que certaines commandes vous ramènent dans /root, ce qui n'est pas forcément ce que vous voulez et peut-être dangereux, alors que certaines vous laissent dans le dossier courant, ce qui n'est pas forcément ce que vous voulez et peut-être dangereux… aussi :-)

PATH

Sécurité

doc/faq/differences-entre-su-et-sudo.1609938989.txt.gz · Dernière modification: 06/01/2021 14:16 par captnfab

Pied de page des forums

Propulsé par FluxBB