[Ubuntu-QC] La liste des sources ne peut être lue

Jean Christophe André jean-christophe.andre at auf.org
Mer 29 Avr 02:02:21 UTC 2015


Le 2015-04-28 21:43, Louis Brouillette a écrit :
> 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.

L'explication est assez simple en fait.

Les commandes sont lancées par le shell, avec les droits de 
l'utilisateur exécutant le shell, donc restreints.
La commande sudo permet d'emprunter des droits de superutilisateur le 
temps de l'exécution d'une commande.
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.

  sudo cat << __EOF__ > /etc/apt/sources.list

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.

En d'autres termes, le shell opère comme ceci :
- 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) ;
- 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) ;
- 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).

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").

J.C.

-- 
Jean Christophe ANDRÉ  —  Coordonnateur des infrastructures techniques
Agence universitaire de la Francophonie (AUF)  —   http://www.auf.org/
✉ : 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 http://www.gnu.org/philosophy/no-word-attachments        ⎭

-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.ubuntu.com/archives/ubuntu-quebec/attachments/20150428/7352027a/attachment.html>


Plus d'informations sur la liste de diffusion Ubuntu-quebec