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
-- 
Ubuntu-quebec mailing list
Ubuntu-quebec@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-quebec

Répondre à