Estoy tratando de editar sources.list usando el editor vi pero obtengo el siguiente error al guardar el archivo:
/etc/apt/sources.list" E212: Can't open file for writing
Estoy tratando de editar sources.list usando el editor vi pero obtengo el siguiente error al guardar el archivo:
/etc/apt/sources.list" E212: Can't open file for writing
Respuestas:
For some reason the file you are writing to cannot be created or overwritten.
The reason could be that you do not have permission to write in the directory
or the file name is not valid.
Vim tiene un sistema de ayuda incorporado. Acabo de citar lo que dice :h E212
.
Es posible que desee editar el archivo como superusuario como sudo vim FILE
. O si no desea abandonar su sesión vim existente (y ahora tiene los derechos de sudo adecuados), puede emitir:
:w !sudo tee % > /dev/null
Lo que guardará el archivo.
HTH
En lugar de perder todos tus 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 la raíz 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. Usa este comando.
:w !chmod 777 %
Luego escribe el archivo:
:wq!
Los permisos se expanden y el archivo se guarda. Necesita el signo de exclamación porque está editando un archivo raíz como un usuario menor.
Explicación de lo que hace ese comando:
El: w significa escribir el archivo. La explosión significa comenzar a interpretar como shell. chmod significa permisos de cambio, 777 significa permisos completos en todas partes. El porcentaje significa el nombre del archivo actual.
Aplica el cambio. Y le pregunta si desea volver a cargar. Presione "O" para "Ok". No recargue o perderá sus cambios.
Para mí había una solución bastante simple. Intenté editar / crear un archivo en una carpeta que no existía. Como ya estaba en la carpeta, estaba tratando de editar / crear un archivo.
es decir pwd folder/file
y estaba escribiendo
sudo vim folder/file
y, obviamente, estaba buscando la carpeta en la carpeta y no pudo guardar.
O tal vez estás en un fs de solo lectura
Hice referencia a Zsolt en el nivel 2, ingresé:
:w !sudo tee % > /dev/null
y luego, en mi situación, todavía no puedo modificar el archivo, por lo que me solicitó que agregue "!". entonces ingreso
:q!
entonces funciona
para mí trabajé cambiando el sistema de archivos de solo lectura antes de ejecutar vim:
bash-3.2# mount -o remount rw /
Cuando abra el archivo en vim, use sudo. es decir: sudo vim textfile. Esto resolverá el problema.
cambiar usuario a root
sodu su -
navegar a etc.
vi sudoers
busque el usuario root en la sección de privilegios de usuario. lo conseguirás como
root ALL=(ALL:ALL) ALL
haga la misma entrada para su nombre de usuario. si su nombre de usuario es 'myuser', agregue
myuser ALL=(ALL:ALL) ALL
se verá como
root ALL=(ALL:ALL) ALL
myuser ALL=(ALL:ALL) ALL
guárdalo cambie el usuario root a su usuario. ahora intenta lo mismo donde estabas teniendo el problema de los sudoers
Es posible que el archivo al que está accediendo tenga una copia de intercambio (o una versión de intercambio) ya en el mismo directorio
Por lo tanto, primero vea si existe un archivo oculto o no.
Por ejemplo, vea el siguiente tipo de archivos
.system.conf.swp
Al usar el comando
ls -a
Y luego, bórrelo usando ...
rm .system.conf.swp
Por lo general, recomiendo comenzar a usar privilegios de superusuario usando ...
sudo su
Recibí este error cuando lo usé git rm
en un archivo en un directorio.
Estaba en algo como ~ / gitRepo / code / newFeature
En newFeature solo había un archivo. Hice un git rm
en ese archivo y luego intenté crear un nuevo archivo myNewFile usando vi.
Ubuntu me mostró que todavía estaba dentro del directorio newFeature pero en realidad git rm
había eliminado todo el directorio.
Tuve que salir de vi, navegar por un directorio y luego volver a crear el directorio newFeature.