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

#1 16-03-2018 10:11:51

Docteur_Poincare
Membre
Distrib. : Debian GNU/Linux 9 (stretch)
Noyau : Linux 4.9.0-6-amd64
(G)UI : Gnome 3.22.2
Inscription : 27-02-2018

[RESOLU] Demande de démystification

Bonjour,

Tout à l'heure j'ai voulu installer owncloud server sur une machine en faisant un truc comme ça :


wget -nv https://download.owncloud.org/download/repositories/10.0/Debian_9.0/Release.key -O Release.key
sudo apt-key add - < Release.key

sudo echo 'deb http://download.owncloud.org/download/repositories/10.0/Debian_9.0/ /' > /etc/apt/sources.list.d/owncloud.list

sudo apt update

sudo apt install owncloud-files



mais le terminal m'a insulté

zsh: permission non accordée: /etc/apt/sources.list.d/owncloud.list


et j'ai pas trop compris pourquoi. J'ai trouvé la solution sur le net en faisant :

sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/10.0/Debian_9.0/ /' > /etc/apt/sources.list.d/owncloud.list"



mais à ce stade c'est de la pure magie à mes yeux, j'ai pas bien compris l’intérêt de l'option -c en lisant le manuel.

Quelqu'un de plus savant accepterait-il de m'éclairer sur ce qu'il s'est passé ? big_smile

Dernière modification par Docteur_Poincare (16-03-2018 11:50:23)

Hors ligne

#2 16-03-2018 10:26:24

hyrr0
Membre
Distrib. : Debian stable
Inscription : 12-01-2018

Re : [RESOLU] Demande de démystification

 sudo echo 'deb http://download.owncloud.org/download/repositories/10.0/Debian_9.0/ /' > /etc/apt/sources.list.d/owncloud.list



Le sudo affecte la première partie de ta commande. Pas le "pipe". Du coup, t'as fais un accès root sur la commande echo mais pas sur ton fichier source qui lui le nécessitait.

En espérant que c'était clair ^^

Hors ligne

#3 16-03-2018 10:39:28

Docteur_Poincare
Membre
Distrib. : Debian GNU/Linux 9 (stretch)
Noyau : Linux 4.9.0-6-amd64
(G)UI : Gnome 3.22.2
Inscription : 27-02-2018

Re : [RESOLU] Demande de démystification

oui c'est clair mais pourquoi rajouter -c permet d'avoir le sudo qui "encapsule" tout le reste ?

Hors ligne

#4 16-03-2018 10:57:44

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU] Demande de démystification

hyrr0 a écrit :

Le sudo affecte la première partie de ta commande. Pas le "pipe".


Ce n'est pas un pipe (| entre deux commandes) mais une redirection (> vers un fichier). La position de la redirection, au début ou à la fin, n'a rien à voir dans l'histoire.
Les redirections et les pipes ne sont pas interprétés par sudo mais par un shell (interpréteur de commande, généralement bash mais apparemment zsh ici).

Dans la première commande, la redirection est interprétée par le shell qui exécute sudo, donc avec les droits de l'utilisateur du shell et non les droits de sudo. La commande sudo ne fait donc qu'exécuter la commande echo, ce qui n'a aucun intérêt puisqu'elle ne nécessite pas de permission particulière.

Dans la seconde commande, sudo -c lance un shell root pour exécuter la commande entre guillemets doubles qui contient la redirection. Cette fois-ci la redirection est interprétée par le shell root qui a la permission d'écrire dans l'emplacement de destination.

A mon avis, utiliser sudo avec des redirections de cette façon c'est vraiment se faire chier pour rien. Autant utiliser sudo pour lancer un shell root interactif avec l'option -i ou -s, ou pour lancer un éditeur de texte comme nano. Autre option : créer le fichier dans un emplacement où on a la permission et le copier ou déplacer dans son emplacement final avec sudo.

Dernière modification par raleur (16-03-2018 11:01:32)


Il vaut mieux montrer que raconter.

Hors ligne

#5 16-03-2018 11:00:38

hyrr0
Membre
Distrib. : Debian stable
Inscription : 12-01-2018

Re : [RESOLU] Demande de démystification

raleur a écrit :

hyrr0 a écrit :

Le sudo affecte la première partie de ta commande. Pas le "pipe".


Ce n'est pas un pipe (| entre deux commandes) mais une redirection (> vers un fichier). La position de la redirection, au début ou à la fin, n'a rien à voir dans l'histoire.
Les redirections et les pipes ne sont pas interprétés par sudo mais par un shell (interpréteur de commande, généralement bash mais apparemment zsh ici).

Dans la première commande, la redirection est interprétée par le shell qui exécute sudo, donc avec les droits de l'utilisateur du shell et non les droits de sudo. La commande sudo ne fait donc qu'exécuter la commande echo, ce qui n'a aucun intérêt puisqu'elle ne nécessite pas de permission particulière.

Dans la seconde commande, sudo -c lance un shell root pour exécuter la commande entre guillemets doubles qui contient la redirection. Cette fois-ci la redirection est interprétée par le shell root qui a la permission d'écrire dans l'emplacement de destination.

A mon avis, utiliser sudo avec des redirections de cette façon c'est vraiment se faire chier pour rien. Autant utiliser sudo pour lancer un shell root interactif avec l'option -i ou -s, ou pour lancer un éditeur de texte comme nano.




Merci pour la correction smile c'est bien mieux que ma maigre contribution smile

Hors ligne

#6 16-03-2018 11:49:56

Docteur_Poincare
Membre
Distrib. : Debian GNU/Linux 9 (stretch)
Noyau : Linux 4.9.0-6-amd64
(G)UI : Gnome 3.22.2
Inscription : 27-02-2018

Re : [RESOLU] Demande de démystification

raleur a écrit :

hyrr0 a écrit :

Le sudo affecte la première partie de ta commande. Pas le "pipe".


Ce n'est pas un pipe (| entre deux commandes) mais une redirection (> vers un fichier). La position de la redirection, au début ou à la fin, n'a rien à voir dans l'histoire.
Les redirections et les pipes ne sont pas interprétés par sudo mais par un shell (interpréteur de commande, généralement bash mais apparemment zsh ici).

Dans la première commande, la redirection est interprétée par le shell qui exécute sudo, donc avec les droits de l'utilisateur du shell et non les droits de sudo. La commande sudo ne fait donc qu'exécuter la commande echo, ce qui n'a aucun intérêt puisqu'elle ne nécessite pas de permission particulière.

Dans la seconde commande, sudo -c lance un shell root pour exécuter la commande entre guillemets doubles qui contient la redirection. Cette fois-ci la redirection est interprétée par le shell root qui a la permission d'écrire dans l'emplacement de destination.

A mon avis, utiliser sudo avec des redirections de cette façon c'est vraiment se faire chier pour rien. Autant utiliser sudo pour lancer un shell root interactif avec l'option -i ou -s, ou pour lancer un éditeur de texte comme nano. Autre option : créer le fichier dans un emplacement où on a la permission et le copier ou déplacer dans son emplacement final avec sudo.



Tout est dit.
Merci à toi.
Sujet clos.

Hors ligne

Pied de page des forums