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

63 篇文章 0 订阅
51 篇文章 0 订阅

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

一、问题现象

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

warning: /etc/ssh/sshd_config created as /etc/ssh/sshd_config.rpmnew
    error: 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用户在删除文件时仍提示权限不足,可以排查文件本身及其上级目录是否被设置了隐藏权限,如有,则可以进行权限调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代先生.重庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值