繁体   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