【发布时间】:2014-05-13 07:37:45
【问题描述】:
我有以下环境设置。
Server: Ubuntu
App Server: Tomcat7
Java: JDK 7
servlet 需要将文件写入挂载文件夹。 Tomcat 正在使用名为 tomcat7 的用户运行,而 CIFS 与名为 coder 的不同用户绑定在 /mntt/mydir/。
/mntt/mydir的权限设置为777
服务将创建一个文件夹并尝试将文件上传/写入该文件夹。
创建文件夹时,它的权限设置为755,文件的权限设置为644,文件和文件夹的所有者都是coder,而不是tomcat7
所以,当我的程序尝试在文件中写入内容时,它会抛出 Permission denined 异常。
更新文件创建代码
//Create directory
File uploadFile = new File(dirpath);
uploadFile.mkdirs();
//Create and Write to File
OutputStream stream = new FileOutputStream(new File(dirPath+"/upload"));
请指导。另外,如果您需要更多信息,请告诉我。
谢谢
【问题讨论】:
-
我不经常使用 linux,但我认为在 /mntt/mydir 上设置 gid 标志会导致新目录从父目录继承用户/组。 en.wikipedia.org/wiki/Setuid#setgid_on_directories
-
以
coder用户身份创建文件/目录的服务是什么?你可以控制/改变什么吗? -
@mavroprovato 这是简单的java代码。请找到更新的问题