各位大侠!
我开发了一个简单的Web应用界面,然后在Linux服务器上用Tomcat发布,在客户端访问该应用。在应用中我编写了代码去调用Linux命令,以查看Linux默认分配给Web应用的权限,结果显示是root。如何将该Linux服务器赋给Web应用的默认权限修改为普通用户的权限,我现在必须解决这个问题,因为客户端只有以普通用户的身份才能执行后续操作。
我在Jsp中编写的代码为:
<%
Process process = null;
process = Runtime.getRuntime().exec("whoami");
out.println(jc.setFilename(process)); //该代码是用来调用有关方法并打印用户,在JSP页面上显示为root
%>
我曾想到编写shell脚本,让java去调用,代码如下:
Runtime.getRuntime().exec("/hpc/home/test/shelltest.sh");
shelltest.sh为脚本名,该shell脚本中的代码为:
#!/bin/sh
su - test
qsub hpc/home/test/test.sh //该命令是提交一作业脚本,必须以普通用户的身份提交
我的目的是开发Web界面,点击按钮来提交作业,但web应用中默认的权限是root,于是想到采用调用脚本的方式。但是在实际调用时,只执行了切换用户的命令su - test ,之后的任何命令包括提交作业命令均不再执行。该方法也失败了!
不知道您是否理解我现在的问题,希望您在百忙之中给予回复,不胜感激!
我开发了一个简单的Web应用界面,然后在Linux服务器上用Tomcat发布,在客户端访问该应用。在应用中我编写了代码去调用Linux命令,以查看Linux默认分配给Web应用的权限,结果显示是root。如何将该Linux服务器赋给Web应用的默认权限修改为普通用户的权限,我现在必须解决这个问题,因为客户端只有以普通用户的身份才能执行后续操作。
我在Jsp中编写的代码为:
<%
Process process = null;
process = Runtime.getRuntime().exec("whoami");
out.println(jc.setFilename(process)); //该代码是用来调用有关方法并打印用户,在JSP页面上显示为root
%>
我曾想到编写shell脚本,让java去调用,代码如下:
Runtime.getRuntime().exec("/hpc/home/test/shelltest.sh");
shelltest.sh为脚本名,该shell脚本中的代码为:
#!/bin/sh
su - test
qsub hpc/home/test/test.sh //该命令是提交一作业脚本,必须以普通用户的身份提交
我的目的是开发Web界面,点击按钮来提交作业,但web应用中默认的权限是root,于是想到采用调用脚本的方式。但是在实际调用时,只执行了切换用户的命令su - test ,之后的任何命令包括提交作业命令均不再执行。该方法也失败了!
不知道您是否理解我现在的问题,希望您在百忙之中给予回复,不胜感激!
su username -c "whoami"其中su username -c 是以username这个用户执行一条命令。如果不加-c参数是不行的。