免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 21355 | 回复: 5
打印 上一主题 下一主题

Shell 中切换用户 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-19 16:06 |只看该作者 |倒序浏览
我在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

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-07-11 22:20:00
2 [报告]
发表于 2011-04-19 16:10 |只看该作者
本帖最后由 cst05001 于 2011-04-19 16:12 编辑

1 lz把写这个脚本的人抽几巴掌然后再看下一条
2 su - 之后就直接切换环境并且等待用户的交互式访问了,怎么可能继续执行脚本命令???exit毛,su后的bash是一个子shell,你脚本写1000个exit也没用,这些都要等su这个进程结束后才会执行。

要以别的用户身份执行命令应该这么做
su - 用户 -c 命令
或者
sudo -u 用户 命令
如果你不接受这两种办法,那么你说说理由????

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
3 [报告]
发表于 2011-04-19 16:47 |只看该作者
同意楼上的,用su - 用户 -c 命令格式来执行

论坛徽章:
0
4 [报告]
发表于 2011-04-19 17:39 |只看该作者
sudo就是干这个的

论坛徽章:
0
5 [报告]
发表于 2011-04-19 22:51 |只看该作者

  1. localhost ~ # cat switchUser.sh
  2. #!/bin/bash
  3. whoami
  4. su - yanu <<!
  5. whoami
  6. exit
  7. !
  8. whoami
  9. localhost ~ # ./switchUser.sh
  10. root
  11. yanu
  12. root
  13. localhost ~ #


复制代码

论坛徽章:
0
6 [报告]
发表于 2011-04-20 10:50 |只看该作者
谢谢楼上各位,特别是yanu!Thanks!

白抽了自己一顿
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP