NOM¶
dchroot - entrer dans un environnement de chroot.
RÉSUMɶ
dchroot [
-h|
--help |
-V|
--version |
-l|
--list |
-i|
--info |
--config |
--location] [
--directory=répertoire] [
-d|
--preserve-environment] [
-q|
--quiet |
-v|
--verbose] [
-c
chroot|
--chroot=chroot |
--all]
[
COMMANDE [
ARG1 [
ARG2 [
ARGn]]]]
DESCRIPTION¶
dchroot autorise l'utilisateur à exécuter une commande ou
un interpréteur de commande de connexion dans un environnement
chrooté. Si aucune commande n'est précisée, un
interpréteur de commande de connexion sera démarré dans
le répertoire personnel de l'utilisateur dans le chroot.
La commande est un ou plusieurs arguments qui seront exécutés dans
l'interpréteur de commandes par défaut de l'utilisateur en
utilisant l'option
-c. Par conséquent, du code shell peut
être embarqué dans cet argument. Si de multiples options de
commande sont utilisées, elles sont concaténées ensemble,
séparées par des espaces. Les utilisateurs doivent faire
attention aux problèmes de citation que cela présente, et
doivent utiliser
schroot si nécessaire, qui ne présente
pas ces problèmes de citation.
Le répertoire dans lequel la commande ou l'interpréteur de
commandes initial sont exécutés dépend du contexte. Voir
l'option
--directory ci-dessous pour une description complète.
Cette version de dchroot est une encapsulation de compatibilité autour du
programme
schroot(1). Elle est fournie à des fins de
rétro-comptabilité avec les options de ligne de commande de
dchroot, mais schroot est recommandé pour des utilisations futures.
Voyez la section “
Incompatibilités” ci-dessous
pour plus d'informations sur des incompatibilités connues avec des
versions plus anciennes de dchroot.
Si aucun chroot n'est spécifié, le nom de chroot ou alias
‘default’ sera utilisé à la place.
OPTIONS¶
dchroot accepte les options suivantes :
Options basiques¶
- -h, --help
- Afficher un résumé de l'aide.
- -a, --all
- Sélectionner tous les chroots.
- -c, --chroot=chroot
- Spécifier un chroot à utiliser. Cette option peut
être utilisée plusieurs fois pour spécifier plus d'un
chroot, dans ce cas elle a un effet similaire à --all.
- -l, --list
- Lister tous les chroots disponibles.
- -i, --info
- Afficher des informations détaillées à propos des
chroots spécifiés. Notez que les versions
précédentes de dchroot n'incluent pas cette option.
- -p, --path
- Afficher l'emplacement (chemin) des chroots
sélectionnés.
- --config
- Afficher la configuration des chroots spécifiés. C'est utile
pour tester que la configuration utilisée est la même que
celle du fichier de configuration. Tous les commentaires du fichier
original sont omis. Notez que les versions précédentes de
dchroot n'incluent pas cette option.
- --directory=répertoire
- Se déplacer dans le répertoire dans le chroot avant
d'exécuter la commande ou l'interpréteur de commande de
connexion. Si le répertoire n'est pas disponible, dchroot se
terminera par un état d'erreur.
- Le comportement par défaut est comme suit (tous les
répertoires sont dans le chroot). Sauf si l'option
--preserve-environment est utilisée pour préserver
l'environnement, l'interpréteur de commande de connexion ou la
commande sera exécuté dans le répertoire personnel de
l'utilisateur, ou dans / si le répertoire personnel n'est
pas disponible. Quand l'option --preserve-environment est
utilisée, une exécution dans le répertoire courant
sera utilisée, se rabattant sur / si non accessible. Si
aucun des répertoires n'est disponible, dchroot se terminera par un
état d'erreur.
- -d, --preserve-environment
- Préserver l'environnement de l'utilisateur à
l'intérieur de l'environnement de chroot. Par défaut un
environnement propre est utilisé ; cette option copie
l'ensemble de l'environnement de l'utilisateur et le met en place dans la
session.
- -q, --quiet
- Afficher uniquement les messages essentiels.
- -v, --verbose
- Afficher tous les messages. Notez que les versions
précédentes de dchroot n'incluent pas cette option.
- -V, --version
- Afficher les informations de version.
Notez que les versions précédentes de dchroot ne fournissent pas
les options longues.
INCOMPATIBILITÉS¶
Debian dchroot antérieur à la version 0.99.0¶
- •
- Les messages d'information sont formulés et formatés
différemment.
- •
- su(1) n'est plus utilisé pour exécuter les commandes
dans le chroot ; c'est effectué en interne par dchroot. Ce
changement peut causer des différences subtiles. Si vous trouvez
une incompatibilité, merci de le signaler pour qu'elle puisse
être corrigée.
- •
- dchroot fournit un nombre restreint des fonctionnalités
implémentées par schroot, mais c'est quand
même schroot qui est en-dessous. Par conséquent dchroot est
encore soumis aux vérifications de sécurité de
schroot, incluant l'authentification et autorisation PAM et la gestion des
sessions, par exemple, et par conséquent peut se comporter
légèrement différemment des versions plus anciennes
de dchroot dans certaines circonstances.
Debian dchroot antérieur à la version 1.5.1¶
- •
- Cette version de dchroot utilise schroot.conf pour sauver la
configuration pour les chroots disponibles, au lieu du fichier
dchroot.conf utilisé historiquement. dchroot prend en charge
la migration automatique de dchroot.conf vers le format de fichier
par clé de schroot.conf avec l'option --config des
versions 0.2.2 à 1.5.0 ; la prise en charge des formats plus
anciens n'est plus disponible.
dchroot DSA¶
Les machines exécutées par les Administrateurs Système
Debian pour le projet Debian ont un paquet
dchroot-dsa qui fourni une
implémentation alternative de dchroot.
- •
- Toutes les incompatibilités ci-dessus s'appliquent.
- •
- Cette version de dchroot possède des options de ligne de commande
incompatibles alors que certaines de ces options sont supportées ou
ont des options équivalentes avec un nom différent, l'option
-c n'est pas nécessaire pour spécifier un chroot et
cette version de dchroot ne peut pas implémenter ce comportement de
façon rétro-compatible (parce que si -c est omis, le
chroot par défaut est utilisé). Le dchroot DSA utilise le
premier argument non-option comme chroot à utiliser, ne permettant
l'utilisation que d'un seul chroot à la fois.
RÉPERTOIRES DE SUBSTITUTION¶
dchroot sélectionnera un répertoire approprié à
utiliser à l'intérieur du chroot suivant si les options
--directory ou
--preserve-environment sont utilisées.
Quand un répertoire est explicitement spécifié, seul un
répertoire sera utilisé pour des raisons de
sécurité et d'intégrité. Notez qu'à cause
des multiples solutions de repli considérées pour les commandes,
il est dangereux d'exécuter des commandes en utilisant dchroot ;
utiliser schroot à la place. Les sous-sections suivantes listent les
séquences de solutions de repli pour chaque cas. CWD est le
répertoire de travail courant, DIR est le répertoire
spécifié par
--directory.
Interpréteur de commande de connexion ou commande¶
Transition |
|
(Hôte → Chroot) |
Commentaire |
|
CWD → passwd pw_dir |
Comportement normal (si ni --directory ni
--preserve-environment ne sont utilisés) |
CWD → / |
Si passwd pw_dir n'existe pas |
FAIL |
Si / n'existe pas |
--preserve-environment est utilisé¶
Transition |
|
(Hôte → Chroot) |
Commentaire |
|
CWD → CWD |
Comportement normal (si --preserve-environment n'est pas
utilisé) |
CWD → / |
Si CWD n'existe pas |
FAIL |
Si / n'existe pas |
utilisation de --directory¶
Transition |
|
(Hôte → Chroot) |
Commentaire |
|
CWD → DIR |
Comportement normal |
FAIL |
Si DIR n'existe pas |
Aucune solution de repli ne devrait exister en toute circonstance.
Débogage¶
Notez que
--debug=notice affichera la liste interne des
répertoires de repli calculée pour la session.
EXEMPLES¶
$ dchroot -l↵
Available chroots: sarge [default], sid
$ dchroot -p sid↵
/srv/chroot/sid
$ dchroot -q -c sid -- uname -smr↵
Linux 2.6.16.17 ppc
$ dchroot -q -c sid -- "uname -smr"↵
Linux 2.6.16.17 ppc
$ dchroot -q -c sid "ls -1 / | tac | head -n 4"↵
var
usr
tmp
sys
$ dchroot -c sid↵
I: [sid chroot] Running login shell: “/bin/bash”
$
Utilisez
-- pour autoriser les options débutant avec
‘-’ ou ‘--’ pour la commande à
exécuter dans le chroot. Cela empêche qu'elles soient
interprétées en tant qu'options de dchroot. Notez que la
première ligne a été affichée sur l'erreur
standard, et le reste sur la sortie standard. C'est intentionnel, pour que la
sortie du programme exécuté dans le chroot puisse être
redirigée via un pipe ou autre si besoin ; les données
seront les mêmes que si la commande était exécutée
directement sur le système hôte.
DÉPANNAGES¶
Si quelque chose ne fonctionne pas, et qu'il n'est pas facile de
déterminer ce qui ne va pas à partir des messages d'erreur, vous
pouvez utiliser l'option
--debug=niveau pour activer les
messages de débogage. Cela donnera un plus grand nombre d'informations.
Les niveaux de débogage valides sont ‘none’,
‘notice’, ‘info’, ‘warning’ et
‘critical’ par ordre croissant de sévérité.
Plus le niveau de sévérité est faible, plus il y a de
sortie.
Si vous avez toujours des problèmes, les développeurs peuvent
être contactés sur la liste de diffusion (en anglais) :
Debian buildd-tools Developers
<buildd-tools-devel@lists.alioth.debian.org>
BOGUES¶
Sur les architectures
mips et
mipsel, les noyaux Linux,
jusqu'à la version 2.6.17 incluse, ont une prise en charge
cassée des
personality(2), qui a pour conséquence un
échec de la mise en place des personnalités. Cela se manifeste
par une erreur “Operation not permitted” (EPERM). Pour
contourner ce problème, définissez
personality à
‘undefined’, ou mettez à jour votre noyau vers une
version plus récente.
FICHIERS¶
- /etc/schroot/schroot.conf
- Le fichier de configuration de schroot pour l'ensemble du
système. Ce fichier doit être possédé par
l'utilisateur root, et être non inscriptible par les autres.
AUTEURS¶
Roger Leigh.
L'implémentation de dchroot utilise les mêmes options de ligne de
commande que le
dchroot d'origine de David Kimdon
<dwhedon@debian.org>, mais est une implémentation
indépendante.
COPYRIGHT¶
Copyright © 2005-2012 Roger Leigh <rleigh@debian.org>
dchroot est un logiciel libre : vous pouvez le redistribuer et/ou
le modifier aux conditions définies dans la licence publique
générale GNU telle que publiée par la Free Software
Foundation ; version 2 ou, selon votre préférence,
toute version ultérieure.
VOIR AUSSI¶
schroot(1),
sbuild(1),
chroot(2),
schroot-setup(5),
schroot.conf(5).