请求根权限的python库

elevate的Python项目详细描述


elevate是一个小的python库,它使用 使用以下机制之一的根/管理权限:

  • UAC(Windows)
  • applescript(MacOS)
  • pkexecgksudokdesudo(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)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本