我如何通过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. Python + GPG(编辑密钥更改密码)
- 4. 更改密码
- 5. 密钥库更改密码
- 6. 更改旧密码
- 7. 更改密码Django
- 8. 更改密码时验证旧密码
- 9. 更改密码获取请求不更改密码
- 10. 悄悄更改脚本中的linux密码
- 11. 通过ssh在Linux服务器上更改密码的脚本
- 12. 如何在Linux中更改我的密码?
- 13. 从PHP脚本更改Linux用户密码
- 14. MVC验证更改密码。当前密码与新密码
- 15. 更改密码错误
- 16. Ad Asp.Net更改密码
- 17. 无法更改MySQL密码
- 18. NoReverseMatch在/更改密码/
- 19. 更改Derby DB密码
- 20. 更改codeigniter上的密码
- 21. 大规模更改密码
- 22. Laravel 5.3更改密码
- 23. 用JAVA更改UNIX密码
- 24. 更改root密码mysql
- 25. 更改密码PHP MySQL的
- 26. 使用AWS.CognitoIdentityServiceProvider更改密码
- 27. 更改clearcase_albd用户密码
- 28. 更改用户密码! Wordpress
- 29. SharePoint记住更改密码
- 30. 继承更改密码
为什么使用python? – 2011-04-18 17:31:59
因为,我喜欢它,它的可编译性,并且已经在python中扮演重要角色,这只是一部分。我试图学习那种语言。 – Riki137 2011-04-18 17:38:31
除了'ubuntu'之外,我还会推荐标记这个'linux' - 对于这个问题,任何答案都应该(大部分)适用于所有Linux发行版。 – 2011-04-18 18:02:10