GNU/Linux >> Tutoriales Linux >  >> Linux

¿Está redirigiendo la salida estándar a un archivo en el que no tiene permiso de escritura?

Cuando intenta modificar un archivo sin tener permisos de escritura, obtiene un error:

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

Sudoing no ayuda, porque ejecuta el comando como root, pero el shell maneja la redirección de stdout y abre el archivo de todos modos:

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

¿Hay alguna manera fácil de redirigir stdout a un archivo en el que no tiene permiso para escribir, además de abrir un shell como root y manipular el archivo de esa manera?

> sudo su
# echo test > /tmp/foo

Respuesta aceptada:

Sí, usando tee . Entonces echo test > /tmp/foo se convierte

echo test | sudo tee /tmp/foo

También puede agregar (>> )

echo test | sudo tee -a /tmp/foo

Linux
  1. ¿Es>&- más eficiente que>/dev/null?

  2. ¿Es Rsync ~/foo Target/foo lo mismo que Rsync ~/foo/ Target/foo/?

  3. Cómo systemd-tmpfiles limpia /tmp/ o /var/tmp (reemplazo de tmpwatch) en CentOS/RHEL 7

  4. UNIX/Linux:¿Cuál es el permiso correcto de los directorios /tmp y /var/tmp?

  5. ¿La tubería tiene que escribir un archivo temporal?

Cómo solucionar el error No tienes permiso para acceder…

Directorio tmp de Linux:todo lo que necesita saber

¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

¿Redireccionar el contenido de un archivo al comando "echo"?

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions

¿Deberían vivir los sitios web en /var/ o /usr/ según el uso recomendado?