2016-07-07 1 views
0

J'essaie d'obtenir des attributs de fichier en python en utilisant la méthode win32api GetFileAttributes et obtenir l'accès erreur est refusé.win32api.GetFileAttributes est en train de lancer 'Accès refusé.' erreur

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

documentation MSDN ne contient pas une section d'erreur pour GetFileAttributes.

+0

Exécutez-vous le code en tant qu'administrateur? – linusg

+1

Ah, et pouvez-vous poster le code que vous utilisez afin que nous puissions reproduire le problème? – linusg

+1

A quel fichier essayez-vous d'accéder? – theB

Répondre

0

Lorsque la fonction GetFileAttributes est appelée, le noyau tente d'ouvrir le fichier avec le droit d'accès FILE_READ_ATTRIBUTES. Donc, si le descripteur de sécurité du fichier ne vous accorde pas ce droit, vous obtenez l'erreur d'accès refusé (si certaines autres conditions ne sont pas remplies).

Etre un utilisateur admin/système sous Windows n'est pas la même chose que d'être root sous Linux. Vous pouvez faire ce que vous voulez mais vous devez faire du travail supplémentaire pour cela. Le modèle de sécurité est toujours en vigueur. Cependant, en tant qu'administrateur (ou un utilisateur privilégié supérieur), vous pouvez utiliser les fonctionnalités du modèle pour accéder à

Par exemple, obtenir des privilèges (SE_BACKUP_NAME, SE_RESTORE_NAME) pour agir comme une application de sauvegarde/restauration qui vous fournit accès quasi illimité au système de fichiers et au registre. Vous pouvez également modifier le descripteur de sécurité du fichier pour vous accorder les droits d'accès nécessaires (vous pouvez le faire en tant que membre du groupe Administrateurs, bien que les niveaux d'intégrité puissent poser un problème ici - je n'en suis pas sûr).

Si vous disposez d'un accès au répertoire parent dans la liste de répertoires, vous pouvez essayer d'obtenir les informations nécessaires sur le fichier cible par une liste de répertoires. Les attributs de fichier sont inclus dans les données.