如何以编程方式在脚本中实现超级用户权限?

时间:2016-09-18 15:50:59

标签: python permissions

我写了一个python脚本。其中一个功能打开一个端口来监听。要打开一个端口来监听,我需要以超级用户身份进行操作。我不想使用Insert into accounts (acc_id , emp_id) values (11013, 1); 或root权限等运行脚本。我在这里看到了关于使用sudo的子流程的答案。据我所知,它不是我想要的子流程。它只是应用程序中的一个功能。

问题:如何以编程方式打开具有超级用户权限的端口?

2 个答案:

答案 0 :(得分:0)

你不能这样做。如果可以,那么恶意代码可以随时以root身份免费访问任何系统!

如果您需要超级用户权限,则需要从root帐户运行脚本或使用sudo并输入密码 - 这是拥有用户帐户的重点。

修改

值得注意的是,您可以在python脚本中运行bash命令 - 例如使用子进程模块。

Textbox2.Text = Math.Cos(Textbox1.Text * (Math.PI / 180.0)); 

这实质上创建了一个新的bash进程来运行给定的命令。

如果这样做,系统将提示用户以与预期相同的方式输入密码,并且权限仅适用于正在创建的子进程 - 而不适用于您从中调用的脚本(这可能是最初的问题。)

答案 1 :(得分:0)

你可以像这样使用你的python脚本中的sudo,所以你不必用sudo或root身份运行脚本。

import subprocess
subprocess.call(["sudo", "cat", "/etc/shadow"])