I am trying to edit sources.list using vi editor but getting the following error while saving the file:
/etc/apt/sources.list" E212: Can't open file for writing
This question is related to
vi
ubuntu-11.04
You just need to access to Gemfile with root access. Before vi
:
command:
sudo su -
then:
vi ~/...
Or perhaps you are on a readonly mounted fs
It might be possible that the file you are accessing has a swap copy (or swap version) already there in the same directory
Hence first see whether a hidden file exists or not.
For example, see for the following type of files
.system.conf.swp
By using the command
ls -a
And then, delete it using ...
rm .system.conf.swp
Usually, I recommend to start using super user privileges using ...
sudo su
for me worked changing the filesystem from Read-Only before running vim:
bash-3.2# mount -o remount rw /
Try to connect as root and then edit file. This works for me
Instead of losing all your changes and re-opening with sudo. See this demo of how to save those changes:
One time Setup demo to create a root owned read only file for a lower user:
sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el
First open the file as normal user:
vi temp.txt
Then make some changes to the file, it warns you its read only. Use this command.
:w !chmod 777 %
Then write the file:
:wq!
The permissions are expanded, and the file is saved. You need the exclamation point because you are editing a root file as a lesser user.
Explanation of what that command does:
The :w means write the file. The bang means start interpreting as shell. chmod means change permissions, 777 means full permissions everywhere. The percent means the current file name.
It applies the change. And it ask if you want to re-load. Press "O" for "Ok". Don't reload or you'll lose your changes.
I got this error when I used git rm
on a file in a directory.
I was in something like ~/gitRepo/code/newFeature
In newFeature there was only one file. I did a git rm
on that file then tried to create a new file myNewFile using vi.
Ubuntu showed me as still being inside the newFeature directory but actually git rm
had removed the whole directory.
I had to exit out of vi, navigate up one directory and then recreate the newFeature directory.
For me there was was quite a simple solution. I was trying to edit/create a file in a folder that didn't exist. As I was already in the folder I was trying to edit/create a file in.
i.e. pwd folder/file
and was typing
sudo vim folder/file
and rather obviously it was looking for the folder in the folder and failing to save.
I referenced to Zsolt in level 2, I input:
:w !sudo tee % > /dev/null
and then in my situation, I still can't modify the file, so it prompted that add "!". so I input
:q!
then it works
because the dir is not exist.
can use :!mkdir -p /etc/apt/
to make the directory.
then :wq
I got this error when my directory path is incorrect, ensure your directory names and path are correct
change user to root
sodu su -
browse to etc
vi sudoers
look for root user in user priviledge section. you will get it like
root ALL=(ALL:ALL) ALL
make same entry for your user name. if you username is 'myuser' then add
myuser ALL=(ALL:ALL) ALL
it will look like
root ALL=(ALL:ALL) ALL
myuser ALL=(ALL:ALL) ALL
save it. change root user to your user. now try the same where you were getting the sudoers issue
Pre-append your commands with sudo
.
For example, Instead of vim textfile.txt
, used sudo vim textfile.txt
. This will resolve the issue.
change the permission for the other user for that type setfacl -m u:username:rw filename
Source: Stackoverflow.com