Vim "write with sudo" not working
I'm editing a system-wide file called ssh_config
in /etc/ssh
folder using vi
without root privilege. And I save this file by using the following command:
:w !sudo tee %
But it doesn't work, I'm getting this error
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
shell returned 1
Press ENTER or type command to continue
then I try another command by explicitly provide root
password.
:w !echo password | sudo -S tee %
And a warning show
W12: Warning: File "user_config" has changed and the buffer was changed in Vim as well
See ":help W12" for more info.
[O]K, (L)oad File:
I already try all the above options but none of these work. Any solution? Thanks.
If you edit the file, THEN decide you need to be root
, your process needs improvement.
Think before you type.
Read
man sudoedit
, set up your $EDITOR
and $VISUAL
environment variables, and it's easy.
In emergencies ("I typed 97 lines of config and it won't let me save!"), save the file somewhere else (where you have write permission) :w/tmp/oops
, exit the editor and use sudo cp /tmp/oops !$
to copy it to the right place.