Shell 中切换用户
我在root中执行一个脚本,但是其中的一些命令或脚本必须用oracle用户来执行。
#!/bin/sh
。。。。
#----------oracle用户执行
su - oracle
/bin/cd /xxxx/xxx
/bin/rm -rf *
#----------下面的命令需要用root来执行
。。。。。。
现在的现象是执行到su - oracle后,shell变为:
oracle@localhost$
然后脚本不再继续执行,需要手动属于exit才能继续,但是在脚本中加入exit也不好使
请问各位我应该添加点什么?
注:我觉得我不需要sudo或者expect的功能,而且命令较多,不能使用su - oracle -c xxxx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
本帖最后由 cst05001 于 2011-04-19 16:12 编辑
1 lz把写这个脚本的人抽几巴掌然后再看下一条
2 su - 之后就直接切换环境并且等待用户的交互式访问了,怎么可能继续执行脚本命令???exit毛,su后的bash是一个子shell,你脚本写1000个exit也没用,这些都要等su这个进程结束后才会执行。
要以别的用户身份执行命令应该这么做
su - 用户 -c 命令
或者
sudo -u 用户 命令
如果你不接受这两种办法,那么你说说理由????
同意楼上的,用su - 用户 -c 命令格式来执行
sudo就是干这个的
复制代码
谢谢楼上各位,特别是yanu!Thanks!
白抽了自己一顿