[英]How to verify a users password for root privledges in python
我正在嘗試編寫一個Python程序,該程序需要用戶密碼才能使用subprocess
庫運行某些外部命令。 該代碼將大致如下所示。
import subprocess
passwordInput = raw_input("What is your password: ")
subprocess.call('echo ' + passwordInput + ' | sudo -S pacman -Syy', shell=True)
該程序可以正常工作,但是,如果輸入錯誤的密碼,則該程序將失敗。 我該如何添加某種類型的錯誤校驗來檢測密碼輸入是否錯誤?
我正在考慮也許將此代碼包裝在while
循環中,然后使用try-except
來測試密碼,但是我不確定哪種except
可以做到這一點。
任何幫助深表感謝。
拋開echo
。
import subprocess
subprocess.call(['sudo', '-S', 'pacman', '-Syy'])
sudo
程序將詢問用戶一定次數。 您的Python程序無需知道用戶密碼。 曾經
另一個問題是您使用的是shell=True
,這意味着如果我的密碼是$nakel0ver
因為我喜歡蛇,那么您的程序會將空密碼傳遞給sudo
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.