【问题标题】:win32api.GetFileAttributes is thowing 'Access is denied.' errorwin32api.GetFileAttributes 显示“访问被拒绝。”错误
【发布时间】:2016-07-07 12:17:35
【问题描述】:

我正在尝试使用 win32api GetFileAttributes 方法在 python 中获取文件属性,但错误访问被拒绝。

(5, 'GetFileAttributes', 'Access is denied.')

MSDN 文档不包含GetFileAttributes 的错误部分。

【问题讨论】:

  • 您是否以管理员身份运行代码?
  • 啊,您可以发布您使用的代码以便我们重现问题吗?
  • 您要访问什么文件?
  • @linusg : 作为系统用户。
  • 尝试运行以管理员身份登录的代码,这在您尝试访问系统文件时更为重要。

标签: python winapi msdn


【解决方案1】:

当调用 GetFileAttributes 函数时,内核实际上会尝试使用 FILE_READ_ATTRIBUTES 访问权限打开文件。因此,如果文件的安全描述符未授予您该权限,您将收到拒绝访问错误(如果不满足某些其他条件)。

在 Windows 上成为管理员/系统用户与在 Linux 上成为 root 用户不同。你可以做你想做的事,但你需要为此做一些额外的工作。安全模型仍然有效。但是,作为管理员(或更高权限的用户),您可以使用模型的功能来访问任何地方

例如,获取特权(SE_BACKUP_NAME、SE_RESTORE_NAME)以充当备份/恢复应用程序,为您提供对文件系统和注册表的几乎无限制的访问权限。或者,您可以更改文件的安全描述符以授予您必要的访问权限(您可以作为 Administrators 组的成员执行此操作,尽管完整性级别可能会在这里产生问题 - 我现在不确定)。

如果您对父目录具有目录列表访问权限,则可以尝试通过目录列表获取有关目标文件的必要信息。文件属性包含在数据中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-24
    • 2012-12-21
    • 2010-12-23
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    相关资源
    最近更新 更多