我如何通過python腳本更改ubuntu root用戶的密碼?謝謝。更改密碼,python,linux
1
A
回答
5
主要有兩種方式去這是 -
一從python調用passwd命令行工具(例如通過stdlib的subprocess模塊)。如果腳本沒有以root身份運行,則需要使用「su」或「sudo」命令進行換行才能提升爲root權限。將預期數據寫入stdin應該足夠了,但如果您發現需要根據sudo/passwd提示所說的執行不同的操作,pexpect模塊可能會有所幫助。
第二個是直接寫入存儲密碼散列的/etc/shadow文件。這將確保要求您的腳本以root用戶身份運行,以便在/ etc/shadow上具有讀/寫權限。 Stdlib提供用於訪問/ etc/shadow的spwd模塊,但它是隻讀的,因此您必須推出自己的讀寫器... csv模塊可能會有用,/ etc/shadow是關閉帶有「:」分隔符的csv文件,但有一些細微差別。
如果您選擇第二條路線,則需要能夠生成替換密碼的新散列,並將它們插入到影子文件中。在linux上最快的方法是使用stdlib crypt模塊,但是你必須注意鹽的產生,並設置合適的密碼哈希前綴(「$ 5 $」,「$ 6 $」等)。或者,Passlib庫中的host_context對象可以爲您處理大部分操作(免責聲明:我是該庫的作者)。
一般來說,如果可能的話,我會推薦第一條路徑 - 直接修改/ etc/shadow充滿危險 - 如果搞亂/ etc/shadow文件,您將無法登錄。你走這條路,備份文件很多。
2
您可以修改/etc/passwd
(/etc/shadow
)與Python腳本,將需要root權限sudo python modify.py /etc/passwd
(其中modify.py
是你的腳本,將更改密碼)
0
相關問題
- 1. PHP了shell_exec如何更改密碼LINUX
- 2. UNIX(不是Linux)密碼更改爲C
- 3. 在Linux上更改密碼Snappy Ubuntu Core
- 4. Python + GPG(編輯密鑰更改密碼)
- 5. Python藍牙密碼/密碼Linux
- 6. 更改密碼
- 7. 更改密碼
- 8. 更改密碼
- 9. 使用Python更改Windows密碼
- 10. 使用python-ldap更改密碼
- 11. 密鑰庫更改密碼
- 12. 更改密碼Django
- 13. Django密碼更改
- 14. 更改密碼PFuser
- 15. 更改舊密碼
- 16. PHP:更改密碼
- 17. 更改密碼ASP.NET
- 18. cPanel密碼更改
- 19. AJAX密碼更改
- 20. 擊更改密碼
- 21. 更改密碼與重置密碼
- 22. 更改密碼時驗證舊密碼
- 23. CakePHP密碼重置不更改密碼
- 24. 更改密碼獲取請求不更改密碼
- 25. 悄悄更改腳本中的linux密碼
- 26. 如何在linux上配置windows更改密碼策略
- 27. 如何在Linux中更改我的密碼?
- 28. 使用C++更改任何linux用戶密碼
- 29. 從PHP腳本更改Linux用戶密碼
- 30. 通過ssh在Linux服務器上更改密碼的腳本
爲什麼使用python? – 2011-04-18 17:31:59
因爲,我喜歡它,它的可編譯性,並且已經在python中扮演重要角色,這只是一部分。我試圖學習那種語言。 – Riki137 2011-04-18 17:38:31
除了'ubuntu'之外,我還會推薦標記這個'linux' - 對於這個問題,任何答案都應該(大部分)適用於所有Linux發行版。 – 2011-04-18 18:02:10