Estoy tratando de escribir /etc/network/interfaces
con un usuario que no tiene privilegios de root.
La razón para querer escribir en esto sería permitirle al usuario establecer una IP estática ya que estoy ejecutando un servidor de línea de comando solamente. ¿Qué permiso necesito dar al usuario etc/sudoers
?
No quiero que el usuario tenga permisos de root completos. Solo capacidad de editar este archivo.
permissions
user-management
Keith
fuente
fuente
/var/tmp/foo
=/etc/network/interfaces
? Nunca he visto realmente lo que estás tratando de decir allí, soy bastante nuevo en Linux.setfacl: /etc/logrotate.conf: Operation not supported
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) (convisudo
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 agregarAhora 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
)... y le dice al usuario que edite
/tmp/temp-iface.txt
y luego ejecutesudo /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.fuente
/etc/network/interfaces
archivo a lo que sea/root/set_static_ip
. A menos que pueda hacer un script que le pida al usuario que ingrese la dirección IP, la puerta de enlace, etc. Esto no es lo suficientemente bueno para hacer./etc/sudoers
, esvisudo
, nosudoedit
.