Man page - schroot(1)

Packages contains this manual

Available languages:

en fr de

Manual

SCHROOT

NOM
RÉSUMÉ
DESCRIPTION
APERÇU
OPTIONS
Actions
Options générales
Sélection de chroots.
Environnement de chroot
Actions de session
Options de session
Séparateur
AUTHENTIFICATION
ESPACES DE NOMS CHROOT
Bases des espaces de noms
Chroots source
Chroots session
Actions et espaces de noms par défaut
PERFORMANCES
RÉPERTOIRES DE SUBSTITUTION
Interpréteur de commande de connexion
Commande
utilisation de --directory
Débogage
EXEMPLES
Lister les chroots disponibles
RĂ©cupĂ©rer les informations d’un chroot
Exécuter des commandes dans un chroot
Changer d’utilisateur
Sessions
DÉPANNAGES
BOGUES
ENVIRONNEMENT
FICHIERS
Fichiers de configuration
Répertoires systÚmes
Répertoires de sessions
AUTEURS
COPYRIGHT
VOIR AUSSI
TRADUCTION

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 commande de connexion 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. Cela est Ă©quivalent Ă  “--chroot=default”.

APERÇU

Il est souvent nĂ©cessaire 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Ă©cuter des 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, par exemple 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.

‱

Construire automatiquement des paquets Debian en utilisant sbuild (1) qui construit chaque paquet dans un instantané chroot dédié quand les instantanés LVM ou les unions sont utilisés.

‱

Prendre en charge des images multiples de systĂšmes dans une installation de grappe 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 de la grappe pour les chroots dont ils ont besoin (ce qui peut inclure des accĂšs root pour les utilisateurs de confiance afin qu’ils puissent entretenir leurs propres images)

Un chroot peut ĂȘtre utilisĂ© directement en exĂ©cutant chroot (8), mais les utilisateurs standard 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 ordinaire 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 fichiers, incluant les instantanĂ©s LVM et Btrfs et les montages « loopback », ou composĂ© d’une surcouche unionfs. schroot Ă©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 si elle est utilisĂ©e avec un interprĂ©teur de commande de connexion (« login shell »), aucune commande n’étant 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 seuls 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 renvoyĂ© 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 ordinaires, 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, par exemple les instantanĂ©s LVM ou Btrfs, fournissent des instantanĂ©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 crĂ©ation d’instantanĂ©. Ce sont des chroots ordinaires Ă©galement, mais dĂ©sactivant la crĂ©ation d’instantanĂ©. 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’avaient 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 ambiguĂŻtĂ©, 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 d’instantanĂ©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

Image grohtml-3905475-1.png

Commande

Image grohtml-3905475-2.png

Aucune solution de repli ne devrait exister en toute circonstance.

utilisation de --directory

Image grohtml-3905475-3.png

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 --all ou -c 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 Ă  l’aide d’un pipe 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 renvoyĂ© 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 valables 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 Ă  niveau votre noyau vers une version plus rĂ©cente.

The default execution of a login shell is silently changed to a regular shell if at least one of --preserve-environment or command-prefix is used.

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Ăšmes de fichiers (sous-couche).

/var/lib/schroot/union/overlay

RĂ©pertoire utilisĂ© comme sur-couche inscriptible pour l’union de systĂšmes 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@codelibre.net>

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), schroot.conf (5), schroot-setup (5), schroot-faq (7), run-parts (8).

TRADUCTION

Ce document est une traduction, réalisée par Thomas Blein le 30 mai 2012.

L’équipe de traduction a fait le maximum pour rĂ©aliser une adaptation française de qualitĂ©.

La version anglaise de ce document est toujours consultable en ajoutant l’option « -L C » Ă  la commande man .

N’hĂ©sitez pas Ă  signaler Ă  l’auteur ou Ă  la liste de traduction < debian-l10n-french@lists.debian.org >, selon le cas, toute erreur dans cette page de manuel.