Volubis, le forum IBM i Index du Forum Volubis, le forum IBM i
avec les clubs Informatiques IPL et Bretagne.
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

IFS et droits

 
Poster un nouveau sujet   Répondre au sujet    Volubis, le forum IBM i Index du Forum -> langages
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
florian67



Inscrit le: 23 Déc 2013
Messages: 111

MessagePosté le: Mar 02 Mai 2017, 08:54:32    Sujet du message: Répondre en citant

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/knowledgecenter/ssw_i5_54/apis/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 Smile

Merci d'avance pour votre aide.
Florian
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
sebgue



Inscrit le: 27 Mai 2014
Messages: 6

MessagePosté le: Mar 02 Mai 2017, 11:39:19    Sujet du message: Répondre en citant

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.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
florian67



Inscrit le: 23 Déc 2013
Messages: 111

MessagePosté le: Mar 02 Mai 2017, 12:34:45    Sujet du message: Répondre en citant

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.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
cmasse
Site Admin


Inscrit le: 14 Fév 2007
Messages: 691
Localisation: Nantes

MessagePosté le: Mar 02 Mai 2017, 14:52:05    Sujet du message: droits Répondre en citant

Qu'avez vous mis comme droits lors de open(), pouvez vous montrer un extrait de code ?
_________________
Christian Massé (Volubis.fr)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
florian67



Inscrit le: 23 Déc 2013
Messages: 111

MessagePosté le: Mar 02 Mai 2017, 14:57:00    Sujet du message: Répondre en citant

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:
 le fichier n'existe pas déjà
         if (access(%trimr(WoutputFile): F_OK) < 0) and
            (access(%trimr(WNewoutputFile): F_OK) < 0);

           // création du fichier
           Woutfile    = open(%trimr(WoutputFile): O_WRONLY + O_CREAT
                        :S_IRWXU + S_IRWXG + S_IRWXO);

           cpt = 1;

           Dow prm_message(cpt) <> *blanks;
             //Ecriture de l'historique
             callp WriteHistory(Prm_societe:Prm_stock:'S':prm_message(cpt));

             message = %trim(prm_message(cpt)) + CRLF;
             callp Translate(%len(%trim(message)): message: 'QTCPASC');

             Wlen = WRITE(Woutfile:%addr(message):%len(%trimr(message)));

             cpt += 1;
           EndDo;

           ecriture = *on;
         EndIf;
       Enddo;

       callp close(Woutfile);

       //Renommage du fichier
       renres = rename(%trim(WoutputFile):%trim(WNewOutputFile));
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
cmasse
Site Admin


Inscrit le: 14 Fév 2007
Messages: 691
Localisation: Nantes

MessagePosté le: Mar 02 Mai 2017, 15:43:24    Sujet du message: droits sur un fichier Répondre en citant

Voici ce que j'avais noté
Citation:

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)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
florian67



Inscrit le: 23 Déc 2013
Messages: 111

MessagePosté le: Mar 02 Mai 2017, 15:52:59    Sujet du message: Répondre en citant

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.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
cmasse
Site Admin


Inscrit le: 14 Fév 2007
Messages: 691
Localisation: Nantes

MessagePosté le: Mar 02 Mai 2017, 16:00:17    Sujet du message: liste d'autorisation Répondre en citant

Liste d'autorisation ?
_________________
Christian Massé (Volubis.fr)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
florian67



Inscrit le: 23 Déc 2013
Messages: 111

MessagePosté le: Mar 02 Mai 2017, 16:06:36    Sujet du message: Répondre en citant

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.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
florian67



Inscrit le: 23 Déc 2013
Messages: 111

MessagePosté le: Ven 12 Mai 2017, 11:10:27    Sujet du message: Répondre en citant

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:
Woutfile    = open(%trimr(WoutputFile):
                        O_WRONLY + O_CREAT + O_INHERITMODE:0);
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Volubis, le forum IBM i Index du Forum -> langages Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com

Anti Bot Question MOD - phpBB MOD against Spam Bots