SCHROOT(1) 2022 SCHROOT(1)

schroot - entrar num ambiente chroot em segurança

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 session-name|--session-name=session-name] [-d directory|--directory=directory] [-u user|--user=user] [-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=key=value] [--] [COMMAND [ ARG1 [ ARG2 [ ARGn]]]]

schroot permite ao utilizador correr um comando ou um login de shell num ambiente chroot. Se nenhum comando for especificado, será iniciado um login shell dentro do directório de trabalho do utilizador dentro da chroot.

O comando é um programa, mais os quantos argumentos opcionais que requer. Cada argumento pode ser citado em separado.

O directório onde comando ou login shell é corrido depende do contexto. Veja a opção --directory em baixo para uma descrição completa.

Toda a utilização de chroot será registada nos logs do sistema. Sob algumas circunstâncias, pode ser requerido ao utilizador a se autenticar; veja a secção “Autenticação”, em baixo.

Se nenhum chroot for especificado, o nome ou alias ‘predefinido’ do chroot será usado como recurso. Isto é o equivalente a “--chroot=default”.

Frequentemente existe a necessidade de correr programas num ambiente virtualizado em vez de o fazer directamente no sistema anfitrião. Ao contrário de outros sistemas de virtualização como kvm ou Xen, o schroot não virtualiza o sistema inteiro, apenas virtualiza o sistema de ficheiros, e algumas partes do sistema de ficheiros podem ainda ser partilhadas com o anfitrião. É por isto rápido, leve e flexível. No entanto, não virtualiza outros aspectos so sistema, tal como memória partilhada, rede, dispositivos, etc, e por isto pode ser menos seguro que outros sistemas, dependendo da sua intenção de uso. Alguns exemplos de utilizações existentes para o schroot incluem:

Correr um programa não-confiável numa caixa de areia, para que este não consiga interferir com ficheiros no sistema anfitrião; isto pode também ser usado para limitar os danos que um serviço comprometido possa infligir ao anfitrião
Usar um ambiente definido ou limpo, para garantir a reprodutividade e integridade de uma dada tarefa
Usar versões diferentes de um sistema operativo, ou mesmo diferentes sistemas operativos juntamente, ex. diferentes distribuições de GNU/Linux
Correr programas de 32-bit usando uma chroot de 32-bit num sistema de máquina de 64-bit
Compilação automática de pacotes Debian usando sbuild(1), o qual compila cada pacote numa imagem chroot primitiva quando se usa imagens LVM ou uniões
Suportar várias imagens de sistema numa configuração de cluster, onde modificar a imagem base consome tempo e/ou suportar todas as configurações requeridas necessárias pelos utilizadores é difícil: diferentes chroots podem suportar todas as configurações diferentes requeridas, e os utilizadores de cluster podem receber acesso às chroots que precisam (o que pode incluir acesso de root para utilizadores de confiança para manterem as suas próprias imagens)

Uma chroot pode ser usada directamente como root ao correr chroot(8), mas os utilizadores normais não são capazes de usar este comando. O schroot permite o acesso a chroots para utilizadores normais usando o mesmo mecanismo, mas com várias funcionalidades adicionais. Enquanto o schroot usa um directório como uma chroot tal como o chroot(8), não requer que este seja um directório regular no sistema de ficheiros. Apesar de isto ser a predefinição, a chroot também pode ser criada a partir de um ficheiro, de um sistema de ficheiros, incluindo imagens LVM e Btrfs, e montagens em loopback, ou composta de uma camada superior unionfs. Sendo extensível ao utilizador, o âmbito para criar chroots a partir de diferentes fontes está limitado apenas pela sua imaginação. O schroot executa verificações de permissões e permite configuração automatizada adicional do ambiente da chroot, tal como montar sistemas de ficheiros adicionais e outras tarefas de configuração. Esta configuração automatizada é feita através da acção de scripts de configuração que podem ser personalizados e estendidos para para executar quaisquer acções necessárias. Acções típicas incluem montar o directório home do utilizador, definir a rede e as bases de dados do sistema, e até mesmo arrancar serviços. Estes são mais uma vez inteiramente personalizáveis pelo administrador. Os scripts de configuração são corridos para todos os tipos de chroot, com a excepção do tipo ‘plain’, O tipo mais simples de chroot, que não oferece nenhuma funcionalidade de configuração automatizada. A configuração do schroot está coberta em mais detalhe em schroot.conf(5).

schroot aceita as seguintes opções:

Mostra o sumário de ajuda.
Escreve informação de versão.
Lista todos os chroots disponíveis.
Escreve informação detalhada acerca dos chroots especificados.
Escreve a configuração das chroots especificadas. Isto é útil para testar se a configuração em uso é a mesma que tem o ficheiro de configuração. Quaisquer comentários no ficheiro original irão estar em falta.
Escreve a localização (caminho) da chroots especificadas. Note que os tipos de chroots que apenas podem ser usadas dentro de uma sessão não irão ter uma localização até estarem activas.

Opções gerais

Escreve apenas as mensagens essenciais.
Escreve todas as mensagens.

Especifica uma chroot ou sessão activa a usar. Esta opção pode ser usada várias vezes para especificar mais do que uma chroot, e neste caso o seu efeito é semelhante a --all. O nome da chroot pode ser prefixado com um namespace; veja a secção “Namespaces de Chroot”, em baixo.
Seleciona todas as chroots, chroots fonte e sessões activas. Quando um comando é especificado, o comando irá correr em todas as chroots, chroots fonte e sessões activas. Se for usado --info, mostra informação acerca de todas as chroots. Esta opção não faz sentido ser usada com um login shell (correr quando nenhum comando foi especificado). Esta opção é equivalente a “--all-chroots --all-source-chroots --all-sessions”.
Seleciona todas as chroots. Idêntico a --all, excepto que as chroots fonte e as sessões activas não são consideradas.
Seleciona todas as sessões activas. Idêntico a --all, excepto que chroots e chroots fonte não são consideradas.
Seleciona todas as chroots fonte. Idêntico a --all, excepto que as chroots e as sessões não são consideradas.
Não seleciona nomes alternativos (alias) ao adicionar chroots. Isto assegura que apenas chroots reais são selecionadas, e são apenas listadas uma vez.

Muda para directory dentro da chroot antes de correr o comando ou login shell. Se directory não estiver disponível, o schroot irá terminar com um estado de erro.
O comportamento predefinido é como se segue (todos os caminhos de directórios estão dentro da chroot). É corrido um login shell no directório actual de trabalho. Se este não estiver disponível, irá tentar $HOME (quando é usado --preserve-environment), depois o directório home do utilizador, e / dentro da chroot por sua vez. É sempre corrido um comando no directório actual de trabalho dentro da chroot. Se nenhum dos directórios estiverem disponíveis, o schroot irá terminar com um estado de erro.
Corre como um utilizador diferente. A predefinição é correr como o utilizador actual. Se necessário, o utilizador pode ser chamado a autenticar-se com uma palavra passe. Para mais informação, veja a secção “Autenticação”, em baixo.
Preserva o ambiente do utilizador dentro do ambiente da chroot. A predefinição é usar um ambiente limpo; esta opção copia o ambiente completo do utilizador e define-o na sessão. As variáveis de ambiente permitidas são sujeitas a certas restrições; veja a secção “Ambiente”, em baixo.
Usa shell como o login shell. Quando corre um login shell será considerado um número potenciais shells, neste ordem: o comando na variável de ambiente SHELL (se --preserve-environment for usado, ou se preserve-environment estiver activa), a shell do utilizador na base de dados ‘passwd’, /bin/bash e finalmente /bin/sh. Esta opção sobrepõe esta lista, e irá usar a shell especificada. Esta opção também sobrepõe a chave de configuração shell, se definida.
Define uma opção. O valor das chaves de configuração selecionadas em schroot.conf pode ser modificado usando esta opção. A chave tem de estar presente na chave de configuração user-modifiable-keys em schroot.conf, ou adicionalmente a chave user-modifiable-keys se a correr como (ou a mudar para) utilizador root. A chave e o valor definido aqui será definido no ambiente dos scripts de configuração, e pode por isso ser usado para personalizar a chroot numa base por-sessão.

Acções de sessão

Inicia, corre e termina uma sessão automaticamente. Esta é a acção predefinida, portanto não é preciso especifica-la em operação normal.
Inicia uma sessão. Um identificar único de sessão (ID de sessão) é retornado na saída standard. I ID de sessão é necessário para usar as opções da outra sessão. Note que o identificador de sessão pode ser especificado com a opção --session-name.
Recupera uma sessão existente. Se uma sessão existente ficou indisponível, por exemplo por se ter desmontado devido a um reiniciar, esta opção irá tornar a sessão de novo disponível para uso, por exemplo ao re-monta-la. O ID da sessão é especificado com a opção --chroot.
Corre uma sessão existente. O ID da sessão é especificado com a opção --chroot.
Termina uma sessão existente. O ID da sessão é especificado com a opção --chroot.

Opções de sessão

Dá nome a uma sessão. O session-name especificado substitui o nome de sessão predefinido que contem um ID de sessão gerado automaticamente. O nome da sessão não pode conter um qualificador de namespace, pois as sessões são sempre criadas dentro do namespace ‘session:’. O nome de sessão está também sujeito às restrições de nomeação da chroot documentadas em schroot.conf(5).
Força uma operação de sessão, mesmo que noutro caso falhe. Isto pode ser usado para forçar o terminar de uma sessão, mesmo tendo utilizadores activos. Isto não garante que a sessão seja terminada de maneira limpa; os sistemas de ficheiros podem não ser desmontados, por exemplo.

--
Fim das opções. Usado para indicar o final da opções do schroot; quaisquer opções seguintes serão passadas ao comando que vai correr, em vez de ao schroot.

Se o utilizador não for um utilizador permitido, ou um membro dos grupos permitidos (ou se mudou para root, os utilizadores de root permitidos ou grupos de root permitidos) para as chroot(s) especificadas, a permissão será imediatamente negada. Se se mudar de utilizador, e o utilizador que corre o comando tem acesso, será pedido aos utilizadores para se autenticarem eles próprios usando as credenciais do utilizador para qual estão a mudar.

Em sistemas que suportem Pluggable Authentication Modules (PAM), o schroot irá usar PAM para a autenticação e autorização de utilizadores. Se e quando requerido, o schroot irá pedir uma palavra-passe. Se o PAM não estiver disponível, toda a autenticação irá automaticamente falhar (a mudança de utilizador não é suportada sem o PAM).

Note que quando o PAM é usado, ao utilizador root não é dado nenhuns privilégios especiais por predefinição no programa. No entanto, a configuração predefinida do PAM permite que o root faça entrada em uma palavra-passe (pam_rootok.so), mas isto pode ser desactivado para prevenir que o root aceda a chroots excepto se especificamente permitido. Em tal situação, o root tem de ser adicionado aos utilizadores e grupos permitidos como qualquer outro utilizador ou grupo. Se o PAM não estiver disponível, o utilizador root terá permissão de aceder a todas as chroots, mesmo que não há acesso garantido explícito.

Existem três tipos diferentes de chroot: chroots regulares, chroots fonte e chroots de sessão. Estes tipos diferentes de chroot estão separados em diferentes namespaces. Um namespace é um prefixo para um nome de chroot. Actualmente existem três namespaces: ‘chroot:’, ‘source:’ e ‘session:’. Use --list --all para listar todas as chroots disponíveis em todos os namespaces. Porque ‘:’ é usado como separador entre namespace e nomes de chroot, não é permitido usar este caractere nos nomes das chroot.

Dependendo da acção que você pediu ao schroot para tomar, ele pode procurar pela chroot em um dos três namespaces, ou pode ser especificado um namespace particular. Por exemplo, uma chroot chamada “sid” é realmente chamada “chroot:sid” se o namespace for incluído, mas o namespace pode ser omitido para a maioria das acções.

Alguns tipos de chroot, por exemplo imagens LVM e imagens Btrfs, fornecem imagens instantâneas copiadas em escrita e geridas em sessão da chroot. Estas também fornecem uma chroot fonte para permitir acesso fácil ao sistema de ficheiros usando como fonte para os instantâneos. Estas são também chroots regulares, apenas com a tiragem de instantâneos desactivada. Para uma chroot chamada “sid-snapshot” (isto é, com um nome totalmente qualificado de “chroot:sid-snapshot”), irá também existir uma chroot fonte correspondente chamada “source:sid-snapshot”. As versões anteriores do schroot forneciam chroots fonte com um sufixo ‘-source’. Estas são também fornecidas para compatibilidade. Neste exemplo, esta seria chamada “chroot:sid-snapshot-source”. Estes nomes de compatibilidade serão largados numa versão futura, assim os programas e scripts devem comutar para a utilização de nomes namespace-qualificados em vez do velho sufixo.

Todas as sessões criadas com --begin-session são colocadas dentro do namespace ‘session:’. Uma sessão nomeada com --session-name pode ter qualquer nome, até o mesmo nome que a chroot de onde foi criada, desde que seja única dentro deste namespace. Isto não era permitido em versões anteriores do schroot que não tinham namespaces.

Acções e namespaces predefinidos

Todas as acções usam ‘chroot:’ como namespace predefinido, com algumas acções de sessão a serem a excepção. --run-session, --recover-session e --end-session usam ‘session:’ como o namespace predefinido em vez deste, pois estas acções funcionam em chroots de sessão. O resultado é que o namespace é normalmente nunca requerido excepto que você precisa de trabalhar com uma chroot num namespace diferente do predefinido, tal como quando se usa uma chroot fonte. Para tornar a seleção de chroot ambígua, é sempre possível usar o nome completo incluindo o namespace, mesmo quando não estritamente pedido.

A performance em alguns sistemas de ficheiros, por exemplo Btrfs, é má quando se corre dpkg devido ao monte de operações fsync executadas. Isto pode ser mitigado ao instalar o pacote eatmydata e depois adicionar eatmydata à chave de configuração command-prefix, o que desactiva todas as operações fsync. Note que isto apenas deve ser feito em chroots de imagem onde a perda de dados não é um problema. Isto é útil quando se usa uma chroot para compilação de pacotes, por exemplo.

O schroot irá selecionar um directório apropriado para usar dentro da chroot com base em se será usado um login shell interactivo, ou será invocado um comando, e adicionalmente se a opção --directory for usada. No caso de se correr comandos directamente, ou se especificar explicitamente um directório, apenas um directório será usado para segurança e consistência, enquanto que para um login shell podem ser tentadas várias possibilidades. As seguintes sub-secções listam a sequência de reserva para cada caso. CWD é o directório actual de trabalho, DIR é o directório especificado com --directory.

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

Transition
(Host → Chroot) Comment
CWD → CWD Normal behaviour (if --directory is not used)
FAIL If CWD is nonexistent

Nenhuns recursos de reserva deverão existir sob quaisquer circunstâncias.

--directory usado

Transition
(Host → Chroot) Comment
CWD → DIR Normal behaviour
FAIL If DIR is nonexistent

Nenhuns recursos de reserva deverão existir sob quaisquer circunstâncias.

Note que --debug=notice irá mostrar a lista de recurso interno computada para a sessão.

% schroot -l↵
chroot:default
chroot:etch
chroot:sid
chroot:testing
chroot:unstable

% 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

Use --all ou -c várias vezes para todas ou várias chroots, respetivamente.

% 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

Use -- para permitir opções começadas com ‘-’ or ‘--’ no comando a correr na chroot. Isto previne que sejam interpretados como opções para o próprio schroot. Note que a linha de topo foi ecoada para o erro standard, as linhas restantes para a saída standard. Isto é intencional, assim o resultado desse programa a partir de comando que correm na chroot podem ser canalizados e redirecionados como requerido; os dados serão os mesmo como se o comando fosse corrido directamente no sistema anfitrião.

% schroot -c sid -u root↵
Password:
[sid chroot] (rleigh→root) Running login shell: “/bin/bash”
#

Se o utilizador ‘rleigh’ estava em root-users em /etc/schroot/schroot.conf, ou um dos grupos a que ele pertencia estava em root-groups, seria-lhe dado acesso a root sem autenticação, mas o passo de autorização do PAM é ainda aplicado.

Uma chroot pode ser necessária para correr mais do que um comando. Em particular, onde uma chroot é criada na hora a partir de uma LV LVM ou de um ficheiro no disco, existe a necessidade de tornar a chroot persistente enquanto uma dada tarefa (ou conjunto de tarefas) é executada. As sessões existem para este objectivo. Para os tipos de chroot simples tais como ‘plain’ e ‘directory’, as sessões podem ser criadas mas não são estritamente necessárias.

Vamos começar por olhar para uma chroot com capacidade de sessão

% 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

Note que a opção Session Managed esta definida para ‘true’. Isto é um requerimento de modo a se usar gestão de sessão, e é suportada pela maioria dos tipos de chroot. A seguir, vamos criar uma nova sessão.

% schroot -b -c sid-snap↵
sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f

O ID de sessão da sessão criada mais recentemente é retornado na saída standard. É comum armazena-lo como isto:

% SESSION=$(schroot -b -c sid-snap)↵
% echo $SESSION↵
sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f

A sessão pode ser usada tal e qual como qualquer chroot normal. Isto é o que a sessão parece:

% 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

Agora a sessão foi criada, pode-se correr comandos nela:

% 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

Quando todos os comandos a correr na sessão tiverem sido executados, a sessão pode ser terminada:

% schroot -e -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f
% schroot -e -c $SESSION

Finalmente, os nomes de sessão pode ser longos e pesados. Um nome pode ser especificado em vez de se usar o ID de sessão gerado automaticamente:

% schroot -b -c sid-snap -n my-session-name
my-session-name

Se algo não está a funcionar, e não é claro o que está errado a partir das mensagens de erro, tente usar a opção --debug=level para ligar as mensagens de depuração. Isto dá imensamente mais informação. Os níveis de depuração válidos são ‘none’, e ‘notice’, ‘info’, ‘warning’ e ‘critical’ de modo a aumentar a severidade. Quando mais baixo o nível de severidade, maior a quantidade de resultados.

Se você está a ter problemas, os desenvolvedores podem ser contactados na lista de mail:
Debian buildd-tools Developers
<buildd-tools-devel@lists.alioth.debian.org>

Nas arquitecturas mips e mipsel, os kernels Linux até e incluindo a versão 2.6.17 têm suporte personality(2) quebrado, o que resulta em falha ao definir a personalidade. Isto irá ser visto como um erro de “Operação não permitida” (EPERM). Para contornar este problema, defina personality para ‘undefined’, ou actualize para um kernel mais recente.

Por predefinição, o ambiente não é preservado, e as seguintes variáveis de ambiente são definidas: HOME, LOGNAME, PATH, SHELL, TERM (preservada de já definida), e USER. As variáveis de ambiente SCHROOT_COMMAND, SCHROOT_USER, SCHROOT_GROUP, SCHROOT_UID e SCHROOT_GID são definidas dentro da chroot especificando o comando a ser corrido, o nome de utilizador, nome do grupo, ID de utilizador e ID do grupo, respetivamente. Adicionalmente, as variáveis de ambiente SCHROOT_SESSION_ID, SCHROOT_CHROOT_NAME e SCHROOT_ALIAS_NAME especificam o ID de sessão, o nome original da chroot anterior à criação da sessão, e o alias usado para originalmente identificar a chroot selecionada, respetivamente.

As seguintes, potencialmente perigosas, variáveis de ambiente foram removidas por predefinição para segurança: BASH_ENV, CDPATH, ENV, HOSTALIASES, IFS, KRB5_CONFIG, KRBCONFDIR, KRBTKFILE, KRB_CONF, LD_.*, LOCALDOMAIN, NLSPATH, PATH_LOCALE, RES_OPTIONS, TERMINFO, TERMINFO_DIRS, e TERMPATH. Se desejado, a chave de configuração environment-filter irá permitir que a lista de exclusão seja modificada; veja schroot.conf(5) para mais detalhes.

/etc/schroot/schroot.conf
O ficheiro de definições chroot de todo-o-sistema. Este ficheiro tem de pertencer ao utilizador root, e não ser gravável por outro.
/etc/schroot/chroot.d
Definições de chroot adicionais podem ser colocadas em ficheiros sob este directório. Elas são tratadas exactamente na mesma maneira que /etc/schroot/schroot.conf. Cada ficheiro pode conter uma ou mais definições de chroot. Note que os ficheiros neste directório seguem as mesmas regras de nomeação que run-parts(8) quando corrido com a opção --lsbsysinit.
/etc/schroot/setup.d
Os directórios de scripts de configuração de chroot de todo o sistema. Veja configuração do schroot(5).
/etc/pam.d/schroot
Configuração de PAM.

Directórios do sistema

/usr/lib/schroot
Directório que contém programas ajudantes usados por scripts de configuração.

Directórios de sessão

Cada directório contém um directório ou ficheiro com o nome de cada sessão. Nem todos os tipos de chroot fazem uso de todos os seguintes directórios.

/var/lib/schroot/session
Directório que contém a configuração de sessão para cada sessão activa.
/var/run/schroot/mount
Directório usado para montar o sistema de ficheiros usado por cada sessão activa.
/var/lib/schroot/union/underlay
Directório usado para sistema de ficheiros union fonte (inferior).
/var/lib/schroot/union/overlay
Directório usado para sistema de ficheiros union superior gravável.
/var/lib/schroot/unpack
Directório usado para desempacotar chroots de ficheiro.

Roger Leigh.

Copyright © 2005-2012 Roger Leigh <rleigh@codelibre.net>

schroot é software livre: você pode redistribuí-lo e/ou modifica-lo sob os termos da GNU General Public License como publicada pela Free Software Foundation, seja na versão 3 da Licença, ou (por opção sua) qualquer versão posterior.

dchroot(1), sbuild(1), chroot(2), schroot.conf(5). schroot-setup(5), schroot-faq(7), run-parts(8),

14 Aug