如何在Linux中使用Python创建用户?我的意思是,我知道子进程模块,并想过调用'adduser'并一次传递所有参数,但'adduser'命令会提出一些问题,如密码,全名,电话和内容。我将如何使用子流程回答这个问题? 我在这个问题中看到过模块pexpect:Can I use Python as a Bash replacement?。有没有其他标准模块?如何在Python中使用python创建用户
回答
使用useradd
,它不会提出任何问题,但会接受许多命令行选项。
您可以使用内置的二进制文件,只需通过子进程模块调用useradd或其他东西即可。但是我不知道是否有任何其他模块挂钩到Linux中以提供此类功能。
在Ubuntu,你可以使用python-libuser包
import os
import crypt
password ="[email protected]"
encPass = crypt.crypt(password,"22")
os.system("useradd -p "+encPass+" johnsmith")
22的数字是多少?这仍然是2017年加密的正确方法吗? – answerSeeker 2017-02-25 14:20:26
22是一种盐。您可以使用随机值。如果您想要额外的安全性,您可以使用sha-256或sha-512 – mcolak 2017-02-27 07:00:22
def createUser(name,username,password):
encPass = crypt.crypt(password,"22")
return os.system("useradd -p "+encPass+ " -s "+ "/bin/bash "+ "-d "+ "/home/" + username+ " -m "+ " -c \""+ name+"\" " + username)
22的数字是多少?此外,子进程会比os.system更好吗? – answerSeeker 2017-02-25 14:38:24
@answerSeeker它是盐。 salt是一个2个字符的字符串 ,它将用于选择DES的4096个变体之一。 (来自pydoc) – yanpas 2017-04-28 15:08:14
对于necrobump感到遗憾,但隐窝可以为你生成一种盐,不需要指定。 盐= crypt.mksalt(crypt.METHOD_SHA512) salthash = crypt.crypt(密码,盐) 见[这里](https://docs.python.org/3/library/crypt.html#crypt。 mksalt)获取更多信息。 – 2018-01-29 17:32:44
- 1. 如何在azure中使用python创建documentdb帐户?
- 2. python闲置如何创建用户名?
- 3. 如何创建使用泡菜在Python
- 4. 使用Python-Jira创建用户
- 5. 创建使用Python
- 6. 在Excel中使用python创建应用程序用户没有python
- 7. 如何在Python中创建
- 8. 使用python在linux中创建一个用户组
- 9. 在Python中使用用户输入来创建字典
- 10. 如何在tkinter python中创建一组用户名和密码
- 11. 如何在python中创建非root用户记录器
- 12. 如何使用python创建饼图?
- 13. 如何使用python从geojson创建GeometryCollection?
- 14. 如何创建使用python-降价
- 15. 如何使用JIRA,Python创建问题
- 16. 如何使用python创建.png文件?
- 17. 如何使用Python创建变体树?
- 18. 如何使用python创建AWS lambda包?
- 19. 如何使用python包创建链接
- 20. 如何使用python创建新文件
- 21. 如何使用JPype在Python中导入用户构建的jar?
- 22. 在python中使用openCV创建Mat
- 23. 在Qt创建器中使用Boost python
- 24. 在Linux中使用Python创建GUI
- 25. 在Maya中使用python创建bindSkin
- 26. 用Python创建
- 27. 用Python创建
- 28. 使用python创建python文件
- 29. 使用Python创建MIDI的
- 30. 使用Python创建JSON
这是一个只有Ubuntu的软件包?如果我需要在其他发行版上运行它,我是否需要手动安装此软件包? – Salsa 2010-07-07 13:30:16
为了交叉分发的兼容性,你可能最好使用'useradd',但是请注意,即使'useradd'也不能保证在所有发行版上可用。 Puppy Linux我相信默认情况下不会使用useradd,例如。 – unutbu 2010-07-07 14:05:39