IFS et droits

RPG (3 et 4, free), CL, SQL, etc...
Répondre
florian67
Messages : 134
Enregistré le : lun. 23 déc. 2013, 17:03:12

Message par florian67 »

Bonjour à tous,

J'ai fais un programme qui génère des fichiers dans l'IFS à l'aide des fonctions suivantes (open() write() ...:
https://www.ibm.com/support/knowledgece ... /unix2.htm


Mon problème est que la création de fichier ne reprend pas les droits du répertoire (comme on peut le spécifier dans le CPYTOIMPF). Du coup le profil qui doit prendre le fichier n'a pas les droits de suppression etc...

Est-ce que a une idée sur comment lui spécifier de reprendre les droits du répertoire?
Mon autre solution c'est de faire un changement de propriétaire mais du coup c'est moi qui n'a plus les droits :)

Merci d'avance pour votre aide.
Florian

sebgue
Messages : 6
Enregistré le : mar. 27 mai 2014, 14:32:51
Contact :

Message par sebgue »

Sinon, il y a la solution de jouer avec les options "Propriétaire", "Droits du profil de groupe", et "Type de droits du profil de groupe" du profil utilisateur qui va créer le fichier.

florian67
Messages : 134
Enregistré le : lun. 23 déc. 2013, 17:03:12

Message par florian67 »

Il faudra que je regarde cette piste. J'espérais qu'on puisse le faire avec une petite fonction qui va bien ^^
En gros l'équivalent du paramètre STMFAUT(*INDIR) lors du CPYTOIMPF.

cmasse
Site Admin
Messages : 802
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

droits

Message par cmasse »

Qu'avez vous mis comme droits lors de open(), pouvez vous montrer un extrait de code ?
Christian Massé (Volubis.fr)

florian67
Messages : 134
Enregistré le : lun. 23 déc. 2013, 17:03:12

Message par florian67 »

Je sais assez large sur les droits, j'ai du RWX pour tout le monde.
Mais pour moi ça concerne que les données.

Voici mon code (enfin la partie concernée)

Code : Tout sélectionner

 le fichier n'existe pas déjà
         if &#40;access&#40;%trimr&#40;WoutputFile&#41;&#58; F_OK&#41; < 0&#41; and
            &#40;access&#40;%trimr&#40;WNewoutputFile&#41;&#58; F_OK&#41; < 0&#41;;

           // création du fichier
           Woutfile    = open&#40;%trimr&#40;WoutputFile&#41;&#58; O_WRONLY + O_CREAT
                        &#58;S_IRWXU + S_IRWXG + S_IRWXO&#41;;

           cpt = 1;

           Dow prm_message&#40;cpt&#41; <> *blanks;
             //Ecriture de l'historique
             callp WriteHistory&#40;Prm_societe&#58;Prm_stock&#58;'S'&#58;prm_message&#40;cpt&#41;&#41;;

             message = %trim&#40;prm_message&#40;cpt&#41;&#41; + CRLF;
             callp Translate&#40;%len&#40;%trim&#40;message&#41;&#41;&#58; message&#58; 'QTCPASC'&#41;;

             Wlen = WRITE&#40;Woutfile&#58;%addr&#40;message&#41;&#58;%len&#40;%trimr&#40;message&#41;&#41;&#41;;

             cpt += 1;
           EndDo;

           ecriture = *on;
         EndIf;
       Enddo;

       callp close&#40;Woutfile&#41;;

       //Renommage du fichier
       renres = rename&#40;%trim&#40;WoutputFile&#41;&#58;%trim&#40;WNewOutputFile&#41;&#41;;

cmasse
Site Admin
Messages : 802
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

droits sur un fichier

Message par cmasse »

Voici ce que j'avais noté
Pour les droits sur objets pour un fichier stream, le propriétaire du fichier (le créateur) aura les mêmes droit que le propriétaire du répertoire.
le groupe principal aura les même droit que le groupe principal du répertoire
*PUBLIC aura les mêmes droits que *PUBLIC sur le répertoire.
Donnez au propriétaire du répertoire le droit de suppression (sur le répertoire lui même) normalement les fichiers en hériterons.
Christian Massé (Volubis.fr)

florian67
Messages : 134
Enregistré le : lun. 23 déc. 2013, 17:03:12

Message par florian67 »

Mon soucis est que le propriétaire du répertoire c'est l'administrateur (il a tous les droits).
Ensuite on a donné tout les droits au Profil1 et profil2.

Le profil1 va générer les fichiers et c'est le profil2 qui va les supprimer (système d'échange de fichiers).

Du coup le profil1 peut faire tout ce qui veut avec le fichier mais le profil2 n'a que les droits RWX sur les données mais pas sur l'objet.

Petite remarque : si le profil2 fait une copie du fichier (il devient le propriétaire du fichier copié), il peut faire tout ce qu'il veut avec.

cmasse
Site Admin
Messages : 802
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

liste d'autorisation

Message par cmasse »

Liste d'autorisation ?
Christian Massé (Volubis.fr)

florian67
Messages : 134
Enregistré le : lun. 23 déc. 2013, 17:03:12

Message par florian67 »

Pour moi ça ne changera rien vu que le profil2 a déjà tous les droits sur le répertoire.

On a la possibilité de mettre le profil2 en propriétaire du répertoire mais niveau sécurité ce n'est pas le top.

florian67
Messages : 134
Enregistré le : lun. 23 déc. 2013, 17:03:12

Message par florian67 »

J'ai trouvé il y a peu de temps la solution.

En fait lors de l'appel de l'API open() il faut rajouter O_INHERITMODE

Exemple:

Code : Tout sélectionner

Woutfile    = open&#40;%trimr&#40;WoutputFile&#41;&#58;
                        O_WRONLY + O_CREAT + O_INHERITMODE&#58;0&#41;;

Répondre