Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/08/2006, à 23:39

Lknight

[C++ - UNIX] Changement droits

Bonsoir, je recherche le moyen de créer directement en c++ et en interne de mon programme (proprement, pas par la fonction System("") ) un groupe correspondant à mon programme et de changer les droits d'écriture de certains fichiers créés par mon programme pour qu'ils ne soient pas éditable autrement que pas le programme et le root exclusivement.

Merci.


- LK -
-------------------------------------------------------
DAMNED!  Why is it always 42 !!
I hate this fucking calculator!

Hors ligne

#2 Le 26/08/2006, à 12:38

gene69

Re : [C++ - UNIX] Changement droits

éclairci ta question.

Pour creer un groupe...addgroup/groupadd ou l'edition du fichier /etc/group .
De toute façon ton programme aura besoin d'étre uid = 0 pour éditer ce fichier... ou sinon tu n'auras pas le droit d'éditer le fichier. C'est dur d'escalader les droits tu sais.


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#3 Le 26/08/2006, à 14:48

Lknight

Re : [C++ - UNIX] Changement droits

gene69 a écrit :

éclairci ta question.

Pour creer un groupe...addgroup/groupadd ou l'edition du fichier /etc/group .
De toute façon ton programme aura besoin d'étre uid = 0 pour éditer ce fichier... ou sinon tu n'auras pas le droit d'éditer le fichier. C'est dur d'escalader les droits tu sais.

arf :-s

et bien en fait, je voudrais pouvoir faire en sorte que les fichiers générés par mon programme, càd des fichiers contenant une signature numérique notamment, ne puissent pas être en droit d'écriture par un utilisateur lambda mais uniquement par le su ou par un membre du groupe "mon_programme".
et que il n'y ai que mon programme qui sois apte à modifier ces fichiers. et je ne vois pas comment faire.
ce n'est pas indispensable mais ca serais mieux d'un point de vue sécurité. ceci dit, ca pourra faire partie des prochaines versions. mais là je ne vois pas comment procéder.


- LK -
-------------------------------------------------------
DAMNED!  Why is it always 42 !!
I hate this fucking calculator!

Hors ligne

#4 Le 26/08/2006, à 21:42

gene69

Re : [C++ - UNIX] Changement droits

celon mes croyances intimes tu es obligé de creer un utilisateur pour executer quelquechose. Que cet utilisateur puisse se logger sur la machine ou pas et, je crois independant du fait qu'il existe ( j'ai 2 utilisateurs sur ma machine qui existe pour des démons...)

Ensuite tu crées un groupe pour l'utilisateur, et tu vires cet utilisateur de tout les autres groupes (sauf du groupe cdrom s'il a besoin d'utiliser le cdrom). Peut être que tu peux virer root de groupe, ou lui interdire l'acces avec une politique d'acces adapté.

De toute façon tu ne pourras pas empecher root de lire le fichier s'il en a envie. S'il n'a pas l'autorisation de lire un fichier, il ne pourra pas le faire. Par contre il conservera le droit de s'approprier le ficher et apres une fois qu'il en est proprietaire.

Il me semble qu'on est loin de ton soucis. Si c'est contre une modification accidentelle  que tu veux protéger ton fichier... soit... mais en soit la signature suffit: elle invalidera  tout fichier trafiqué.

La question de la signature est interressante. J'y connais rien en cryptage, ni en drm.

Je pense que je ne t'apprend rien?


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#5 Le 26/08/2006, à 21:45

gene69

Re : [C++ - UNIX] Changement droits

ps; pour une utilisation simple, tu génères le fichier, tu calcules le checksum que tu concatènes.

à l'ouverture du fichier du détaches le checksum tu recalcules et tu vérifies.

ça je suis sur qu'on peut le faire simplement, et peux être même en bash sur des fichiers texte.


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#6 Le 26/08/2006, à 22:00

lunique

Re : [C++ - UNIX] Changement droits

Je ne sais pas si on peut changer directement en C les droit d'un fichier. A premiere vue on peut soit ouvrir un fichier en lecture ecriture, voir le creer, mais je pense que les droit sont gerer par le systeme, et donc tu devras faire un appel systeme pour modifier les droit.

Ensuite, comme par defaut l'attribution des droits est en 755 (sous mon home en tout cas) si je lance le programme avec un utilisateur appartenant a un groupe quelquonque (que j'aurai crée auparavent juste pour ce programme), il n'y aura que cet utilisateur et root qui pourront modifier le fichier donc, soit dans otn programme a chaque creation de fichier tu change tout de suite les droits en 770 soit tu changes les options de montage de la partition pour que par defaut, les droits soient 770 (ce doit etre l'option umask=007)

Hors ligne

#7 Le 26/08/2006, à 22:44

Lknight

Re : [C++ - UNIX] Changement droits

gene69 a écrit :

celon mes croyances intimes tu es obligé de creer un utilisateur pour executer quelquechose. Que cet utilisateur puisse se logger sur la machine ou pas et, je crois independant du fait qu'il existe ( j'ai 2 utilisateurs sur ma machine qui existe pour des démons...)

Ensuite tu crées un groupe pour l'utilisateur, et tu vires cet utilisateur de tout les autres groupes (sauf du groupe cdrom s'il a besoin d'utiliser le cdrom). Peut être que tu peux virer root de groupe, ou lui interdire l'acces avec une politique d'acces adapté.

De toute façon tu ne pourras pas empecher root de lire le fichier s'il en a envie. S'il n'a pas l'autorisation de lire un fichier, il ne pourra pas le faire. Par contre il conservera le droit de s'approprier le ficher et apres une fois qu'il en est proprietaire.

Il me semble qu'on est loin de ton soucis. Si c'est contre une modification accidentelle  que tu veux protéger ton fichier... soit... mais en soit la signature suffit: elle invalidera  tout fichier trafiqué.

La question de la signature est interressante. J'y connais rien en cryptage, ni en drm.

Je pense que je ne t'apprend rien?

ouais mais c pas le problème, le problème est que personne ne puisse aller trafiquer le certificat du fichier X
mais après réflexion, je n'ai pas besoin de changer les droits, simplement pcq y a peu de chance de générer une signature valide sans la clé du créateur du fichier si le fichier est modifié par l'attaquant, donc au final je laisse tomber wink


- LK -
-------------------------------------------------------
DAMNED!  Why is it always 42 !!
I hate this fucking calculator!

Hors ligne

#8 Le 27/08/2006, à 00:31

gene69

Re : [C++ - UNIX] Changement droits

comme tu veux. [resolu]


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne