GNU/Linux >> Tutoriales Linux >  >> Linux

Agregar una línea en el archivo de hosts, obtener permiso denegado al usar sudo - Mac

Eso es porque echo se está ejecutando como root, pero el shell es el que realmente realiza la redirección. Necesita generar un nuevo shell para que esto funcione:

sudo -- sh -c "echo test >> /etc/hosts"

Editar:no he visto el hecho de que el > redirigir obras; No puedo explicar eso.


En lugar de ejecutar echo a través de una redirección que se ejecutará como su usuario actual, no root como se ejecuta echo en su ejemplo, use tee como sugiere Steve Buzonas

 echo 'test' | sudo tee -a /etc/hosts

El sudo ahora se aplica al comando tee. La '-a' se agrega al archivo

Esto también generará tee a la salida estándar. Si no desea ver 'prueba' en su terminal, también agregue:> /dev/null hasta el final de esa línea.


Linux
  1. ¿Cómo evitar el mensaje de advertencia 'son el mismo archivo' cuando se usa cp en Linux?

  2. Agregue una línea al archivo /etc/hosts con script de shell

  3. ¿Cómo leer la última línea de un archivo de texto en una variable usando Bash?

  4. ¿Cómo inserto texto en la primera línea de un archivo usando sed?

  5. ¿Cómo agregar a un archivo como sudo?

Uso del archivo de configuración SSH

Crear archivos usando la línea de comando en Linux

Cómo hacer eco en un archivo

4 herramientas para descargar cualquier archivo usando la línea de comandos en Linux

¿Cómo leer la penúltima línea en un archivo usando Bash?

¿Cómo insertar una nueva línea en el correo electrónico usando el comando de correo de Linux?