SHELL脚本切换用户需输入密码

SHELL脚本切换用户需输入密码,普通用户间切换需要输入密码,怎么实现... SHELL脚本切换用户需输入密码,普通用户间切换需要输入密码,怎么实现 展开
 我来答
神灵武士SW
推荐于2017-07-08 · TA获得超过660个赞
知道小有建树答主
回答量:452
采纳率:0%
帮助的人:284万
展开全部
先确认一下su -c 能否解决问题,语法 su - <user name> -c <cmd> 以指定用户执行命令

[root@fw98 /]# whoami
root
[root@fw98 /]# su - mao -c whoami
mao
不能满足需求的话,可以用expect,我的环境上没有expect,不能帮你试了,大致是下面的感觉,详细你百度查一下
#!/usr/bin/expect
su - mao #你要执行的命令
expect "Password:" #执行后终端回显的交互信息
send "admin_123\r" #当终端出现上面的交互详细后,模拟键盘输入的内容
#此例,执行su - mao 切换mao用户,终端提示输入密码后,模拟键盘输入mao用户的密码
yexicheng
2013-11-13 · TA获得超过1.2万个赞
知道大有可为答主
回答量:8857
采纳率:69%
帮助的人:7067万
展开全部
正常情况下,使用su - username的方式,普通用户切换都需要输入密码的,只有root su的时候才不需要
追问
脚本能否实现自动输入密码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浦疏贤085
2013-11-13 · TA获得超过291个赞
知道答主
回答量:149
采纳率:100%
帮助的人:126万
展开全部
可以用expect
追问
能具体些吗,谢谢
追答
#!/bin/sh
expect -c "
spawn su - root
expect \"Password:\"
send \"111111\r\"
interact
"

111111是密码    root是用户  可以用变量代替。这个是bash里调用的expect,我没直接写expect脚本

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式