32421


CentOS、JBossEAP環境のJavaアプリケーションを作っています。  
このアプリケーションにはファイルを出力する機能があります。  
Aspose.Cellsという製品を使って、PDFやExcelを生成します。  
おおむね、以下のような流れの処理です。

  1. `File.createTempFile()`を使って一時ファイルのパスを作る
  2. 一時ファイルの`FileOutputStream`を作る (`new FileOutputStream()`)
  3. Aspose.Cellsにこの`FileOutputStream`や流し込むデータなどを渡し、帳票ファイルの中身を書き込んでもらう
  4. `FileOutputStream`を`close`
  5. 一時ファイルの`FileInputStream`を作る (`new FileInputStream()`)
  6. 一時ファイルから永続化のためDBにファイルをコピーする

この処理において、なぜか「パスワード付きPDF」や「パスワード付きExcel」を作った場合のみ、5で`FileNotFoundException`（メッセージ：許可されていない操作です）が発生します。  
パスワード付きか否かは、Aspose.Cellsへ渡すオプションであり、少なくともこちらで書いているコードは、このオプション設定以外は全く同じです。

更に調査を進めたところ、問題の一時ファイルについては、CentOS上からroot権限でもって`cp`コマンドや`strings`コマンドでアクセスしようとした場合にも、「許可されていない操作です」というエラーが発生することが分かりました。  
`move`や`rm`はできます。  
`move`したファイルを`cp`しようとしても、「許可されていない操作です」になります。

分かっているのはここまでです。  
もちろん最終的にはこれを解決する必要があるのですが、まず知りたいのは、このファイルがどのような状態のものなのか、です。  
ファイル自体の権限を確認したところ、`rw-r--r--`です。  
少なくとも読み込みはできる権限だと思うのですが、なぜあのようなエラーが起きるのでしょうか？

同じディレクトリ内にある他のファイル（パスワード無しのPDFなど）は問題が起きないので、ディレクトリではなくファイル自体の問題ではないかと推測していますが。  
なお、この一時ファイルの生成に使っているディレクトリは、`/tmp`です。  
`/tmp`ディレクトリの権限設定は、`rwxrwxrwt`です。

Linuxのファイルアクセス権限周りに疎いので、まずキーワードだけでも、この状態のファイルを表す説明を探しています。

====================================================  
追加で調査した内容がありますので追記します。

問題のエラーが起きるファイルですが、Aspose.Cells以外の手段で作成したパスワード付きPDFでも発生します。  
更に、そのPDFファイルをバイナリエディタで開き、ファイル先頭の"%PDF-"の部分のみを削除したところ、エラーが起きなくなりました。


CC BY-SA 3.0
2017-01-24T12:06:30.293
32117
2017-02-06T10:30:25.787
2017-01-26T06:34:14.983
8078
8078
question
java linux
CentOS上で開くことのできないファイルができる条件


Mcafee Virus Scanがインストールされていたようで、その影響であることが判明しました。  
（Mcafeeを無効化することで、エラーが起きなくなったため）


CC BY-SA 3.0
2017-02-06T10:30:25.787
32421
2017-02-06T10:30:25.787
8078
32117
answer