展开全部
先确认一下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用户的密码
[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用户的密码
展开全部
正常情况下,使用su - username的方式,普通用户切换都需要输入密码的,只有root su的时候才不需要
追问
脚本能否实现自动输入密码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用expect
追问
能具体些吗,谢谢
追答
#!/bin/sh
expect -c "
spawn su - root
expect \"Password:\"
send \"111111\r\"
interact
"
111111是密码 root是用户 可以用变量代替。这个是bash里调用的expect,我没直接写expect脚本
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |