.\" t .\" Copyright © 2005-2010 Roger Leigh .\" Copyright © 2006 Andreas Bombe .\" .\" 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. .\" .\" schroot is distributed in the hope that it will be useful, but .\" WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU .\" General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see .\" . .\" .ds RELEASE_DATE 14 Aug 2022 .ds VERSION 1.6.13 .ds SCHROOT_LIBEXEC_DIR /usr/lib/schroot .ds SCHROOT_MOUNT_DIR /var/run/schroot/mount .ds SCHROOT_SESSION_DIR /var/lib/schroot/session .ds SCHROOT_FILE_UNPACK_DIR /var/lib/schroot/unpack .ds SCHROOT_OVERLAY_DIR /var/lib/schroot/union/overlay .ds SCHROOT_UNDERLAY_DIR /var/lib/schroot/union/underlay .ds SCHROOT_SYSCONF_DIR /etc/schroot .ds SCHROOT_CONF /etc/schroot/schroot.conf .ds SCHROOT_CONF_CHROOT_D /etc/schroot/chroot.d .ds SCHROOT_CONF_SETUP_D /etc/schroot/setup.d .ds SCHROOT_DATA_DIR /usr/share/schroot .ds SCHROOT_SETUP_DATA_DIR /usr/share/schroot/setup .ds SCHROOT_LOCALE_DIR /usr/share/locale .ds PACKAGE_LOCALE_DIR /usr/share/locale .ds PROGRAM schroot .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SCHROOT 1 \*[RELEASE_DATE] "Versão \*[VERSION]" "Debian sbuild" .SH NOME schroot \- entrar num ambiente chroot em segurança .SH SUMÁRIO \fBschroot\fP [\fB\-h\fP\[or]\fB\-\-help\fP \[or] \fB\-V\fP\[or]\fB\-\-version\fP \[or] \fB\-l\fP\[or]\fB\-\-list\fP \[or] \fB\-i\fP\[or]\fB\-\-info\fP \[or] \fB\-\-config\fP \[or] \fB\-\-location\fP \[or] \fB\-\-automatic\-session\fP \[or] \fB\-b\fP\[or]\fB\-\-begin\-session\fP \[or] \fB\-\-recover\-session\fP \[or] \fB\-r\fP\[or]\fB\-\-run\-session\fP \[or] \fB\-e\fP\[or]\fB\-\-end\-session\fP] [\fB\-f\fP\[or]\fB\-\-force\fP] [\fB\-n \fP\fIsession\-name\fP\[or]\fB\-\-session\-name=\fP\fIsession\-name\fP] [\fB\-d \fP\fIdirectory\fP\[or]\fB\-\-directory=\fP\fIdirectory\fP] [\fB\-u \fP\fIuser\fP\[or]\fB\-\-user=\fP\fIuser\fP] [\fB\-p\fP\[or]\fB\-\-preserve\-environment\fP] [\fB\-s \fP\fIshell\fP\[or]\fB\-\-shell=\fP\fIshell\fP] [\fB\-q\fP\[or]\fB\-\-quiet\fP \[or] \fB\-v\fP\[or]\fB\-\-verbose\fP] [\fB\-c \fP\fIchroot\fP\[or]\fB\-\-chroot=\fP\fIchroot\fP \[or] [\fB\-\-all\fP \[or] \fB\-\-all\-chroots\fP \[or] \fB\-\-all\-source\-chroots\fP \[or] \fB\-\-all\-sessions\fP] [\fB\-\-exclude\-aliases\fP]] [\fB\-o\fP\[or]\fB\-\-option=\fP\fIkey=value\fP] [\fB\-\-\fP] [\fBCOMMAND\fP [ \fBARG1\fP [ \fBARG2\fP [ \fBARGn\fP]]]] .SH DESCRIÇÃO \fBschroot\fP 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. .PP O comando é um programa, mais os quantos argumentos opcionais que requer. Cada argumento pode ser citado em separado. .PP O directório onde comando ou login shell é corrido depende do contexto. Veja a opção \fI\-\-directory\fP em baixo para uma descrição completa. .PP 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 \[lq]\fIAutenticação\fP\[rq], em baixo. .PP Se nenhum chroot for especificado, o nome ou alias \[oq]predefinido\[cq] do chroot será usado como recurso. Isto é o equivalente a \[lq]\-\-chroot=default\[rq]. .SH "VISÃO GERAL" 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 \fBkvm\fP ou \fBXen\fP, 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: .IP \[bu] 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 .IP \[bu] Usar um ambiente \fIdefinido\fP ou \fIlimpo\fP, para garantir a reprodutividade e integridade de uma dada tarefa .IP \[bu] Usar versões diferentes de um sistema operativo, ou mesmo diferentes sistemas operativos juntamente, ex. diferentes distribuições de GNU/Linux .IP \[bu] Correr programas de 32\-bit usando uma chroot de 32\-bit num sistema de máquina de 64\-bit .IP \[bu] Compilação automática de pacotes Debian usando \fBsbuild\fP(1), o qual compila cada pacote numa imagem chroot primitiva quando se usa imagens LVM ou uniões .IP \[bu] 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) .PP Uma chroot pode ser usada directamente como root ao correr \fBchroot\fP(8), mas os utilizadores normais não são capazes de usar este comando. O \fBschroot\fP 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 \fBchroot\fP(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 \fIscripts de configuração\fP 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 \[oq]plain\[cq], 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 \fBschroot.conf\fP(5). .SH OPÇÕES \fBschroot\fP aceita as seguintes opções: .SS Acções .TP \fB\-h\fP, \fB\-\-help\fP Mostra o sumário de ajuda. .TP \fB\-V\fP, \fB\-\-version\fP Escreve informação de versão. .TP \fB\-l\fP, \fB\-\-list\fP Lista todos os chroots disponíveis. .TP \fB\-i\fP, \fB\-\-info\fP Escreve informação detalhada acerca dos chroots especificados. .TP \fB\-\-config\fP 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. .TP \fB\-\-location\fP 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. .SS "Opções gerais" .TP \fB\-q\fP, \fB\-\-quiet\fP Escreve apenas as mensagens essenciais. .TP \fB\-v\fP, \fB\-\-verbose\fP Escreve todas as mensagens. .SS "Selecção de chroot" .TP \fB\-c\fP, \fB\-\-chroot=\fP\fIchroot\fP 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 \fI\-\-all\fP. O nome da chroot pode ser prefixado com um \fInamespace\fP; veja a secção \[lq]\fINamespaces de Chroot\fP\[rq], em baixo. .TP \fB\-a\fP, \fB\-\-all\fP 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 \fI\-\-info\fP, 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 \[lq]\-\-all\-chroots \-\-all\-source\-chroots \-\-all\-sessions\[rq]. .TP \fB\-\-all\-chroots\fP Seleciona todas as chroots. Idêntico a \fI\-\-all\fP, excepto que as chroots fonte e as sessões activas não são consideradas. .TP \fB\-\-all\-sessions\fP Seleciona todas as sessões activas. Idêntico a \fI\-\-all\fP, excepto que chroots e chroots fonte não são consideradas. .TP \fB\-\-all\-source\-chroots\fP Seleciona todas as chroots fonte. Idêntico a \fI\-\-all\fP, excepto que as chroots e as sessões não são consideradas. .TP \fB\-\-exclude\-aliases\fP 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. .SS "Ambiente chroot" .TP \fB\-d\fP, \fB\-\-directory=\fP\fIdirectory\fP Muda para \fIdirectory\fP dentro da chroot antes de correr o comando ou login shell. Se \fIdirectory\fP não estiver disponível, o schroot irá terminar com um estado de erro. .IP 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 \fI\-\-preserve\-environment\fP), depois o directório home do utilizador, e \fI/\fP 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. .TP \fB\-u\fP, \fB\-\-user=\fP\fIuser\fP 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 \[lq]\fIAutenticação\fP\[rq], em baixo. .TP \fB\-p\fP, \fB\-\-preserve\-environment\fP 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 \[lq]\fIAmbiente\fP\[rq], em baixo. .TP \fB\-s\fP, \fB\-\-shell=\fP\fIshell\fP Usa \fIshell\fP 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 \fI\-\-preserve\-environment\fP for usado, ou se \f[CI]preserve\-environment\fR estiver activa), a shell do utilizador na base de dados \[oq]passwd\[cq], \fI/bin/bash\fP e finalmente \fI/bin/sh\fP. 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 \f[CI]shell\fR, se definida. .TP \fB\-o\fP, \fB\-\-option=\fP\fIkey=value\fP Define uma opção. O valor das chaves de configuração selecionadas em \fIschroot.conf\fP pode ser modificado usando esta opção. A chave tem de estar presente na chave de configuração \f[CI]user\-modifiable\-keys\fR em \fIschroot.conf\fP, ou adicionalmente a chave \f[CI]user\-modifiable\-keys\fR 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. .SS "Acções de sessão" .TP \fB\-\-automatic\-session\fP Inicia, corre e termina uma sessão automaticamente. Esta é a acção predefinida, portanto não é preciso especifica\-la em operação normal. .TP \fB\-b\fP, \fB\-\-begin\-session\fP 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 \fI\-\-session\-name\fP. .TP \fB\-\-recover\-session\fP 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 \fI\-\-chroot\fP. .TP \fB\-r\fP, \fB\-\-run\-session\fP Corre uma sessão existente. O ID da sessão é especificado com a opção \fI\-\-chroot\fP. .TP \fB\-e\fP, \fB\-\-end\-session\fP Termina uma sessão existente. O ID da sessão é especificado com a opção \fI\-\-chroot\fP. .SS "Opções de sessão" .TP \fB\-n\fP, \fB\-\-session\-name=\fP\fIsession\-name\fP Dá nome a uma sessão. O \fIsession\-name\fP 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 \[oq]session:\[cq]. O nome de sessão está também sujeito às restrições de nomeação da chroot documentadas em \fBschroot.conf\fP(5). .TP \fB\-f\fP, \fB\-\-force\fP 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. .SS Separador .TP \fB\-\-\fP 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. .SH AUTENTICAÇÃO 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. .PP 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 \fInão\fP é suportada sem o PAM). .PP 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 (\fIpam_rootok.so\fP), 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. .SH "NAMESPACES DE CHROOT" .SS "Bases de namespace" 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 \fInamespaces\fP. Um namespace é um prefixo para um nome de chroot. Actualmente existem três namespaces: \[oq]chroot:\[cq], \[oq]source:\[cq] e \[oq]session:\[cq]. Use \fI\-\-list \-\-all\fP para listar todas as chroots disponíveis em todos os namespaces. Porque \[oq]:\[cq] é usado como separador entre namespace e nomes de chroot, não é permitido usar este caractere nos nomes das chroot. .PP 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 \[lq]sid\[rq] é realmente chamada \[lq]chroot:sid\[rq] se o namespace for incluído, mas o namespace pode ser omitido para a maioria das acções. .SS "Chroots fonte" 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 \fIchroot fonte\fP 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 \[lq]sid\-snapshot\[rq] (isto é, com um nome totalmente qualificado de \[lq]chroot:sid\-snapshot\[rq]), irá também existir uma chroot fonte correspondente chamada \[lq]source:sid\-snapshot\[rq]. As versões anteriores do schroot forneciam chroots fonte com um sufixo \[oq]\-source\[cq]. Estas são também fornecidas para compatibilidade. Neste exemplo, esta seria chamada \[lq]chroot:sid\-snapshot\-source\[rq]. 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. .SS "Chroots de sessão" Todas as sessões criadas com \fI\-\-begin\-session\fP são colocadas dentro do namespace \[oq]session:\[cq]. Uma sessão nomeada com \fI\-\-session\-name\fP 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. .SS "Acções e namespaces predefinidos" Todas as acções usam \[oq]chroot:\[cq] como namespace predefinido, com algumas acções de sessão a serem a excepção. \fI\-\-run\-session\fP, \fI\-\-recover\-session\fP e \fI\-\-end\-session\fP usam \[oq]session:\[cq] 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. .SH PERFORMANCE .PP 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 \f[CI]command\-prefix\fR, 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. .SH "RECURSOS DE RESERVA DE DIRECTÓRIOS" .PP 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 \fI\-\-directory\fP 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 \fI\-\-directory\fP. .SS "Login shell" .TS box; l|lw(4i). Transition (Host \[->] Chroot) Comment _ CWD \[->] CWD T{ Normal behaviour (if \fI\-\-directory\fP is not used) T} CWD \[->] $HOME T{ If CWD is nonexistent and \-\-preserve\-environment is used T} CWD \[->] passwd pw_dir T{ If CWD is nonexistent (or \-\-preserve\-environment is used and no $HOME exists) T} CWD \[->] / T{ None of the above exist T} \fBFAIL\fP T{ If / is nonexistent T} .TE .SS Comando .TS box; l|lw(4i). Transition (Host \[->] Chroot) Comment _ CWD \[->] CWD T{ Normal behaviour (if \fI\-\-directory\fP is not used) T} \fBFAIL\fP T{ If CWD is nonexistent T} .TE .PP Nenhuns recursos de reserva deverão existir sob quaisquer circunstâncias. .SS "\-\-directory usado" .TS box; l|lw(4i). Transition (Host \[->] Chroot) Comment _ CWD \[->] DIR Normal behaviour \fBFAIL\fP If DIR is nonexistent .TE .PP Nenhuns recursos de reserva deverão existir sob quaisquer circunstâncias. .SS Depuração .PP Note que \fI\-\-debug=notice\fP irá mostrar a lista de recurso interno computada para a sessão. .SH EXEMPLOS .SS "Lista chroots disponíveis" .EX % \f[CB]schroot \-l\fR\[CR] chroot:default chroot:etch chroot:sid chroot:testing chroot:unstable .EE .SS "Obtém informação acerca de uma chroot" .EX % \f[CB]schroot \-i \-c sid\fR\[CR] \[em]\[em]\[em] Chroot \[em]\[em]\[em] 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\e FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA\e IN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE\e RMPATH)$ Run Setup Scripts true Script Configuration script\-defaults Session Managed true Personality linux32 Location /srv/chroot/sid .EE .LP Use \fI\-\-all\fP ou \fI\-c\fP várias vezes para todas ou várias chroots, respetivamente. .SS "Correr comandos numa chroot" .EX % \f[CB]schroot \-c sid /bin/ls\fR\[CR] [sid chroot] Running command: \[lq]/bin/ls\[rq] 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 % \f[CB]schroot \-c sid \-\- ls \-1 | head \-n 5\fR\[CR] [sid chroot] Running command: \[lq]ls \-1\[rq] ABOUT\-NLS AUTHORS COPYING ChangeLog INSTALL .EE .LP Use \fI\-\-\fP para permitir opções começadas com \[oq]\-\[cq] or \[oq]\-\-\[cq] 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. .SS "Comutando utilizadores" .EX % \f[CB]schroot \-c sid \-u root\fR\[CR] Password: [sid chroot] (rleigh\[->]root) Running login shell: \[lq]/bin/bash\[rq] # .EE .LP Se o utilizador \[oq]rleigh\[cq] estava em \f[CI]root\-users\fR em \fI\*[SCHROOT_CONF]\fP, ou um dos grupos a que ele pertencia estava em \f[CI]root\-groups\fR, seria\-lhe dado acesso a root sem autenticação, mas o passo de autorização do PAM é ainda aplicado. .SS Sessões 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 \[oq]plain\[cq] e \[oq]directory\[cq], as sessões podem ser criadas mas não são estritamente necessárias. .PP Vamos começar por olhar para uma chroot com capacidade de sessão .PP .EX % \f[CB]schroot \-i \-c sid\-snap\fR\[CR] \[em]\[em]\[em] Chroot \[em]\[em]\[em] 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\e FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA\e IN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE\e 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 .EE .PP Note que a opção \fISession Managed\fP esta definida para \[oq]true\[cq]. 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. .PP .EX % \f[CB]schroot \-b \-c sid\-snap\fR\[CR] sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d4ccc899f0f .EE .PP O ID de sessão da sessão criada mais recentemente é retornado na saída standard. É comum armazena\-lo como isto: .PP .EX % \f[CB]SESSION=$(schroot \-b \-c sid\-snap)\fR\[CR] % \f[CB]echo $SESSION\fR\[CR] sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d4ccc899f0f .EE .PP A sessão pode ser usada tal e qual como qualquer chroot normal. Isto é o que a sessão parece: .PP .EX % \f[CB]schroot \-i \-c sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d4ccc899f0f\fR\[CR] \[em]\[em]\[em] Session \[em]\[em]\[em] Name sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d\e 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\e FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA\e IN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE\e RMPATH)$ Run Setup Scripts true Script Configuration script\-defaults Session Managed true Personality linux Mount Location /var/lib/schroot/mount/sid\-snap\-461\e 95b04\-0893\-49bf\-beb8\-0d4ccc899f0f Path /var/lib/schroot/mount/sid\-snap\-461\e 95b04\-0893\-49bf\-beb8\-0d4ccc899f0f Mount Device /dev/hda_vg/sid\-snap\-46195b04\-0893\-\e 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\-\e 49bf\-beb8\-0d4ccc899f0f LVM Snapshot Options \-\-size 2G \-c 128 .EE .PP Agora a sessão foi criada, pode\-se correr comandos nela: .PP .EX % \f[CB]schroot \-r \-c sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d4ccc899f0f \-\- \e uname \-sr\fR\[CR] I: [sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d4ccc899f0f chroot] Running \e command: \[lq]uname \-sr\[rq] Linux 2.6.18\-3\-powerpc % \f[CB]schroot \-r \-c $SESSION \-\- uname \-sr\fR\[CR] I: [sid\-snap\-fe170af9\-d9be\-4800\-b1bd\-de275858b938 chroot] Running \e command: \[lq]uname \-sr\[rq] Linux 2.6.18\-3\-powerpc .EE .PP Quando todos os comandos a correr na sessão tiverem sido executados, a sessão pode ser terminada: .PP .EX \f[CR]% \f[CB]schroot \-e \-c sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d4ccc899f0f\f[CB]\[CR] \f[CR]% \f[CB]schroot \-e \-c $SESSION\f[CB]\[CR]\fR .EE .PP 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: .PP .EX \f[CR]% \f[CB]schroot \-b \-c sid\-snap \-n my\-session\-name\f[CB]\[CR] \f[CR]my\-session\-name\fR .EE .SH "RESOLUÇÃO DE PROBLEMAS" 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 \fB\-\-debug=\fP\fIlevel\fP para ligar as mensagens de depuração. Isto dá imensamente mais informação. Os níveis de depuração válidos são \[oq]none\[cq], e \[oq]notice\[cq], \[oq]info\[cq], \[oq]warning\[cq] e \[oq]critical\[cq] de modo a aumentar a severidade. Quando mais baixo o nível de severidade, maior a quantidade de resultados. .PP Se você está a ter problemas, os desenvolvedores podem ser contactados na lista de mail: .br \f[CR]Debian\ buildd\-tools\ Developers\fR .br \f[CR]\fR .SH BUGS Nas arquitecturas \fBmips\fP e \fBmipsel\fP, os kernels Linux até e incluindo a versão 2.6.17 têm suporte \fBpersonality\fP(2) quebrado, o que resulta em falha ao definir a personalidade. Isto irá ser visto como um erro de \[lq]Operação não permitida\[rq] (EPERM). Para contornar este problema, defina \f[CI]personality\fR para \[oq]undefined\[cq], ou actualize para um kernel mais recente. .SH AMBIENTE 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. .PP 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 \f[CI]environment\-filter\fR irá permitir que a lista de exclusão seja modificada; veja \fBschroot.conf\fP(5) para mais detalhes. .SH FICHEIROS .SS "Ficheiros de configuração" .TP \f[BI]\*[SCHROOT_CONF]\fR 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. .TP \f[BI]\*[SCHROOT_CONF_CHROOT_D]\fR Definições de chroot adicionais podem ser colocadas em ficheiros sob este directório. Elas são tratadas exactamente na mesma maneira que \fI\*[SCHROOT_CONF]\fP. 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 \fBrun\-parts\fP(8) quando corrido com a opção \fI\-\-lsbsysinit\fP. .TP \f[BI]\*[SCHROOT_CONF_SETUP_D]\fR Os directórios de scripts de configuração de chroot de todo o sistema. Veja \fBconfiguração do schroot\fP(5). .TP \f[BI]/etc/pam.d/schroot\fR Configuração de PAM. .SS "Directórios do sistema" .TP \f[BI]\*[SCHROOT_LIBEXEC_DIR]\fR Directório que contém programas ajudantes usados por scripts de configuração. .SS "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. .TP \f[BI]\*[SCHROOT_SESSION_DIR]\fR Directório que contém a configuração de sessão para cada sessão activa. .TP \f[BI]\*[SCHROOT_MOUNT_DIR]\fR Directório usado para montar o sistema de ficheiros usado por cada sessão activa. .TP \f[BI]\*[SCHROOT_UNDERLAY_DIR]\fR Directório usado para sistema de ficheiros union fonte (inferior). .TP \f[BI]\*[SCHROOT_OVERLAY_DIR]\fR Directório usado para sistema de ficheiros union superior gravável. .TP \f[BI]\*[SCHROOT_FILE_UNPACK_DIR]\fR Directório usado para desempacotar chroots de ficheiro. .SH AUTORES Roger Leigh. .SH COPYRIGHT Copyright \(co 2005\-2012 Roger Leigh \f[CR]\fR .PP \fB\*[PROGRAM]\fP é 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. .SH "VEJA TAMBÉM" \fBdchroot\fP(1), \fBsbuild\fP(1), \fBchroot\fP(2), \fBschroot.conf\fP(5). \fBschroot\-setup\fP(5), \fBschroot\-faq\fP(7), \fBrun\-parts\fP(8), .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: