我正在使用非 root 权限编辑名为ssh_config
in文件夹的系统级文件。我使用以下命令保存此文件:/etc/ssh
vi
:w !sudo tee %
但它不起作用,我收到这个错误
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
然后我通过明确提供密码尝试另一个命令root
。
:w !echo password | sudo -S tee %
并显示警告
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:
我已经尝试了上述所有选项,但都不起作用。有解决办法吗?谢谢。
答案1
如果您编辑文件,然后决定需要root
,您的流程需要改进。
打字前请三思。
阅读
man sudoedit
,设置您的$EDITOR
和$VISUAL
环境变量,这很容易。
在紧急情况下(“我输入了 97 行配置,但它不允许我保存!”),将文件保存到其他地方(您有写权限的地方):w/tmp/oops
,退出编辑器并使用sudo cp /tmp/oops !$
将其复制到正确的位置。