Provided by: schroot_1.6.10-4ubuntu0.1_amd64 

NOM
schroot — entrer de manière sécurisée dans un environnement de chroot
RÉSUMÉ
schroot [-h|--help | -V|--version | -l|--list | -i|--info | --config | --location | --automatic-session |
-b|--begin-session | --recover-session | -r|--run-session | -e|--end-session] [-f|--force] [-n
nom-de-session|--session-name=nom-de-session] [-d répertoire|--directory=répertoire] [-u
utilisateur|--user=utilisateur] [-u utilisateur|--user=utilisateur] [-p|--preserve-environment][-s
shell|--shell=shell] [-q |--quiet | -v|--verbose] [-c chroot|--chroot=chroot | --all | --all-chroots |
--all-source-chroots | --all-sessions] | --exclude-aliases [-o|--option=clé=valeur] [--] [COMMANDE [
ARG1 [ ARG2 [ ARGn]]]]
DESCRIPTION
schroot autorise l'utilisateur à exécuter une commande ou un interpréteur de commande de connexion dans
un environnement de chroot. Si aucune commande n'est précisée, un interpréteur de commande de connexion
sera démarré dans le répertoire de travail courant de l'utilisateur à l'intérieur du chroot.
La commande est un programme plus autant d'arguments optionnels que requis. Chaque argument doit être
déclaré séparément.
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.
Toute utilisation de chroot sera enregistrée dans les journaux du système. Dans certaines circonstances,
l'utilisateur pourrait devoir s'identifier ; consultez la section “Authentification” ci-dessous.
Si aucun chroot n'est spécifié, le nom de chroot ou alias ‘default’ sera utilisé à la place. Ce qui est
équivalent à “--chroot=default”.
APERÇU
Il y a souvent besoin d'exécuter des programmes dans des environnements virtualisés plutôt que
directement sur le système hôte. À la différence des autres systèmes de virtualisation comme kvm ou Xen,
schroot ne virtualise pas le système en entier ; il virtualise seulement le système de fichiers, et
certaines parties du système de fichiers peuvent toujours être partagées avec l'hôte. Il est par
conséquent rapide, léger et flexible. Cependant, il ne virtualise pas les autres aspects du système,
comme la mémoire partagée, le réseau, les périphériques etc., et par conséquent peut être moins sécurisé
que d'autres systèmes, en fonction de l'utilisation voulue. Des exemples d'utilisations connues de
schroot sont :
• Exécution de programmes non fiables dans un bac à sable ; de cette façon, ils ne peuvent pas
interférer avec les fichiers du système hôte ; cela peut également être utilisé pour diminuer les
dommages que causerait la compromission d'un service sur l'hôte.
• Utiliser un environnement défini ou propre pour garantir la reproductibilité et l'intégrité d'une
tâche donnée.
• Utiliser une version différente d'un système d'exploitation, ou même un système d'exploitation
complètement différent, p.ex. une distribution GNU/Linux différente.
• Exécuter des programmes 32 bits sur un système hôte 64 bits, en utilisant un chroot 32 bits.
• Construction automatique de paquets Debian en utilisant sbuild(1) qui construit chaque paquet dans
un cliché chroot dédié quand les clichés LVM ou les unions sont utilisés.
• Prise en charge d'images multiples de systèmes dans une installation de cluster où modifier
l'image de base est consommatrice de temps et/ou prendre en charge toutes les configurations
requises par les utilisateurs est difficile : différents chroots peuvent prendre en charge toutes
les configurations différentes requises, et l'accès peut être donné aux utilisateurs du cluster
pour les chroots dont ils ont besoin (ce qui peut inclure des accès root pour les utilisateurs de
confiance afin qu'ils puissent maintenir leurs propres images)
Un chroot peut être utilisé directement en exécutant chroot(8), mais les utilisateurs standards ne sont
pas autorisés à exécuter cette commande. schroot autorise l'accès à des chroots pour des utilisateurs
normaux en utilisant le même mécanisme, mais avec plusieurs caractéristiques supplémentaires. Alors que
schroot utilise un répertoire comme chroot exactement comme chroot (8), il n'a pas besoin que celui-ci
soit un répertoire régulier du système de fichier. Bien que cela soit la valeur par défaut, le chroot
peut également être créé à partir d'un fichier, d'un système de fichier, incluant les clichés LVM et
Btrfs et les montages « loopback », ou composé d'une surcouche unionfs. Étant extensible par
l'utilisateur, les possibilités de création de chroot provenant de sources différentes ne sont limités
que par votre imagination. schroot effectue des vérifications de permission et autorise des mises en
place automatiques supplémentaires de l'environnement de chroot, comme le montage de systèmes de fichiers
supplémentaires et d'autres tâches de configuration. Cette mise en place automatique est faite par
l'action de scripts de mise en place qui peuvent être configurés et étendus pour effectuer toute action
nécessaire. Les actions typiques incluent le montage du répertoire personnel de l'utilisateur, la
configuration du réseau et des bases de données du système et même le démarrage de services. Ils sont
également entièrement personnalisables par l'administrateur. Les scripts de mise en place sont exécutés
pour tous les types de chroot, à l'exception de ceux de type ‘plain’, le type de chroot le plus simple
qui ne permet aucune mise en place automatique. La configuration de schroot est décrite plus en détail
dans schroot.conf(5).
OPTIONS
schroot accepte les options suivantes :
Actions
-h, --help
Afficher un résumé de l'aide.
-V, --version
Afficher les informations de version.
-l, --list
Lister tous les chroots disponibles.
-i, --info
Afficher des informations détaillées à propos des chroots spécifié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. Tout commentaire du fichier original
est omis.
--location
Afficher la localisation (chemin) des chroots spécifiés. Noter que les types de chroot qui ne
peuvent être utilisés qu'à l'intérieur d'une session n'auront aucune localisation avant d'être
activés.
Options générales
-q, --quiet
Afficher uniquement les messages essentiels.
-v, --verbose
Afficher tous les messages.
Sélection de chroots.
-c, --chroot=chroot
Spécifier un chroot ou une session active à 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. Le nom du
chroot peut être préfixé par un espace de noms ; veuillez vous reporter à la section “Espaces de
noms Chroot” ci-après.
-a, --all
Sélectionner tous les chroots, chroots source et sessions actives. Quand une commande a été
spécifiée, cette commande sera exécutée dans tous les chroots, chroots source et sessions actives.
Si --info a été utilisé, afficher les informations à propos de tous les chroots. Cette option n'a
aucun sens à être utilisée avec un interpréteur de commande de connexion (« login shell »), quand
aucune commande n'est spécifiée. Cette option est équivalente à “--all-chroots
--all-source-chroots --all-sessions”.
--all-chroots
Sélectionner tous les chroots. Identique à --all, sauf que les chroots source et les sessions
actives ne sont pas pris en compte.
--all-sessions
Sélectionner toutes les sessions actives. Identique à --all, sauf que les chroots et les chroots
source ne sont pas pris en compte.
--all-source-chroots
Sélectionner tous les chroots source. Identique à --all, sauf que les chroots et les sessions ne
sont pas pris en compte.
--exclude-aliases
Ne pas sélectionner les alias en plus des chroots. Cela permet de s'assurer que seul les chroots
réels sont sélectionnés et qu'ils ne sont listés qu'une seule fois.
Environnement de chroot
-d, --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, schroot se terminera par un état
d'erreur.
Le comportement par défaut est comme suit (tous les chemins de répertoire sont à l'intérieur du
chroot). Un interpréteur de commande de connexion est exécuté dans le répertoire de travail
courant. S'il n'est pas disponible, $HOME sera essayé (quand --preserve-environment est utilisé),
ensuite le répertoire personnel de l'utilisateur, et finalement / à l'intérieur du chroot. Une
commande est toujours exécutée dans le répertoire de travail courant à l'intérieur du chroot. Si
aucun des répertoires n'est disponible, schroot se terminera avec un état d'erreur.
-u, --user=utilisateur
Exécuter en tant qu'utilisateur différent. Par défaut la commande est exécutée avec l'utilisateur
courant. Si nécessaire, l'utilisateur peut avoir besoin de s'identifier avec un mot de passe. Pour
plus d'informations, consultez la section “Authentification”, ci-dessous.
-p, --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. Les variables d'environnement autorisées sont
soumises à certaines restrictions ; voir la section “Environnement”, ci-dessous.
-s, -shell=shell
Utiliser shell en tant qu'interpréteur de commande de connexion. Lors de l'exécution d'un
interpréteur de commande de connexion plusieurs interpréteurs de commandes potentiels seront
considérés dans cet ordre : la commande dans la variable d'environnement SHELL (si l'option
--preserve-environment est utilisée ou si preserve-environment est activé), l'interpréteur de
commandes de l'utilisateur dans la base de données ‘passwd’, /bin/bash et finalement /bin/sh.
Cette option écrase cette liste et utilisera l'interpréteur de commandes spécifié. Cette option
écrase également la clé de configuration shell si définie.
-o, --option=clé=valeur
Définir une option. Les valeurs des clés de configuration sélectionnées dans schroot.conf peuvent
être modifiées en utilisant cette option. Les clés doivent être présentes dans la clé de
configuration user-modifiable-keys dans schroot.conf, à moins que la clé user-modifiable-keys ne
soit exécutée par le superutilisateur (ou déplacée vers lui). Les clés et les valeurs définies ici
seront définies dans l'environnement des scripts de mise en place et peuvent par conséquent être
utilisées pour personnaliser le chroot pour chaque session.
Actions de session
--automatic-session
Démarrer, exécuter et terminer une session automatiquement. C'est l'action par défaut, et donc n'a
pas besoin d'être spécifiée en opération normale.
-b, --begin-session
Débuter une session. Un identifiant unique de session est retourné sur la sortie standard.
L'identifiant de session est nécessaire pour utiliser les autres options de session. Notez que
l'identifiant de session peut être spécifié avec l'option --session-name.
--recover-session
Restaurer une session existante. Si une session existante est devenue inaccessible, par exemple
démontée à cause d'un redémarrage, cette option permettra que la session soit disponible pour être
utilisée de nouveau, par exemple en la remontant. L'identifiant de session est spécifié avec
l'option --chroot.
-r, --run-session
Lancer une session existante. L'identifiant de session est spécifié avec l'option --chroot.
-e, --end-session
Terminer une session existante. L'identifiant de session est spécifié avec l'option --chroot.
Options de session
-n, --session-name=nom-de-session
Nommer une session. Le nom-de-session spécifié remplace le nom de session par défaut contenant un
identifiant de session généré automatiquement. Le nom de session ne doit pas contenir de
qualificatif d'espace de noms, parce que les sessions sont toujours créées dans l'espace de noms
‘session:’. Le nom de session est aussi sujet aux restrictions de dénomination de chroot
documentées dans schroot.conf(5).
-f, --force
Forcer une opération de session, même si elle aurait autrement échoué. Cela peut être utilisé pour
forcer la fin d'une session, même s'il y a des utilisateurs actifs. Cela ne garantit pas que la
session se terminera proprement ; par exemple, les systèmes de fichiers peuvent ne pas être
démontés.
Séparateur
-- Fin des options. Utilisé pour indiquer la fin des options de schroot ; toutes les options
suivantes seront passées à la commande exécutée, au lieu de schroot.
AUTHENTIFICATION
Si l'utilisateur n'est pas un utilisateur autorisé, ou membre d'un groupe autorisé (ou en cas de
changement vers root, un utilisateur root autorisé ou un groupe root autorisé) pour le chroot spécifié,
les permissions seront immédiatement refusées. En cas de changement d'utilisateur et si l'utilisateur
exécutant la commande y est autorisé, l'utilisateur devra s'authentifier lui-même en utilisant les
identifiants de l'utilisateur vers lequel le changement sera fait.
Pour les systèmes prenant en charge le système d'authentification « Pluggable Authentication Modules »
(PAM), schroot utilisera PAM pour l'authentification et l'autorisation des utilisateurs. Si besoin,
schroot demandera un mot de passe. Si PAM n'est pas disponible, toutes les authentifications échoueront
automatiquement (le changement d'utilisateur sans PAM n'est pas pris en charge).
Notez que quand PAM est utilisé, l'utilisateur root n'obtiendra aucun privilège particulier par défaut
dans le programme. Cependant, la configuration par défaut de PAM permet à root de se connecter sans mot
de passe (pam_rootok.so), mais cela peut être désactivé pour empêcher root d'accéder à des chroots
quelconques sauf ceux spécifiquement permis. Dans une telle situation, root doit être ajouté aux
utilisateurs ou groupes autorisés comme n'importe quel utilisateur ou groupe. Si PAM n'est pas
disponible, l'utilisateur root pourra accéder à tous les chroots, même non explicitement autorisé.
ESPACES DE NOMS CHROOT
Bases des espaces de noms
Il y a trois types de chroot différents : les chroots réguliers, les chroots source et les chroots
session. Ces différents types de chroot sont séparés dans différents espaces de noms. Un espace de noms
est un préfixe à un nom de chroot. Pour le moment, il y a trois espaces de noms : ‘chroot:’, ‘source:’ et
‘session:’. Utilisez --list --all pour lister tous les chroots disponibles dans tous les espaces de noms.
Parce que ‘:’ est utilisé comme séparateur entre l'espace de noms et les noms de chroots, il n'est pas
permis d'utiliser ce caractère dans les noms de chroot.
En fonction de l'action que vous demandez à schroot d'exécuter, celui-ci peut rechercher le chroot dans
l'un de ces trois espaces de noms, ou un espace de noms particulier peut être spécifié. Par exemple, un
chroot nommé “sid” est en fait nommé “chroot:sid” si l'espace de noms est inclus, mais l'espace de noms
peut être omis pour la plupart des actions.
Chroots source
Certains types de chroot comme par exemple les clichés LVM ou Btrfs, fournissent des clichés du chroot de
type « copie en cas d'écriture » contrôlés par la session. Ils fournissent également un chroot source
pour permettre un accès facile au système de fichiers utilisé comme source de cliché. Ce sont des chroots
réguliers également, juste désactivant le cliché. Pour un chroot nommé “sid-snapshot” (c'est-à-dire avec
“chroot:sid-snapshot” comme nom complet qualifié), il y aura également un chroot source nommé
“source:sid-snapshot”. Les versions précédentes de schroot fournissent des chroots source avec un suffixe
‘-source’. Ces suffixes sont également fournis à des fins de compatibilité. Dans notre exemple il serait
appelé “chroot:sid-snapshot-source”. Cette dénomination de compatibilité sera abandonnée dans une version
future, les programmes et les scripts devraient donc être modifiés pour utiliser des noms utilisant les
espaces de noms au lieu des vieux suffixes.
Chroots session
Toute session créée avec l'option --begin-session est placée dans l'espace de noms ‘session:’. Une
session nommée avec --session-name peut avoir différents noms, même un nom identique au chroot à partir
duquel elle a été créée, à condition qu'il soit unique dans l'espace de noms. Cela n'était pas permis
dans les versions précédentes de schroot qui n'avait pas d'espaces de noms.
Actions et espaces de noms par défaut
Toutes les actions utilisent ‘chroot:’ comme espace de noms par défaut, avec quelques exceptions pour des
actions de sessions. --run-session, --recover-session et --end-session utilisent ‘session:’ comme espace
de noms par défaut, car ces actions agissent sur les chroots session. Le résultat est que l'espace de
noms n'est normalement jamais requis, sauf quand vous avez besoin de travailler avec un chroot dans un
espace de noms différent de celui par défaut, comme lorsque vous utilisez un chroot source. Pour
effectuer une sélection de chroot sans ambigüité, il est toujours possible d'utiliser le nom complet
incluant l'espace de noms, même quand cela n'est pas strictement nécessaire.
PERFORMANCES
Les performances sur certains systèmes de fichiers, par exemple Btrfs, sont mauvaises lors de
l'utilisation de dpkg à cause de la quantité d'opérations fsync à effectuer. Cela peut être limité par
l'installation du paquet eatmydata et ensuite par l'ajout de eatmydata à la clé de configuration
command-prefix, ce qui désactivera toutes les opérations fsync. Notez que cela ne doit être effectué que
dans les chroots clichés où la perte de données n'est pas un problème. C'est utile lors de l'utilisation
d'un chroot pour une construction de paquets, par exemple.
RÉPERTOIRES DE SUBSTITUTION
schroot sélectionnera un répertoire approprié à utiliser à l'intérieur du chroot si un interpréteur de
commande de connexion est utilisé ou une commande exécutée et également si l'option --directory est
utilisée. Dans le cas de l'exécution directe ou en spécifiant explicitement un répertoire, seulement un
répertoire sera utilisé par mesure de sécurité et de cohérence, alors que pour un interpréteur de
commande de connexion plusieurs possibilités peuvent être testées. La sous-section suivante liste la
séquence de substitution 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
┌─────────────────────┬──────────────────────────────────────────┐
│ Transition │ │
│ (Host → Chroot) │ Comment │
├─────────────────────┼──────────────────────────────────────────┤
│ CWD → CWD │ Normal behaviour (if --directory is not │
│ │ used) │
│ CWD → $HOME │ If CWD is nonexistent and │
│ │ --preserve-environment is used │
│ CWD → passwd pw_dir │ If CWD is nonexistent (or │
│ │ --preserve-environment is used and no │
│ │ $HOME exists) │
│ CWD → / │ None of the above exist │
│ FAIL │ If / is nonexistent │
└─────────────────────┴──────────────────────────────────────────┘
Commande
┌─────────────────┬──────────────────────────────────────────┐
│ Transition │ │
│ (Host → Chroot) │ Comment │
├─────────────────┼──────────────────────────────────────────┤
│ CWD → CWD │ Normal behaviour (if --directory is not │
│ │ used) │
│ FAIL │ If CWD is nonexistent │
└─────────────────┴──────────────────────────────────────────┘
Aucune solution de repli ne devrait exister en toute circonstance.
utilisation de --directory
┌─────────────────┬──────────────────────────────────────────┐
│ Transition │ │
│ (Host → Chroot) │ Comment │
├─────────────────┼──────────────────────────────────────────┤
│ CWD → DIR │ Normal behaviour │
│ FAIL │ If DIR is nonexistent │
└─────────────────┴──────────────────────────────────────────┘
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
Lister les chroots disponibles
% schroot -l↵
chroot:default
chroot:etch
chroot:sid
chroot:testing
chroot:unstable
Récupérer les informations d'un chroot
% schroot -i -c sid↵
——— Chroot ———
Name sid
Description Debian sid (unstable)
Type plain
Priority 3
Users rleigh
Groups sbuild
Root Users
Root Groups sbuild
Aliases unstable unstable-sbuild unstable-p
owerpc-sbuild
Environment Filter ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|I\
FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA\
IN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE\
RMPATH)$
Run Setup Scripts true
Script Configuration script-defaults
Session Managed true
Personality linux32
Location /srv/chroot/sid
Utilisez -c ou --all plusieurs fois pour utiliser plusieurs ou tous les chroots respectivement.
Exécuter des commandes dans un chroot
% schroot -c sid /bin/ls↵
[sid chroot] Running command: “/bin/ls”
CVS sbuild-chroot.c sbuild-session.h schroot.conf.5
Makefile sbuild-chroot.h schroot.1 schroot.conf.5.in
Makefile.am sbuild-config.c schroot.1.in
Makefile.in sbuild-config.h schroot.c
pam sbuild-session.c schroot.conf
% schroot -c sid -- ls -1 | head -n 5↵
[sid chroot] Running command: “ls -1”
ABOUT-NLS
AUTHORS
COPYING
ChangeLog
INSTALL
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 schroot. 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.
Changer d'utilisateur
% schroot -c sid -u root↵
Password:
[sid chroot] (rleigh→root) Running login shell: “/bin/bash”
#
Si l'utilisateur ‘rleigh’ était dans root-users de /etc/schroot/schroot.conf, ou un des groupes auxquels
il appartient était dans root-groups, un accès root lui sera fourni sans authentification, mais l'étape
d'autorisation PAM est toujours appliquée.
Sessions
Un chroot peut être nécessaire pour exécuter plus d'une commande. En particulier, quand le chroot est
créé à la volée à partir d'un volume logique LVM ou d'un fichier sur le disque, il est nécessaire de
rendre le chroot persistant pendant qu'une tâche donnée (ou un jeu de tâches) est exécutée. Les sessions
existent pour cette raison. Pour les chroots de type simple comme ‘plain’ et ‘directory’, des sessions
peuvent être créées mais ne sont pas strictement nécessaires.
Commençons par examiner un chroot capable d'utiliser des sessions :
% schroot -i -c sid-snap↵
——— Chroot ———
Name sid-snap
Description Debian sid snapshot
Type lvm-snapshot
Priority 3
Users maks rleigh
Groups sbuild
Root Users
Root Groups root sbuild
Aliases
Environment Filter ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|I\
FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA\
IN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE\
RMPATH)$
Run Setup Scripts true
Script Configuration script-defaults
Session Managed true
Personality linux
Device /dev/hda_vg/sid_chroot
Mount Options -o atime,async,user_xattr
Source Users
Source Groups root rleigh
Source Root Users
Source Root Groups root rleigh
LVM Snapshot Options --size 2G -c 128
Notez que l'option Session Managed est définie à ‘true’. Cela est requis pour utiliser le gestionnaire de
session et est pris en charge par la plupart des types de chroot. Ensuite nous allons créer une nouvelle
session :
% schroot -b -c sid-snap↵
sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f
L'identifiant de session de la session nouvellement créée est retourné sur la sortie standard. Il est
habituel de le conserver comme ceci :
% SESSION=$(schroot -b -c sid-snap)↵
% echo $SESSION↵
sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f
La session peut être utilisée comme n'importe quel chroot. Voici à quoi ressemble la session :
% schroot -i -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f↵
——— Session ———
Name sid-snap-46195b04-0893-49bf-beb8-0d\
4ccc899f0f
Description Debian sid snapshot
Type lvm-snapshot
Priority 3
Users maks rleigh
Groups sbuild
Root Users
Root Groups root sbuild
Aliases
Environment Filter ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|I\
FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA\
IN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE\
RMPATH)$
Run Setup Scripts true
Script Configuration script-defaults
Session Managed true
Personality linux
Mount Location /var/lib/schroot/mount/sid-snap-461\
95b04-0893-49bf-beb8-0d4ccc899f0f
Path /var/lib/schroot/mount/sid-snap-461\
95b04-0893-49bf-beb8-0d4ccc899f0f
Mount Device /dev/hda_vg/sid-snap-46195b04-0893-\
49bf-beb8-0d4ccc899f0f
Device /dev/hda_vg/sid_chroot
Mount Options -o atime,async,user_xattr
Source Users
Source Groups root rleigh
Source Root Users
Source Root Groups root rleigh
LVM Snapshot Device /dev/hda_vg/sid-snap-46195b04-0893-\
49bf-beb8-0d4ccc899f0f
LVM Snapshot Options --size 2G -c 128
Maintenant que la session a été créée, il est possible d'exécuter des commandes comme ceci :
% schroot -r -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f -- \
uname -sr↵
I: [sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f chroot] Running \
command: “uname -sr”
Linux 2.6.18-3-powerpc
% schroot -r -c $SESSION -- uname -sr↵
I: [sid-snap-fe170af9-d9be-4800-b1bd-de275858b938 chroot] Running \
command: “uname -sr”
Linux 2.6.18-3-powerpc
Quand toutes les commandes à exécuter dans la session ont été effectuées, la session peut être terminée :
% schroot -e -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f↵
% schroot -e -c $SESSION↵
Finalement, les noms de session peuvent être longs et peu maniables. Un nom peut être spécifié à la place
de l'identifiant de session généré automatiquement :
% schroot -b -c sid-snap -n mon-nom-session↵
mon-nom-session
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.
ENVIRONNEMENT
Par défaut, l'environnement n'est pas préservé, et les variables d'environnement suivantes sont
définies : HOME, LOGNAME, PATH, SHELL, TERM (préservée si déjà spécifiée) et USER. Les variables
d'environnement SCHROOT_COMMAND, SCHROOT_USER, SCHROOT_GROUP, SCHROOT_UID et SCHROOT_GID sont définies à
l'intérieur du chroot spécifiant respectivement la commande exécutée, le nom d'utilisateur, le nom de
groupe, l'identifiant de l'utilisateur et l'identifiant du groupe. En plus, les variables d'environnement
SCHROOT_SESSION_ID, SCHROOT_CHROOT_NAME et SCHROOT_ALIAS_NAME définissent respectivement l'identifiant de
session, le nom de chroot d'origine avant la création de la session et l'alias utilisé pour identifier le
chroot d'origine sélectionné.
Les variables d'environnement, potentiellement dangereuses, suivantes sont retirées par défaut pour des
raisons de sécurité : BASH_ENV, CDPATH, ENV, HOSTALIASES, IFS, KRB5_CONFIG, KRBCONFDIR, KRBTKFILE,
KRB_CONF, LD_.*, LOCALDOMAIN, NLSPATH, PATH_LOCALE, RES_OPTIONS, TERMINFO, TERMINFO_DIRS, et TERMPATH. Si
nécessaire, la clé de configuration environment-filter permettra de modifier la liste d'exclusion.
Consultez schroot.conf(5) pour plus de détails.
FICHIERS
Fichiers de configuration
/etc/schroot/schroot.conf
Le fichier de configuration des chroots pour l'ensemble du système. Ce fichier doit être possédé
par l'utilisateur root et être non inscriptible par les autres.
/etc/schroot/chroot.d
Des définitions de chroot supplémentaires peuvent être placées dans des fichiers de ce répertoire.
Elles sont traitées de la même façon que /etc/schroot/schroot.conf. Chaque fichier peut contenir
une ou plusieurs définitions de chroot. Notez que les fichiers de ce répertoire suivent les mêmes
règles de dénomination que run-parts(8) lorsqu'ils sont exécutés avec l'option --lsbsysinit.
/etc/schroot/setup.d
Le répertoire de scripts de mise en place de chroot pour l'ensemble du système. Consultez
schroot-setup(5).
/etc/pam.d/schroot
Configuration de PAM.
Répertoires systèmes
/usr/lib/x86_64-linux-gnu/schroot
Répertoire contenant les programmes d'assistance utilisés par les scripts de mise en place.
Répertoires de sessions
Chaque répertoire contient un répertoire ou un fichier avec le nom de chaque session. Tous les types de
chroot n'utilisent pas tous les répertoires ci-dessous.
/var/lib/schroot/session
Répertoire contenant la configuration de session pour chaque session active.
/var/run/schroot/mount
Répertoire utilisé pour monter le système de fichiers utilisé pour chaque session active.
/var/lib/schroot/union/underlay
Répertoire utilisé comme source d'union de système de fichiers (sous-couche).
/var/lib/schroot/union/overlay
Répertoire utilisé comme sur-couche inscriptible pour l'union de système de fichiers.
/var/lib/schroot/unpack
Répertoire utilisé pour le dépaquetage de chroots de fichiers.
AUTEURS
Roger Leigh.
COPYRIGHT
Copyright © 2005-2012 Roger Leigh <rleigh@debian.org>
schroot 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
dchroot(1), sbuild(1), chroot(2), run-parts(8), schroot-setup(5), schroot-faq(7), schroot.conf(5).
May 05 SCHROOT(1)