Vous n'êtes pas identifié(e).
mais le terminal m'a insulté
et j'ai pas trop compris pourquoi. J'ai trouvé la solution sur le net en faisant :
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é ?
Dernière modification par Docteur_Poincare (16-03-2018 11:50:23)
Hors ligne
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
Hors ligne
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
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 c'est bien mieux que ma maigre contribution
Hors ligne
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