Gentoo: no se puede modificar el archivo de nombre de host como un sudoer


1

Estoy intentando cambiar el nombre de host de un host de Gentoo usando una cuenta de sudoer. Yo uso el siguiente procedimiento:

  1. sudo rm -f /etc/conf.d/hostname
  2. sudo touch /etc/conf.d/hostname
  3. sudo echo "hostname=foo" >> /etc/conf.d/hostname
  4. sudo /etc/init.d/net.lo restart

Sólo el paso 3 falla. Se plantea un permission error. ¿Así que me gustaría saber por qué me sale esto? Intenté detener el servicio de red primero, pero sin cambios.

Respuestas:


2

Falla porque la >> es interpretado por el shell del usuario normal; Solo el echo se ejecuta como root.

Una forma sencilla de evitar esto es ejecutar el comando en una shell raíz interactiva:

$ sudo su -
# echo "hostname=foo" > /etc/conf.d/hostname
# /etc/init.d/net.lo restart
# exit
$

Tenga en cuenta que no necesita el touch comando, y si solo usas > También puedes prescindir de la rm, como > sobrescribirá el contenido del archivo.


0

La forma correcta de hacer esto:

echo "hostname=foo" |  sudo tee -a /etc/conf.d/hostname > /dev/null

No necesitas sudo para correr echo, pero no puede aplicar sudo a la redirección, así que en lugar de canalizarlo tee (un divisor de salida), en modo agregado ( -a, actúa como >> ), y luego puede la salida (porque no está interesado en ella) redirigiéndolo a /dev/null.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.