[英]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/tomcat7
以coder
用戶身份運行tomcat服務。
另外,我必須更改一些tomcat
目錄的權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.