我在ubuntu中运行我的python并尝试创建一个与shell通信的脚本。我的脚本很简单
import os
os.system('sudo su - xyz')
当我运行脚本并尝试登录xyz时,它会在我的shell中询问密码。但是如何通过python脚本发送密码并登录。有更好的方法吗?
答案 0 :(得分:1)
将硬编码的密码输入stdin,这样您就不必为需要sudoer权限的命令输入密码过度思考它(除了高度不安全)。
假设你的Python脚本中你是root用户(即不用sudo执行命令)。
import os
os.system('su - xyz')
然后使用sudo启动Python脚本。
$ sudo python foo.py
除非你有一些奇怪的要求,否则这是最自然的方式。
答案 1 :(得分:0)
您可以尝试将密码管道输入命令行字符串。
注意:这非常不安全。任何人都可以访问你的python脚本,知道你的密码,并可以获得你的系统。
import os
password = 'ABCDEFG'
os.system('echo {} | sudo -S su - xyz'.format(password))
编辑:注意将echo
和-S添加到sudo
,因此它可以接受来自管道的密码