Prepare un script que realice la edición que desee, por ejemplo, un script que escriba el archivo correcto con la IP estática (qué poner en este script está fuera del alcance de estas preguntas y respuestas). Llamemos a este script /root/set_static_ip
. (1)
Editar /etc/sudoers
(2) (con visudo
es mejor, comprueba la cordura, es muy difícil recuperar un sistema con un archivo sudoers no válido, incluso imposible desde el remoto (3)), y agregar
user_name_to_authorize ALL=NOPASSWD: /root/set_static_ip
Ahora ese usuario puede usar sudo /root/set_static_ip
sin ninguna contraseña solicitada, y el script se ejecutará con todos los privilegios; No se permitirá ningún otro comando.
Si desea que el usuario simplemente reemplace un archivo con lo que quiera, el script simplemente podría ser (llámelo /root/unsafe-overwrite-interface
)
#! /bin/bash -e
#
cp /tmp/temp-iface.txt /etc/network/interfaces
exit 0
... y le dice al usuario que edite /tmp/temp-iface.txt
y luego ejecute sudo /root/unsafe-overwrite-interface
--- habilitándolo en sudoers como se especifica anteriormente. O puede agregar al usuario a una lista de ACL y darles permiso de escritura en el archivo específico .
Pero note que si usted no comprueba el contenido del archivo para la seguridad, el caos va a suceder, ya sea intencional o no intencional.
Notas al pie :
(1) este script debe ser lo más seguro posible. Verifique las entradas, etc. Se ejecutará con permisos completos.
(2) en la instalación moderna de sudo, puede agregar un archivo al /etc/sudoers.d/
directorio que es mejor --- sobrevivirá a las actualizaciones.
(3) Normalmente mantengo un terminal con una sesión de root abierta ( sudo -i
) cuando modifico el mecanismo de sudoers y una copia de seguridad a mano.
/var/tmp/foo
=/etc/network/interfaces
? Nunca he visto realmente lo que estás tratando de decir allí, soy bastante nuevo en Linux.