linux下面切换用户执行命令
我想用程序启动一个可执行文件,su-dap-c/home/dap/dap/bin/start.sh上面的语句直接拿到ssh终端执行没有任何问题,但是写到程序里面去执行好像...
我想用程序启动一个可执行文件,su - dap -c /home/dap/dap/bin/start.sh
上面的语句直接拿到ssh终端执行没有任何问题,但是写到程序里面去执行好像执行不到,但是也不报错误。
我的程序如下:
String cmd="su - dap -c /home/dap/dap/bin/start.sh";
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
请各位大侠帮我看看吧! 展开
上面的语句直接拿到ssh终端执行没有任何问题,但是写到程序里面去执行好像执行不到,但是也不报错误。
我的程序如下:
String cmd="su - dap -c /home/dap/dap/bin/start.sh";
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
请各位大侠帮我看看吧! 展开
展开全部
我执行过这个。没有出现问题啊。。不过我之前就没有用sudo。而是直接用root登陆的。
你的.sh可以直接放在root下面么。。
虽然这样的话可能会有一点安全的问题。
你的.sh可以直接放在root下面么。。
虽然这样的话可能会有一点安全的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
su普通用户名
从root切换到普通用户不需要密码
如果要登录时候家在该用户的shell
就用su-普通用户名
从root切换到普通用户不需要密码
如果要登录时候家在该用户的shell
就用su-普通用户名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我看到你执行的那个命令行 你应该是想 切换用户 调用start.sh这个脚本
你执行命令行的时候 能够保证start.sh 执行了吗
你执行命令行的时候 能够保证start.sh 执行了吗
更多追问追答
追问
我把su - dap -c /home/dap/dap/bin/start.sh直接放在SSH终端的时候能执行到start.sh ,结果就是我想要的,但是写在程序中就不行了,这个是怎么回事?
追答
那就是语法错误呗 没有执行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能跟权限有关系,
追问
我把su - dap -c /home/dap/dap/bin/start.sh直接放在SSH终端java工程所在的用户下能正确执行 ,应该不是权限问题吧
追答
那sudo和su有啥区别?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询