Centos系统下“⽆法打开并写⼊⽂件”问题的解决
摘要
最近在⼯作中发⾏限了⼀个问题,当前是root⽤户,去编辑/etc/ssh/sshd_config 却提⽰没有权限修改。报错
如"/etc/ssh/sshd_config" E212: ⽆法打开并写⼊⽂件。
问题思考
既然提⽰没有权限,⼜是root⽤户,看肯定是给该⽂件设置了特殊的权限。检查特殊权限设置:
getfacl
lsattr
getfacl 结果正常
root@pts/1 $ getfacl /etc/ssh/sshd_config
getfacl: Removing leading '/' from absolute path names
# file: etc/ssh/sshd_config
# owner: root
# group: root
user::rw-
group::---
other::---
lsattr提⽰错误:-bash: lsattr: command not found 没有该命令,奇怪。当前系统是CentOS release 6.5 (Final),那就尝试安装。
查得知lsattr和chattr属于安装包e2fsprogs,安装之。
root@pts/1 $ yum install e2fsprogs
设置安装进程
解决依赖关系
--> 执⾏事务检查
---> Package e2fsprogs.x86_64 0:1.41.12-18.el6_5.1 will be 升级无法打开文件
---> Package e2fsprogs.x86_64 0:1.41.12-23.el6 will be an update
--> 处理依赖关系 libss = 1.41.12-23.el6,它被软件包 e2fsprogs-1.41.12-23.el6.x86_64 需要
... ...
更新完毕:
e2fsprogs.x86_64 0:1.41.12-23.el6
作为依赖被升级:
e2fsprogs-libs.x86_64 0:1.41.12-23.el6  libcom_err.x86_64 0:1.41.12-23.el6  libcom_err-devel.x86_64 0:1.41.12-23.el6
libss.x86_64 0:1.41.12-23.el6
完毕!
lsattr 检查
root@pts/1 $ lsattr /etc/ssh/sshd_config
----i--------e- /etc/ssh/sshd_config
这⾥的i 表⽰immutable,在⽂件上启⽤这个属性时,我们不能更改、重命名或者删除这个⽂件。
这⾥的e 表⽰extent format,它表明该⽂件使⽤磁盘上的块的映射扩展。属于“正常”规则
chattr删除不可修改属性
root@pts/1 $ chattr -i /etc/ssh/sshd_config
iZ25zjpz5pqZ [~] 2017-12-16 10:59:14
root@pts/1 $ lsattr /etc/ssh/sshd_config
-------------e- /etc/ssh/sshd_config
iZ25zjpz5pqZ [~] 2017-12-16 10:59:17
root@pts/1 $ vim /etc/ssh/sshd_config
iZ25zjpz5pqZ [~] 2017-12-16 10:59:26
root@pts/1 $
从上⾯的操作可以看到我们取消i设置之后可以成功修改该⽂件。
如果完成修改你可以让其恢复不可修改属性,可以执⾏chattr +i /etc/ssh/sshd_config
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。