python-3.x - 如何以 root 身份在 python 脚本中运行命令?
问题描述
我有一个 python 脚本来进行 TCP 扫描。我正在使用 python3_nmap 库,所以命令如下:
import nmap3
nmap.nmap_syn_scan(self.ip ,"-p 443 -v -T4")
每次我需要输入密码时,如何将代码更改为不要求我输入密码?
- 我不需要更改整个 python 脚本的权限,因为我只是在机器人框架中调用其中的一个函数,所以我应该以某种方式忽略为那个特殊的子进程输入密码!
解决方案
你需要一些自动化。Pexpect是一个不错的选择。您必须以适当的权限运行您的 python 脚本。可以像这样自动授予执行权限:
import pexpect
child = pexpect.spawn('sudo python <path_to_your_python_script>') # make sure about environment
child.expect('password') # wait to read password string in terminal
child.sendline('<your_password_here>') # enter user password
推荐阅读
- ios - 在 Metal 中渲染后翻转图片
- count - 过滤后,获取当前显示在 Vaadin 14 Web 应用程序中的 Grid 小部件中的项目数
- ajax - 无法通过 AJAX 调用识别“err_connection_reset”的原因
- reactjs - 如何在 docker 镜像中运行电子应用程序?
- regex - 如何匹配以下正则表达式?
- sql-server - 关于 SSMS 扩展,IObjectExplorerService.ConnectToServer() 的参数使用什么类型的类
- angular - 提供在平台与根
- adfs - ADFS 声明规则字符串连接可能吗?
- excel - 多次调用函数
- android - 如何使用 Kotlin 从用户那里获取名称并将其显示在 Toast 中?