方法一:使用expect

参考博客:https://www.cnblogs.com/linuxAndMcu/p/11127787.html#_label1

#!/usr/expect/bin/expect -f

set timeout=5 #设置5秒超时
#下面几行后面不能添加注释,否则会异常
#send "exit\r" - exit命令:会退出root账号,成为普通用户
spawn su - root
expect "密码:"
send "zlkj\r"
send "pwd\r"
#send "exit\r"
interact #使用interact后,脚本将退出到root账号下,可以手动执行root权限的命令
exit 0 #退出脚本

方法二:sudo

这个方法只能进入root执行一条指令,参考:
https://blog.csdn.net/wangpailiulanqi8/article/details/82414136
http://m.blog.chinaunix.net/uid-20620288-id-5745939.html

使用下面的代码

echo [password] | sudo -s [commond]

测试,其中[password]为用户密码:

#!/usr/expect/bin/expect -f
whoami
echo [password] | sudo -s whoami
whoami
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐