簡體   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