允许所有人通过python进行写访问

2024-04-23 19:37:57 发布

您现在位置:Python中文网/ 问答频道 /正文

那么,让我们从基本问题开始

程序以提升权限的用户身份写入文件。你知道吗

稍后: 同一程序试图在没有提升权限的情况下覆盖文件。你知道吗

在Windows中,这与:

PermissionError: [Errno 13] Permission denied: 'filepath'

  • 我需要这个在Linux/Windows/Mac上工作,尽管它看起来像 windows是目前唯一一个出现这个问题的,所以我尝试了 在windows上用windows方法修复它。CHMOD无法在 反正是windows。你知道吗
  • 所以,问题是,文件是由管理员或 另一个具有扩展权限的用户,当程序以该用户身份运行时 用户。如果我可以用“everybody write”创建文件 允许,那么这就不是问题了。你知道吗
  • 我在纯python中找不到这样做的可移植方法。我只能移除 read-only标志,但它不能解决所有权问题。你知道吗

所以我尝试了win32security 但是,对LookupAccountName的调用依赖于区域设置:

>>> win32security.LookupAccountName(None, "Everyone")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pywintypes.error: (1332, 'LookupAccountName', 'Zuordnungen von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt.')
>>> win32security.LookupAccountName(None, "Jeder")
(<PySID object at 0x00000184AA586560>, '', 5)

因此不便于携带。我还没有找到手动创建“Everyone”SID的方法,文档在这方面非常少。但我也可能走错了兔子洞。你知道吗

编辑:如果有关系的话,至少在这种情况下,所有相关文件都在windows中的“%programdata%/programname/*”下。你知道吗


Tags: 文件方法用户程序none权限windows情况