当前位置: 首页 > news >正文

CentOS6系统因目录有隐含i权限属性致下属文件无法删除的故障一例

CentOS6服务器在升级openssh时因系统目录权限异常(有隐含i权限属性),下属文件无法删除,导致系统问题的故障一例。

一、问题现象

CentOS6在升级openssh时,提示如下问题:

warning: /etc/ssh/sshd_config created as /etc/ssh/sshd_config.rpmnewerror: unpacking of archive failed on file /usr/sbin/.sshd.hmac;666173a8: cpio: open

升级失败,系统出现故障。

 二、问题分析

根据报错信息排查,“ /usr/sbin/.sshd.hmac ”,这是和ssh加密算法有关文件。报错信息表明在解压归档文件时,对于文件 /usr/sbin/.sshd.hmac 在执行复制(cp)操作时失败了,并给出了一个校验和(666173a8)。

1、检查/usr/sbin/.sshd.hmac 文件权限

执行 ls -al /usr/sbin/.sshd.hmac 命令,结果如下:

文件权限为777,权限很低,应该可以删除或覆写。

2、尝试删除/usr/sbin/.sshd.hmac文件

执行rm -rf /usr/sbin/.sshd.hmac,结果如下:

报错“Permission denied”,文件无法删除,但上面已经看过文件是777权限,当前用户为root,理应可以删除。

3、从文件权限“-rwxrwxrwx.”来看,文件属性不太正常,正常的文件不会属性不会有这个点。继续排查:

执行lsattr /usr/sbin/.ssh.hmac,发现该文件有隐含权限e

lsattr相关属性说明
  • i 属性设置之后可使文件不能被删除、改名,设置连接也无法写入或添加数据,只有 root 用户才能设置。
  • a 属性设置之后,文件只能增加数据,既不能删除也不能修改数据,只有 root 用户才能设置。
  • A 设置A属性后,若你访问此文件或目录时,它的访问时间 atime 不会被修改,可避免I/O较慢的机器过度访问磁盘。这对速度较慢的计算机有帮助。
  • s 属性设置之后,如果文件被删除,将从硬盘彻底删除。
  • S 属性设置之后,文件将同步写入硬盘(一般为异步)。
  • u 属性设置之后,文件删除后数据内容还存在磁盘中,可以找回文件。
  • e  属性表示文件正在使用扩展数据块映射磁盘上的块。该属性不能用chattr清除。
  • I  属性来指示目录是使用散列树进行索引。尽管它可以通过lsattr来显示该属性,但不能用chattr来设置或清除。

如文件有 i 和 a 属性 ,则不可被删除,本文件属性为e,理应可被删除。

4、继续排查上级、上上级目录权限

可见/根目录权限属性正常; /usr目录有e属性,也还正常;/usr/sbin目录有i、I、e三个属性,其中i属性指向该目录不的隐藏属性是不可删除的,I、e属性对文档操作并无影响。经了解,发现这里比较让人意外的是,该i或a属性有传递性,当删除其下面的文件时, 不管该文件权限如何,系统也会提示文件不可删除, 权限不足。因此如果想要删除具有i隐藏属性的目录下的文件,需要去掉该属性。

三、解决办法

1、执行chattr -i /usr/sbin

2、再执行lsattr /usr/sbin -d,可以看到i属性已去除

3、现执行rm -rf /usr/sbin/.sshd.hmac,文件成功删除。

4、再执行openssh的升级指令,系统顺利升级成功。

四、问题总结

检查其它系统主机,发现/usr/sbin目录并没有被赋予隐藏权限:

[root@localhost ~]# lsattr /usr/sbin -d
---------------------- /usr/sbin

因该主机系统较老旧,也不知道是谁出于什么原因对/usr/sbin目录配置了i隐藏属性,通过此例,可以知道,如果root用户在删除文件时仍提示权限不足,可以排查文件本身及其上级目录是否被设置了隐藏权限,如有,则可以进行权限调整。

http://www.lryc.cn/news/365332.html

相关文章:

  • 【视频转码】ZLMediaKit漏洞报告的问题
  • 100道大模型面试八股文
  • 【ARM Cache 及 MMU 系列文章 6.2 -- ARMv8/v9 Cache 内部数据读取方法详细介绍】
  • 使用Vue.js将form表单传递到后端
  • 6、架构-服务端缓存
  • 服务器遭遇UDP攻击时的应对与解决方案
  • 美团发布2024年一季度财报:营收733亿元,同比增长25%
  • sql注入-布尔盲注
  • docker-compose部署 kafka 3.7 集群(3台服务器)并启用账号密码认证
  • LeetCode-704. 二分查找【数组 二分查找】
  • Rust 性能分析
  • Gradle和Maven都是广泛使用的项目自动化构建工具
  • Seed-TTS语音编辑有多强?对比实测结果让你惊叹!
  • Vue3——实现word,pdf上传之后,预览功能(实测有效)
  • JVM之【类的生命周期】
  • 分库分表场景下,如何设计与实现一种高效的分布式ID生成策略
  • 机器人系统ros2-开发学习实践16-RViz 用户指南
  • 安全测试 之 安全漏洞 CSRF
  • 交易中的预测和跟随
  • vs2022专业版永久密钥
  • MongoDB环境搭建
  • 数据结构【队列】
  • 微信小程序上架,AI类目审核(AI问答、AI绘画、AI换脸)
  • Vue3学习记录(第一天)
  • springboot+vue+mybatis房屋租贷系统+PPT+论文+讲解+售后
  • Day30 登录界面设计
  • VOJ 迷阵突围 题解 次短路径 dijkstra算法
  • Oracle SQL详解
  • 产业,到底需要什么大模型?
  • 每日5题Day17 - LeetCode 81 - 85