我一直在尝试通过 Python 脚本运行 Linux 终端命令,但到目前为止我似乎无法对我发现的内容执行任何操作。
这是我到目前为止所做的:
import os
import crypt
def addnewuser():
uname=raw_input("Select Username")
upass=raw_input("Select Password")
#The encryption module seems to solve the obvious security leak,
#but I still don't know whether even the exposed encrypted password is safe or not.
ucrypt=crypt.crypt(upass,"123")
os.system("useradd -m -p "+upass+" "+uname)
addnewuser()
This has been asked before ,但我似乎找不到解决方案,因为每当我运行脚本时,当我尝试在输入
时显示所有用户时,没有任何变化compgen -u
在终端上。
更新 1:我想确保该过程的安全,并且我发现可以使用 stdout 文件来保护 sudo 密码不被记录在终端历史记录中。我如何用 python 编写来创建用户?
更新 2:我通过在代码中使用加密模块对用户密码进行加密,成功避免了一些安全漏洞。但如果入侵者有加密后的密码,那不是同样的事情吗?
<小时/>这样做的主要目的是让我学习如何开发管理工具,最好是使用 Python。
<小时/>我在 Ubuntu 16.04 上使用 Python 2.7 以及 PythonIDLE。
感谢您的帮助。
最佳答案
最肮脏的解决方案之一是运行
os.system("sudo useradd -m -p "+upass+" "+uname)
并添加到/etc/sudoers
user ALL=NOPASSWD: useradd
其中 user 是运行脚本的用户名。
同样非常不安全,强烈不推荐
关于python - 如何通过Python脚本向Linux添加用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42895671/