shell 脚本问题切换用户

sws_martian 2009-11-20 10:41:15
想在shell脚本中实现用户切换,如下:

#!/bin/sh

su - user1 << END
user1passwd
END

为什么不可以呢?其中的交互输入应该怎样解决?
...全文
503 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
netxuning 2009-11-20
  • 打赏
  • 举报
回复
我签写日子也试过,只能通过/dev/tty,不能同步哦stdin
如:

echo -e "user\npass\n" | su
standard in must be a tty
ilovehuhu 2009-11-20
  • 打赏
  • 举报
回复
su读密码是通过/dev/tty读的,而不是通过stdin。所以你用普通的stdin重定向不能实现自动输入密码的功能。
starwalker 2009-11-20
  • 打赏
  • 举报
回复
抱歉,看错了,你是要输入密码……
这个恐怕办不到了,su也不允许通过重定向输入密码。
可以使用root用户执行这个脚本,这样su时就不要输入密码了。
starwalker 2009-11-20
  • 打赏
  • 举报
回复
可能是出于安全性的考虑,su不允许重定向。
如果要切换用户执行命令,可以使用su命令加-c参数,后面接命令。
或者使用sudo命令(Linux)。
各个命令详细用法,见man。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧