请求根权限的python库
elevate的Python项目详细描述
elevate是一个小的python库,它使用 使用以下机制之一的根/管理权限:
- UAC(Windows)
- applescript(MacOS)
- pkexec,gksudo或kdesudo(Linux)
- sudo(Linux、MacOS)
用法
要使用,请在脚本的早期调用elevate.elevate()。当作为根运行时 函数不起作用。当不作为根运行时,此函数将替换当前 进程(Linux,MACOS)或创建新进程、等待和退出(Windows)。 考虑以下示例:
importosfromelevateimportelevatedefis_root():returnos.getuid()==0print("before ",is_root())elevate()print("after ",is_root())
打印:
before False before True after True
在Windows上,新进程的标准流没有附加到父进程, 这是uac固有的局限性。默认情况下,新进程在 新控制台窗口。要抑制此窗口,请使用 elevate(show_console=False)。
在linux和macos上,默认情况下图形提示在sudo之前尝试。到 防止图形提示,请使用elevate(graphical=False)。