簡體   English   中英

當bash腳本通過Java代碼運行時,如何在Linux中將用戶工作設置為root用戶

[英]How do you set user work as root in Linux, when the bash script runs via Java code

假設我的bash文件包含

chmod -R 777 $backup_files/app/webroot/uploadedFiles/

當我使用/permission.sh通過root權限運行它時,它運行良好,但是當我嘗試通過Java代碼(例如,

        Runtime runtime = Runtime.getRuntime();
        Process process = runtime.exec("/permission.sh");
        printBufferedReaderOutputFromProcess(process);
        process.waitFor();

它給了我以下錯誤:

chmod: changing permissions of `/home/app/webroot/uploadedFiles/A.jpg': Operation not permitted 

我該如何解決?

我懷疑您以前沒有使用過sudo,但是在腳本上使用setuid的另一種方法是賦予用戶以root身份對sudo腳本進行操作的權利。

sudo permisions.sh

以root用戶身份運行,無需輸入密碼即可運行。 您必須在sudoers.conf中進行設置

您如何運行Java代碼? 它是獨立的,還是在像Tomcat這樣的Web容器中運行? 如果是更高版本,則它可能以沒有您要更改目錄權限的用戶身份運行。

暫無
暫無

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

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