簡體   English   中英

Tomcat sh腳本權限

[英]Tomcat sh script permission

我正在使用Tomcat7,並且嘗試從tomcat啟動sh腳本。 我的sh腳本需要創建一個新文件並寫入內容。如果我像./test.sh這樣啟動我的腳本,它可以正常工作,但是如果我使用tomcat來啟動該腳本,則會在執行腳本時出現權限被拒絕的錯誤,沒有寫權限。 這是我的Java代碼:

        String[] fixCmd = new String[] { path };
    Process start = Runtime.getRuntime().exec(fixCmd);

    // monitor standard error to find out what's wrong
    BufferedReader r = new BufferedReader(new InputStreamReader(start.getErrorStream()));
    String line = null;
    while ((line = r.readLine()) != null) {
        System.out.println(line);
    }

和我的shellScript:

echo test >> test.txt

我嘗試使用ProcessBuilder,但是也沒有用。

我嘗試使用我找到的所有解決方案更改文件夾的權限,但沒有任何效果。 exec Tomcat以前以root用戶身份啟動腳本時,他確實具有所需的所有權限。 我將所有文件夾上的權限授予了tomcat7用戶,以防萬一但什么都沒有改變。 我還有一些其他的Java腳本正在服務器上創建和寫入文件,所以我已經設法更改了讓tomcat編寫東西的權限,並且它起作用了,所以我真的不知道腳本的問題是什么。

有任何想法嗎?

編輯1: ls -l ./test.sh的輸出完成:

-rwxr-xr-x 1 tomcat7 tomcat7 165 nov.   2 16:12 ./test.sh

我以root用戶身份登錄,我的紅色tomcat也被視為root用戶。

編輯2解決的問題:一位專家向我解釋說,我的問題是安全問題,因為tomcat是Web服務器,因此不讓其擁有對sh腳本的寫入權限是安全的。 所以我改變了問題的處理方式,我將讀取java中的sh腳本輸出,並從jave寫入文件。

訪問容器的文件系統上的文件很棘手,不鼓勵(imo)。 我猜:您的問題與文件系統本身的權限無關,但與Web容器(此處為tomcat)的權限無關。

請參閱從Java Web應用程序訪問linux本地文件系統

如何訪問外部文件夾(Web服務器)?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM