如何用vi编辑只读文件

how to edit readonly file with vi

我正在关注 this tutorial 在 EC2 实例上部署节点项目。 我必须安装 npm,这里是我必须做的:

sudo su
vi /etc/sudoers

按 "i"

编辑
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

为了保存您的更改,在 VI 编辑器中按 ESC 键并键入“wq”并按 ENTER。 但我不能,因为当我按 "i" 时出现错误

W10: Warning: Changing a readonly file

我该如何解决这个问题?

所以我认为这是 vi 的错误,因为我随后尝试使用 nano 并且我有权在文件中写入。

因为,节点我从网站上尝试但它不工作,我认为问题来自亚马逊 linux。我尝试使用 ubuntu 服务器 14.04 的另一个实例,我没有问题

第二个问题是使用 vi 时,当您是 root 时,您必须使用 :w! 来实际覆盖只读文件。

第一个问题是写教程的人给出了错误的建议:/etc/sudoers 不应该直接编辑。

您应该使用 visudo 来编辑该文件,以免搬起石头砸自己的脚。方法正确,应该没有问题。