droit des fichiers

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

droit des fichiers

Messagepar ecureuil1 » 31 Mai 2006 16:58

bonjour,

j'ai un petit souci sur les droits de fichiers créés ...

Le problème :

quand je suis root ou www : (lancement du pgm en ligne de cde ou à partir de l'interface web)

les fichiers créés par root ou www sont en 644.
-rw-r--r-- 1 faxmget www
-rw-r--r-- 1 faxmget root

quand je suis l'utilisateur zoro : (le pgm est lancé à partir de qmail)

les fichiers créés sont en 600.
-rw------- 1 faxmget zoro

C'est le même programme qui crée les fichiers.

C'est un pgm en C... et je n'ai pas réussi à découvrir ce qui se passait dans ce pgm pour comprendre pourquoi les droits ne sont pas les mêmes!

J'ai une vague idée que c'est la façon dont les utilisateurs sont créés sur le serveur qui me donnent les droits sur les fichiers qui sont créés...

J'aimerai bien avoir les mêmes droits pour tout le monde... 644 me va bien! 600 beaucoup moins...
J'ai bien essayé de mettre un chmod dans le programme qui appelle le pgm en C.... veut pas! (Je m'en doutais qu'il ne voudrait pas!)

Je sais qu'il existe une bidouille avec les uid mais je ne me rappelle pas comment on fait!
Et je ne sais pas si cela ne pose pas des problèmes de sécurité!

Si vous avez des idées, des pistes de recherche...

merci
anne
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France

Messagepar Franck78 » 31 Mai 2006 18:35

Salut,
La première idée, c'est le umask...

http://www.linux-france.org/article/man ... ask-2.html
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar ecureuil1 » 31 Mai 2006 19:45

bonjour,

Comment utiliser umask sans toucher au programme qui crée les fichiers...
Le programme C fait parti du logiciel de fax (mgetty)...

Où se trouve la relation entre les droits des utilisateurs et umask?

merci
anne
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France

Messagepar sibsib » 31 Mai 2006 20:52

Hello,

En principe, le programme C ne fait qu'appliquer les droits par défaut de ton compte zoro.

Il faudrait que tu tapes
umask
sous le compte zoro pour connaitre sa valeur (vraisemblablement 0077 )
Et que dans le script qui lance ton programme, tu mettes umask 0022 (plutôt en tête de script, je penses ;-) )

A+,
Pascal
Sibsib, admin heureux d'un petit SME !!!
- SME 8.0 beta 6 dans une VM :-)
- ESXI 4.1 sur hardware noname
Ma petite page sur SME
Avatar de l’utilisateur
sibsib
Amiral
Amiral
 
Messages: 2368
Inscrit le: 11 Mai 2002 00:00
Localisation: France - région parisienne

Messagepar ecureuil1 » 31 Mai 2006 21:20

ce qui m'inquiète...

Je suis sous root
umask => 0022
pwd /root

chsh zoro
=> /bin/bash

su - zoro
umask => 0022
pwd /home/e-smith/files/users/zoro

Les fichiers sont créés dans /var/spool/fax/outgoing/

y-a pas de 0077 avec umask!

J'ai récupéré le source du pgm en C...
y-a bien umask dedant!

/* the JOB file has to be world-readable, relax umask */
umask( 0022 );

-rw-r--r-- 1 faxmget zoro 175 mai 31 20:22 JOB

/* make sure people do not play umask tricks on us - the only
* bits that are accepted in a user umask are "044" - permit/prevent
* read access by group/other. Write access is always denied.
*/
umask( ( umask(0) & 0044 ) | 0022 );

-rw------- 1 faxmget zoro 11818 mai 31 20:22 f1.g3
-rw------- 1 faxmget zoro 10642 mai 31 20:22 f2.g3

Cette dernière ligne de umask... je ne comprends pas tout

anne
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France

Messagepar Franck78 » 01 Juin 2006 02:56

ecureuil1 a écrit: /* make sure people do not play umask tricks on us - the only
* bits that are accepted in a user umask are "044" - permit/prevent
* read access by group/other. Write access is always denied.
*/
umask( ( umask(0) & 0044 ) | 0022 );

-rw------- 1 faxmget zoro 11818 mai 31 20:22 f1.g3
-rw------- 1 faxmget zoro 10642 mai 31 20:22 f2.g3

Cette dernière ligne de umask... je ne comprends pas tout

anne


umask(0) lit le umask courant ou root
&44 ne garde que ces 2 bits si présents
|22 et ajoute ceux-ci pour finalement rebalancer
ce résultat à umask.

Sans chercher bien loin :
666 : perm à la création d'un fichier

umask à 0: rien n'est masqué donc => perm effectif=666
umask à 777: tout est masqué donc => effectif=000
umask à 022: deux bits masqués=> effectif=644
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris


Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité