0
votes

Pourquoi ne peut-je pas faire écho à Sudo une ligne dans / etc /?

Je suis sur Centos et j'ai fait Sudo Echo 'Testline' >> / etc / test / test Il a dit -bash: / etc / test / test: autorisation refusée

Cependant, quand je fais sudo vi / etc / test / test et insérer testline et do : wq il écrit bien, pourquoi Est-ce que cela se produit?


1 commentaires

3 Réponses :


5
votes

Vous devez envelopper toute la déclaration (y compris la redirection) dans un groupe de sorte que le sudo s'étend autour de lui.

sudo bash -c "echo 'testline' >> /etc/test/test"


0 commentaires

4
votes

La redirection est traitée par la coque avant d'exécuter sudo code>, plutôt que d'y faire partie. Utilisez tee code> à la place de sorte que sudo code> exécute le processus qui ouvre réellement le fichier d'écriture.

echo 'testline' | sudo tee -a /etc/test/test > /dev/null


1 commentaires

Ce n'est que la réponse qui explique pourquoi .



0
votes

Une autre syntaxe pour la même solution générale Ces gars ont déjà présenté:

echo "echo 'testline'>>/etc/test/test" | sudo su


0 commentaires