为什么 root 无法打开文件进行写入?

为什么 root 无法打开文件进行写入?
[root@localhost ~]# vim /usr/lib64/sas12/smtpd.conf    
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
log_level:3

:wq

发生错误。

"/usr/lib64/sas12/smtpd.conf" E212: Can't open file for writing.  

为什么 root 无法打开文件进行写入?

在此输入图像描述

答案1

检查是否/usr/lib64/sas12目录已经存在:

root@host:~# ls /usr/lib64/sas12

如果不是这种情况,则必须在尝试创建文件之前创建目录:

root@host:~# mkdir -p /usr/lib64/sas12
root@host:~# vim /usr/lib64/sas12/smtpd.conf

您的vim命令现在应该按预期工作。

答案2

文件系统要么以只读方式挂载,要么这不是root权限问题而是一个vim功能。使用不同的编辑器或更改文件权限(例如,设置root文件所有者),编辑文件,然后将其更改回来。

答案3

当文件上设置了“+a”属性时,您可能会收到此错误。该命令chattr仅允许添加但不允许删除现有文件。

server123:/tmp # chattr +a manish
server123:/tmp # lsattr manish
-----a---------- manish

答案4

如果同一位置也存在交换文件,可能会锁定该文件以进行编辑,则可能会发生这种情况。

示例请查找该文件

/usr/lib64/sas12/.smtpd.conf.swp

如果该文件存在,则您无法编辑该文件。尝试删除它,然后编辑它应该可以工作。

相关内容