Scroll to navigation

SCHROOT.CONF(5) Debian sbuild SCHROOT.CONF(5)

NOM

schroot.conf — fichier de définition des chroots de schroot

DESCRIPTION

schroot.conf est un fichier texte codé en UTF-8, décrivant les chroots utilisables avec schroot.

Les commentaires sont préfixés par un caractère ‘#’ (“hash”) au début d'une ligne ou à la suite de n'importe quel texte. Tout texte à la droite de ‘#’ est traité comme un commentaire.

Le format de configuration est de type INI, découpé en groupes de paires clé-valeur séparés par des noms de section entre crochets.

Options générales

Un chroot est défini comme un groupe de paires de clé-valeur, qui débute par un nom entre crochets, seul sur une ligne. Le fichier peut contenir plusieurs groupes définissant ainsi plusieurs chroots.

La définition du chroot débute par son nom entre crochets. Par exemple,

[sid]

Le nom est sujet à certaines restrictions de dénomination. Pour plus de détails, consultez la section “Nom de Chroot” ci-dessous.

S'ensuit ensuite plusieurs paires clé-valeur, une par ligne :

type=type
Le type de chroot. Les types valides sont ‘plain’, ‘directory’, ‘file’, ‘loopback’, ‘block-device’, ‘btrfs-snapshot’ et ‘lvm-snapshot’. Si vide ou omis, le type par défaut est ‘plain’. Notez que les chroots ‘plain’ n'exécutent aucun script de mise en place et ne montent aucun système de fichiers ; ‘directory’ est recommandé pour les utilisations normales (consultez “Chroots « plain » et « directory »”, ci-dessous).
description=description
Une description courte du chroot. Elle peut être traduite en différentes langues ; consultez la section “Localisation” ci-dessous.
priority=nombre
Définir la priorité d'un chroot. nombre est un entier positif indiquant si une distribution est plus ancienne qu'une autre. Par exemple, “oldstable” et “oldstable-security” peuvent être ‘0’ alors que “stable” et “stable-security” sont ‘1’, “testing” est ‘2’ et “unstable” est ‘3’. Les valeurs ne sont pas importantes, mais les différences entre elles le sont. Cette option est déconseillée et n'est plus utilisée par schroot, mais il est encore permis de l'utiliser, elle deviendra obsolète et sera retirée dans une prochaine version.
message-verbosity=verbosité
Définir la verbosité des messages affichés par schroot lors de la mise en place, de l'exécution des commandes et du nettoyage du chroot. Les paramètres valides sont ‘quiet’ (supprime la plupart des messages), ‘normal’ (par défaut) et ‘verbose’ (affiche tous les messages). Ce paramètre est écrasé par les options --quiet et --verbose.
users=utilisateur1,utilisateur2,…
Une liste séparée par des virgules des utilisateurs qui sont autorisés à accéder au chroot. Si vide ou omis, aucun utilisateur ne sera autorisé à accéder au chroot (sauf s'il appartient à un groupe spécifié dans groups).
groups=groupe1,groupe2,...
Une liste séparée par des virgules des groupes qui sont autorisés à accéder au chroot. Si vide ou omis, aucun groupe d'utilisateurs ne sera autorisé à accéder au chroot.
root-users=utilisateur1,utilisateur2,...
Une liste séparée par des virgules d'utilisateurs qui sont autorisés à devenir root dans le chroot sans mot de passe. Si vide ou omis, aucun utilisateur ne sera autorisé à devenir root sans mot de passe (mais si un utilisateur ou un groupe auquel il appartient est dans users ou groups, respectivement, il peut obtenir un accès avec un mot de passe). Consultez la section “Sécurité” ci-dessous.
root-groups=groupe1,groupe2,...
Une liste séparée par des virgules de groupes qui sont autorisés à devenir root dans le chroot sans mot de passe. Si vide ou omis, aucun utilisateur ne sera autorisé à devenir root sans mot de passe (mais si un utilisateur ou un groupe auquel il appartient est dans users ou groups, respectivement, il peut obtenir un accès avec un mot de passe). Consultez la section “Sécurité” ci-dessous.
aliases=alias1,alias2,...
Une liste séparée par des virgules des alias (noms alternatifs) pour ce chroot. Par exemple, un chroot, nommé “sid” peut avoir un alias ‘unstable’ pour des raisons de commodité. Les alias sont sujets aux mêmes restrictions que le nom du chroot lui-même.
profile=répertoire
script-config=nom-de-fichier
Le comportement des scripts de mise en place des chroots peut être personnalisé pour chaque chroot en définissant un profil de configuration spécifique. Le nom du répertoire est relatif à /etc/schroot. Le nom par défaut est ‘default’. Les fichiers de ce répertoire seront sourcés par les scripts de mise en place, et leur comportement peut par conséquent être personnalisé en sélectionnant le profil approprié. Les alternatives sont ‘minimal’ (pour une configuration minimale), ‘desktop’ (pour exécuter des programmes graphiques dans un chroot, autorisant plus de fonctionnalités du système hôte disponibles dans le chroot) et ‘sbuild’ (pour utiliser le chroot pour la construction de paquet Debian). D'autres paquets peuvent fournir des profils supplémentaires. La valeur par défaut des clés setup.config, setup.copyfiles, setup.fstab et setup.nssdatabases est définie en fonction de la configuration de profile.
Note that the profile key replaces the older script-config key. The script-config key is exactly the same as profile, but has “/config” appended to it. The default filename is ‘default/config’. Either of these keys may be used. If both are present, then script-config will take precedence (profile will be unset). script-config is deprecated and will be removed in a future release. Note that profile is equivalent to script-config if the file sourced by script-config only contains the standard variables provided by schroot; if any additional variables or shell script fragments have been added, please also set setup.config, which will continue to allow this file to be sourced. It is recommended to replace the use of the sourced file with additional keys in schroot.conf where possible, but it will continue to be possible to source an additional configuration file using setup.config.
À noter pour les utilisateurs graphiques que le fichier fstab desktop/fstab aura besoin d'une modification si vous utilisez gdm3 ; veuillez consulter les commentaires dans ce fichier pour plus d'information. La clé preserve-environment doit être définie à ‘true’ pour que l'environnement soit préservé dans le chroot.
Si aucun des profils de configuration fournis ci-dessus ne convient à vos besoins, ils peuvent être édités pour les personnaliser davantage, et/ou copiés et utilisés en tant que modèles pour de tout nouveau profil.
Notez que les différents profils ont des implications de sécurité différentes ; consultez la section “Sécurité” ci-dessous pour plus d'informations.
setup.config=nom-de-fichier
Cette clé spécifie un fichier que les scripts de mise en place vont sourcer quand ils seront exécutés. La valeur par défaut est celle définie par script-config. Le fichier est un script de type Bourne shell, et par conséquent peut contenir tout code shell valide, en plus des simples affectations de variable. Cela permet, par exemple, d'adapter les comportements en fonction d'un type spécifique ou nom de chroot. Notez que le script sera chargé à chaque invocation des scripts de mise en place et doit être idempotent.
All the default settings in this file are now settable using configuration keys in schroot.conf, as detailed below. Existing configuration should be modified to use these keys in place of this file. See schroot-script-config(5) for further details. This type of setup script configuration file is no longer provided as part of the standard profiles, but will continue to be sourced if present and this key is set.
setup.copyfiles=nom-de-fichier
Un fichier contenant une liste de fichiers à copier dans le chroot (un fichier par ligne). Le fichier aura le même chemin absolu dans le chroot.
setup.fstab=nom-de-fichier
The filesystem table file to be used to mount filesystems within the chroot. The format of this file is the same as for /etc/fstab, documented in fstab(5). The only difference is that the mountpoint path fs_dir is relative to the chroot, rather than the root. Also note that mountpoints are canonicalised on the host, which will ensure that absolute symlinks point inside the chroot, but complex paths containing multiple symlinks may be resolved incorrectly; it is inadvisable to use nested symlinks as mountpoints.
setup.nssdatabases=nom-de-fichier
Un fichier listant les bases de données du système à copier dans le chroot. Les bases de données par défaut sont ‘passwd’, ‘shadow’, ‘group’ et ‘gshadow’. Les autres bases de données qui pourraient être ajoutés incluent ‘services’, ‘protocols’, ‘networks’, et ‘hosts’. Les bases de données sont copiées en utilisant getent(1) pour que toutes les sources de bases de données listées dans /etc/nsswitch.conf soient utilisées pour chaque base de données.
setup.services=service1,service2,...
A comma-separated list of services to run in the chroot. These will be started when the session is started, and stopped when the session is ended.
command-prefix=commande,option1,option2,...
Une liste séparée par des virgules d'une commande et des options de la commande. Cette commande et ses options seront préfixées à toutes les commandes exécutées dans le chroot. C'est utile pour ajouter des commandes comme nice, ionice ou eatmydata pour toutes les commandes exécutées dans le chroot. nice et ionice affecteront l'ordonnancement CPU et I/O. eatmydata ignore les opérations fsync sur le système de fichiers et est utile pour les chroots clichés jetables où vous ne vous souciez pas des pertes de données, mais désirez une grande vitesse.
personality=persona
Définir les personnalités (domaine d'exécution des processus) à utiliser. Cette option est utile par exemple lors de l'utilisation d'un chroot 32 bits sur un système 64 bits. Les options valides sous Linux sont ‘bsd’, ‘hpux’, ‘irix32’, ‘irix64’, ‘irixn32’, ‘iscr4’, ‘linux’, ‘linux32’, ‘linux_32bit’, ‘osf4’, ‘osr5’, ‘riscos’, ‘scorvr3’, ‘solaris’, ‘sunos’, ‘svr4’, ‘uw7’, ‘wysev386’ et ‘xenix’. La valeur par défaut est ‘linux’. Il y a aussi l'option spéciale ‘undefined’ (personnalité non définie). Pour un chroot 32 bits sur un système 64 bits, ‘linux32’ est l'option requise. La seule option valide pour les systèmes non Linux est ‘undefined’. La valeur par défaut pour les systèmes non Linux est ‘undefined’.
preserve-environment=true|false
Par défaut, l'environnement ne sera pas préservé à l'intérieur du chroot. À la place un environnement minimal sera utilisé. Définir à true pour toujours préserver l'environnement. C'est utile par exemple lors de l'exécution des applications graphiques à l'intérieur du chroot, qui ont besoin de l'environnement pour fonctionner correctement. L'environnement peut également être préservé en utilisant l'option --preserve-environment
shell=shell
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. Ce paramètre écrase cette liste et utilisera l'interpréteur de commandes spécifié. Il peut être écrasé en utilisant l'option --shell.
environment-filter=regex
L'environnement à définir dans le chroot sera filtré dans le but d'enlever les variables d'environnement qui peuvent poser un problème de sécurité. Toute variable d'environnement qui correspondrait à l'expression régulière POSIX étendue spécifiée sera supprimée avant l'exécution de toute commande dans le chroot.
Les variables d'environnement potentiellement dangereuses sont retirées par sécurité par défaut en utilisant l'expression régulière suivante : “^(BASH_ENV|CDPATH|ENV|HOSTALIASES|IFS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMAIN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TERMPATH)$”.

Chroots « plain » et « directory »

Les chroots de type ‘plain’ ou ‘directory’ sont des répertoires accessibles dans le système de fichiers. Les deux types sont équivalents à l'exception du fait que les chroots « directory » exécutent les scripts de mise en place tandis que les chroots « plain » non. Par conséquent, les systèmes de fichiers comme /proc ne sont pas montés dans les chroots « plain » ; c'est la responsabilité de l'administrateur de configurer manuellement ces types de chroot alors que les chroots « directory » sont automatiquement configurés. De plus, les chroots « directory » implémentent les options des chroots unions de systèmes de fichiers (consultez “Options des chroots union de systèmes de fichiers ci-dessous)

Ces types de chroot ont une option de configuration supplémentaire (requise) :

directory=répertoire
Le répertoire contenant l'environnement de chroot. C'est là où la racine sera déplacée lors de l'exécution d'un interpréteur de commande de connexion ou d'une commande. Le répertoire doit exister et être accessible en lecture et exécution pour autoriser les utilisateurs à y accéder. Notez que sur les systèmes Linux il sera monté autre part pour être utilisé comme chroot ; le répertoire pour les chroots ‘plain’ est monté avec l'option --rbind pour mount(8), alors que pour les chroots ‘directory’ l'option --bind sera utilisée à la place pour que les sous-montages ne soient pas conservés (ils doivent être définis dans le fichier fstab comme dans le fichier /etc/fstab de l'hôte).

Chroots « file »

Les chroots de type ‘file’ sont des fichiers sur le système de fichiers courant contenant une archive des fichiers du chroot. Ils implémentent les options des chroot source (consultez “Options des chroots source”, ci-dessous). Notez qu'un chroot source correspondant (de type ‘file’) sera créé pour chaque chroot de ce type ; c'est pour un accès commode à l'archive source, par exemple dans le but de mettre à jour. Les options supplémentaires suivantes sont aussi implémentées :

file=nom-de-fichier
The file containing the archived chroot environment (mandatory). This must be a tar (tape archive), optionally compressed with gzip, bzip2, xz, lzop or lz4. The file extensions used to determine the type are are .tar, .tar.gz, .tar.bz2, .tar.xz, .tar.lzop, .tar.lz4, .tgz, .tbz, .txz, .tzo and .tlz4. This file must be owned by the root user, and not be writable by other. Note that zip archives are no longer supported; zip was not able to archive named pipes and device nodes, so was not suitable for archiving chroots.
location=chemin
C'est le chemin du chroot à l'intérieur de l'archive. Par exemple, si l'archive contient un chroot dans /squeeze, vous devriez spécifier ici “/squeeze”. Si le chroot est la seule chose à l'intérieur de l'archive, c'est-à-dire si / est la racine du système de fichiers pour le chroot, cette option doit être laissée vide, ou omise complètement.

Chroots loopback

Les chroots de type ‘loopback’ sont des systèmes de fichiers disponibles comme des fichiers sur le disque, accessibles par un montage loopback. Le fichier sera monté en loopback et démonté à la demande. Les chroots loopback implémentent les options de chroot montable et de chroot d'union de systèmes de fichiers (consultez “Options de chroot montable” et “Options de chroot d'union de systèmes de fichiers”, ci-dessous), plus une option supplémentaire :

file=nom-de-fichier
C'est le nom du fichier contenant le système de fichiers, incluant le chemin absolu. Par exemple, “/srv/chroot/sid”.

Chroots périphérique de blocs (« block device »).

Les chroots de type ‘block-device’ sont des systèmes de fichiers disponibles sur un périphérique bloc non monté. Le périphérique sera monté et démonté à la demande. Les chroots périphériques bloc implémentent les options chroot montable et chroot d'union de systèmes fichiers (consultez “Options des chroots montables” et “Options des chroots d'union de systèmes de fichiers” ci-dessous) et une option supplémentaire :

device=périphérique
C'est le nom du périphérique contenant le périphérique bloc, incluant le chemin absolu. Par exemple, “/dev/sda5”.

Chroots clichés Btrfs

Les chroots de type ‘btrfs-snapshot’ sont des clichés Btrfs créés à partir d'un sous-volume Btrfs existant sur un système de fichiers Btrfs monté. Un cliché sera créé à partir de ce sous-volume source à la demande au démarrage d'une session et le cliché sera monté. À la fin de la session, le cliché sera démonté et supprimé. Ce type de chroot implémentent les options de chroots source (consultez “Options de chroots source” ci-dessous). Notez qu'un chroot source correspondant (de type ‘directory’) sera créé pour chaque chroot de ce type ; c'est pour un accès commode au volume source. Les options supplémentaires suivantes sont également implémentées :

btrfs-source-subvolume=répertoire
Le répertoire contenant le sous-volume source.
btrfs-snapshot-directory=répertoire
Le répertoire dans lequel les clichés du sous-volume ci-dessus seront enregistrés.

Chroots clichés LVM

Les chroots de type ‘lvm-snapshot’ sont des systèmes de fichiers disponibles sur un volume logique LVM (LV). Un cliché LV sera créé à partir de ce LV à la demande, ce dernier sera ensuite monté. À la fin de la session, le cliché LV sera démonté et supprimé.

Les chroots clichés LVM implémentent les options des chroots sources (consultez “Options des chroots source” ci-dessous) et toute les options des ‘périphériques bloc’. Notez qu'un chroot source correspondant (de type ‘block-device’) sera créé pour chaque chroot de ce type ; c'est pour un accès commode au périphérique source. L'option supplémentaire suivante est également implémentée :

lvm-snapshot-options=options_de_clichés
Options de clichés. Ce sont les options supplémentaires à passer à lvcreate(8). Par exemple, “-L 2g” pour créer des clichés de 2 GiB. Note : le nom du LV (-n), les options des clichés (-s) et le chemin original du LV ne devraient pas être spécifiés ici ; ils sont définis automatiquement par schroot.

Chroots personnalisés

Les chroots de type ‘custom’ sont des types de chroot spéciaux, utilisés pour implémenter de nouveaux types de chroot supportés par aucun des types de chroot ci-dessus. Cela peut être utile pour implémenter et tester un nouveau type de chroot sans besoin d'écrire de code C++. Cependant, vous devrez écrire vos propre scripts de mise en place pour effectuer la mise en place, car par défaut ce type de chroot ne fait pas grand chose. Vous aurez aussi besoin d'ajouter des clés personnalisées à votre définition de chroot pour être utilisées dans le script de mise en place ; à la différence de la configuration des types de chroot ci-dessus, aucune validation des options ne sera faite à moins que vous ne le fassiez vous-même dans votre script de mise en place personnalisé. Les options supplémentaires suivantes sont également implémentées :

custom-session-cloneable=true|false
Définir si les sessions peuvent être clonées en utilisant ce chroot ou non (activé par défaut).
custom-session-purgeable=true|false
Définir si les sessions peuvent être purgées en utilisant ce chroot ou non (désactivé par défaut).
custom-source-cloneable=true|false
Définir si les chroots source peuvent être purgés en utilisant ce chroot ou non (désactivé par défaut).

Options des chroots source

Les chroots de type ‘btrfs-snapshot’, ‘file’ et ‘lvm-snapshot’ implémentent les chroots source. De plus, les types de chroot avec la prise en charge de l'union activée implémentent les chroots source (consultez “Options des chroots union de systèmes de fichiers” ci-dessous). Ce sont des chroots qui créent automatiquement une copie d'eux-mêmes avant utilisation et qui sont en général gérés par des sessions. Ces chroots fournissent en plus un chroot supplémentaire dans l'espace de noms source:, pour permettre un accès commode aux données d'origine (non-imagées) et aider à la maintenance du chroot. Par exemple pour un chroot nommé wheezy (chroot:wheezy), un chroot source source:wheezy correspondant sera créé. Pour des questions de compatibilité avec des versions plus anciennes de schroot qui ne prennent pas en charge les espaces de noms, un chroot de même nom avec le suffixe -source ajouté sera créé en plus (par exemple wheezy-source en continuant l'exemple ci-dessus). Notez que ces noms pour compatibilité seront retirés dans schroot 1.5.0, et par conséquent l'utilisation de l'espace de noms source: est préféré à la place de l'utilisation de la forme avec le suffixe -source. Consultez schroot(1) pour plus de détails.

Ces chroots fournissent les options supplémentaires suivantes :

source-clone=true|false
Définir si le chroot source doit être cloné automatiquement (créé) pour ce chroot. La valeur par défaut est true pour cloner automatiquement, mais si besoin le clonage peut être désactivé en la définissant à false. Si le clonage est désactivé, le chroot source sera inaccessible.
source-users=utilisateur1,utilisateur2,...
Une liste séparée par des virgules des utilisateurs qui sont autorisés à accéder au chroot source. Si vide ou omis, aucun utilisateur ne sera autorisé à accéder au chroot. Cela deviendra l'option users dans le chroot source.
source-groups=groupe1,groupe2,...
Une liste séparée par des virgules des groupes qui sont autorisés à accéder au chroot source. Si vide ou omis, aucun utilisateur ne sera autorisé à accéder au chroot. Cela deviendra l'option groups dans le chroot source.
source-root-users=utilisateur1,utilisateur2,...
Une liste séparée par des virgules d'utilisateurs qui sont autorisés à devenir root dans le chroot source sans mot de passe. Si vide ou omis, aucun utilisateur ne sera autorisé à devenir root sans mot de passe (mais si un utilisateur est dans users, il peut obtenir un accès avec un mot de passe). Cela deviendra l'option root-users dans le chroot source. Consultez la section “Sécurité” ci-dessous.
source-root-groups=groupe1,groupe2,...
Une liste séparée par des virgules de groupes qui sont autorisés à devenir root dans le chroot source sans mot de passe. Si vide ou omis, aucun utilisateur ne sera autorisé à devenir root sans mot de passe (mais si un groupe auquel appartient l'utilisateur est dans groups, il peut obtenir cet accès avec un mot de passe). Cela deviendra l'option root-groups dans le chroot source. Consultez la section “Sécurité” ci-dessous.

Options des chroots montables

Les chroots de type ‘block-device’, ‘loopback’ et ‘lvm-snapshot’ implémentent le montage de périphérique. Ce sont des chroots qui ont besoin de monter un périphérique pour pouvoir accéder au chroot. Ces chroot fournissent les options supplémentaires suivantes :

mount-options=options
Les options de montage pour le périphérique bloc. Ce sont des options supplémentaires à passer à mount(8). Par exemple, “-o atime,sync,user_xattr”.
location=chemin
C'est le chemin vers le chroot à l'intérieur du système de fichiers sur le périphérique. Par exemple, si le système de fichiers contient un chroot dans /chroot/sid, vous spécifieriez ici “/chroot/sid”. Si le chroot est la seule chose sur le système de fichiers, c'est-à-dire que / est la racine du système de fichiers pour le chroot, cette option doit être laissée vide ou omise entièrement.

Options de chroot d'union de systèmes de fichiers

Les chroots de type ‘block-device’, ‘directory’ et ‘loopback’ permettent, lors de la création d'une session utilisant les unions de systèmes de fichiers, de superposer sur le système de fichiers d'origine un répertoire séparé inscriptible. Le système de fichiers d'origine est en lecture seule ; toute modification faite au système de fichiers dans le dossier inscriptible superposé laisse le système de fichiers d'origine inchangé. Une union permet à plusieurs sessions d'accéder et faire des changements simultanément sur un unique chroot, en gardant les changements de manière privée à chaque session. Pour activer cette caractéristique, définissez union-type à n'importe quelle valeur gérée. Dès lors, le chroot sera également un chroot source, qui fournira des options supplémentaires (consultez “Options des chroots source” ci-dessus). Toutes les entrées sont optionnelles.

union-type=type
Set the union filesystem type. Currently supported filesystems are ‘aufs’, ‘overlayfs’, ‘overlay’ (as of Linux 4.0+) and ‘unionfs’. The default is ‘none’, which disables this feature.
union-mount-options=options
Options de montage des unions de systèmes de fichiers (configuration des branches), utilisées pour monter l'union de systèmes de fichiers spécifiées avec union-type. Cela remplacera la chaîne de caractères complète “-o” pour les montages et autorise la création d'unions de systèmes de fichiers complexes. Notez que ‘aufs’, ‘overlayfs’ et ‘unionfs’ prennent en charge différentes options de montage. Note: Il est possible d'utiliser les variables “${CHROOT_UNION_OVERLAY_DIRECTORY}” et “${CHROOT_UNION_UNDERLAY_DIRECTORY}” pour se référer respectivement à la surcouche inscriptible et au répertoire en lecture seule en dessous qui forment l'union. Consultez schroot-setup(5) pour une liste complète des variables.
union-overlay-directory=répertoire
Spécifier le répertoire où les répertoires de la surcouche inscriptible pour la session seront créés. Par défaut il s'agit de ‘/var/lib/schroot/union/overlay’.
union-underlay-directory=répertoire
Spécifier le répertoire où les répertoires de la sous-couche en lecture seule seront créés. Par défaut il s'agit de ‘/var/lib/schroot/union/underlay’.

Chroot isolation

On Linux systems, it is possible to isolate some resources when running a command inside the chroot. These include:

The network
System V semaphore undo lists
System V IPC messages, semaphores and shared memory
The UTS (uname) namespace
unshare.net=true|false
Unshare networking. Network devices will not be shared with the host. By default, only the local loopback interface will be available. A custom setup script could make additional adjustments to the networking configuration.
unshare.sysvipc=true|false
Unshare System V IPC. This creates a new IPC namespace (messages, semaphores and shared memory are not shared with the host).
unshare.sysvsem=true|false
Unshare System V semaphore undo values. This creates a separate undo list.
unshare.uts=true|false
Unshare the UTS namespace. A different hostname and domainname may be configured in the chroot, and will not be shared with the host.

Note that to specify this as overrides on the command-line, the key names should be added to the user-modifiable-keys or rootr-modifiable-keys keys keys. See the section “Customisation” below.

Personnalisation

En plus de la configuration des clés listées ci-dessus, il est possible d'ajouter des clés personnalisées. Ces clés seront utilisées pour ajouter des variables d'environnement supplémentaires à l'environnement d'exécution des scripts de mise en place. La seule restriction est que le nom des clés doit contenir uniquement des caractères alphanumériques ou des traits d'union, doit commencer par un caractère de l'alphabet et contenir au moins un point. C'est-à-dire qu'il doit correspondre à l'expression régulière étendue “^([a-z][a-z0-9]*\.)+[a-z][a-z0-9-]*$”.

Par exemple :

debian.apt-update=true
debian.distribution=unstable

Définira les variables d'environnement suivantes :

DEBIAN_APT_UPDATE=true
DEBIAN_DISTRIBUTION=unstable

Notez que c'est une erreur d'utiliser différents noms de clé qui définiront la même variable d'environnement en mélangeant des points et des traits d'union.

Les clés de configuration personnalisées peuvent également être modifiées lors de l'exécution en utilisant l'option --option. Cependant, pour des raisons de sécurité, seules les clés sélectionnées peuvent être modifiées. Ces clés sont spécifiées en utilisant les options suivantes :

user-modifiable-keys=clé1,clé2,..
Définir les clés que l'utilisateur peut modifier en utilisant --option.
root-modifiable-keys=clé1,clé2,..
Définir les clés que le superutilisateur peut modifier en utilisant --option. Notez que le superutilisateur peut utiliser les clés définies dans user-modifiable-keys en plus des clés définies ici.

Localisation

Quelques clés peuvent être localisées dans plusieurs langues. C'est effectué en ajoutant le nom local entre crochets après le nom de la clé. Par exemple :

description[en_GB]=Traduction anglaise britannique

Cela localisera la clé description pour la locale en_GB.

description[fr]=Traduction française

Cela localisera la clé description pour la locale française.

NOMS DES CHROOTS

Certains caractères ou mots ne sont pas permis dans le nom de chroot, nom de session ou nom de fichier de configuration. Le nom ne peut pas commencer par un point (‘.’). Les caractères ‘:’ (deux-points), ‘,’ (virgule) et ‘/’ (barre oblique) ne sont permis nulle part dans le nom. Le nom ne peut également pas contenir de tilde (‘~’) final. Les raisons de ces restrictions sont données ci-dessous.

.
Un point en début de nom peut être utilisé pour créer un nom comprenant un chemin relatif, en combinaison avec ‘/’, et cela peut permettre l'écrasement de fichiers du système hôte. Ne pas autoriser ce caractère signifie aussi que des fichiers cachés ne peuvent pas être créés. Cela implique aussi que les sauvegardes automatiques de certain éditeurs sont automatiquement ignorées. Les points sont autorisés partout ailleurs dans le nom.
:
Le deux-points est utilisé comme séparateur d'espace de noms, et n'est donc pas permis en tant que portion du nom d'un chroot ou d'une session. Les noms des clichés LVM ne peuvent aussi contenir ce caractère lié à des restrictions de dénominations de lvcreate(8).
/
Les noms contenant ce caractère ne sont pas des noms de fichier valides. Une barre oblique permettrait éventuellement la création de fichiers dans des sous-répertoires.
,
Les virgules sont utilisées pour séparer des objets dans une liste. Les alias sont séparés par des virgules et donc ne peuvent pas contenir de virgules dans leur nom.
~
Les noms de fichiers contenant des tildes finaux sont utilisés comme fichiers de sauvegarde par les éditeurs, et qui sont ignorés. Les tildes sont autorisés partout ailleurs dans le nom.
dpkg-old
dpkg-dist
dpkg-new
dpkg-tmp
Ces noms ne doivent pas apparaître à la fin du nom. Ce sont des copies de sauvegarde des fichiers de configuration utilisées par le gestionnaire de paquet dpkg, et seront ignorées.

SÉCURITÉ

Utilisateurs non-fiables

Notez que donner des accès root à des chroots pour des utilisateurs non-fiables est un sérieux problème de sécurité! Bien que l'utilisateur non-fiable n'aura un accès root qu'aux fichiers à l'intérieur du chroot, en pratique il y a plein de façons évidentes de sortir du chroot et de perturber les services sur le système hôte. Comme toujours, cela revient à la confiance.

Ne donnez pas d'accès root au chroot pour des utilisateurs auxquels vous ne faites pas confiance pour un accès root sur le système hôte.

Profils

En fonction du profil que vous avez configuré avec l'option script-config, différents systèmes de fichiers seront montés à l'intérieur du chroot, et différents fichiers seront copiés dans le chroot à partir de l'hôte. Certains profils monteront le /dev de l'hôte, tandis que d'autres non. Certains profils montent en lien (« bind ») d'autres portions du système de fichiers de l'hôte, afin de permettre l'utilisation de certaines propriétés, incluant le répertoire personnel de l'utilisateur et des portions particulières de /var. Consultez le fichier fstab du profil pour être certain de ce qui va être monté, et les autres fichiers du profil pour savoir quels fichiers et bases de données systèmes seront copiés dans le chroot. Choisissez un profil différent ou éditez les fichiers pour restreindre d'avantage ce qui sera disponible à l'intérieur du chroot.

Il y a un compromis entre la sécurité (garder le chroot aussi petit que possible) et la convivialité (qui requiert parfois l'accès à des portions du système de fichiers de l'hôte). Les différents profils font différents compromis, et il est important que vous évaluiez lequel correspond au compromis sécurité/convivialité dont vous avez besoin.

EXEMPLE

# Exemple de configuration
[sid]
type=plain
description=Debian unstable
description[fr_FR]=Debian instable
directory=/srv/chroot/sid
priority=3
users=jim
groups=sbuild
root-users=rleigh
aliases=unstable,default
[etch]
type=block-device
description=Debian testing (32-bit)
priority=2
groups=users
#groups=sbuild-security
aliases=testing
device=/dev/hda_vg/etch_chroot
mount-options=-o atime
personality=linux32
[sid-file]
type=file
description=Debian sid file-based chroot
description[fr_FR]=Chroot fichier basé sur Debian sid
priority=3
groups=sbuild
file=/srv/chroots/sid.tar.gz
[sid-snapshot]
type=lvm-snapshot
description=Debian unstable LVM snapshot
description[fr_FR]=Cliché LVM de Debian unstable
priority=3
groups=sbuild
users=rleigh
source-root-users=rleigh
source-root-groups=admin
device=/dev/hda_vg/sid_chroot
mount-options=-o atime,sync,user_xattr
lvm-snapshot-options=--size 2G

FICHIERS

Définitions des chroots

/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.

Configuration des scripts de mise en place

Le répertoire /etc/schroot/default contient les configurations par défaut utilisées par les scripts de mise en place.

Fichier de configuration principal lu par les scripts de mise en place. Le format de ce fichier est décrit dans schroot-script-config(5). C'est la valeur par défaut pour la clé script-config. Notez que précédemment il était nommé /etc/schroot/script-defaults. Les fichiers suivants sont référencés par défaut :
Une liste des fichiers à copier dans le chroot à partir du système hôte. Notez que précédemment elle était nommée /etc/schroot/copyfiles-defaults.
Un fichier au format décrit dans fstab(5), utilisé pour monter les systèmes de fichiers dans le chroot. Le point de montage est relatif à la racine du chroot. Notez que précédemment il était nommé /etc/schroot/mount-defaults.
Base de données système (comme décrit dans /etc/nsswitch.conf sur les systèmes GNU/Linux) à copier dans le chroot depuis l'hôte. Notez que précédemment elle était nommée /etc/schroot/nssdatabases-defaults.

AUTEURS

Roger Leigh.

COPYRIGHT

Copyright © 2005-2013 Roger Leigh <rleigh@debian.org>

schroot is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

VOIR AUSSI

sbuild(1), schroot(1), schroot-script-config(5), schroot-faq(7), mount(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.

2014-01-04 Version 1.7.2