1. ホーム
  2. java

[解決済み] java.io.FileNotFoundException (permission denied) chmod 777にもかかわらず。

2022-02-07 21:13:39

質問

TomcatにデプロイされたGrailsアプリケーションを書いているときに、奇妙な問題に直面しました。

簡単なテストコントローラを作成した後、テスト内容を パッケージ・コム

package com.domain.controller

import java.io.File;
import java.io.PrintWriter;

class TestController {

        def index() {
                // test
                try {
                        PrintWriter writer = new PrintWriter("/home/user/domains/domain.com/public_html/the-file-name.txt");
                        writer.println("The first line");
                        writer.println("The second line");
                        writer.close();
                } catch (IOException e) {
                        throw new RuntimeException(e);
                }
        }
}

例外が発生する

クラス java.io.FileNotFoundException メッセージ /home/user/domains/domain.com/public_html/the-file-name.txt (Brak dostępu)

にchmodを777に設定しました。 /home/user/domains/domain.com/public_html/ . そして tomcat7.tomcat7 がオーナーです。また、このファイルをアクセス権777、所有者をtomcat7に設定して作成してみましたが、やはり例外が発生します。

ls -al /home/user/domains/domain.com/public_html
razem 16
drwxrwxrwx 3 tomcat7 tomcat7 4096 01-08 23:25 .
drwxr-xr-x 8 user    user    4096 12-16 17:14 ..
-rwxrwxrwx 1 tomcat7 tomcat7    0 01-08 23:25 the-file-name.txt

OSのどのような条件も満たすべきですか?

どなたか問題を明確にしていただけると幸いです。


EDIT :

の下にディレクトリを作成しました。 /path1 で、777を設定します。ファイルは完全に保存されています。 私はまた、以下のディレクトリを作成しました。 /path2/testdir が、path2にはパーミッション777とchownがない。それも動作します。私はまた、テストしている testdir 文字で ._ も動作します。

私は非常に調査的で、この挙動を理解することができません。

解決方法は?

すべての親ディレクトリに対して読み取りと実行のアクセス権があることを確認してください。

chmod o+x /home/user