GNU/Linux >> Tutoriels Linux >  >> Linux

Rediriger Stdout vers un fichier sur lequel vous n'avez pas d'autorisation d'écriture ?

Lorsque vous tentez de modifier un fichier sans avoir les droits d'écriture dessus, vous obtenez une erreur :

> touch /tmp/foo && sudo chown root /tmp/foo
> echo test > /tmp/foo
zsh: permission denied: /tmp/foo

Sudoing n'aide pas, car il exécute la commande en tant que root, mais le shell gère la redirection de stdout et ouvre le fichier comme vous de toute façon :

> sudo echo test > /tmp/foo
zsh: permission denied: /tmp/foo

Existe-t-il un moyen simple de rediriger stdout vers un fichier sur lequel vous n'êtes pas autorisé à écrire, en plus d'ouvrir un shell en tant que root et de manipuler le fichier de cette façon ?

> sudo su
# echo test > /tmp/foo

Réponse acceptée :

Oui, en utilisant tee . Donc echo test > /tmp/foo devient

echo test | sudo tee /tmp/foo

Vous pouvez également ajouter (>> )

echo test | sudo tee -a /tmp/foo

Linux
  1. Echo à la fois stdout et stderr

  2. Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

  3. Pipe doit-il écrire un fichier temporaire?

  4. unix:///var/run/supervisor.sock aucun fichier de ce type

  5. Les sites Web doivent-ils vivre dans /var/ ou /usr/ selon l'utilisation recommandée ?

Comment corriger l'erreur Vous n'êtes pas autorisé à accéder…

Répertoire Linux tmp :tout ce que vous devez savoir

>&- est-il plus efficace que>/dev/null ?

Comment systemd-tmpfiles nettoie /tmp/ ou /var/tmp (remplacement de tmpwatch) dans CentOS / RHEL 7

UNIX / Linux :Quelle est la bonne permission des répertoires /tmp et /var/tmp

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions