我想在远程计算机上创建一个用户。我只能通过ssh到达。 useradd需要sudo,但以下脚本未提示我输入密码,也未创建用户。如何提升远程计算机上的权限?
#!/usr/bin/python3
import os
import subprocess
HOST="192.168.1.71"
#useradd is linux - adduser is perl
addusertoremote = subprocess.Popen(["ssh", "%s" %HOST, "sudo useradd --disabled-login deletetom"],
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
resulta = addusertoremote.stdout.readlines()
if resulta == []:
errora = addusertoremote.stderr.readlines()
print(errora)
else:
print(resulta)
答案 0 :(得分:0)
您可以在python中将paramiko模块用于SSH。
NameError: name 'v' is not defined
答案 1 :(得分:0)
这对我有用,尽管我不建议这样做。
proc = subprocess.Popen(["ssh", "dummy", "-t", "sudo -S touch test.txt"], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
proc.stdin.write(password.encode("utf8"));
proc.stdin.write("\r\n".encode("utf8"))
print(proc.communicate())
登录到主机后,该文件已创建为root。另外,我使用密钥登录,因此ssh不需要输入密码,而sudo要求输入密码。
答案 2 :(得分:-1)
我对此进行了大量研究,并得出以下结论。
Python和python内部的Paramiko都没有一种方法来提升到达的计算机上的权限。
必须在AS根目录中将ssh SSH到要在其上创建用户的计算机上-这样,您已经是root且不会生成提示。
因此,在我的情况下(我将很快进行测试),我将ssh进入具有python脚本的机器,然后su -s并成为root并运行将root ssh进入其他机器的python脚本以root身份创建帐户。