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

Lazarus Pascal Discussion :

Comment définir et modifier les permissions d'une application


Sujet :

Lazarus Pascal

  1. #1
    Futur Membre du Club
    Homme Profil pro
    ancien auditeur informatique (à la retraite)
    Inscrit en
    Septembre 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : ancien auditeur informatique (à la retraite)
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2019
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Comment définir et modifier les permissions d'une application
    Bonjour,

    je cherche de la documentation sur la manière de définir et modifier les permissions d'une application, en particulier pour utiliser CopyFile et DeleteFile.

    Je n'ai trouvé qu'une indication proposant de modifier les options du projet, qui ne proposent apparemment que 3 niveaux de droits mais sans possibilité de modulation par répertoire.
    Je n'arrive pas à trouver de précisions sur la notion d'invocateur et je ne saisis pas bien la différence entre droits le plus grands possibles et administrateur.

    J'ajoute que je ne souhaite pas donner de permission trop large, mais plutôt de limiter les droits d'écriture et d'effacement à un répertoire et bien entendu ses sous-répertoires.

    J'utilise Ubuntu mais je souhaite également que l'appli puisse être utilisée sous Windows.

  2. #2
    Membre actif
    Avatar de sematimo
    Profil pro
    Inscrit en
    Février 2009
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 287
    Points : 276
    Points
    276
    Par défaut
    pourquoi ne pas utiliser fileutil pour copier ou supprimer un fichier

  3. #3
    Futur Membre du Club
    Homme Profil pro
    ancien auditeur informatique (à la retraite)
    Inscrit en
    Septembre 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : ancien auditeur informatique (à la retraite)
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2019
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Utilisation de fileutil
    @sematimo
    c'est ce que j'essaye de faire avec CopyFile et DeleteFile.qui sont tous deux dans fileutil sauf erreur de ma part, et fileutil est dans ma clause uses; mais rien ne se passe et j'ai pensé qu'il devait y avoir un problème de permission d'où mes questions.

    Y a-t-il un moyen de détecter pourquoi CopyFile ne fonctionne pas?

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 454
    Points
    15 454
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Citation Envoyé par amitoum Voir le message
    Y a-t-il un moyen de détecter pourquoi CopyFile ne fonctionne pas?
    Je viens de faire l'essai suivant (sous Linux).

    J'ai créé un fichier dont j'ai changé les attributs, de sorte que personne n'ait le droit de le supprimer.
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [roland@localhost permissions]$ touch fichier.txt
    [roland@localhost permissions]$ lsattr fichier.txt
    --------------e----- fichier.txt
    [roland@localhost permissions]$ sudo chattr +i fichier.txt
    [roland@localhost permissions]$ lsattr fichier.txt
    ----i---------e----- fichier.txt
    [roland@localhost permissions]$ rm fichier.txt
    rm: impossible de supprimer 'fichier.txt': Opération non permise

    Ensuite j'ai mis dans mon projet Lazarus le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if DeleteFile('fichier.txt') then
        Memo1.Append('Fichier supprimé')
      else
        Memo1.Append(SysErrorMessage(GetLastOSError));
    end;
    Et donc, quand j'appuie sur le bouton, le fichier n'est pas supprimé, et je vois dans mon TMemo le message suivant :

    Operation not permitted
    Cela vous aide-t-il ?
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  5. #5
    Membre actif
    Avatar de sematimo
    Profil pro
    Inscrit en
    Février 2009
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 287
    Points : 276
    Points
    276
    Par défaut
    Chez moi fileutil fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //pour copier
    fileutil.CopyFile(source,destination,true,false);
     
    //pour supprimer
    fileutil.DeleteDirectory(cheminDossier, False);
    //false supprime dossier, true suupprime le contenu

  6. #6
    Futur Membre du Club
    Homme Profil pro
    ancien auditeur informatique (à la retraite)
    Inscrit en
    Septembre 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : ancien auditeur informatique (à la retraite)
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2019
    Messages : 13
    Points : 6
    Points
    6
    Par défaut question subsidiaire
    @Roland Chastain
    merci beaucoup, je vais m'en servir.

    Dans l'intervalle, j'ai envisagé d'utiliser la fonction RenameFile qui me paraissait pouvoir remplacer avantageusement CopyFile+DeleteFile, mais je me suis aperçu que cette fonction écrasait sans prévenir un éventuel fichier préexistant portant le nom du fichier de destination. Autrement dit, il faut vérifier l'absence de fichier qui serait écrasé avant de l'utiliser. Dommage.

    Dommage également que cette fonction (peut-être plus ancienne et qui fait partie d'une autre unité) ne bénéficie pas des mêmes options que CopyFile; il pourrait être intéressant de l'harmoniser.

  7. #7
    Membre actif
    Avatar de sematimo
    Profil pro
    Inscrit en
    Février 2009
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 287
    Points : 276
    Points
    276
    Par défaut
    Sous windows, tu peux utiliser filesetattr.

    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
    //faReadOnly 	: 1 : Read-only files
    //faHidden 	: 2 : Hidden files
    //faSysFile 	: 4 : System files
    //faVolumeID 	: 8 : Volume ID files
    //faDirectory 	: 16 : Directory files
    //faArchive 	: 32 : Archive files
    //faSymLink 	: 64 : Symbolic link
     
    var
      fileName : string;
      attrs    : Integer;
     
    begin
      filename:=path+'test.txt';
      filesetattr(filename,0);
      //1 met le fichier en lécture seule, 0 met en lécture/écriture
     
      attrs := FileGetAttr(fileName);//récupère l'attribut
     
      // test
      if attrs and faReadOnly > 0
      then ShowMessage('Fichier en lécture seule '+inttostr(attrs))
      else ShowMessage('Fichier en lécture/écriture '+inttostr(attrs));
    end;

Discussions similaires

  1. [ZIP] Modifier les permissions d'une ZipEntry
    Par l'index dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 22/05/2012, 14h49
  2. Réponses: 11
    Dernier message: 03/08/2010, 17h19
  3. comment voir et modifier les membres d'une structure ?
    Par dva2tlse dans le forum Débuter
    Réponses: 12
    Dernier message: 22/11/2008, 14h07
  4. comment modifier les widgets dans une fenètre??
    Par afrikha dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 14/10/2005, 14h48
  5. comment modifier les données d'une table à travers un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 12
    Dernier message: 19/07/2005, 09h51

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