Python - 检查用户是否具有管理员权限

2024-04-14

我正在用 Python 3.x 编写一个小程序作为自学项目。我的想法是让程序允许用户输入两个文本字段,然后将用户的输入插入到两个特定注册表项的值中。

有没有一种简单的方法来检查当前用户是否可以访问注册表?我宁愿它清楚地告诉用户他/她需要管理员权限,而不是让程序因为试图访问受限区域而崩溃。

我希望它在程序启动后立即进行此检查,然后再向用户提供任何输入选项。为此需要什么代码?

编辑:如果不明显,这是针对 Windows 平台的。


我需要一个简单的 Windows/Posix 解决方案来测试用户是否具有文件系统的根/管理员权限,而无需安装第三方解决方案。我知道依赖环境变量时存在漏洞,但它们适合我的目的。或许可以扩展这种方法来读/写注册表。

我在 WinXP、WinVista 和 Wine 上使用 Python 2.6/2.7 对此进行了测试。如果有人知道这不适用于 Pyton 3.x 和/或 Win7,请告知。谢谢。

def has_admin():
    import os
    if os.name == 'nt':
        try:
            # only windows users with admin privileges can read the C:\windows\temp
            temp = os.listdir(os.sep.join([os.environ.get('SystemRoot','C:\\windows'),'temp']))
        except:
            return (os.environ['USERNAME'],False)
        else:
            return (os.environ['USERNAME'],True)
    else:
        if 'SUDO_USER' in os.environ and os.geteuid() == 0:
            return (os.environ['SUDO_USER'],True)
        else:
            return (os.environ['USERNAME'],False)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python - 检查用户是否具有管理员权限 的相关文章

  • 从另一个文件导入函数,在哪里导入其他库?

    很简单的问题 我搜了一下没有结果 假设我有一个文件 funcs py 其中有一个我想调用当前脚本的函数 该函数使用另一个库 例如 pandas 我在哪里导入该库 约定是什么 我是否将它放在 funcs py 的函数内 funcs py de
  • np.sqrt 对于非常大的整数的奇怪行为

    gt gt gt np version 1 7 0 gt gt gt np sqrt 10000000000000000000 3162277660 1683793 gt gt gt np sqrt 10000000000000000000
  • tf.print 什么时候才能真正按预期工作(即打印张量和变量的值)?

    首先 我使用的是TensorFlow 2 0 我只关心这个版本或更高版本 而且我已经太关心这样一个只会产生头痛的软件了 The TensorFlow 文档 https www tensorflow org api docs python t
  • 转储 $mft 文件的内容

    对于一些商业的我正在做的项目我需要能够读取 mft 文件中存储的实际数据 我找到了一个gpl lib http www codeproject com KB files NTFSParseLib aspx artkw ntfs这可能会有所帮
  • 如何使用 pyodbc 和 MS-Access 在 Python Cursor.execute 中查看真实的 SQL 查询

    我在 Python 中使用以下代码 使用 pyodbc 作为 MS Access 基础 cursor execute select a from tbl where b and c x y 没关系 但是出于维护目的 我需要知道发送到数据库的
  • 如何使用Python内置的map和reduce函数计算字符串中的字母频率

    我想使用Python的map和reduce内置函数来计算字符串中字母的频率 谁能提供一些关于我如何做到这一点的见解 到目前为止我所得到的 s the quick brown fox jumped over the lazy dog Map
  • Python套接字模块:Recv()数据响应被切断

    解释 我目前正在尝试使用 python 脚本控制智能电源板 为了实现这一点 我使用了带有套接字模块的 TCP 连接 大约 75 的情况下 我会得到我正在寻找的响应 数据 并且一切都运行良好 然而 大约 25 的情况下 响应会以完全相同的长度
  • 如何在屏幕上锚定 Tkinter 窗口(不可移动窗口)

    我正在尝试在特定位置打开 tkinter 如果它是不可移动的 那就更好了 我搜索文档和其他内容 但没有找到任何相关内容 最好的方法是将顶部或底部固定在一个位置 x y 如果需要 我可以调整窗口大小 def my functions prin
  • Python:从区间到值的映射

    我正在重构一个函数 给定一系列隐式定义间隔的端点 检查间隔中是否包含数字 然后返回相应的值 不以任何可计算的方式相关 现在处理这项工作的代码是 if p lt 100 return 0 elif p gt 100 and p lt 300
  • Tensorflow:使用 Adam 优化器

    我正在张量流中试验一些简单的模型 包括一个看起来与第一个非常相似的模型面向 ML 初学者的 MNIST 示例 http www tensorflow org tutorials mnist beginners index md 但维数稍大一
  • 在 pyspark 中实现递归算法以查找数据帧中的配对

    我有一个火花数据框 prof student df 列出了时间戳的学生 教授对 每个时间戳有 4 位教授和 4 位学生 每个教授 学生对都有一个 分数 因此每个时间范围有 16 行 对于每个时间范围 我需要找到教授 学生之间的一对一配对 以
  • Python 单行代码

    我想要用 Python 编写以下代码的单行解决方案 但是如何实现呢 total 0 for ob in self oblist total sum v amount for v in ob anoutherob 它返回总价值 我想要它是单行
  • 在鼠标悬停时在右侧或左侧扬声器上播放声音[重复]

    这个问题在这里已经有答案了 我正在尝试使用 PyQt5 用 python 编写小程序 该程序将有两个按钮 中间有一个标签 当鼠标移到标签上时 我想调用一个 def 以便更改按钮的颜色并从特定扬声器 左或右 播放声音 我尝试了 pygame
  • 绘制顶部有函数线的直方图

    我正在尝试使用 SciPy 进行统计 使用 matplotlib 进行绘图 在 Python 中进行一些分布绘图和拟合 我在创建直方图等方面运气很好 seed 2 alpha 5 loc 100 beta 22 data ss gamma
  • 使用 python 对 Robot Framework 中的测试套件中的每个测试用例进行测试设置和拆卸

    我是机器人框架的新手 有人可以帮我看看是否可以为包含大约 20 个测试用例的测试套件中的每个测试用例进行测试设置和拆卸 有人可以用例子解释一下吗 这是一个例子 包含拆解的测试套件 如果你想最后执行每个测试用例 你可以错过它的拆卸 请阅读相应
  • 使用 Python API 2.0.0.1 运行 Ansible Playbook

    安塞布尔版本 2 0 0 1 我现在已经四处寻找了很多 我发现的大多数文档要么不完整 要么已弃用 这篇文章适用于1 8 4版本 即 https stackoverflow com questions 27590039 running ans
  • 是否可以通过 MX 查找获取端口?

    我正在了解什么是的旅程从 Python 代码发送电子邮件的正确方法 https stackoverflow com questions 50695188 what is the proper way to actually send mai
  • python 拆分而不创建空白

    我明白为什么使用 split 创建空白很重要 这要归功于这个问题 https stackoverflow com questions 2197451 why are empty strings returned in split resul
  • 分段错误(核心转储),执行线程

    我试图在 python 中运行一个程序 该程序打开一个程序并从其标准输出中读取 当我运行程序代码时 出现分段错误错误 但是当我将代码放入函数 Myfunc 中的线程外时 它可以正常工作 我不明白发生了什么 这是我的代码 class Work
  • Django Admin 中的自定义操作

    在我的 Django 应用程序中 我有一个新闻通讯模型 现在我希望能够send时事通讯 甚至resend它 来自 Django Admin 我可以用钩子来做到这一点Model save 方法 但还有另一种与模型无关的方法吗 Thanks 管

随机推荐