我有一个使用导入模块中的函数的python脚本。我没有超级用户权限就无法运行我调用的函数,我不打算每次都使用sudo python myscript.py
。
import mymodule
import subprocess, sys
#some code here...
value_returned = subprocess.call(['sudo', sys.executable, mymodule.myrootfunction()])
#more code here
这仍然需要root权限,并且不允许我执行我的功能。我尝试了subprocess.call
的许多不同版本,包括subprocess.call(['sudo',sys.executable,"mymodule.py"])
,但仍然没有成功。有没有办法调用一个需要root的方法而不在python中以root身份显式运行脚本?
我尝试使用chmod
和chown
更改我的脚本将访问的文件的权限(/ dev / mem),但唯一有效的方法是以超级用户身份运行我的脚本,这不是我想要的。
如何从python中以root身份从模块调用函数? 我的目标不是从python中调用外部shell命令,而是调用方法。这可行吗?