Linux环境修改文件报“ E212: Can‘t open file for writing 解决方法

Linux环境修改文件报" E212: Can’t open file for writing 解决方法

使用lsattr命令,当执行lsattr如果提示-bash: lsattr: command not found 没有该命令,尝试安装下这个命令。
lsattr命令安装:yum install -y e2fsprogs
lsattr命令可以正常使用后,使用此命令查看下文件,命令使用方法:

lsattr filename

例:

lsattr a.txt

这里会看见:

----i--------e- a.txt

i表示immutable,当文件启用这个属性,不能进行更改、重命名或者删除操作。
e 表示extent format,表明该文件使用磁盘上的块的映射扩展。属于“正常”规则。
下面,我们可以使用chattr命令来修改文件的权限
命令使用:chattr -i filename
例:

chattr -i a.txt

执行命令后,我们再查看下权限

lsattr a.txt

这时会发现文件的权限变为了

-------------e- a.txt

这时再编辑就可以正常保存
如果编辑后想将文件的权限恢复,执行:

chattr +i a.txt

再看下文件权限

lsattr a.txt
----i--------e- a.txt
以下是将这些命令转换为Python代码的示例: ```python import subprocess vsftpd_conf_file = '/etc/vsftpd/vsftpd.conf' # Update chroot_list_enable in vsftpd.conf file if subprocess.call('grep -q "chroot_list_enable" /etc/vsftpd/vsftpd.conf', shell=True) == 0: subprocess.call("sed -i '/chroot_list_enable=NO/s/^/#/' /etc/vsftpd/vsftpd.conf", shell=True) subprocess.call("sed -i '/chroot_list_enable=YES/s/^/#/' /etc/vsftpd/vsftpd.conf", shell=True) subprocess.call("echo 'chroot_list_enable=YES' >> /etc/vsftpd/vsftpd.conf", shell=True) else: subprocess.call("echo 'chroot_list_enable=YES' >> /etc/vsftpd/vsftpd.conf", shell=True) # Update chroot_list_file in vsftpd.conf file if subprocess.call('grep -q "chroot_list_file=/etc/vsftpd/chroot_list" /etc/vsftpd/vsftpd.conf', shell=True) == 0: subprocess.call("sed -i '/chroot_list_file=/etc/vsftpd/chroot_list/s/^/#/' /etc/vsftpd/vsftpd.conf", shell=True) subprocess.call("echo 'chroot_list_file=/etc/vsftpd/chroot_list' >> /etc/vsftpd/vsftpd.conf", shell=True) else: subprocess.call("echo 'chroot_list_file=/etc/vsftpd/chroot_list' >> /etc/vsftpd/vsftpd.conf", shell=True) # Update anonymous_enable in vsftpd.conf file if subprocess.call('grep -q "anonymous_enable" /etc/vsftpd/vsftpd.conf', shell=True) == 0: subprocess.call("sed -i '/anonymous_enable=YES/s/^/#/' /etc/vsftpd/vsftpd.conf", shell=True) subprocess.call("sed -i '/anonymous_enable=NO/s/^/#/' /etc/vsftpd/vsftpd.conf", shell=True) subprocess.call("echo 'anonymous_enable=NO' >> /etc/vsftpd/vsftpd.conf", shell=True) else: subprocess.call("echo 'anonymous_enable=NO' >> /etc/vsftpd/vsftpd.conf", shell=True) ``` 上述代码首先检查是否存在`/etc/vsftpd/vsftpd.conf`文件中的`chroot_list_enable`行,如果存在,则将其注释去除,并将其值设置为`YES`。接着,检查是否存在`chroot_list_file=/etc/vsftpd/chroot_list`行,如果存在,则将其注释去除。然后,检查是否存在`anonymous_enable`行,如果存在,则将其注释去除,并将其值设置为`NO`。 请确保你具有足够的权限来执行这些操作,并将需要修改文件路径正确添加到`vsftpd_conf_file`变量中。运行代码后,命令将被执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值