Centos系统下“无法打开并写入文件”问题的解决
摘要
最近在工作中发行限了一个问题,当前是root用户,去编辑/etc/ssh/sshd_config却提示没有权限修改。报错如"/etc/ssh/sshd_config"E212:无法打开并写入文件。
问题思考
既然提示没有权限,又是root用户,看肯定是给该文件设置了特殊的权限。检查特殊权限设置:
- getfacl
- lsattr
getfacl结果正常
root@pts/1$getfacl/etc/ssh/sshd_config getfacl:Removingleading'/'fromabsolutepathnames #file:etc/ssh/sshd_config #owner:root #group:root user::rw- group::--- other::---
lsattr提示错误:-bash:lsattr:commandnotfound没有该命令,奇怪。当前系统是CentOSrelease6.5(Final),那就尝试安装。
查找得知lsattr和chattr属于安装包e2fsprogs,安装之。
root@pts/1$yuminstalle2fsprogs 设置安装进程 解决依赖关系 -->执行事务检查 --->Packagee2fsprogs.x86_640:1.41.12-18.el6_5.1willbe升级 --->Packagee2fsprogs.x86_640:1.41.12-23.el6willbeanupdate -->处理依赖关系libss=1.41.12-23.el6,它被软件包e2fsprogs-1.41.12-23.el6.x86_64需要 ...... 更新完毕: e2fsprogs.x86_640:1.41.12-23.el6 作为依赖被升级: e2fsprogs-libs.x86_640:1.41.12-23.el6libcom_err.x86_640:1.41.12-23.el6libcom_err-devel.x86_640:1.41.12-23.el6 libss.x86_640:1.41.12-23.el6
完毕!
lsattr检查
root@pts/1$lsattr/etc/ssh/sshd_config ----i--------e-/etc/ssh/sshd_config
这里的i表示immutable,在文件上启用这个属性时,我们不能更改、重命名或者删除这个文件。
这里的e表示extentformat,它表明该文件使用磁盘上的块的映射扩展。属于“正常”规则
chattr删除不可修改属性
root@pts/1$chattr-i/etc/ssh/sshd_config iZ25zjpz5pqZ[~]2017-12-1610:59:14 root@pts/1$lsattr/etc/ssh/sshd_config -------------e-/etc/ssh/sshd_config iZ25zjpz5pqZ[~]2017-12-1610:59:17 root@pts/1$vim/etc/ssh/sshd_config iZ25zjpz5pqZ[~]2017-12-1610:59:26 root@pts/1$
从上面的操作可以看到我们取消i设置之后可以成功修改该文件。
如果完成修改你可以让其恢复不可修改属性,可以执行chattr+i/etc/ssh/sshd_config
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。