web-dev-qa-db-ja.com

Solaris10のUFSで特定のファイル名のファイルを作成または削除できません

(ランダムに)特定のファイルを作成または削除できないという問題が発生しています。ファイルが存在しません。ファイルに書き込もうとすると(コンソールのrootとしても)、「PermissionDenied」メッセージが表示されます。

自動化されたプロセスにより、次のようにファイルがこの場所にsftpされました。

「/ dirX /」の下で、file001からfile999までがfile666を除いて転送されました。ファイル666の結果、許可拒否エラーが発生しました。

  1. ファイルが存在しません
  2. (ルートとして)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, " m v", 2)         = 2
: cannot rename write(2, " :   c a n n o t   r e n".., 16)      = 16
file666write(2, " f i l e 6 6 6".., 17)     = 17
 to write(2, "   t o  ", 4)           = 4
otherfile666write(2, " b k . t x t", 6)     = 6
: write(2, " :  ", 2)         = 2
Permission deniedwrite(2, " P e r m i s s i o n   d".., 17)     = 17

ls-hal出力

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

Solaris pprivコマンドを使用して、Permission Deniedの問題をデバッグできます。これを試して:

ppriv -e -D touch /dirX/file666
1
mark4o

結果は何ですか:

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

このファイルに権限または属性はありますか?私の最初のことですが、おそらく+ i不変フラグが設定されていました。

また、「strace」を使用して、許可が拒否されたエラーが明らかでない場合に何が原因であるかを確認できます-'strace rm/dirX/file666 '

また、彼らがfsckを実行したとき、彼らは悪いブロックチェックでそれを実行しましたか? (-c)

0
Dave Drager

ファイルの名前変更または削除中の「許可拒否」(EACCES)は、ファイル自体の問題ではなく、ディレクトリの更新の問題を示しています。これはロングショットですが、ディレクトリを削除して再作成してみてください。

この行:

mv /dirX /dirSomethingElse #permission denied.

正確な場合は、ルートディレクトリの問題も示しています。 fsckやドライブの表面分析を再実行してから、テストをやり直したいと思います。このようなランダム性は、ファイルシステムの破損またはディスクブロックの不良を示しています。

0
Kenster