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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • centos下file_put_contents()无法写入文件的原因及解决方法

    centos下file_put_contents()无法写入文件的原因是没有文件夹权限 直接修改目标文件夹/文件 # chmod 777 文件夹名称 以上这篇centos下file_put_contents()无法写入文件的原因及解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 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 le

  • CentOS系统下如何设置mysql每天自动备份

    前言 大家都知道数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦.通过本文来一起来看看CentOS系统下如何设置mysql每天自动备份吧. 步骤如下 建备份文件夹: mkdir mysql_data_bak 建脚本文件: touch autobackupmysql.sh 打开文件 vi autobackupmysql.sh 在脚本中加入如下内容: filename=`date +%Y%m%d` /usr/bin/mysqldump -uroot -proot boss >>/home

  • 如何更改Linux(CentOS)系统下的MySQL数据库目录位置

    如何更改CentOS系统下的MySQL数据库目录位置 1.首先我们需要关闭MySQL,命令如下: service mysqld stop 2.然后是转移数据,为了安全期间,我们采用复制的命令cp,先找到mysql的原目录 cd /var/lib ls 运行这个命令之后就会看到mysql的目录了,然后执行cp命令 cp -a mysql /home/mysql_data/ 这样就把数据库复制到/home/mysql_data下面去了 注意:(-a这个参数一定要带着,否则复制过去的权限就不对了.)

  • CentOS系统下安装Tomcat7的过程详解

    1.检查java版本信息 #java -version java version "1.7.0_65" OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17) OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode) 如果没有则安装,则安装jdk 1.1.(以下方式强烈不建议,因为有时候会缺少jar包,导致tomcat启动不成功): yum -y install

  • linux CentOS 系统下如何将php和mysql命令加入到环境变量中

    linux CentOS 系统下如何将php和mysql命令加入到环境变量中 在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行"php -v"命令查看当前php版本信息时时,则会提示命令不存在的错误,下面我们详细介绍一下在linux下将php和mysql加入到环境变量中的方法(假设php.mysql和apache分别安装在/phpstudy/server/php/./phpstudy

  • CentOS系统下安装及配置JDK介绍

    目录 前言 检查并卸载 OpenJDK 使用下载好的压缩包方式安装 JDK JDK 环境配置 测试配置是否成功 通过 yum 命令安装 JDK 通过 rpm 命令安装 JDK 前言 说到 JDK 就不得不提一下一道老掉牙的面试题: JDK(Java Develpment Kit,Java 开发工具包) JRE(Java Runtime Environment,Java 运行时环境) JVM(Java Virtual Machine,Java 虚拟机) 双十一购买了一台阿里云服务器,一直放着吃灰,

  • mac 系统下使用 chmod 命令修改文件权限

    PC 端修改文件访问权限算是比较常用的操作,在安装部分软件时经常需要使用到.在 Mac 系统的终端上修改文件权限使用的是 Linux 中的 chmod 命令.这里详细介绍一下该命令的相关使用. 也可以直接通过 man chmod 在终端工具上查看该命令的帮助手册. 查看文件权限 ls -l 命令可以查看当前目录下所有文件的访问权限,也可以查看指定文件.比如,查看 Tomcat bin 目录中的 startup.sh 文件的访问权限时: yifeng:bin yifeng$ ls -l start

  • 关于CentOs系统自带python和yum卸载后的解决办法

    事故背景:前几天因项目需要,在服务器上搭建python-mysql模块,结果没安装好,于是乎想卸载重装,遂在网上查询卸载python的方法,结果一不小心直接把系统的python删了个干净.......... 现在只能含泪修复,博主在网上搜了一圈办法,基本上都不是那么的详细,现在记下这一方法,希望能帮到与我情况相同的朋友~ 1:卸载python(以免有些同学没有卸载干净) 2.卸载yum 3.验证是否删除干净 4.安装python和yum 在以下链接的镜像站中找到你系统对应版本的python rp

  • windows系统下安装Cypress及cypress open报错解决

    目录 一.操作系统 二.安装依赖 1.node.js 2.linux 三.安装 四.安装完成,打开cypress 安装cypress. 一.操作系统 先确认下你的系统,是否在cypress支持范围之内: macOS 10.9 以上 (仅64-bit)Linux Ubuntu 12.04及以上版本,Fedora 21和Debian 8(仅64位)windows7 以上 二.安装依赖 1.node.js 如果使用npm来安装Cypress,需要Node.js 12 或者 14 以上.不知道啥是nod

  • CentOS系统下MongoDB安装及配置教程

    一.准备工作: 运行yum命令查看MongoDB的包信息 复制代码 代码如下: [root@vm ~]# yum info mongo-10gen (提示没有相关匹配的信息,) 说明你的centos系统中的yum源不包含MongoDB的相关资源,所以要在使用yum命令安装MongoDB前需要增加yum源,也就是在 /etc/yum.repos.d/目录中增加 *.repo yum源配置文件,以下分别是针对centos 64位和32位不同的系统的MongoDB yum 源配置内容: 我们这里就将该

随机推荐