Problème avec chroot

thomzz

Membre confirmé
18 Mars 2003
77
0
Visiter le site
Salut !

Alors voilà mon problème, je voudrai utiliser chroot histoire de voir à quoi ça ressemble, j'ai donc créer un dossier dans lequel j'ai deux sous dossiers

bin - avec les executables bash et ls
usr/lib - avec les bibliothèques nécessaires à bash et ls (otool -L donne /usr/lib/libncurses.5.dylib (compatibility version 5.0.0, current version 5.0.0) et /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 71.0.0) pour ls et pareil pour bash)

mais quand je fait

$sudo chroot .

j'obtient :

Illegal instruction

Merci
A+
 
sudo chroot ? Heu kezako ?
Sans rire sudo permet de changer d'utilisateurs non ?
chroot quant à lui permet de changer le répertoire racine.
Un sudo chroot ne fonctionnera que si tu as un utilisateur chroot mais je ne pense pas que tu veuille aboutir à un changerment d'utilisateur.
Je te conseille donc de faire chroot /dossier [/bin/$shell] (par defaut il me semble que c'est sh)
 
héhé :D
Je viens de reussir.

Explication :
J'avais également le même message que toi :
Bloc de code:
cixi:~/test pouet$ sudo chroot .
Illegal instruction
Donc moi pas comprendre... moi chercher explication :
Bloc de code:
cixi:~/test pouet$ sudo ktrace chroot .
Illegal instruction
.... puis ...
Bloc de code:
cixi:~/test pouet$ sudo kdump -f ktrace.out
[...]
  7823 chroot   NAMI  "/bin/bash"
  7823 chroot   NAMI  "/usr/lib/dyld"
  7823 chroot   RET   execve -1 errno 2 No such file or directory
  7823 chroot   PSIG  SIGILL SIG_DFL
Donc il manque /usr/lib/dyld !
On approche de la fin :

Bloc de code:
cixi:~/test pouet$ cp /usr/lib/dyld usr/lib/
cixi:~/test pouet$ sudo chroot .
dyld: /bin/bash can't open library: /usr/lib/system/libmathCommon.A.dylib  (No such file or directory, errno = 2)
Trace/BPT trap
cixi:~/test pouet$ mkdir usr/lib/system
cixi:~/test pouet$ cp /usr/lib/system/libmathCommon.A.dylib usr/lib/system/
cixi:~/test pouet$ sudo chroot .
bash-2.05b#

Voilou... :up:
A+

PS : ceci dit au passage... faire un chroot en root... hum c pas top :D mais bon.
 
Oui en effet, je n'utilise jamais sudo, j'avais confondu avec su. Mais si tu fais un chroot sans donner d'arguments ça sert à quoi ?
 
"La commande chroot permet de lancer un programme en restreignant ses accès
disques à une sous arborescence. En fait pour le processus, la racine du
disque est la racine de l'arborescence dans laquelle il a été restreint."

Une précision sur ce que je disais plus haut. En fait chroot doit être lancé en root mais les process qui tournent à l'interieur de la "cage" doivent eux, ne pas tourner en root. Sinon ils ont la possibilité de sortir de cet environnement sécurisé.

cf http://www.hsc.fr/ressources/breves/chroot.html.fr
 
si tu fais un server ftp fais gaffe utilises plutot proftpd pour gerer un chroot interne

commentaire pour "ca sert a quoi les commandes" : koba
tu ouvres ton terminal et tu tapes man chroot (change root : change de racine ) , man sudo ( super user do : super utilisateur fait ) ?

:zen:

ta lib system est liée au dyld object ( dynamic link editor --> man dyld :p )

:zen:
 
thomzz a dit:
Ca marche nickel !

Mais c'est juste pour savoir comment marche chroot, pas de 'chrooting ftp' pour l'instant :-)

Merci de vos réponses.
A+

Tu pourras essayer donc des trucs marrants :D

Pour la notion de chroot :
[illustration]

Vous avez votre système sur [Macintosh HD] ou / racine sytème
pour des raisons obscures ma machine se compose ainsi :

/ (mac OSX)
/Volumes/Darwin_6
/Volumes/Darwin_7
/Volumes/Darwin_dev

j'ai besoin par exemple de travailler sur Darwin_6
pour tester la compatibilité d'un progiciel

lors du démarrage au lieu de monter mon système par defaut sur / (the mount point)

je fais un chroot de base
je monte donc mon système /Volumes/Darwin_6 comme root (the new mount point)

voila cela permet d'avoir différents sytèmes
en volume sur la même machine

tout cela s'automatise bien sûr

ps: vous pouvez faire ca aussi avec des dists GNU/Linux :
/Volumes/GNUDebian

[fin d'illustration]

:zen: