java.io.FileNotFoundException (permission deny) 尽管 chmod 777

我在编写部署在Tomcat上的Grails应用程序时遇到了奇怪的poblem。

创建简单的测试控制器后,我想在包 com 中编写测试内容

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);
                }
        }
}

我得到一个例外:

Class java.io.FileNotFoundException Message /home/user/domains/domain.com/public_html/the-file-name.txt (Brak dostępu)

我已将 chmod 设置为 777 到 .而且是老板。我还尝试使用访问权限777和所有权设置为tomcat7创建此文件,但我仍然得到一个例外:/home/user/domains/domain.com/public_html/tomcat7.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

在操作系统中,我还应该满足哪些条件?

如果有人能澄清这个问题,我将不胜感激。


编辑

我已经在,set 777下创建了目录。文件完美存储。我也在 下创建了目录,但 path2 没有权限 777 和 chown。它也可以工作。我也测试了字符和,也有效。/path1/path2/testdirtestdir._

我非常善于调查,无法理解这种行为。


答案 1

确保您也具有对所有父目录的读取和执行访问权限。

例:chmod o+x /home/user


答案 2

最后,我解决了这个问题。path 中的某个目录没有其他组的可执行权限,因此正如@JustinKSU建议的那样,不可能遍历整个路径。

chmod o+x /home/user解决了问题。


推荐