• Catégories
    • Toutes les catégories
    • Planète Warez
      Présentations
      Aide & Commentaires
      Réglement & Annonces
      Tutoriels
    • IPTV
      Généraliste
      Box
      Applications
      VPN
    • Torrent & P2P
    • Direct Download et Streaming
    • Autour du Warez
    • High-tech : Support IT
      Windows, Linux, MacOS & autres OS
      Matériel & Hardware
      Logiciel & Software
      Smartphones & Tablettes
      Graphismes
      Codage : Sites Web, PHP/HTML/CSS, pages perso, prog.
      Tutoriels informatiques
    • Culture
      Actualités High-Tech
      Cinéma & Séries
      Sciences
      Musique
      Jeux Vidéo
    • Humour & Insolite
    • Discussions générales
    • Espace détente
    • Les cas désespérés
  • Récent
  • Populaire
  • Résolu
  • Non résolu
Réduire

Planète Warez

,
  • Politique
  • Règlement
  • À propos
  • Annonces
  • Faire un don
  • Feedback
  • Team
  • Tutoriels
  • Bug Report
  • Wiki
    • Light
    • Default
    • Ubuntu
    • Lightsaber
    • R2d2
    • Padawan
    • Dim
    • FlatDark
    • Invaders
    • Metallic
    • Millennium
    • Leia
    • Dark
    • DeathStar
    • Starfighter
    • X-Wing
    • Sith Order
    • Galactic
ko-fi

Différences sudo, su et su -

Planifier Épinglé Verrouillé Déplacé Windows, Linux, MacOS & autres OS
linuxrootsusudo
3 Messages 2 Publieurs 147 Vues
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • Raccoonundefined Hors-ligne
    Raccoonundefined Hors-ligne
    Raccoon Admin Seeder I.T Guy Windowsien Apple User Gamer GNU-Linux User Team
    a écrit sur dernière édition par
    #1

    root

    Introduction

    Dans cet article, on va expliquer les différences entre la commande sudo et su, avec la différence de syntaxe pour cette dernière.

    Je pourrai ainsi rediriger les personnes sur cet article qui me questionnent souvent sur ce sujet.

    Dans le cas de la commande sudo, on n’abordera pas la partie configuration.
    Pour cela, se référer à l’article https://www.linuxtricks.fr/wiki/sudo-utiliser-et-parametrer-sudoers

    Commande sudo

    La commande sudo (pour substute user do) permet à un utilisateur autorisé, de lancer une commande en tant que superutilisateur ou un autre utilisateur, selon la configuration.
    Elle est souvent utilisée pour exécuter des commandes spécifiques nécessitant des privilèges root.

    Lorsque la commande sudo est invoquée, elle demande le mot de passe de l’utilisateur actuellement connecté et non pas celui du superutilisateur. En gros, il s’agit d’une commande qui délègue des droits spécifiques à un utilisateur du système. C’est pour cela que sudo est paramétrable avec le fichier sudoers.
    Ces actions déléguées sont historisées dans les journaux système.
    A noter que par défaut, le mot de passe n’est pas redemandé pendant une période de 5 minutes.

    La syntaxe de la commande sudo est la suivante :

    sudo \-u util1 macmd
    

    Le compte actuellement connecté va exécuter la commande macmd en tant qu’utilisateur util1 dans l’exemple.
    En l’absence de l’option -u, la commande sera exécutée en tant que superutilisateur root comme dans l’exemple suivant :

    sudo macmd
    

    La commande sudo ne charge l’environnement complet de l’utilisateur cible. Donc attention si on a des variables d’environnement spécifiques ou modifiées telles que $PATH.

    Si le paramétrage le permet, il est possible d’ouvrir un shell avec les droits de l’utilisateur mentionné (ou root par défaut) ainsi que tout son environnement utilisateur (variables, profil, alias, …) :

    sudo -u util1 -i
    

    Dans le cas de la connexion avec l’option -i de sudo, l’environnement complet de l’utilisateur cible est chargé, y compris les scripts de connexion.

    Commande su - et su

    La commande su (pour switch user ou substitute user) est utilisé pour changer d’utilisateur, c’est à dire se connecter en tant qu’un autre utilisateur.

    Lorsque la commande est invoquée, elle demande le mot de passe de l’utilisateur spécifié. Il n’y a pas de configuration particulière puisqu’il ne s’agit pas d’une délégation de droits. Par conséquent, il est nécessaire de connaitre le mot de passe du compte avec lequel on doit se connecter.
    Seule l’action de connexion est historisée dans les journaux système.

    La syntaxe de la commande su est la suivante :

    su - util1
    

    La syntaxe su - a la même utilité que su -l ou su –login, c’est juste qu’elle est plus couramment utilisé, car simplement plus courte.
    Le tiret a son importance afin de réaliser une connexion complète en tant qu’utilisateur mentionné. Lorsqu’on parle de connexion complète, cela signifie que l’environnement complet de l’utilisateur cible est chargé, y compris les scripts de connexion.

    En l’absence d’un login, la connexion se fera en tant que root comme dans l’exemple suivant :

    su -
    

    La commande su peut être utilisée sans l’option - (ou -l ou –login) :

    su util1
    

    Cependant, dans ce cas, on notera que la connexion en tant qu’utilisateur spécifié est réalisée mais l’environnement de l’utilisateur n’est pas chargé complètement (variables, profil, alias, …)

    En l’absence d’un login, la connexion se fera en tant que root comme dans l’exemple suivant et comme vu précédemment, l’environnement n’est pas chargé complètement :

    _Copier vers le presse-papier_Code BASH :

    su
    

    Tester les différences

    La commande env permet de voir les variables d’environnement utilisables d’environnement en cours d’exécution.

    Pour bien cerner les différences entre toutes les commandes, depuis un utilisateur du système différent de root, on peut regarder les comportements suivants.

    Dans les différents cas de démonstration ci-dessous, je suis connecté en utilisateur adrien
    Je me connecte en tant que root

    Cas 1 : su -

    cd /
    su -
    env > /tmp/env_root.txt
    

    On notera l’environnement de l’utilisateur root complètement chargé.
    On est bien dans le dossier personnel de root.

    Cas 2 : su

    <cd /
    su
    env > /tmp/env_su_sans_tiret.txt
    

    On peut faire la différence avec la commande diff :

    diff -u /tmp/env_root.txt /tmp/env_su_sans_tiret.txt
    

    On notera l’environnement de l’utilisateur root n’est pas complètement chargé.

    Les variables PATH, MAIL sont celles de l’utilisateur adrien.
    Je suis resté dans la racine et n’ai pas été positionné dans le dossier personnel de root

    Cas 3 : sudo commande

    cd /
    sudo env > /tmp/sudo_cmd_env.txt
    

    On peut regarder les variables d’environnement avec :

    cat /tmp/sudo_cmd_env.txt
    

    On notera qu’il y a beaucoup moins de variables définies.
    La variable PATH est minimaliste.
    Des variables SUDO supplémentaires sont présentes donnant des infos sur la commande lancée, et l’utilisateur qui a exécuté depuis sudo la commande :

    SUDO_COMMAND=/bin/env
    SUDO_USER=adrien
    SUDO_UID=1000
    SUDO_GID=1000

    Cas 4 : sudo -i

    cd /
    sudo -i
    env > /tmp/env_sudo_i.txt
    

    On peut faire la différence avec la commande diff :

    diff -u /tmp/env_root.txt /tmp/env_sudo_i.txt
    

    On notera l’environnement de l’utilisateur root est complètement chargé.

    La variable PATH dans mon exemple par rapport à la connexion avec su - est la même à l’exception du chemin /usr/local/bin qui n’est pas présent.
    On est bien dans le dossier personnel de root.
    On a les variables SUDO supplémentaires :

    SUDO_COMMAND=/bin/bash
    SUDO_USER=adrien
    SUDO_UID=1000

    Cas 5 : sudo -s

    cd /
    sudo -s
    env > /tmp/env_sudo_s.txt
    

    On peut faire la différence avec la commande diff :

    diff -u /tmp/env_root.txt /tmp/env_sudo_s.txt
    

    On notera l’environnement de l’utilisateur root n’est complètement chargé.

    La variable MAIL est celle de l’utilisateur adrien.
    La variable PATH est minimaliste.
    Je suis resté dans la racine et n’ai pas été positionné dans le dossier personnel de root

    On a les variables SUDO supplémentaires :

    SUDO_COMMAND=/bin/bash
    SUDO_USER=adrien
    SUDO_UID=1000

    A propos de sudo su

    Parfois on voit la commande suivante :

    sudo su
    

    ou

    sudo su -
    

    Elle est parfois utilisée quand nous n’avons que le mot de passe utilisateur à notre disposition, afin d’ouvrir un shell en tant que root.
    Cette commande demande d’exécuter la commande “su” (switch user) avec “sudo” (substitute/switch user do).

    Comme nous l’avons vu :
    - su permet de changer d’utilisateur (se connecter en tant qu’utilisateur)
    - sudo permet de lancer une commande avec une délégation de droits

    Utiliser sudo su est redondant et peut être évité en utilisant simplement la commande sudo directement.
    sudo -i est à préférer à sudo su -
    sudo -s est à préférer à sudo su

    Cela fonctionne, je ne dis pas le contraire, mais nous pouvons tout faire avec la commande sudo et l’appel à “su” n’est pas réellement utile.

    Pour comprendre la réflexion, je vous fais une analogie avec un cas de la vie courante :
    Imaginez, que la connexion en root est l’action de rentrer dans votre appartement. Vous avez 2 portes à franchir : celle de l’immeuble et celle de votre appartement. Vous avez une même clé qui ouvre l’entrée de l’immeuble et votre appartement.
    - sudo -i : Vous prenez votre clé, vous ouvrez la porte de l’immeuble, et avec cette clé vous ouvrez ensuite celle de votre appartement
    - sudo su - : Vous appelez votre voisin qu’il ouvre avec sa clé la porte de l’immeuble, et avec votre clé vous ouvrez celle de votre appartement

    Dans les 2 cas ça marche, mais la seconde option est illogique.

    Source : linuxtricks.fr




    Et la vidéo associée

    1 réponse Dernière réponse
    3
  • Raccoonundefined Raccoon marked this topic as a regular topic on
  • Violenceundefined Hors-ligne
    Violenceundefined Hors-ligne
    Violence CosmoSeeders # Dev I.T Guy PW Addict
    a écrit sur dernière édition par Violence
    #2

    Peut être à combiner avec ceci @Raccoon ?

    https://wiki.planete-warez.net/informatique/linux/debutants/sudo

    V:\> █░░ PR4IS3 TH3 C0D3 ░░█ ✌(◕‿-)✌
    ╚═ Admin, Dev et auteur de la plupart des bugs de PW…

    ░░░▒▒▒▓▒▒▒░░░
    ░░░░░░▓░░░░░░
    ▒▒▒▒▓▓▓▓▓▒▒▒▒
    ░░░░░░▓░░░░░░

    Raccoonundefined 1 réponse Dernière réponse
    0
  • Raccoonundefined Hors-ligne
    Raccoonundefined Hors-ligne
    Raccoon Admin Seeder I.T Guy Windowsien Apple User Gamer GNU-Linux User Team
    a répondu à Violence le dernière édition par
    #3

    @Violence je m’en occuperai ce soir.

    1 réponse Dernière réponse
    0






©2025 planete-warez.net
L'actualité Warez & underground en continu
Icône café Faire un don
Politique   RGPD  @dev  Sudonix
    • Se connecter

    • Vous n'avez pas de compte ? S'inscrire

    • Connectez-vous ou inscrivez-vous pour faire une recherche.
    • Premier message
      Dernier message
    0
    • Catégories
      • Toutes les catégories
      • Planète Warez
        Présentations
        Aide & Commentaires
        Réglement & Annonces
        Tutoriels
      • IPTV
        Généraliste
        Box
        Applications
        VPN
      • Torrent & P2P
      • Direct Download et Streaming
      • Autour du Warez
      • High-tech : Support IT
        Windows, Linux, MacOS & autres OS
        Matériel & Hardware
        Logiciel & Software
        Smartphones & Tablettes
        Graphismes
        Codage : Sites Web, PHP/HTML/CSS, pages perso, prog.
        Tutoriels informatiques
      • Culture
        Actualités High-Tech
        Cinéma & Séries
        Sciences
        Musique
        Jeux Vidéo
      • Humour & Insolite
      • Discussions générales
      • Espace détente
      • Les cas désespérés
    • Récent
    • Populaire
    • Résolu
    • Non résolu