繁体   English   中英

Ubuntu Tomcat CIFS:允许tomcat用户使用Servlet写入文件

[英]Ubuntu Tomcat CIFS : Allow tomcat user to write file using Servlet

我有以下环境设置。

Server: Ubuntu    
App Server: Tomcat7
Java: JDK 7

Servlet需要将文件写入安装文件夹。 Tomcat使用名为tomcat7的用户运行,并且CIFS/mntt/mydir/绑定到另一个名为coder用户。

/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"));

请指导。 另外,如果您需要更多信息,请告诉我。

谢谢

您可以按以下方式更改Java服务,以便创建的文件获得777许可,其他用户将可以对其进行写入:

    Path path = FileSystems.getDefault().getPath(
            file.getAbsolutePath());
    Files.setPosixFilePermissions(path,
            EnumSet.allOf(PosixFilePermission.class));

其中file是代表文件的java.io.File对象。 如果希望tomcat用户能够在该目录中创建文件,则可以对包含该文件的目录执行相同的操作。

最后我解决了这个问题!

我通过修改/etc/defaults/tomcat7coder用户身份运行tomcat服务。

另外,我必须更改一些tomcat目录的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM