GNU/Linux >> Tutoriales Linux >  >> Linux

¿Convertirse en root desde dentro de Vim?

A veces empiezo a editar archivos de configuración en /etc usando Vim, pero olvídate de usar sudo para iniciar Vim. Entonces, el resultado inevitable es que después de terminar mis ediciones me encuentro con el temido aviso de que no tengo permiso para guardar el archivo.

La mayoría de las ediciones son lo suficientemente pequeñas como para salir de Vim y hacer todo de nuevo como root. Por supuesto, podría guardar en una ubicación en la que pueda escribir y luego copiar como root, pero eso también es algo molesto.

Pero estoy seguro de que hay una manera más fácil de convertirse en root o usar sudo desde dentro de Vim, sin tener que descartar los cambios. Si el método no se basara en sudo siendo configurado para el usuario que sería aún mejor.

Respuesta aceptada:

sudo no puede cambiar el usuario efectivo de un proceso existente, siempre crea un nuevo proceso que tiene los privilegios elevados y el shell original no se ve afectado. Este es un elemento fundamental del diseño UNIX. La mayoría de las veces solo guardo el archivo en /tmp como solución alternativa. Si realmente desea guardarlo directamente, puede intentar usar una función de Vim donde puede canalizar un archivo a otro proceso. Intenta guardar con este comando:

:w !sudo dd of=%

Probado y funciona. Luego, Vim le pedirá que vuelva a cargar el archivo, pero no es necesario:simplemente presione o para evitar recargar y perder su historial de deshacer. Incluso puede guardar esto en un comando/función de Vim o incluso vincularlo a una tecla para facilitar el acceso, pero lo dejaré como ejercicio para el lector.


Linux
  1. ¿Cómo funcionan las partes internas de Sudo?

  2. Ejecutando Pycharm como root desde el lanzador

  3. ¿Qué es diferente entre root y sudo?

  4. ¿Cómo ejecutar el comando Vim desde el shell?

  5. Sudo contra raíz; alguna diferencia real?

Cómo crear un video a partir de imágenes en Linux

¿Diferencia entre el usuario de Sudo y el usuario raíz?

Inicie siempre la Terminal como usuario raíz (sudo) en Ubuntu

Guarde el archivo como root después de editarlo como no root

¿Cómo pegar desde el búfer en modo ex de vim?

¿Dónde se informan los incidentes de sudo?