/etc/apt/sources.list" E212: No se puede abrir el archivo para escribir
Estoy intentando editar fuentes.list usando el editor vi pero aparece el siguiente error al guardar el archivo:
/etc/apt/sources.list" E212: Can't open file for writing
Vim tiene un sistema de ayuda incorporado. Al ejecutarlo :h E212
dentro de Vim, se imprime lo siguiente:
Por alguna razón, el archivo en el que está escribiendo no se puede crear ni sobrescribir. El motivo podría ser que no tiene permiso para escribir en el directorio o que el nombre del archivo no es válido.
Es posible que desees editar el archivo como superusuario con sudo vim FILE
. O si no desea abandonar su sesión vim existente (y ahora tiene los derechos sudo adecuados), puede ejecutar:
:w !sudo tee % > /dev/null
Lo que guardará el archivo.
Eso me pasa todo el tiempo, abro un archivo raíz para escribir:
En lugar de perder todos los cambios y volver a abrir con sudo. Vea esta demostración de cómo guardar esos cambios:
Demostración de configuración única para crear un archivo de solo lectura propiedad de root para un usuario inferior:
sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el
Primero abra el archivo como usuario normal:
vi temp.txt
Luego haga algunos cambios en el archivo, le advierte que es de solo lectura. Utilice este comando.
:w !chmod 777 %
Luego escribe el archivo:
:wq!
Los permisos se amplían y el archivo se guarda. Necesita el signo de exclamación porque está editando un archivo raíz como usuario menor.
Explicación de lo que hace ese comando:
El :w significa escribir el archivo. El bang significa empezar a interpretarlo como concha. chmod significa cambiar permisos, 777 significa permisos completos en todas partes. El porcentaje significa el nombre del archivo actual.
Aplica el cambio. Y te pregunta si quieres recargar. Presione "O" para "Aceptar". No recargues o perderás los cambios.
Para mí había una solución bastante sencilla. Estaba intentando editar/crear un archivo en una carpeta que no existía. Como ya estaba en la carpeta en la que estaba intentando editar/crear un archivo.
es decirpwd folder/file
y estaba escribiendo
sudo vim folder/file
y obviamente estaba buscando la carpeta en la carpeta y no pudo guardar.