日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
詳解golang expect包使用

最近和業(yè)務的相關人員對接某一需求時,其提出希望能在業(yè)務服務器上不給業(yè)務人員密碼信息,而能通過執(zhí)行某個命令后由usera變成userb。這個需求其實用expect 就可以實現,不過使用tcl 語言編寫的腳本里密碼還是以明文出現的,業(yè)務是想通過安裝pexpect (python)包,通過生成pyc的文件,略微增加下安全性。不過想了下,可以通過使用golang下的expect實現同樣的效果,而且安全性更強。

超過10多年行業(yè)經驗,技術領先,服務至上的經營模式,全靠網絡和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務范圍包括了:成都網站制作、網站建設、外貿網站建設,成都網站推廣,成都網站優(yōu)化,整體網絡托管,小程序制作,微信開發(fā),成都App制作,同時也可以讓客戶的網站和網絡營銷和我們一樣獲得訂單和生意!

經搜索引擎檢索,發(fā)現 https://github.com/ThomasRooney/gexpect/ 可以實現該效果,而且在該包的examples里提供了ftp、ping、python、screen相關的使用示例。這里如果使用su切換用戶,代碼比較簡單,如下:

//code from www.361way.com
package main
import gexpect "github.com/ThomasRooney/gexpect"
func main() {
child, err := gexpect.Spawn("su - zabbix")
if err != nil {
panic(err)
}
child.Expect("Password")
child.SendLine("123456")
child.Interact()
child.Close()
}

不過這個包在使用后,可以正常切換用戶,不過缺點也比較多:

  • 無法tab補全
  • 無法正常按pty Terminal size大小輸出(只能輸出一部分,有點類似于虛擬化virsh console連接后的情況)
  • 無法使用ctrl +D 快捷鍵退出,只能使用ctrl + c退出
  • 執(zhí)行過的命令會再輸入一遍

在項目的issues 上已經有人提出該問題。項目近兩年來并沒有更新。

更多expect項目(各種語言版本的)可以參考維基百科 ,不過維基百科上提到的goexpect、go-expect 兩個模塊經測試并不能成功。


分享題目:詳解golang expect包使用
文章來源:http://www.5511xx.com/article/cdphgdi.html