<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Le 2015-04-28 21:43, Louis Brouillette
      a écrit :<br>
    </div>
    <blockquote cite="mid:55403736.6030304@gmail.com" type="cite">
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      Oui je savais mais je disais ça parce que la permission m'étais
      refusée dans l'autre commande (sans erreur de mot de passe), ce
      qui me laissais un rien perplexe. La commande était fautive.
      Frédéric m'a ramené la bonne commande ensuite. Je comprenais pas
      pourquoi ça m'était refusé, une commande sudo. Mais merci.<br>
    </blockquote>
    <br>
    L'explication est assez simple en fait.<br>
    <br>
    Les commandes sont lancées par le shell, avec les droits de
    l'utilisateur exécutant le shell, donc restreints.<br>
    La commande sudo permet d'emprunter des droits de superutilisateur
    le temps de l'exécution d'une commande.<br>
    Ici la commande que j'avais donnée ne pouvait pas fonctionner car la
    tentative d'écriture du fichier se faisait en dehors du sudo.<span
      style="font-size:12.8000001907349px"><br>
      <br>
       sudo cat << __EOF__ > /etc/apt/sources.list</span><br>
    <br>
    Le sudo s'applique à la commande "cat", mais les redirections
    d'entrée (le '<<') et de sortie (le '>') sont effectuées
    avant cela, par le shell de l'utilisateur, donc avec des droits
    restreints.<br>
    <br>
    En d'autres termes, le shell opère comme ceci :<br>
    - redirection de l'entrée (habituellement le clavier) en la
    remplaçant par toutes les lignes qui suivront jusqu'à rencontrer
    "__EOF__" (pas de souci de droits ici) ;<br>
    - redirection de la sortie (habituellement l'écran) en la remplaçant
    par l'écriture dans /etc/apt/sources.list (et c'est là que ça échoue
    car on n'est pas encore root ici) ;<br>
    - lancement d'un processus enfant avec l'exécution de la commande
    "sudo cat" (qui va basculer sous l'utilisateur root puis exécuter la
    commande "cat" avec ces droits).<br>
    <br>
    En remplaçant le "sudo cat > fichier" par un "sudo tee -a
    fichier" on s'assure que le processus qui effectuera l'écriture dans
    le fichier (ici "tee" et non plus le shell) aura acquis les droits
    pour le faire (grâce au "sudo" devant "tee").<br>
    <br>
    J.C.<br>
    <pre class="moz-signature" cols="72">-- 
Jean Christophe ANDRÉ  —  Coordonnateur des infrastructures techniques
Agence universitaire de la Francophonie (AUF)  —   <a class="moz-txt-link-freetext" href="http://www.auf.org/">http://www.auf.org/</a>
✉ : AUF | 3034, boul Édouard-Montpetit | Montréal QC  H3T 1J7 | CANADA
℡ : +1 514 343 6630 #1568  ✦  ℻ : +1 514 343 2107
⎧Note personnelle: merci d'éviter de m'envoyer des fichiers Microsoft⎫
⎩Office, cf <a class="moz-txt-link-freetext" href="http://www.gnu.org/philosophy/no-word-attachments">http://www.gnu.org/philosophy/no-word-attachments</a>        ⎭
</pre>
  </body>
</html>