E45只读选项已设置(添加!以覆盖)

我正在尝试在我的Ubuntu Server VirtualBox上配置mcrypt扩展,以便在我的phpMyAdmin页面上工作。
我运行了vi /etc/php5/mods-available/mcrypt.ini命令,然后我将extension=mcrypt.so更改为extension=/usr/lib/php5/20121212/mcrypt.so,当我尝试保存更改时,它显示了以下内容:
E45 readonly option is set (add ! to override)

我觉得在extension=mcrypt.os之前删除了某些东西,可能是我的错误,但我不知道该怎么办。


2可能是:wq在vim中不保存的重复问题。 - David Foerster
1尝试使用sudo vi /etc/php5/mods-available/mcrypt.ini打开文件。 - Natim
可能是如何获取编辑系统配置文件的权限?的重复问题。 - muru
https://stackoverflow.com/a/28635648 - pzkpfw
5个回答

可能你使用的用户在运行vi /etc/php5/mods-available/mcrypt.ini时没有对该文件具有写入权限。当你尝试保存文件时,vi会在文件打开时发现这一点,并给出E45错误提示,提醒你可以尝试通过在命令后添加'!'来覆盖文件的只读属性。
例如,如果你编辑的是一个属于你用户的文件,受到保护的444 (r--r--r--)权限,当你执行:wq命令时会收到这个消息,但你可以尝试使用:wq!强制写入。在你的情况下,我建议执行ls -l /etc/php5/mods-available/mcrypt.ini命令。要实际编辑该文件,你可以使用sudo临时获取root权限,并执行sudo vi /etc/php5/mods-available/mcrypt.ini命令。

谢谢,我在使用vim之前使用sudo,然后我就能编辑source.list文件了。 - milad salimi
似乎不是权限问题。在我的情况下:``getfacl file.sh;

文件: file.sh

所有者: 我

组: thegroup

user::rwx group::r-x other::r-x 但我仍然遇到错误!一旦我按下"i"键,就会出现-- INSERT (paste) -- W10: 警告:更改只读文件,在进行一些更改后,当我尝试保存时,会出现E505: "file.sh" 是只读的(添加 ! 来覆盖),父目录也具有相同的权限:# 所有者: 我

组: thegroup

user::rwx group::r-x other::r-x ``,这真的很奇怪!而且这种情况发生在我创建的任何文件上!
- quanta

你可以按下 Esc 键,然后按下 U 键,再输入 :q 来退出。

你可以尝试以 sudo 权限打开文件: sudo vi <file_name>


1添加sudo可以解决问题。 - Morris

首先使用以下命令退出vim编辑器::qa! 接下来,使用sudo vim 文件名进行编辑,然后使用:wq保存退出。

2欢迎来到[ubuntu.se]!**:-)** 这个答案与最受赞同的答案完全相同。 - Fabby

尝试以下命令。
:w !sudo tee %

解释,发生了什么?
  • :w – 写入
  • !sudo – 调用shell sudo命令
  • tee – 使用tee重定向写入(:w)命令的输出
  • % – 当前文件名

所以,在下一步按下L重新加载。

就是这样!!!


如果您进行了大量更改并且不想关闭文件然后使用sudo重新打开,这将非常有帮助。 - Vishwas M.R

当用户在没有正确权限的情况下尝试对文件进行写入时会发生这种情况。使用sudo su登录为root用户,然后您就可以进行编辑...