IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Erreur windows 'ERROR_INVALID_OWNER' 1307


Sujet :

Windows

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut Erreur windows 'ERROR_INVALID_OWNER' 1307
    Bonjour,

    Une portion code pour recopier les autorisation NTFS , mais....



    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    DWORD info = GROUP_SECURITY_INFORMATION | OWNER_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION;

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    			HANDLE fk = INVALID_HANDLE_VALUE;
     
    			HANDLE f1 = CreateFileA("c:\\Storage-Test\\acl\\f1.bin", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
    			err = GetLastError();
    			if (f1 != INVALID_HANDLE_VALUE)
    			{
    				PSECURITY_DESCRIPTOR ds1 = (PSECURITY_DESCRIPTOR)malloc(4096);
     
    				BOOL bb = FALSE;
     
    				DWORD cc = 0;
     
    				bb = GetUserObjectSecurity(f1, &info, ds1, 4096, &cc);
     
    				CloseHandle(f1);
    dump("c:\\tmp\\ACLDATA.BIN", (BYTE*)ds1, cc);
    				{
    					HANDLE f2 = CreateFileA("c:\\Storage-Test\\acl\\fdf2.bin", GENERIC_ALL, 0, NULL, OPEN_EXISTING, 0, NULL);
    					if (f2 != INVALID_HANDLE_VALUE)
    					{
    						BOOL bb = SetUserObjectSecurity(f2, &info, ds1);
    						if (bb == FALSE)
    						{
    							err = GetLastError(); /////ERR=1307
    							printf("SetUserObjectSecurity echec avec code erreur:%d\n", err);
    						}
     
    						CloseHandle(f2);
    					}
    				}
     
     
    				free(ds1);

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void dump(char *filename,BYTE *p,DWORD size)
    {
    	HANDLE f=CreateFile(filename,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);
    	WriteFile(f,p,size,NULL,NULL);
    	CloseHandle(f);
    }

    SetUserObjectSecurity me retourne TRUE avec l'erreur 0 , sauf si propriétaire est 'SYSTEM' attribué au fichier c:\\Storage-Test\\acl\\f1.bin".

    Pourquoi ?

    J'ai joint le fichier ACLDATA.BIN zippe

    Merci.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je suis surpris que SetUserObjectSecurity() réussisse, les fichiers n'étant pas des objets USER... As-tu essayé avec SetKernelObjectSecurity()?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    même problème avec la fonction SetKernelObjectSecurity tester hier.

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Avec quels privilèges tournes-tu? Il faut le privilège Restore (SE_RESTORE_NAME) actif pour pouvoir changer le propriétaire d'un fichier vers quelqu'un d'autre que toi.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Avec quels privilèges tournes-tu? Il faut le privilège Restore (SE_RESTORE_NAME) actif pour pouvoir changer le propriétaire d'un fichier vers quelqu'un d'autre que toi.
    Projet lancé en tant qu'administrateur . mais comment fixer le privilége 'se_restore_name' ?

    Merci

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Si tu lances le projet en tant qu'admin, tu remplis au moins le prérequis d'avoir le privilège, qui est nécessaire pour l'activer.
    Cette page contient un code permettant d'activer/désactiver un privilège qu'on possède:
    Enabling and Disabling Privileges in C++
    Utilise la fonction OpenProcessToken() pour obtenir le HANDLE que la fonction attend.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Tester,
    c'est bon.

    Probléme résolut.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rapport d'erreurs Windows
    Par SteelBox dans le forum Windows
    Réponses: 12
    Dernier message: 22/08/2005, 17h34
  2. pleeeeeins de polys et erreur windows...
    Par Antickriszt dans le forum OpenGL
    Réponses: 3
    Dernier message: 28/06/2005, 14h30
  3. Message erreur Windows 16 bits
    Par francis m dans le forum Windows XP
    Réponses: 2
    Dernier message: 24/04/2005, 16h29
  4. Message d'erreur Windows lors de l'exécution de l'appli D6-
    Par kolac dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/12/2004, 17h55
  5. Erreur windows lors du malloc
    Par Elessar dans le forum C
    Réponses: 5
    Dernier message: 16/12/2003, 08h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo