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 :

mettre tous les droits sur un fichier


Sujet :

Windows

  1. #1
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut mettre tous les droits sur un fichier
    Bonjour,
    J'ai besoin de mettre tout les droits à tout le monde sur un fichier (un pipe nommé ici), une sorte de chmod 777 sous windows.
    Je suis null en win32, quelqu'un peu m'aider?

    Merci.

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut

    Peut-être avec la commande Cacls.exe

  3. #3
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Le code qui semblerai me convenir:
    http://pastebin.com/ZTXCfSk8
    Mais je n'arrive pas à l'appliquer à un pipe nommé. J'aimerai donné tout les droits à l'utilisateur courrant.

  4. #4
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut

    vous pouvez essayer ce petit vbscript : il crée deux répertoires différents c:\Essai avec Contrôle totale et c:\EssaiLectureSeule en lecture seule.
    Code : 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
    34
    35
    Dim oFSO,oFld 
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Dossier = "c:\Essai"
    DossierReadOnly = "c:\EssaiLectureSeule"
    If Not oFSO.FolderExists(Dossier) Then
    'Crée le repertoire c:\Essai
    Set oFld=oFSO.CreateFolder(Dossier)
    end if
    If Not oFSO.FolderExists(DossierReadOnly) Then
    'Crée le repertoire c:\EssaiLectureSeule
    Set oFld=oFSO.CreateFolder(DossierReadOnly)
    end if
    
    Call ControlTotal(Dossier) 'Pour rendre le dossier en contrôle Totale 
    Call LectureSeule(DossierReadOnly) 'Pour rendre le dossier en lecture seule
    
    Function LectureSeule(objet)
    Set Ws = CreateObject("WScript.Shell")
    Set ProcessEnv = Ws.Environment("Process")
    NomUtilisateur = ProcessEnv("USERNAME")
    Command = "%COMSPEC% /c Echo o| cacls "& objet &" /g " & qq(NomUtilisateur) & ":r administrateurs:r"
    Result = ws.Run(Command,0,True) 'exécution de la commande sans afficher la console MS-DOS
    End Function
    
    Function ControlTotal(objet)
    Set Ws = CreateObject("WScript.Shell")
    Set ProcessEnv = Ws.Environment("Process")
    NomUtilisateur = ProcessEnv("USERNAME")
    Command = "%COMSPEC% /c Echo o| cacls "& objet &" /g " & qq(NomUtilisateur) & ":f administrateurs:f"
    Result = ws.Run(Command,0,True) 'exécution de la commande sans afficher la console MS-DOS
    End Function
    
    Function qq(strIn)
        qq = Chr(34) & strIn & Chr(34)
    End Function

  5. #5
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Je vois bien, pour l'instant il semble bloquer sur un INVALID_HANDLE_VALUE, avec un:
    The system cannot find the file specificed.
    Pourtant le pipe existe bien.

  6. #6
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 839
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 839
    Points : 13 605
    Points
    13 605
    Par défaut
    Les droits sont définis à la création du pipe. Le paramètre lpSecurityAttributes.

  7. #7
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Les droits sont définis à la création du pipe. Le paramètre lpSecurityAttributes.
    Ont peu le définir aprés coup? Car j'ai pas accés à la creation du pipe, et je sais pas le faire en C/C++.

    J'ai appliquer ce code qui semble maintenant bien obtenir l'HANDLER:
    http://pastebin.com/aUDqscUw
    Mais ça ne change rien, je ne peu pas accédé à mon server en pipe nommé depuis un application normal, si j'ai lancé le server en mode administrateur

  8. #8
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 839
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 839
    Points : 13 605
    Points
    13 605
    Par défaut
    J'en doute fort. Ce n'est pas au client de définir les droits qui l'arrangent

  9. #9
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    J'en doute fort. Ce n'est pas au client de définir les droits qui l'arrangent
    Aprés coup mais toujours coté serveur.
    J'ai toujours coté client un gros: ACCESS DENIED

  10. #10
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 839
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 839
    Points : 13 605
    Points
    13 605
    Par défaut
    Citation Envoyé par alpha_one_x86 Voir le message
    Car j'ai pas accés à la creation du pipe
    Pourtant c'est bien toi qui appelle CreateNamedPipe...

    En Delphi pour un accès sans restriction, c'est quelque chose comme ceci:

    Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var
      SA :TSecurityAttributes;
      SD :TSecurityDescriptor;
     
    begin
      SA.nLength              := SizeOf(SA);
      SA.bInheritHandle       := TRUE;
      SA.lpSecurityDescriptor := @SD;
     
      InitializeSecurityDescriptor(@SD, SECURITY_DESCRIPTOR_REVISION);
      SetSecurityDescriptorDacl(@SD, TRUE, nil, FALSE);
     
      CreateNamedPipe(..., @SA);
    end;

    A toi de convertir

  11. #11
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    J'ai 2 serveur, un en C++ (donc oui j'ai la main), et un en Qt (j'ai pas la main):
    http://qt-project.org/doc/qt-4.8/qlo...er.html#listen

    Le delphi j'ai pour l'instant de gros probléme avec sa compreansion.

  12. #12
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 839
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 839
    Points : 13 605
    Points
    13 605
    Par défaut
    Je peux pas t'aider plus...

  13. #13
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Quelqu'un peu me dire ce que fait le code en C? Je ne set peu étre pas les bon droits.

    Ou il faudrai que je puisse utilisé:
    WRITE_OWNER The caller will have write access to the named pipe's owner.
    Et savoir comment changer pour l'utilisateur courrant

  14. #14
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    J'ai essayé:
    http://pastebin.com/bzxkmAwG
    Mais ça ne marche pas. Ca crash. je sais pas ou.

  15. #15
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 839
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 839
    Points : 13 605
    Points
    13 605
    Par défaut
    Ici tu es sur le forum Windows, ça reste très généraliste. Pourquoi ne pas poser tes questions QT sur le forum correspondant ?

  16. #16
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Car il vont me répondre (et il ont raison), que ça n'as rien à voir avec Qt la manipulation de fichier en win32, et que l'accés au pipe est encapsuler dans Qt et qu'on ne peu pas y toucher.

  17. #17
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 839
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 839
    Points : 13 605
    Points
    13 605
    Par défaut
    Pseudo-fichier
    Le NamedPipes existe aussi (sauf erreur) sous Linux.

    Mais même si QT te permet de programmer sans tenir compte de l'OS, il y a bien dessous une couche propre à l'OS. Donc pour moi, ça reste un problème d'implémentation QT...
    Maintenant, si l'implémentation est si superficielle et inadaptée, tu n'as plus qu'à changer d'IPC...

  18. #18
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Donc pour moi, ça reste un problème d'implémentation QT...
    Oui, c'est même un probléme avouer par Qt. Mais vu que le protocole est comme ça, je doit passé outre. Je ne peu corrigé l'implémentation, mais seul autre solution serai de tout refaire en C en win32, api que je suis loin de maintrisé.

  19. #19
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    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 382
    Points : 41 590
    Points
    41 590
    Par défaut
    En Win32, quand on joue avec les Security Descriptors, le plus simple pour que tout le monde ait tous les droits est de mettre une ACL nulle. À ne pas confondre avec une ACL vide, qui ne donne aucun droit à personne (mais le propriétaire de l'objet a tout le temps tous les droits).

  20. #20
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Le probléme d'un pipe contrairement à un fichier, c'est que les droits ne peuvent étre hérité, donc mon logiciel crée bien les fichiers avec mon utilisateur courrant, mais le pipe en administrateur (ce qui empéche les autres applications lancé sans le mode admin d'y accédé)

Discussions similaires

  1. Changer les droits sur le fichier Windows
    Par allouchi dans le forum Sécurité
    Réponses: 3
    Dernier message: 05/01/2013, 20h32
  2. [Débutant] modifier les droits sur un fichier
    Par DUDE007 dans le forum Langage
    Réponses: 8
    Dernier message: 09/02/2011, 06h11
  3. script: donner les droits sur un fichier
    Par krashvi dans le forum Windows
    Réponses: 1
    Dernier message: 29/12/2008, 15h07
  4. API connaitre les droits sur un fichier/dossier
    Par cerede2000 dans le forum Windows
    Réponses: 9
    Dernier message: 27/10/2008, 16h17

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