在Solaris 10下,无法在UFS上创build或删除具有特定文件名的文件

我们遇到了一个问题,在(随机)的情况下,无法创build特定的文件,也不能删除。 该文件不存在,任何尝试写入(甚至作为根在控制台)导致“权限被拒绝”消息。

一个自动化的过程把文件传送到这个位置,如下所示:

在“/ dirX /”下,file001到file999之间的文件已被传输,但file666除外。 导致文件666导致权限被拒绝的错误。

  1. 该文件不存在
  2. (以root身份)touch / dirX / file666 – >权限被拒绝

我们试过这个:

mv /dirX /dirSomething touch /dirSomething/file666 # OK! mv /dirSomething /dirX #OK! cat /dirX/file666 #OK! rm /dirX/file666 #permission denied mv /dirX /dirSomethingElse #permission denied. 

我们的支持人员将系统带离线,运行fsck,发现并纠正了1个错误。 这并没有解决问题,也没有阻止它再次发生。

就好像文件系统不喜欢这个特定的名字,并拒绝对它做任何事情。

什么可能导致这样的问题?

编辑:简化truss输出:

 pathconf("file666", 20) = 1 acl("file666", GETACLCNT, 0, 0x00000000) = 4 stat64("file666", 0xFFBFEC90) = 0 acl("file666", GETACL, 4, 0x00027928) = 4 lstat64("otherfile666", 0x00026630) Err#2 ENOENT rename("file666", "otherfile666") Err#13 EACCES fstat64(2, 0xFFBFDF10) = 0 mvwrite(2, " mv", 2) = 2 : cannot rename write(2, " : cannotren".., 16) = 16 file666write(2, " file 6 6 6".., 17) = 17 to write(2, " to ", 4) = 4 otherfile666write(2, " bk . txt", 6) = 6 : write(2, " : ", 2) = 2 Permission deniedwrite(2, " P ermissiond".., 17) = 17 

ls -hal输出

 FJSV>host{root}: ls -hal * -rw-r--r-- 1 a817768 nologin 34K Jun 26 14:56 file666 

Solaris ppriv命令可用于debugging权限被拒绝的问题。 尝试这个:

 ppriv -e -D touch /dirX/file666 

有什么结果来自:

 ls -hal /dirX/file666 lsattr /dirX/file666 

这个文件有没有权限或属性? 我的第一,虽然,也许+我不可变的标志设置它。

你也可以使用'strace'来找出什么是允许拒绝错误,如果它是不明显的 – 'strace rm / dirX / file666'

而且,当他们运行fsck时,他们是否使用坏块检查来运行它? (-C)

对于什么是值得,“权限被拒绝”(EACCES),而重命名或删除文件指向更新目录的问题,而不是文件本身的问题。 这是一个远射,但你可以尝试删除和重新创build目录。

这一行:

 mv /dirX /dirSomethingElse #permission denied. 

如果准确的话,也指向根目录的问题。 我倾向于重新运行fsck和/或驱动器的表面分析,然后重做你的testing。 像这样的随机性意味着文件系统损坏或坏的磁盘块。