Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
615 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] - utilisation de chroot() (unistd.h)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] - utilisation de chroot() (unistd.h)

n°1114406
jumar
Posté le 09-06-2005 à 16:55:16  profilanswer
 

Bonjour,
Dans l'application que je développe (un webserver) je fais un appel de la fonction chroot("/var/www" ) pour avoir comme racine le répertoire ou se trouvent les fichiers accessibles depuis le serveur. La question que je me pose est s'il est possible de sortir de ce chroot temporairement pour réstaurer la racine habituelle avant d'appeller une fonction devant accéder à un répertoire hors de /var/www. J'ai essayé de faire un appel chroot("/" ) pour restaurer la racine mais ça ne semble pas marcher.  
 
Voici un petit shema explicatif de ce que je voudrais faire :
 
debut de l'application:
 
chroot("/var/www" );
chdir("/" );
...
//execution des fonctions classiques du webserver qui n'accèdent qu'à des fichiers sous /var/www
...
exit_chroot(); //pour sortir du chroot
...
//appel de la fonction necessitant l'accès à /dev/
...
chroot("/var/www" ); //on restaure la racine pour les fichiers web
chdir("/" );
...
//retour aux fonctions classique du webserver
 
 
Je sais pas si j'ai été très clair, mais toute aide serait la bienvenue.
 
Merci
 
Julien

mood
Publicité
Posté le 09-06-2005 à 16:55:16  profilanswer
 

n°1114528
deather2
Posté le 09-06-2005 à 17:42:11  profilanswer
 

Salut !
Une fois chroote, il faut te dire que / n'existe plus.
Si, une fois dans la cage chroot, tu fais chroot("/" ), il te rechrootera en realite dans /var/www.

n°1114541
jumar
Posté le 09-06-2005 à 17:45:35  profilanswer
 

Il n'existe pas de fonction pour sortir du chroot?

n°1117000
matafan
Posté le 12-06-2005 à 04:17:32  profilanswer
 

La solution c'est de faire le chroot dans un process fils. Si tu veux faire des choses en dehors du chroot, tu les fais dans le père.

n°1118335
Rak111
Posté le 13-06-2005 à 14:30:19  profilanswer
 

Pour sortir d'une cage,  
 
tu te places dans la racine de ta cage puis tu fais :
 
mkdir("toto" );
chroot("toto" );
 
tu seras donc hors de ta cage et tu lances ta fonction qui accede à /dev.
 
puis tu remets ta cage en place...une vieille technique de pirate
 


---------------
-= RAK =-

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] - utilisation de chroot() (unistd.h)

 

Sujets relatifs
[ASP/ACCESS]utilisation deux RecordsetUtilisation de macros avec un .dot
Utilisation d'une librairie avec 2 compilateursOptimiser l'utilisation du CPU
problème de DOCTYPE pour utilisation de CSS et DHTMLUtilisation du cache
[RESOLU] [PHP] Utilisation de 2 BDD dans la meme pageutilisation d'un composant JProgressBar
FreeImage et utilisation de BDE borland c++Utilisation de la fonction CopyFile en vbs
Plus de sujets relatifs à : [C] - utilisation de chroot() (unistd.h)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR