diff options
author | Li-Wen Hsu <lwhsu@FreeBSD.org> | 2021-03-14 12:08:55 +0000 |
---|---|---|
committer | Li-Wen Hsu <lwhsu@FreeBSD.org> | 2021-03-14 12:08:55 +0000 |
commit | a9a9e661059557e5bb6ab3e756e007b8e5d231ce (patch) | |
tree | b4fba4f5b8c4f985ade395b460936a7447e8d499 /documentation/content/pt-br | |
parent | 55c95407aa64d98cdd8edf18990d89e5b86db96c (diff) | |
download | doc-a9a9e661059557e5bb6ab3e756e007b8e5d231ce.tar.gz doc-a9a9e661059557e5bb6ab3e756e007b8e5d231ce.zip |
Diffstat (limited to 'documentation/content/pt-br')
64 files changed, 1624 insertions, 1624 deletions
diff --git a/documentation/content/pt-br/articles/committers-guide/_index.adoc b/documentation/content/pt-br/articles/committers-guide/_index.adoc index cd7b6d54f2..9ca1865fa4 100644 --- a/documentation/content/pt-br/articles/committers-guide/_index.adoc +++ b/documentation/content/pt-br/articles/committers-guide/_index.adoc @@ -115,7 +115,7 @@ cert-digest-algo SHA512 .... . Gere uma chave: + -[source,bash] +[source,shell] .... % gpg --full-gen-key gpg (GnuPG) 2.1.8; Copyright (C) 2015 Free Software Foundation, Inc. @@ -174,7 +174,7 @@ O cluster do FreeBSD requer uma senha do Kerberos para acessar certos serviços. Para criar uma nova conta do Kerberos no cluster do FreeBSD, ou para redefinir uma senha do Kerberos para uma conta existente usando um gerador de senha aleatória: -[source,bash] +[source,shell] .... % ssh kpasswd.freebsd.org .... @@ -186,7 +186,7 @@ Isto deve ser feito a partir de uma máquina fora do cluster do FreeBSD.org. Uma senha do Kerberos também pode ser definida manualmente, para isto logue no servidor `freefall.FreeBSD.org` e execute: -[source,bash] +[source,shell] .... % kpasswd .... @@ -250,7 +250,7 @@ O repositório da coleção de `ports` do FreeBSD foi migrado do `CVS` para o Su O Subversion pode ser instalado a partir da Coleção de Ports do FreeBSD, executando o comando: -[source,bash] +[source,shell] .... # pkg install subversion .... @@ -265,21 +265,21 @@ Existem algumas maneiras de obter uma cópia de trabalho da árvore do Subversio O primeiro é fazer check-out diretamente do repositório principal. Para a árvore `src`, use: -[source,bash] +[source,shell] .... % svn checkout svn+ssh://repo.freebsd.org/base/head /usr/src .... Para a árvore `doc`, use: -[source,bash] +[source,shell] .... % svn checkout svn+ssh://repo.freebsd.org/doc/head /usr/doc .... Para a árvore da coleção de `ports`, use: -[source,bash] +[source,shell] .... % svn checkout svn+ssh://repo.freebsd.org/ports/head /usr/ports .... @@ -358,7 +358,7 @@ Esta seção explicará como realizar operações comuns do dia-a-dia com o Subv O `SVN` traz em si uma documentação interna de ajuda. Ela pode ser acessada digitando: -[source,bash] +[source,shell] .... % svn help .... @@ -370,7 +370,7 @@ Informações adicionais podem ser encontradas no http://svnbook.red-bean.com/[S Como visto anteriormente, para fazer o checkout da branch principal (head) do FreeBSD: -[source,bash] +[source,shell] .... % svn checkout svn+ssh://repo.freebsd.org/base/head /usr/src .... @@ -379,7 +379,7 @@ Em algum momento, provavelmente será útil ter uma copia de trabalho mais do qu Para fazer isso, primeiro confira a raiz do repositório: -[source,bash] +[source,shell] .... % svn checkout --depth=immediates svn+ssh://repo.freebsd.org/base .... @@ -388,7 +388,7 @@ Isso vai obter o `base` com todos os arquivos que ele contém (no momento da esc É possível expandir a cópia de trabalho. Basta alterar a profundidade dos vários subdiretórios: -[source,bash] +[source,shell] .... % svn up --set-depth=infinity base/head % svn up --set-depth=immediates base/release base/releng base/stable @@ -398,14 +398,14 @@ O comando acima irá baixar uma cópia completa do `head`, além de cópias vazi Se numa data posterior você tiver necessidade de mesclar algo, por exemplo, com a `7-STABLE`, expanda a cópia de trabalho: -[source,bash] +[source,shell] .... % svn up --set-depth=infinity base/stable/7 .... As subárvores não precisam ser expandidas completamente. Por exemplo, para expandir apenas o `stable/7/sys` e depois expandir o resto do `stable/7`: -[source,bash] +[source,shell] .... % svn up --set-depth=infinity base/stable/7/sys % svn up --set-depth=infinity base/stable/7 @@ -418,7 +418,7 @@ Atualizar a árvore com `svn update` irá apenas atualizar o que foi pedido ante É possível efetuar o checkout anonimo o repositório Subversion do FreeBSD. Isso dará acesso a uma árvore somente leitura que pode ser atualizada, mas que não poderá ser enviada de volta para o repositório principal por meio de um commit. Para fazer isso, use: -[source,bash] +[source,shell] .... % svn co https://svn.FreeBSD.org/base/head /usr/src .... @@ -430,7 +430,7 @@ Mais detalhes sobre o uso do Subversion podem ser encontrados em link:{handbook} Para atualizar uma cópia de trabalho para a revisão mais recente ou uma revisão específica: -[source,bash] +[source,shell] .... % svn update % svn update -r12345 @@ -441,14 +441,14 @@ Para atualizar uma cópia de trabalho para a revisão mais recente ou uma revis Para ver as alterações locais que foram feitas na cópia de trabalho: -[source,bash] +[source,shell] .... % svn status .... Para mostrar alterações locais e arquivos que estão desatualizados, execute: -[source,bash] +[source,shell] .... % svn status --show-updates .... @@ -460,21 +460,21 @@ O `SVN` não precisa ser avisado com antecedência sobre a edição de arquivos. Para efetuar o commit de todas as alterações no diretório atual e em todos os seus subdiretórios: -[source,bash] +[source,shell] .... % svn commit .... Para efetuar o commit de todas as alterações, por exemplo, nos arquivos [.filename]#lib/libfetch/# e [.filename]#usr/bin/fetch/# em uma única operação, execute: -[source,bash] +[source,shell] .... % svn commit lib/libfetch usr/bin/fetch .... Também existe um wrapper de commit para a árvore de ports para manipular as propriedades e para verificar a sanidade das mudanças: -[source,bash] +[source,shell] .... % /usr/ports/Tools/scripts/psvn commit .... @@ -489,7 +489,7 @@ Antes de adicionar arquivos, obtenha uma cópia do https://people.FreeBSD.org/~p Os arquivos são adicionados a um `SVN` repositório com `svn add`. Para adicionar um arquivo chamado __foo__, edite-o e depois execute: -[source,bash] +[source,shell] .... % svn add foo .... @@ -501,7 +501,7 @@ A maioria dos novos arquivos fonte deve incluir uma string `$FreeBSD: head/pt_BR Os arquivos podem ser removidos com `svn remove`: -[source,bash] +[source,shell] .... % svn remove foo .... @@ -510,7 +510,7 @@ O subversion não requer a exclusão do arquivo antes de usaramos o comando `svn É possível adicionar diretórios com `svn add`: -[source,bash] +[source,shell] .... % mkdir bar % svn add bar @@ -518,14 +518,14 @@ O subversion não requer a exclusão do arquivo antes de usaramos o comando `svn Apesar que o `svn mkdir` torna isso mais fácil, combinando a criação do diretório e a adição dele: -[source,bash] +[source,shell] .... % svn mkdir bar .... Como arquivos, os diretórios são removidos com `svn rm`. Não existe um comando separado especificamente para remover diretórios. -[source,bash] +[source,shell] .... % svn rm bar .... @@ -535,7 +535,7 @@ Como arquivos, os diretórios são removidos com `svn rm`. Não existe um comand Este comando cria uma cópia do arquivo [.filename]#foo.c# nomeado [.filename]#bar.c#, com o novo arquivo também sob controle de versão e com o histórico completo de [.filename]#foo.c#: -[source,bash] +[source,shell] .... % svn copy foo.c bar.c .... @@ -544,7 +544,7 @@ Geralmente é preferível copiar desta forma ao invés de copiar o arquivo com c Para mover e renomear um arquivo: -[source,bash] +[source,shell] .... % svn move foo.c bar.c .... @@ -563,14 +563,14 @@ O `svn diff` exibe alterações na cópia de trabalho. Diffs gerado por `SVN` s O `svn diff` pode mostrar as mudanças entre duas revisões do mesmo arquivo: -[source,bash] +[source,shell] .... % svn diff -r179453:179454 ROADMAP.txt .... Ele também pode mostrar todas as alterações para um changeset específico. Este comando mostra quais alterações foram feitas no diretório atual e em todos os subdiretórios do changeset 179454: -[source,bash] +[source,shell] .... % svn diff -c179454 . .... @@ -585,14 +585,14 @@ Mudanças locais (incluindo adições e deleções) podem ser revertidas usando Se um `svn update` resultou em um conflito de mesclagem, o Subversion irá lembrar quais arquivos têm conflitos e se recusará a fazer o commit de quaisquer alterações nesses arquivos até que seja explicitamente informado que os conflitos foram resolvidos. O procedimento simples, ainda não obsoleto, é: -[source,bash] +[source,shell] .... % svn resolved foo .... No entanto, o procedimento preferido é: -[source,bash] +[source,shell] .... % svn resolve --accept=working foo .... @@ -622,7 +622,7 @@ A opção `--depth` se aplica a muitos outros comandos, incluindo `svn commit`, Como o parâmetro `--depth` utilizado é persistente, existe uma opção `--set-depth` para o `svn update` que irá mudar a profundidade selecionada. Assim, dada a cópia de trabalho produzida pelo exemplo anterior: -[source,bash] +[source,shell] .... % cd ~/freebsd % svn update --set-depth=immediates . @@ -630,7 +630,7 @@ Como o parâmetro `--depth` utilizado é persistente, existe uma opção `--set- O comando acima irá popular a cópia de trabalho em _~/freebsd_ com [.filename]#ROADMAP.txt# e subdiretórios vazios, e nada acontecerá quando `svn update` for executado nos subdiretórios. No entanto, esse comando definirá a profundidade para _head_ (nesse caso) como infinito e o populará totalmente: -[source,bash] +[source,shell] .... % svn update --set-depth=infinity head .... @@ -648,14 +648,14 @@ Certas operações podem ser realizadas diretamente no repositório sem tocar na A criação de uma branch é muito rápida. Este comando seria usado para criar a branch `RELENG_8`: -[source,bash] +[source,shell] .... % svn copy svn+ssh://repo.freebsd.org/base/head svn+ssh://repo.freebsd.org/base/stable/8 .... Isso equivale a esses comandos, que levam minutos e horas, em vez de segundos, dependendo da sua conexão de rede: -[source,bash] +[source,shell] .... % svn checkout --depth=immediates svn+ssh://repo.freebsd.org/base % cd base @@ -691,7 +691,7 @@ Se você considerar o caso em que uma revisão altera várias partes separadas d Mesclagens para as branches `stable/` devem originar-se da `head/`. Por exemplo: -[source,bash] +[source,shell] .... svn merge -c r123456 ^/head/ stable/11 svn commit stable/11 @@ -699,7 +699,7 @@ svn commit stable/11 Mesclagens para as branches `releng/` devem sempre se originar da branch `stable/` correspondente. Por exemplo: -[source,bash] +[source,shell] .... svn merge -c r123456 ^/stable/11 releng/11.0 svn commit releng/11.0 @@ -712,7 +712,7 @@ Os committers só podem se efetuar um commit para as branches `releng/` durante Todas as mesclagens são mescladas e enviadas por commit a partir da raiz da branch. Todas as mesclagens se parecem com: -[source,bash] +[source,shell] .... svn merge -cr123456 ^/head/checkout svn commit checkout @@ -720,7 +720,7 @@ svn commit checkout Observe que _checkout_ deve ser uma verificação completa da branch na qual a mesclagem ocorre. -[source,bash] +[source,shell] .... svn merge -c r123456 ^/stable/10 releng/10.0 .... @@ -729,7 +729,7 @@ svn merge -c r123456 ^/stable/10 releng/10.0 Devido aos problemas de propagação do mergeinfo descritos anteriormente, é muito importante nunca mesclar as alterações em uma cópia de trabalho esparsa. Sempre use um checkout completo do branch que está sendo mesclado. Por exemplo, ao mesclar de HEAD para 7, use um checkout completo de stable/7: -[source,bash] +[source,shell] .... % cd stable/7 % svn up --set-depth=infinity @@ -741,7 +741,7 @@ O diretório de destino também deve estar atualizado e não deve conter altera Identificar revisões a serem mescladas é uma obrigação. Se o alvo já tiver mergeinfo completo, solicite uma lista para o `SVN`: -[source,bash] +[source,shell] .... % cd stable/6/contrib/openpam % svn mergeinfo --show-revs=eligible $FSVN/head/contrib/openpam @@ -764,7 +764,7 @@ Por exemplo, para mesclar: Supondo que as revisões $P e $Q já tenham sido mescladas e que o diretório atual seja uma cópia de trabalho atualizada de stable/$B, a mergeinfo existente será semelhante a: -[source,bash] +[source,shell] .... % svn propget svn:mergeinfo -R $target $target - /head/$source:$P,$Q @@ -772,7 +772,7 @@ $target - /head/$source:$P,$Q A mesclagem é feita assim: -[source,bash] +[source,shell] .... % svn merge -c$R $FSVN/head/$source $target .... @@ -781,7 +781,7 @@ A mesclagem é feita assim: O svn:mergeinfo agora se parece com: -[source,bash] +[source,shell] .... % svn propget svn:mergeinfo -R $target $target - head/$source:$P,$Q,$R @@ -795,14 +795,14 @@ Como um exemplo prático, considere este cenário. As alterações no [.filename O primeiro passo é inspecionar o mergeinfo existente. -[source,bash] +[source,shell] .... % svn propget svn:mergeinfo -R stable/9/shared/man/man4 .... Tome uma nota rápida de como ele se parece antes de avançar para o próximo passo; fazendo a mesclagem real: -[source,bash] +[source,shell] .... % svn merge -c r238987 svn+ssh://repo.freebsd.org/base/head/shared/man/man4 stable/9/shared/man/man4 --- Merging r238987 into 'stable/9/shared/man/man4': @@ -814,7 +814,7 @@ U stable/9/shared/man/man4/netmap.4 Verifique se o número de revisão da revisão mesclada foi adicionado. Quando isso for verificado, a única coisa que resta é o commit em si. -[source,bash] +[source,shell] .... % svn commit stable/9/shared/man/man4 .... @@ -865,7 +865,7 @@ Durante a conversão do `CVS` para o Subversion, as branches do fornecedor foram Para achatar a árvore do `pf`: -[source,bash] +[source,shell] .... % cd vendor/pf/dist/contrib/pf % svn mv $(svn list) ../.. @@ -883,7 +883,7 @@ As tags também podem ser achatadas (3, 4, 3.5 etc.); o procedimento é exatamen A árvore `dist` pode ser limpa conforme necessário. A desativação da expansão de palavras-chave é recomendada, pois não faz sentido no código do fornecedor não modificado e, em alguns casos, pode até mesmo ser prejudicial. O OpenSSH, por exemplo, inclui dois arquivos que se originaram do FreeBSD e ainda contêm as tags da versão original. Para fazer isso: -[source,bash] +[source,shell] .... % svn propdel svn:keywords -R . % svn commit @@ -893,7 +893,7 @@ A árvore `dist` pode ser limpa conforme necessário. A desativação da expans Se estiver importando pela primeira vez após a mudança para o Subversion, faça o bootstrap do `svn:mergeinfo` no diretório de destino da árvore principal para a revisão que corresponde à última alteração relacionada à árvore do fornecedor, antes de importar novos fontes: -[source,bash] +[source,shell] .... % cd head/contrib/pf % svn merge --record-only svn+ssh://repo.freebsd.org/base/vendor/pf/dist@180876 . @@ -910,7 +910,7 @@ O Subversion é capaz de armazenar uma distribuição completa na árvore do for Um `svn add` é necessário para adicionar quaisquer arquivos que foram adicionados desde a última importação do fornecedor, e o `svn rm` é necessário para remover todos os que foram removidos desde então. Recomenda-se a preparação de listas ordenadas do conteúdo da árvore do fornecedor e das fontes que serão importadas, para facilitar o processo. -[source,bash] +[source,shell] .... % cd vendor/pf/dist % svn list -R | grep -v '/$' | sort >../old @@ -924,7 +924,7 @@ Com esses dois arquivos, o `comm -23 ../old ../new` listará os arquivos removid Agora, os fontes devem ser copiados para [.filename]#dist# e os comandos `svn add` e `svn rm` são usados conforme necessário: -[source,bash] +[source,shell] .... % cd vendor/pf/pf-4.3 % tar cf - . | tar xf - -C ../dist @@ -943,7 +943,7 @@ Agora é possível fazer o commit. No entanto, é uma boa prática certificar-se Depois de realizado o commit, as versões do fornecedor são marcadas para referência futura. A melhor e mais rápida maneira de fazer isso é diretamente no repositório: -[source,bash] +[source,shell] .... % svn cp svn+ssh://repo.freebsd.org/base/vendor/pf/dist svn+ssh://repo.freebsd.org/base/vendor/pf/4.3 .... @@ -952,7 +952,7 @@ Quando isso estiver concluído, execute o `svn up` para a cópia de trabalho do Se você criar a tag na cópia de trabalho da árvore, os resultados do `svn:mergeinfo` deverão ser removidos: -[source,bash] +[source,shell] .... % cd vendor/pf % svn cp dist 4.3 @@ -961,7 +961,7 @@ Se você criar a tag na cópia de trabalho da árvore, os resultados do `svn:mer ===== Mesclagem para o Head -[source,bash] +[source,shell] .... % cd head/contrib/pf % svn up @@ -974,7 +974,7 @@ O `--accept=postpone` diz ao Subversion para não reclamar sobre conflitos de me ==== A mudança do `cvs2svn` ocorreu em 3 de junho de 2008. Ao realizar mesclagens de fornecedores para pacotes que já estavam presentes e convertidos pelo processo `cvs2svn`, o comando usado para mesclar [.filename]#/vendor/package_name/dist# para [.filename]#/head/package_location# (por exemplo, [.filename]#head/contrib/sendmail#) deve usar `-c _REV_` para indicar a revisão a ser mesclada a partir da árvore [.filename]#/vendor#. Por exemplo: -[source,bash] +[source,shell] .... % svn checkout svn+ssh://repo.freebsd.org/base/head/contrib/sendmail % cd sendmail @@ -993,7 +993,7 @@ Se estiver usando o shell Zsh, o `^` deve ser escapado com `\` ou entre aspas. Certifique-se de que todos os arquivos adicionados ou removidos na árvore do fornecedor tenham sido adicionados ou removidos corretamente na árvore principal. Para verificar os diffs com relação ao branch do fornecedor: -[source,bash] +[source,shell] .... % svn diff --no-diff-deleted --old=svn+ssh://repo.freebsd.org/base/vendor/pf/dist --new=. .... @@ -1016,7 +1016,7 @@ Esta seção é um exemplo de importação e marcação do byacc no [.filename]# Primeiro, prepare o diretório em [.filename]#vendor#: -[source,bash] +[source,shell] .... % svn co --depth immediates $FSVN/vendor % cd vendor @@ -1026,7 +1026,7 @@ Primeiro, prepare o diretório em [.filename]#vendor#: Agora, importe os fontes para o diretório [.filename]#dist#. Uma vez que os arquivos estiverem no lugar, faça o `svn add` dos novos, e então faça o `svn commit` e aplique a tag na versão importada. Para poupar tempo e largura de banda, é possível efetuar diretamente o commit e as marcações de forma remota: -[source,bash] +[source,shell] .... % svn cp -m "Tag byacc 20120115" $FSVN/vendor/byacc/dist $FSVN/vendor/byacc/20120115 .... @@ -1035,7 +1035,7 @@ Agora, importe os fontes para o diretório [.filename]#dist#. Uma vez que os arq Devido a este ser um novo arquivo, copie-o para a mesclagem: -[source,bash] +[source,shell] .... % svn cp -m "Import byacc to contrib" $FSVN/vendor/byacc/dist $FSVN/head/contrib/byacc .... @@ -1047,7 +1047,7 @@ Ainda é possível trabalhar normalmente nos fontes recém importados. A reversão de um commit para uma versão anterior é bem fácil: -[source,bash] +[source,shell] .... % svn merge -r179454:179453 ROADMAP.txt % svn commit @@ -1055,7 +1055,7 @@ A reversão de um commit para uma versão anterior é bem fácil: Alterar a sintaxe do número, com o negativo significando a reversão de uma mudança, também pode ser usado: -[source,bash] +[source,shell] .... % svn merge -c -179454 ROADMAP.txt % svn commit @@ -1063,7 +1063,7 @@ Alterar a sintaxe do número, com o negativo significando a reversão de uma mud Isso também pode ser feito diretamente no repositório: -[source,bash] +[source,shell] .... % svn merge -r179454:179453 svn+ssh://repo.freebsd.org/base/ROADMAP.txt .... @@ -1075,7 +1075,7 @@ Isso também pode ser feito diretamente no repositório: A reversão da exclusão de um arquivo é um pouco diferente. É necessário copiar a versão do arquivo que antecede a exclusão. Por exemplo, para restaurar um arquivo que foi excluído na revisão N, restaure a versão N-1: -[source,bash] +[source,shell] .... % svn copy svn+ssh://repo.freebsd.org/base/ROADMAP.txt@179454 % svn commit @@ -1083,7 +1083,7 @@ A reversão da exclusão de um arquivo é um pouco diferente. É necessário cop ou, igualmente: -[source,bash] +[source,shell] .... % svn copy svn+ssh://repo.freebsd.org/base/ROADMAP.txt@179454 svn+ssh://repo.freebsd.org/base .... @@ -1120,7 +1120,7 @@ Uma maneira de limitar o tempo necessário é pegar um arquivo de https://downlo Extraia o arquivo e o atualize: -[source,bash] +[source,shell] .... % tar xf svnmirror-base-r261170.tar.xz % svnsync sync file:///home/svnmirror/base @@ -1130,7 +1130,7 @@ Agora, configure isso para executar a partir do man:cron[8], faça checkouts loc O mirror seed está definido para buscar o conteúdo a partir de `svn://svn.freebsd.org/base`. A configuração para o mirror é armazenada em `revprop 0` no mirror local. Para ver a configuração, tente: -[source,bash] +[source,shell] .... % svn proplist -v --revprop -r 0 file:///home/svnmirror/base .... @@ -1142,7 +1142,7 @@ Use `svn propset` para mudar as coisas. Os arquivos que possuem bits high-ASCII são considerados arquivos binários no `SVN`, portanto, as verificações de pré-commit falham e indicam que a propriedade `mime-type` deve ser definida como `application/octet-stream`. No entanto, o uso deste é desencorajado, por isso, não o defina. A melhor maneira é sempre evitar dados high-ASCII, para que possam ser lidos em qualquer lugar com qualquer editor de texto, mas se não for possivel evitar, em vez de alterar o mime-type, defina a propriedade `fbsd:notbinary` com o `propset`: -[source,bash] +[source,shell] .... % svn propset fbsd:notbinary yes foo.data .... @@ -1156,14 +1156,14 @@ Como explicado em https://people.FreeBSD.org/\~peter/svn_notes.txt[https://peopl Para criar um branch de projeto: -[source,bash] +[source,shell] .... % svn copy svn+ssh://repo.freebsd.org/base/head svn+ssh://repo.freebsd.org/base/projects/spif .... Para mesclar as alterações do HEAD de volta ao branch de projeto: -[source,bash] +[source,shell] .... % cd copy_of_spif % svn merge svn+ssh://repo.freebsd.org/base/head @@ -1178,7 +1178,7 @@ Nos logs de commit, etc., "rev 179872" é soletrado "r179872" conforme a conven É possível acelerar o svn adicionando estas entradas ao [.filename]#~/.ssh/config#: -[source,bash] +[source,shell] .... Host * ControlPath ~/.ssh/sockets/master-l-r@h:p @@ -1188,14 +1188,14 @@ ControlPersist yes e depois digitando -[source,bash] +[source,shell] .... mkdir ~/.ssh/sockets .... Fazer o check-out de uma cópia de trabalho com um cliente Subversion padrão sem patches específicos do FreeBSD (`OPTIONS_SET=FREEBSD_TEMPLATE`) significará que as tags `$FreeBSD: head/pt_BR.ISO8859-1/articles/committers-guide/article.xml 53731 2020-01-01 14:37:53Z ebrandi $` não serão expandidas. Uma vez que a versão correta foi instalada, engane o Subversion para expandi-las da seguinte forma: -[source,bash] +[source,shell] .... % svn propdel -R svn:keywords . % svn revert -R . @@ -1461,14 +1461,14 @@ O nome e endereço de e-mail da pessoa ou pessoas que aprovaram a alteração; p Enquanto estiver sob orientação, obtenha aprovação do mentor antes do commit. Digite o nome de usuário do mentor neste campo e adicione uma nota de que ele é um mentor: -[source,bash] +[source,shell] .... Approved by: username-of-mentor (mentor) .... Se uma equipe aprovou esses commits, inclua o nome da equipe seguido do nome de usuário do aprovador entre parênteses. Por exemplo: -[source,bash] +[source,shell] .... Approved by: re (username) .... @@ -2037,7 +2037,7 @@ A maneira mais fácil de adicionar um novo port é o script `addport` localizado Verifique o port, de preferência para garantir que ele seja compilado e empacotado corretamente. Essa é a seqüência recomendada: -[source,bash] +[source,shell] .... # make install # make package diff --git a/documentation/content/pt-br/articles/contributing/_index.adoc b/documentation/content/pt-br/articles/contributing/_index.adoc index dcfc565770..d4650dd374 100644 --- a/documentation/content/pt-br/articles/contributing/_index.adoc +++ b/documentation/content/pt-br/articles/contributing/_index.adoc @@ -129,14 +129,14 @@ Supondo que você consiga obter acesso à uma versão razoavelmente atualizada d O formato preferido do man:diff[1] para o envio de um patch, é o formato de saída unificada gerado pelo comando `diff -u`. -[source,bash] +[source,shell] .... % diff -u oldfile newfile .... ou -[source,bash] +[source,shell] .... % diff -u -r -N olddir newdir .... diff --git a/documentation/content/pt-br/articles/cups/_index.adoc b/documentation/content/pt-br/articles/cups/_index.adoc index 6b128d80e7..29accc4936 100644 --- a/documentation/content/pt-br/articles/cups/_index.adoc +++ b/documentation/content/pt-br/articles/cups/_index.adoc @@ -47,7 +47,7 @@ O site do CUPS é http://www.cups.org/[http://www.cups.org/]. Para instalar o CUPS utilizando binários pré compilados, execute o seguinte comando como root a partir de um terminal: -[source,bash] +[source,shell] .... # pkg install cups .... @@ -92,7 +92,7 @@ application/octet-stream Uma vez que estas alterações tenham sido feitas, os sistemas man:devfs[8] e CUPS deverão ser reiniciados, seja reiniciando o computador ou executando os dois comandos a seguir como root em um terminal: -[source,bash] +[source,shell] .... # /etc/rc.d/devfs restart # /usr/local/etc/rc.d/cupsd restart diff --git a/documentation/content/pt-br/articles/filtering-bridges/_index.adoc b/documentation/content/pt-br/articles/filtering-bridges/_index.adoc index 7bef9d853c..565e708eaa 100644 --- a/documentation/content/pt-br/articles/filtering-bridges/_index.adoc +++ b/documentation/content/pt-br/articles/filtering-bridges/_index.adoc @@ -112,7 +112,7 @@ Se houver algum problema, você deve resolvê-los agora antes de prosseguir. Neste ponto, para habilitar a ponte, você tem que executar os seguintes comandos (tendo a perspicácia para substituir os nomes das duas interfaces de rede [.filename]#fxp0# e [.filename]#xl0# com as suas próprias): -[source,bash] +[source,shell] .... # sysctl net.link.ether.bridge.config=fxp0:0,xl0:0 # sysctl net.link.ether.bridge.ipfw=1 diff --git a/documentation/content/pt-br/articles/fonts/_index.adoc b/documentation/content/pt-br/articles/fonts/_index.adoc index 12e20cece1..64095c3bbe 100644 --- a/documentation/content/pt-br/articles/fonts/_index.adoc +++ b/documentation/content/pt-br/articles/fonts/_index.adoc @@ -105,7 +105,7 @@ font8x8="iso-8x8" # font 8x8 from /usr/shared/syscons/fonts/* (or NO). O comando para alterar o modo é man:vidcontrol[1]: -[source,bash] +[source,shell] .... % vidcontrol VGA_80x60 .... @@ -128,7 +128,7 @@ O X11 pode tanto usar o formato [.filename]#.pfa# quanto o formato [.filename]#. Já existe um diretório chamado [.filename]#Type1#. A forma mais direta de adicionar uma nova fonte é colocá-la nesse diretório. Uma forma melhor seria colocar todas as novas fontes num diretório separado e usar um link simbólico para as fontes adicionais. Isso permite identificar as fontes sem confundir com aquelas que são originalmente fornecidas. Por exemplo: -[source,bash] +[source,shell] .... Cria um diretório para armazenar os arquivos de fonte % mkdir -p /usr/local/shared/fonts/type1 @@ -163,7 +163,7 @@ Agora, para usar a nova fonte com o X11, deve-se tornar os arquivos de fonte dis Um novo nome precisa ser criado para cada nova fonte. Se você possui alguma informação na documentação que acompanha a fonte, então isso pode servir de base para a criação do nome. Se não há informação, então você pode ter alguma idéia usando man:strings[1] no arquivo da fonte. Por exemplo: -[source,bash] +[source,shell] .... % strings showboat.pfb | more %!FontType1-1.0: Showboat 001.001 @@ -194,7 +194,7 @@ end readonly def Usando essas informações, um possível nome poderia ser: -[source,bash] +[source,shell] .... -type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1 .... @@ -224,7 +224,7 @@ proporcional ou monoespaçada. A opção _Poporcional_ é usada quando o _isFixe Todos esses nomes são arbitrários, mas deve-se tentar ser compatível com as convenções existentes. A fonte é referenciada pelo nome com possíveis curingas pelo programa X11, então o nome escolhido tem que fazer algum sentido. Pode-se começar simplesmente usando -[source,bash] +[source,shell] .... …-normal-r-normal-…-p-… .... @@ -233,7 +233,7 @@ como o nome, e então usar man:xfontsel[1] para examiná-lo e ajustar o nome com Então, para completar nosso exemplo: -[source,bash] +[source,shell] .... Torne a fonte acessível para o X11 % cd /usr/X11R6/lib/X11/fonts/Type1 @@ -268,7 +268,7 @@ Referências: man:xfontsel[1], man:xset[1], The X Windows System in a Nutshell, O Ghostscript referencia uma fonte via seu arquivo de [.filename]#Fontmap#. Este deve ser modificado de uma maneira similar a feita para o arquivo [.filename]#fonts.dir# do X11. O Ghostscript pode usar tanto o formato [.filename]#.pfa# quanto o [.filename]#.pfb#. Usando a fonte do exemplo anterior, segue um passo a passo de como utilizá-la com o Ghostscript: -[source,bash] +[source,shell] .... Coloque a fonte no diretório do Ghostscript % cd /usr/local/shared/ghostscript/fonts @@ -308,7 +308,7 @@ Agora que a nova fonte pode ser utilizada tanto pelo X11 quanto pelo Ghostscript A primeira ferramenta é o `afmtodit`. Ela normalmente não está instalada, então deve ser baixada de uma fonte de distribuição. Eu percebi que teria que mudar a primeira linha do arquivo, então eu fiz: -[source,bash] +[source,shell] .... % cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp % ex /tmp/afmtodit.pl @@ -320,7 +320,7 @@ A primeira ferramenta é o `afmtodit`. Ela normalmente não está instalada, ent Essa ferramenta irá criar o arquivo de fontes do Groff a partir dos arquivos de métrica ([.filename]#.afm# suffix.) Continuando com nosso exemplo: -[source,bash] +[source,shell] .... Muitos arquivos .afm estão no formato do Mac, com ^M delimitando as linhas Nós temos que convertê-los para o estilo UNIX que delimita as linhas com ^J @@ -337,7 +337,7 @@ A fonte agora pode ser referenciada pelo nome SHOWBOAT. Se o Ghostscript é utilizado para impressão com driver simulado no sistema, então não precisa fazer mais nada. Entretanto, se as impressoras usam PostScript(R) real, então a fonte deve ser baixada pela impressora de maneira que a fonte a ser utilizada (a menos que a impressora tenha a fonte showboat embutida ou acessível a partir de um disco de fontes.) O passo final é criar uma fonte descarregável. A ferramenta `pfbtops` é usada para criar o formato [.filename]#.pfa# da fonte, e o arquivo para [.filename]#download# é modificado para referenciar a nova fonte. O arquivo para [.filename]#download# deve referenciar o nome interno da fonte. Isso pode ser facilmente determinado de um arquivo de fonte groff conforme demonstrado: -[source,bash] +[source,shell] .... Criando o arquivo de fonte .pfa @@ -346,7 +346,7 @@ Criando o arquivo de fonte .pfa Claro que, se o arquivo [.filename]#.pfa# já existe, apenas crie um link simbólico para referenciá-lo. -[source,bash] +[source,shell] .... Obtendo o nome interno da fonte @@ -363,7 +363,7 @@ Showboat showboat.pfa Para testar a fonte: -[source,bash] +[source,shell] .... % cd /tmp @@ -432,7 +432,7 @@ Se você é paranóico sobre o trabalhar no diretório [.filename]#/usr/src#, si + Na área de trabalho, você precisará compilar o utilitário. Apenas digite: + -[source,bash] +[source,shell] .... # make -f Makefile.sub afmtodit .... @@ -443,7 +443,7 @@ Depois que todos esses utilitários estiverem no lugar, você está pronto para . Crie o arquivo [.filename]#.afm# digitando: + -[source,bash] +[source,shell] .... % gs -dNODISPLAY -q -- ttf2pf.ps TTF_name PS_font_name AFM_name .... @@ -454,7 +454,7 @@ Isso também produz um arquivo [.filename]#.pfa#, o arquivo ascii de métricas d + Por exemplo, para converter a fonte de código de barras 30f9 usando o nome de arquivo padrão, use o seguinte comando: + -[source,bash] +[source,shell] .... % gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf Aladdin Ghostscript 5.10 (1997-11-23) @@ -465,7 +465,7 @@ Converting 3of9.ttf to 3of9.pfa and 3of9.afm. + Se você quiser que as fontes convertidas sejam armazenadas em [.filename]#A.pfa# e [.filename]#B.afm#, use este comando: + -[source,bash] +[source,shell] .... % gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf A B Aladdin Ghostscript 5.10 (1997-11-23) @@ -478,14 +478,14 @@ Converting 3of9.ttf to A.pfa and B.afm. + Vá para o diretório [.filename]#/usr/shared/groff_font/devps# para facilitar a execução do comando abaixo. Você provavelmente precisará de privilégios de root para isso. (Ou, se você é paranoico sobre trabalhar lá, certifique-se de referenciar os arquivos [.filename]#DESC#, [.filename]#text.enc# e [.filename]#generate/textmap# como estando neste diretório.) + -[source,bash] +[source,shell] .... % afmtodit -d DESC -e text.enc file.afm generate/textmap PS_font_name .... + Onde, [.filename]#file.afm# é o _AFM_name_ criado pelo `ttf2pf.ps` acima e _PS_font_name_ é o nome da fonte usada a partir desse comando, bem como o nome que man:groff[1] usará para referências a essa fonte. Por exemplo, supondo que você usou o primeiro comando `tiff2pf.ps` acima, a fonte 3of9 Barcode pode ser criada usando o comando: + -[source,bash] +[source,shell] .... % afmtodit -d DESC -e text.enc 3of9.afm generate/textmap 3of9 .... diff --git a/documentation/content/pt-br/articles/freebsd-questions/_index.adoc b/documentation/content/pt-br/articles/freebsd-questions/_index.adoc index 524e6aefc1..c20ca695dc 100644 --- a/documentation/content/pt-br/articles/freebsd-questions/_index.adoc +++ b/documentation/content/pt-br/articles/freebsd-questions/_index.adoc @@ -165,7 +165,7 @@ Há uma chamada de julgamento aqui, é claro, mas a saída do comando man:dmesg[ * Muitas das informações que você precisa fornecer são a saída de programas, como man:dmesg[8], ou mensagens do console, que geralmente aparecem em [.filename]#/var/log/messages#. Não tente copiar essa informação digitando-a novamente; é um sofrimento real e você está fadado a cometer um erro. Para enviar o conteúdo do arquivo de log, faça uma cópia do arquivo e use um editor para reduzir as informações apenas ao que for relevantes ou copie e cole na sua mensagem. Para a saída de programas como man:dmesg[8], redirecione a saída para um arquivo e inclua-o. Por exemplo, + -[source,bash] +[source,shell] .... % dmesg > /tmp/dmesg.out .... diff --git a/documentation/content/pt-br/articles/freebsd-releng/_index.adoc b/documentation/content/pt-br/articles/freebsd-releng/_index.adoc index 1ffbbd0b7d..93337b1677 100644 --- a/documentation/content/pt-br/articles/freebsd-releng/_index.adoc +++ b/documentation/content/pt-br/articles/freebsd-releng/_index.adoc @@ -340,7 +340,7 @@ Veja <<releng-building>> para informações sobre como construir as imagens `ALP Ao criar a branch `stable/`, várias alterações são necessárias na nova branch `stable/` e na branch `head/`. Os arquivos listados são relativos ao repositório raiz. Para criar a nova branch `stable/_12_/` no Subversion: -[source,bash] +[source,shell] .... % svn cp ^/head stable/12/ .... @@ -359,7 +359,7 @@ Uma vez que a branch `stable/_12_/` tenha sido criada, faça as seguintes ediç |[.filename]#stable/12/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h# a| -[source,bash] +[source,shell] .... #ifndef MALLOC_PRODUCTION #define MALLOC_PRODUCTION @@ -495,7 +495,7 @@ Feito isso, o primeiro conjunto de builds `BETA` é iniciado. Builds `BETA` subs Quando a primeira construção `RC` (Release Candidate) está pronta para começar, a branch `releng/` é criada. Este é um processo de várias etapas que deve ser feito em uma ordem específica, a fim de evitar anomalias, como sobreposições com valores de `__FreeBSD_version`, por exemplo. Os caminhos listados abaixo são relativos ao repositório raiz. A ordem dos commits e o que mudar são: -[source,bash] +[source,shell] .... % svn cp ^/stable/12/ releng/12.0/ .... @@ -528,7 +528,7 @@ Quando a primeira construção `RC` (Release Candidate) está pronta para começ |Adicione uma nova linha de aprovadores para a branch releng como foi feito para a branch stable |=== -[source,bash] +[source,shell] .... % svn propdel -R svn:mergeinfo releng/12.0/ % svn commit releng/12.0/ @@ -560,7 +560,7 @@ Antes do FreeBSD 9.2-RELEASE, foi introduzido o [.filename]#src/release/release. Como um breve exemplo do uso de [.filename]#src/release/release.sh# para construir uma única versão em [.filename]#/scratch#: -[source,bash] +[source,shell] .... # /bin/sh /usr/src/release/release.sh .... @@ -578,7 +578,7 @@ KERNEL="GENERIC64" Em seguida, invoque [.filename]#src/release/release.sh# da seguinte forma: -[source,bash] +[source,shell] .... # /bin/sh /usr/src/release/release.sh -c $HOME/release.conf .... @@ -632,7 +632,7 @@ Como o [.filename]#thermite.sh# percorre a lista principal de combinações e lo Assumindo esses caminhos do sistema de arquivos, o [.filename]#thermite.sh# deveria ser chamado como: -[source,bash] +[source,shell] .... # cd /releng/scripts-snapshot/scripts # ./setrev.sh -b stable/12/ @@ -642,7 +642,7 @@ Assumindo esses caminhos do sistema de arquivos, o [.filename]#thermite.sh# deve Quando as compilações forem concluídas, scripts adicionais auxiliares estarão disponíveis para gerar e-mails de snapshots de desenvolvimento que são enviados para a lista de e-mail `freebsd-snapshots@freebsd.org`: -[source,bash] +[source,shell] .... # cd /releng/scripts-snapshot/scripts # ./get-checksums.sh -c ./builds-12.conf | ./generate-email.pl > snapshot-12-mail @@ -671,7 +671,7 @@ Durante o ciclo de release, uma cópia do [.filename]#CHECKSUM.SHA512# e do [.fi Depois de construir a `RELEASE` final, a branch `releng/_12.0_/` é marcada como `release/_12.0.0_/` usando a revisão a partir da qual a `RELEASE` foi construída. Semelhante a criar as branches `stable/_12_/` e `releng/_12.0_/`, isso é feito com `svn cp`. Da raiz do repositório: -[source,bash] +[source,shell] .... % svn cp ^/releng/12.0/@r306420 release/12.0.0/ % svn commit release/12.0.0/ @@ -691,7 +691,7 @@ A preparação dos snapshots e das versões do FreeBSD é um processo de duas pa + Se `EVERYTHINGISFINE` for definido nos arquivos de configuração de compilação, [.filename]#main.conf# no caso dos scripts de compilação mencionados acima, isto acontece automaticamente no man:chroot[8] após a compilação ser concluída, criando a estrutura de diretório em [.filename]#${DESTDIR}/R/ftp-stage# com um estrutura de caminho que corresponde ao que é esperado em `ftp-master`. Isto é equivalente a executar o seguinte diretamente no man:chroot[8]: + -[source,bash] +[source,shell] .... # make -C /usr/src/release -f Makefile.mirrors EVERYTHINGISFINE=1 ftp-stage .... @@ -725,7 +725,7 @@ Assim como nas etapas de preparação, isto requer acesso em nível de `root`, j Como o usuário `archive`: -[source,bash] +[source,shell] .... % cd /archive/tmp/snapshots % pax -r -w -l . /archive/pub/FreeBSD/snapshots diff --git a/documentation/content/pt-br/articles/freebsd-update-server/_index.adoc b/documentation/content/pt-br/articles/freebsd-update-server/_index.adoc index a999a42a73..c55d28bbcf 100644 --- a/documentation/content/pt-br/articles/freebsd-update-server/_index.adoc +++ b/documentation/content/pt-br/articles/freebsd-update-server/_index.adoc @@ -67,7 +67,7 @@ No mínimo, as atualizações requerem a criação de uma versão do FreeBSD mai Faça o download do software https://svnweb.freebsd.org/base/user/cperciva/freebsd-update-build/[freebsd-update-server] instalando package:devel/subversion[] e package:security/ca_root_nss[], e execute: -[source,bash] +[source,shell] .... % svn co https://svn.freebsd.org/base/user/cperciva/freebsd-update-build freebsd-update-server .... @@ -108,7 +108,7 @@ Personalizações para o código de `fetchiso()` podem ser instaladas copiando o <.> O nome do host em construção. Esta informação será exibida em sistemas atualizados ao executar: + -[source,bash] +[source,shell] .... % uname -v .... @@ -125,7 +125,7 @@ O arquivo padrão [.filename]#build.conf# fornecido com o código-fonte do freeb [.procedure] . Crie um ambiente de compilação para o amd64: + -[source,bash] +[source,shell] .... % mkdir -p /usr/local/freebsd-update-server/scripts/7.2-RELEASE/amd64 .... @@ -150,7 +150,7 @@ export EOL=1275289200 <.> <.> A chave man:sha256[1] usada para fazer o hash para a release desejada é publicada no respectivo https://www.FreeBSD.org/releases/[anúncio de release]. <.> Para gerar o número "End of Life" para o [.filename]#build.conf#, consulte o "EOL estimado" publicado no https://www.FreeBSD.org/security/[Site de Segurança do FreeBSD]. O valor de `EOL` pode ser derivado da data listada no site, usando o utilitário man:date[1], por exemplo: + -[source,bash] +[source,shell] .... % date -j -f '%Y%m%d-%H%M%S' '20090401-000000' '+%s' .... @@ -160,7 +160,7 @@ export EOL=1275289200 <.> O primeiro passo é executar o [.filename]#scripts/make.sh#. Isso criará alguns binários, criará diretórios e irá gerar uma chave de assinatura RSA usada para aprovar as compilações. Nesta etapa, uma senha terá que ser fornecida para a criação final da chave de assinatura. -[source,bash] +[source,shell] .... # sh scripts/make.sh cc -O2 -fno-strict-aliasing -pipe findstamps.c -o findstamps @@ -190,7 +190,7 @@ Mantenha um backup do fingerprint gerado. Este valor é necessário para o arqui Neste ponto, estamos prontos para montar uma construção. -[source,bash] +[source,shell] .... # cd /usr/local/freebsd-update-server # sh scripts/init.sh amd64 7.2-RELEASE @@ -198,7 +198,7 @@ Neste ponto, estamos prontos para montar uma construção. O que se segue é uma amostra de uma execução da compilação __inicial__. -[source,bash] +[source,shell] .... # sh scripts/init.sh amd64 7.2-RELEASE Mon Aug 24 16:04:36 PDT 2009 Starting fetch for FreeBSD/amd64 7.2-RELEASE @@ -247,7 +247,7 @@ Então a compilação do world é executada novamente, com patches para world. U Durante este segundo ciclo de compilação, o daemon do protocolo de tempo de rede, man:ntpd[8], é desativado. Segundo o Colin Percival mailto:cperciva@FreeBSD.org[cperciva@FreeBSD.org], Oficial de segurança emérito do FreeBSD, "a compilação do código do https://svnweb.freebsd.org/base/user/cperciva/freebsd-update-build/[freebsd-update-server] precisa identificar os timestamps que são armazenados nos arquivos para que possam ser ignorados ao comparar builds para determinar quais arquivos precisam ser atualizados. Essa busca de timestamp trabalha com duas construções com 400 dias de diferença e compara os resultados." ==== -[source,bash] +[source,shell] .... Mon Aug 24 17:54:07 PDT 2009 Extracting world+src for FreeBSD/amd64 7.2-RELEASE Wed Sep 29 00:54:34 UTC 2010 Building world for FreeBSD/amd64 7.2-RELEASE @@ -286,7 +286,7 @@ world|base|/usr/lib/libalias_ftp.a Finalmente, a construção é concluída. -[source,bash] +[source,shell] .... Values of build stamps, excluding library archive headers: v1.2 (Aug 25 2009 00:40:36) @@ -324,13 +324,13 @@ to sign the release. Aprove a compilação se tudo estiver correto. Mais informações sobre como determinar isso podem ser encontradas no arquivo fonte distribuído chamado [.filename]#USAGE#. Execute [.filename]#scripts/approve.sh#, conforme indicado. Isso assinará a release e moverá os componentes para uma área de preparação adequada para o upload. -[source,bash] +[source,shell] .... # cd /usr/local/freebsd-update-server # sh scripts/mountkey.sh .... -[source,bash] +[source,shell] .... # sh -e scripts/approve.sh amd64 7.2-RELEASE Wed Aug 26 12:50:06 PDT 2009 Signing build for FreeBSD/amd64 7.2-RELEASE @@ -342,7 +342,7 @@ Wed Aug 26 12:50:07 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.2-RELEASE Após o processo de aprovação ser concluído, o procedimento de upload pode ser iniciado. -[source,bash] +[source,shell] .... # cd /usr/local/freebsd-update-server # sh scripts/upload.sh amd64 7.2-RELEASE @@ -352,7 +352,7 @@ Após o processo de aprovação ser concluído, o procedimento de upload pode se ==== No caso de o código de atualização precisar ser reenviado, isso pode ser feito mudando para o diretório de distribuições públicas para o release alvo e atualizando os atributos do arquivo __carregado__. -[source,bash] +[source,shell] .... # cd /usr/local/freebsd-update-server/pub/7.2-RELEASE/amd64 # touch -t 200801010101.01 uploaded @@ -385,7 +385,7 @@ Algumas suposições são feitas para uma versão diferente: Crie o diretório de correção do respectivo release no diretório [.filename]#/usr/local/freebsd-update-server/patches/#. -[source,bash] +[source,shell] .... % mkdir -p /usr/local/freebsd-update-server/patches/7.1-RELEASE/ % cd /usr/local/freebsd-update-server/patches/7.1-RELEASE @@ -395,7 +395,7 @@ Como exemplo, pegue o patch para man:named[8]. Leia o comunicado, e pegue o arqu No https://security.freebsd.org/advisories/FreeBSD-SA-09:12.bind.asc[resumo de segurança], este comunicado é chamado `SA-09:12.bind`. Depois de baixar o arquivo, é necessário renomear o arquivo para um nível de correção apropriado. Sugere-se manter isso consistente com os níveis oficiais de correção do FreeBSD, mas seu nome pode ser escolhido livremente. Para esta compilação, vamos seguir a prática atualmente estabelecida do FreeBSD e chamar isso de `p7`. Renomeie o arquivo: -[source,bash] +[source,shell] .... % cd /usr/local/freebsd-update-server/patches/7.1-RELEASE/; mv bind.patch 7-SA-09:12.bind @@ -415,7 +415,7 @@ Cabe ao administrador do Servidor de Atualização do FreeBSD tomar as medidas a Neste ponto, um _diff_ está pronto para ser construído. O software verifica primeiro para ver se um [.filename]#scripts/init.sh# foi executado na respectiva versão antes de executar a construção do diff. -[source,bash] +[source,shell] .... # cd /usr/local/freebsd-update-server # sh scripts/diff.sh amd64 7.1-RELEASE 7 @@ -423,7 +423,7 @@ Neste ponto, um _diff_ está pronto para ser construído. O software verifica pr O que se segue é um exemplo de uma execução de uma compilação __diferencial__. -[source,bash] +[source,shell] .... # sh -e scripts/diff.sh amd64 7.1-RELEASE 7 Wed Aug 26 10:09:59 PDT 2009 Extracting world+src for FreeBSD/amd64 7.1-RELEASE-p7 @@ -500,7 +500,7 @@ Wed Aug 26 17:20:39 UTC 2009 As atualizações são impressas e a aprovação é solicitada. -[source,bash] +[source,shell] .... New updates: kernel|generic|/GENERIC/kernel.symbols|f|0|0|0555|0|7c8dc176763f96ced0a57fc04e7c1b8d793f27e006dd13e0b499e1474ac47e10| @@ -522,7 +522,7 @@ to sign the build. Siga o mesmo processo descrito anteriormente para aprovar uma compilação: -[source,bash] +[source,shell] .... # sh -e scripts/approve.sh amd64 7.1-RELEASE Wed Aug 26 12:50:06 PDT 2009 Signing build for FreeBSD/amd64 7.1-RELEASE @@ -540,7 +540,7 @@ the new builds. Depois de aprovar a compilação, faça o upload do software: -[source,bash] +[source,shell] .... # cd /usr/local/freebsd-update-server # sh scripts/upload.sh amd64 7.1-RELEASE diff --git a/documentation/content/pt-br/articles/gjournal-desktop/_index.adoc b/documentation/content/pt-br/articles/gjournal-desktop/_index.adoc index 0d1979d303..3e5fcec4b3 100644 --- a/documentation/content/pt-br/articles/gjournal-desktop/_index.adoc +++ b/documentation/content/pt-br/articles/gjournal-desktop/_index.adoc @@ -163,28 +163,28 @@ Quando o sistema voltar a funcionar, estaremos prontos para configurar o journal Tendo preparado todas as partições requeridas, é bastante fácil configurar o journaling. Nós precisaremos mudar para o modo de single user, então entre como `root` e digite: -[source,bash] +[source,shell] .... # shutdown now .... Pressione kbd:[Enter] para obter o shell padrão. Nós precisaremos desmontar as partições que serão registradas no diário, no nosso exemplo [.filename]#/usr# e [.filename]#/var#: -[source,bash] +[source,shell] .... # umount /usr /var .... Carregue o módulo necessário para o journaling: -[source,bash] +[source,shell] .... # gjournal load .... Agora, use suas anotações para determinar qual partição será usada para cada diário. Em nosso exemplo, [.filename]#/usr# é [.filename]#ad0s1f# e seu journal será [.filename]#ad0s1g#, enquanto [.filename]#/var# é [.filename]#ad0s1d# e será journaled para [.filename]#ad0s1h#. Os seguintes comandos são necessários: -[source,bash] +[source,shell] .... # gjournal label ad0s1f ad0s1g GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. @@ -199,7 +199,7 @@ GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. ==== Se o último setor de qualquer partição for usado, o `gjournal` retornará um erro. Você terá que executar o comando usando o sinalizador `-f` para forçar uma substituição, ou seja: -[source,bash] +[source,shell] .... # gjournal label -f ad0s1d ad0s1h .... @@ -209,7 +209,7 @@ Como esta é uma nova instalação, é altamente improvável que qualquer coisa Neste ponto, dois novos dispositivos são criados, a saber [.filename]#ad0s1d.journal# e [.filename]#ad0s1f.journal#. Os quais representam as partições [.filename]#/var# e [.filename]#/usr# que temos que montar. Antes de montar, devemos definir o flag de Journal e limpar o flag de Soft Updates: -[source,bash] +[source,shell] .... # tunefs -J enable -n disable ad0s1d.journal tunefs: gjournal set @@ -222,7 +222,7 @@ tunefs: soft updates cleared Agora, monte os novos dispositivos manualmente em seus respectivos locais (note que agora podemos usar a opção de montagem `async`): -[source,bash] +[source,shell] .... # mount -o async /dev/ad0s1d.journal /var # mount -o async /dev/ad0s1f.journal /usr @@ -250,7 +250,7 @@ geom_journal_load="YES" Parabéns! Seu sistema está agora configurado para journaling. Você pode digitar `exit` para retornar ao modo multiusuário ou reinicializar para testar sua configuração (recomendado). Durante a inicialização, você verá mensagens como as seguintes: -[source,bash] +[source,shell] .... ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150 GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. @@ -263,7 +263,7 @@ GEOM_JOURNAL: Journal ad0s1f clean. Após um encerramento não limpo, as mensagens variam ligeiramente, ou seja: -[source,bash] +[source,shell] .... GEOM_JOURNAL: Journal ad0s1d consistent. .... @@ -275,7 +275,7 @@ Isso geralmente significa que o man:gjournal[8] usou as informações no journal Embora o procedimento acima seja necessário para partições que fazem uso de journaling e que já contêm dados, o journaling de uma partição vazia é um pouco mais fácil, uma vez que os dados e o journal provider podem ser armazenados na mesma partição. Por exemplo, suponha que um novo disco tenha sido instalado e uma nova partição [.filename]#/dev/ad1s1d# tenha sido criada. Criar o journal seria tão simples quanto: -[source,bash] +[source,shell] .... # gjournal label ad1s1d .... @@ -284,14 +284,14 @@ O tamanho do journal será 1 GB por padrão. Você pode ajustá-lo usando a opç Por exemplo, para criar um journal de 2 GB, você poderia usar o seguinte comando: -[source,bash] +[source,shell] .... # gjournal label -s 2G ad1s1d .... Você pode criar um sistema de arquivos em sua nova partição e ativar o journaling usando a opção `-J`: -[source,bash] +[source,shell] .... # newfs -J /dev/ad1s1d.journal .... @@ -324,14 +324,14 @@ O journal provavelmente se enche antes que ele tenha a chance de ser enviado (de Você esqueceu (ou escreveu incorretamente) a entrada em [.filename]#/boot/loader.conf#, ou existem erros no seu arquivo [.filename]#/etc/fstab#. Estes erros geralmente são fáceis de corrigir. Pressione kbd:[Enter] para acessar o shell padrão do modo single user. Em seguida, localize a raiz do problema: -[source,bash] +[source,shell] .... # cat /boot/loader.conf .... Se a entrada `geom_journal_load` estiver ausente ou incorreta, os dispositivos registrados nunca serão criados. Carregue o módulo manualmente, monte todas as partições e continue com a inicialização do modo multi usuário: -[source,bash] +[source,shell] .... # gjournal load GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. @@ -354,28 +354,28 @@ Certo. Use o procedimento a seguir, que inverte as alterações. As partições Faça login como `root` e alterne para o modo de usuário único: -[source,bash] +[source,shell] .... # shutdown now .... Desmonte as partições journaled: -[source,bash] +[source,shell] .... # umount /usr /var .... Sincronize os journals: -[source,bash] +[source,shell] .... # gjournal sync .... Pare os provedores de journaling: -[source,bash] +[source,shell] .... # gjournal stop ad0s1d.journal # gjournal stop ad0s1f.journal @@ -383,7 +383,7 @@ Pare os provedores de journaling: Limpe os metadados de journaling de todos os dispositivos usados: -[source,bash] +[source,shell] .... # gjournal clear ad0s1d # gjournal clear ad0s1f @@ -393,7 +393,7 @@ Limpe os metadados de journaling de todos os dispositivos usados: Limpe o sinalizador de journaling do sistema de arquivos e restaure a flag do Soft Updates: -[source,bash] +[source,shell] .... # tunefs -J disable -n enable ad0s1d tunefs: gjournal cleared @@ -406,7 +406,7 @@ tunefs: soft updates set Remonte os dispositivos antigos à mão: -[source,bash] +[source,shell] .... # mount -o rw /dev/ad0s1d /var # mount -o rw /dev/ad0s1f /usr diff --git a/documentation/content/pt-br/articles/hubs/_index.adoc b/documentation/content/pt-br/articles/hubs/_index.adoc index 166643e065..c98c5209ac 100644 --- a/documentation/content/pt-br/articles/hubs/_index.adoc +++ b/documentation/content/pt-br/articles/hubs/_index.adoc @@ -145,7 +145,7 @@ Como o número de clientes rsync terá um impacto significativo na performance d Um exemplo de linha de comando para espelhar o FreeBSD pode ser verificada abaixo: -[source,bash] +[source,shell] .... % rsync -vaHz --delete rsync://ftp4.de.FreeBSD.org/FreeBSD/ /pub/FreeBSD/ .... @@ -159,7 +159,7 @@ O site do FreeBSD deve ser espelhado apenas via rsync. Uma linha de comando para espelhar o site do FreeBSD pode parecer com: -[source,bash] +[source,shell] .... % rsync -vaHz --delete rsync://bit0.us-west.freebsd.org/FreeBSD-www-data/ /usr/local/www/ .... @@ -169,14 +169,14 @@ Uma linha de comando para espelhar o site do FreeBSD pode parecer com: Devido a exigências muito altas de largura de banda, armazenamento e administração, o Projeto FreeBSD decidiu não permitir espelhos públicos de pacotes. Para sites com muitas máquinas, pode ser vantajoso executar um proxy HTTP para fazer cache do man:pkg[8]. Alternativamente, pacotes específicos e suas dependências podem ser baixados executando algo assim: -[source,bash] +[source,shell] .... % pkg fetch -d -o /usr/local/mirror vim .... Quando esses pacotes forem baixados, os metadados do repositório devem ser gerados executando: -[source,bash] +[source,shell] .... % pkg repo /usr/local/mirror .... diff --git a/documentation/content/pt-br/articles/ipsec-must/_index.adoc b/documentation/content/pt-br/articles/ipsec-must/_index.adoc index 048ef5a013..207ba80215 100644 --- a/documentation/content/pt-br/articles/ipsec-must/_index.adoc +++ b/documentation/content/pt-br/articles/ipsec-must/_index.adoc @@ -62,7 +62,7 @@ Também precisamos de uma maneira de capturar os dados brutos da rede. Um progra O comando: -[source,bash] +[source,shell] .... tcpdump -c 4000 -s 10000 -w dumpfile.bin .... @@ -80,7 +80,7 @@ Aqui está o experimento: . Na janela "segura", execute o comando UNIX(R) man:yes[1], que transmitirá o caractere `y`. Depois de um tempo, pare com isso. Alterne para a janela insegura e repita. Depois de um tempo, pare. . Agora execute o <<code>> nos pacotes capturados. Você deve ver algo como o seguinte. O importante é notar que a conexão segura tem 93% (6,7) do valor esperado (7,18), e a conexão "normal" tem 29% (2,1) do valor esperado. + -[source,bash] +[source,shell] .... % tcpdump -c 4000 -s 10000 -w ipsecdemo.bin diff --git a/documentation/content/pt-br/articles/ldap-auth/_index.adoc b/documentation/content/pt-br/articles/ldap-auth/_index.adoc index dbf00bf770..a449193e4c 100644 --- a/documentation/content/pt-br/articles/ldap-auth/_index.adoc +++ b/documentation/content/pt-br/articles/ldap-auth/_index.adoc @@ -70,7 +70,7 @@ Primeiro, instale o OpenLDAP: [example] ==== -[source,bash] +[source,shell] .... # cd /usr/ports/net/openldap24-server # make install clean @@ -118,7 +118,7 @@ Os arquivos [.filename]#cert.crt#, [.filename]#cert.key# e [.filename]#cacert.cr [example] ==== -[source,bash] +[source,shell] .... % openssl genrsa -out cert.key 1024 Generating RSA private key, 1024 bit long modulus @@ -140,7 +140,7 @@ Por fim, a requisição de assinatura de certificado precisa ser assinada: [example] ==== -[source,bash] +[source,shell] .... % openssl x509 -req -in cert.csr -days 365 -signkey cert.key -out cert.crt Signature ok @@ -161,7 +161,7 @@ slapd_enable="YES" Em seguida, execute `/usr/local/etc/rc.d/slapd start`. Isso deve iniciar o OpenLDAP. Confirme que está escutando em 389 com -[source,bash] +[source,shell] .... % sockstat -4 -p 389 ldap slapd 3261 7 tcp4 *:389 *:* @@ -295,14 +295,14 @@ Com esta definição, o package:security/pam_ldap[] pesquisará todo o diretóri Os usuários cujo shell não está em [.filename]#/etc/shells# não poderão efetuar login. Isto é particularmente importante quando o Bash é definido como o shell do usuário no servidor LDAP. O Bash não está incluído em uma instalação padrão do FreeBSD. Quando instalado a partir de um pacote ou port, ele está localizado em [.filename]#/usr/local/bin/bash#. Verifique se o caminho para o shell no servidor está definido corretamente: -[source,bash] +[source,shell] .... % getent passwd username .... Existem duas opções quando a saída mostra `/bin/bash` na última coluna. A primeira é alterar a entrada do usuário no servidor LDAP para [.filename]#/usr/local/bin/bash#. A segunda opção é criar um link simbólico no computador cliente LDAP para que o Bash seja encontrado no local correto: -[source,bash] +[source,shell] .... # ln -s /usr/local/bin/bash /bin/bash .... @@ -437,7 +437,7 @@ ldappasswd -D uid="$USER",ou=people,dc=example,dc=org \ ==== Esse script dificilmente faz qualquer verificação de erros, mas, o mais importante, é muito indiferente sobre como ele armazena suas senhas. Se você fizer algo assim, ajuste pelo menos o valor de sysctl `security.bsd.see_other_uids`: -[source,bash] +[source,shell] .... # sysctl security.bsd.see_other_uids=0 .... @@ -649,7 +649,7 @@ Para criar uma autoridade de certificação, simplesmente precisamos de um certi [example] ==== -[source,bash] +[source,shell] .... % openssl genrsa -out root.key 1024 % openssl req -new -key root.key -out root.csr @@ -673,7 +673,7 @@ Para assinar a chave, use `-CA` e `-CAkey` em vez de `-signkey`: [example] ==== -[source,bash] +[source,shell] .... % openssl x509 -req -dias 1024 \ -em servidor ldap-one.csr -CA root.crt -CAkey root.key \ diff --git a/documentation/content/pt-br/articles/leap-seconds/_index.adoc b/documentation/content/pt-br/articles/leap-seconds/_index.adoc index 7e482f1a57..571e892063 100644 --- a/documentation/content/pt-br/articles/leap-seconds/_index.adoc +++ b/documentation/content/pt-br/articles/leap-seconds/_index.adoc @@ -66,7 +66,7 @@ Por favor, tente garantir que nada horrível acontecerá por causa do leap secon É possível testar se um leap seconds será utilizado. Devido a natureza do NTP, o teste deve funcionar até 24 horas antes do lead seconds. Algumas da principais fontes de referência de tempo somente anunciam o leap seconds uma hora antes do evento. Consulte o daemon do NTP: -[source,bash] +[source,shell] .... % ntpq -c 'rv 0 leap' .... diff --git a/documentation/content/pt-br/articles/linux-users/_index.adoc b/documentation/content/pt-br/articles/linux-users/_index.adoc index dff0da5e07..e68fc61748 100644 --- a/documentation/content/pt-br/articles/linux-users/_index.adoc +++ b/documentation/content/pt-br/articles/linux-users/_index.adoc @@ -74,7 +74,7 @@ A lista completa da árvore de ports e dos pacotes pode ser encontrada https://w Pacotes são aplicações pré-compiladas, os equivalentes no FreeBSD aos arquivos [.filename]#.deb# nos sistemas baseados no Debian/Ubuntu e aos arquivos [.filename]#.rpm# nos sistemas baseados no Fedora/Red Hat. Pacotes são instalados através do comando `pkg`. Por exemplo, o comando a seguir instala o Apache 2.4: -[source,bash] +[source,shell] .... # pkg install apache24 .... @@ -90,7 +90,7 @@ A Coleção de Ports, algumas vezes referenciada como a árvore de ports, pode s Para compilar um port, mude para o diretório do port e inicie o processo de compilação. O exemplo abaixo instala o Apache 2.4 através da Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/www/apache24 # make install clean @@ -98,7 +98,7 @@ Para compilar um port, mude para o diretório do port e inicie o processo de com Um dos benefícios de usar a árvore de ports para realizar a instalação de um software é a possibilidade de customizar as opções de instalação. O exemplo a seguir, especifica que o módulo mod_ldap também deve ser instalado: -[source,bash] +[source,shell] .... # cd /usr/ports/www/apache24 # make WITH_LDAP="YES" install clean @@ -130,7 +130,7 @@ apache24_flags="-DSSL" Uma vez que o serviço tenha sido habilitado no arquivo [.filename]#/etc/rc.conf#, ele pode ser inicializado sem a necessidade de uma reinicialização do sistema. -[source,bash] +[source,shell] .... # service sshd start # service apache24 start @@ -138,7 +138,7 @@ Uma vez que o serviço tenha sido habilitado no arquivo [.filename]#/etc/rc.conf Se o serviço não tiver sido habilitado, ele poderá ser inicializado a partir da linha de comando usando a opção `onestart`: -[source,bash] +[source,shell] .... # service sshd onestart @@ -149,7 +149,7 @@ Se o serviço não tiver sido habilitado, ele poderá ser inicializado a partir Diferente da identificação genérica _ethX_ usada pelo Linux(R) para identificar a interface de rede, o FreeBSD usa o nome do driver seguido por um número. A seguinte saída do comando man:ifconfig[8] mostra duas interfaces de rede Intel(R) Pro 1000 ([.filename]#em0# e [.filename]#em1#): -[source,bash] +[source,shell] .... % ifconfig @@ -249,7 +249,7 @@ Em algumas distribuições do Linux(R), você pode consultar o [.filename]#/proc Por exemplo, use o seguinte comando para determinar se o encaminhamento de IP está ou não habilitado. -[source,bash] +[source,shell] .... % sysctl net.inet.ip.forwarding net.inet.ip.forwarding: 0 @@ -257,7 +257,7 @@ net.inet.ip.forwarding: 0 Use a opção `-a` para ver todas as variáveis do sistema: -[source,bash] +[source,shell] .... % sysctl -a | more @@ -265,7 +265,7 @@ Use a opção `-a` para ver todas as variáveis do sistema: Se alguma aplicação necessitar do procfs, adicione a seguinte entrada no arquivo [.filename]#/etc/fstab#: -[source,bash] +[source,shell] .... proc /proc procfs rw,noauto 0 0 .... @@ -274,7 +274,7 @@ Incluindo a opção `noauto` irá previnir que o [.filename]#/proc# seja montado Para montar o sistema de arquivos sem reinicializar: -[source,bash] +[source,shell] .... # mount /proc .... diff --git a/documentation/content/pt-br/articles/mailing-list-faq/_index.adoc b/documentation/content/pt-br/articles/mailing-list-faq/_index.adoc index 4a54dfd286..9afc8f3a37 100644 --- a/documentation/content/pt-br/articles/mailing-list-faq/_index.adoc +++ b/documentation/content/pt-br/articles/mailing-list-faq/_index.adoc @@ -112,7 +112,7 @@ Tente não usar MIME: muitas pessoas usam clientes de email que não se dão mui * Verifique se o seu horário e fuso horário estão definidos corretamente. Isso pode parecer um pouco bobo, já que sua mensagem ainda chegará na lista, mas muitas das pessoas nestas listas recebem centenas de mensagens por dia. Eles frequentemente classificam as mensagens recebidas por assunto e por data, e se sua mensagem não vier antes da primeira resposta, eles podem assumir que eles perderam a mensagem e não se darão ao trabalho de procurar. * Muitas das informações que você precisará fornecer referem-se a saída de programas, como man:dmesg[8], ou mensagens do console, que geralmente aparecem no [.filename]#/var/log/messages#. Não tente copiar essa informação digitando-a novamente; Isso será não só um sofrimento real, mas você é provavelmente irá cometer um erro. Para enviar o conteúdo do arquivo de log, faça uma cópia do arquivo e use um editor para reduzi-lo às informações relevantes ou copie e cole na sua mensagem. Para a saída de programas como `dmesg`, redirecione a saída para um arquivo e inclua-o. Por exemplo, + -[source,bash] +[source,shell] .... % dmesg > /tmp/dmesg.out .... diff --git a/documentation/content/pt-br/articles/nanobsd/_index.adoc b/documentation/content/pt-br/articles/nanobsd/_index.adoc index b1aa90044d..fc5ca09adc 100644 --- a/documentation/content/pt-br/articles/nanobsd/_index.adoc +++ b/documentation/content/pt-br/articles/nanobsd/_index.adoc @@ -68,7 +68,7 @@ A partição do arquivo de configuração persiste no diretório [.filename]#/cf [example] ==== -[source,bash] +[source,shell] .... # vi /etc/resolv.conf [...] @@ -91,7 +91,7 @@ Uma imagem NanoBSD é construída usando um simples shell script [.filename]#nan Os comandos necessários para construir uma imagem NanoBSD são: -[source,bash] +[source,shell] .... # cd /usr/src/tools/tools/nanobsd <.> @@ -114,7 +114,7 @@ Este é provavelmente o recurso mais importante e interessante do NanoBSD. Este A execução do seguinte comando forçará o [.filename]#nanobsd.sh# a ler sua configuração do [.filename]#myconf.nano# localizado no diretório atual: -[source,bash] +[source,shell] .... # sh nanobsd.sh -c myconf.nano .... @@ -262,7 +262,7 @@ De acordo com os serviços que estiverem disponíveis no servidor que contem a n Se a velocidade de transferência estiver em primeiro lugar, use este exemplo: -[source,bash] +[source,shell] .... # ftp myhost get _.disk.image "| sh updatep1" @@ -272,7 +272,7 @@ get _.disk.image "| sh updatep1" Se uma transferência segura for preferida, considere usar este exemplo: -[source,bash] +[source,shell] .... # ssh myhost cat _.disk.image.gz | zcat | sh updatep1 .... @@ -284,7 +284,7 @@ Tente este exemplo se o host remoto que contem a nova imagem não estiver execut [.procedure] . Primeiramente, abra um socket TCP em modo escuta no host que serve a imagem e envie a imagem para o cliente: + -[source,bash] +[source,shell] .... myhost# nc -l 2222 < _.disk.image .... @@ -295,7 +295,7 @@ Certifique-se de que a porta usada não esteja bloqueada para receber conexões ==== . Conecte-se ao host que está servindo a nova imagem e execute o script [.filename]#updatep1#: + -[source,bash] +[source,shell] .... # nc myhost 2222 | sh updatep1 .... diff --git a/documentation/content/pt-br/articles/new-users/_index.adoc b/documentation/content/pt-br/articles/new-users/_index.adoc index 5a9b3ae5a1..faf0391c84 100644 --- a/documentation/content/pt-br/articles/new-users/_index.adoc +++ b/documentation/content/pt-br/articles/new-users/_index.adoc @@ -40,7 +40,7 @@ Entre com o usuário que você criou na instalação (quando você visualizar o Para se sair (e obter um novo `login:`), digite -[source,bash] +[source,shell] .... # exit .... @@ -49,21 +49,21 @@ quantas vezes forem necessárias. Pressione kbd:[enter] após digitar os comando Para desligar o computador, digite -[source,bash] +[source,shell] .... # /sbin/shutdown -h now .... Ou para reiniciar, digite -[source,bash] +[source,shell] .... # /sbin/shutdown -r now .... ou -[source,bash] +[source,shell] .... # /sbin/reboot .... @@ -75,7 +75,7 @@ Você também pode reiniciar com kbd:[Ctrl+Alt+Delete]. Aguarde um instante para Se você não criou um usuário quando instalou o sistema operacional e está logado como `root`, você provavelmente deve criar um usuário com -[source,bash] +[source,shell] .... # adduser .... @@ -84,7 +84,7 @@ A primeira vez que você usar o comando `adduser`, ele poderá solicitar alguns Suponha que você crie um usuário `jack`, o qual possui _Jack Benimble_ como nome completo. Dê a `jack` uma senha se a segurança (até mesmo crianças ao redor que podem esbarrar no teclado) for um problema. Quando perguntarem se você deseja convidar `jack` para outros grupos, digite `wheel` -[source,bash] +[source,shell] .... O grupo de login é "jack". Convide o jack para outros grupos: wheel .... @@ -162,7 +162,7 @@ Você pode experimentar usar `whatis` em alguns comandos utéis e comuns como `c Alguns deles não estão funcionado muito bem? Ambos man:locate[1] e man:whatis[1] dependem de um banco de dados que é reconstruído semanalmente. Se a sua máquina não for ficar ligada nos fins de semana (e rodando FreeBSD), você pode executar os comandos a seguir para que ela execute manutenções diárias, semanais, mensais ou apenas de vez em quando. Execute-os como `root` e dê a cada comando o tempo necessário para ser finalizado antes de executar o próximo. -[source,bash] +[source,shell] .... # periodic daily output omitted @@ -183,14 +183,14 @@ Para configurar o seu sistema, você precisará editar arquivos de texto. A maio Antes de editar um arquivo, é recomendado criar um backup do mesmo. Suponha que você queira editar o [.filename]#/etc/rc.conf#. Você poderia usar apenas `cd /etc` para acessar o diretório [.filename]#/etc# e usar o seguinte comando: -[source,bash] +[source,shell] .... # cp rc.conf rc.conf.orig .... Isso iria copiar [.filename]#rc.conf# para [.filename]#rc.conf.orig#, e após isso você poderia copiar [.filename]#rc.conf.orig# para [.filename]#rc.conf# para recuperar o original. Mas melhor ainda seria mover (renomear) e depois copiar de volta: -[source,bash] +[source,shell] .... # mv rc.conf rc.conf.orig # cp rc.conf.orig rc.conf @@ -198,7 +198,7 @@ Isso iria copiar [.filename]#rc.conf# para [.filename]#rc.conf.orig#, e após is porque o comando `mv` preserva a data original e o proprietário do arquivo. Agora você pode editar o [.filename]#rc.conf#. Se você quiser o original de volta, você deve então executar `mv rc.conf rc.conf.myedit` (considerando que você quer preservar sua versão editada) e então -[source,bash] +[source,shell] .... # mv rc.conf.orig rc.conf .... @@ -207,7 +207,7 @@ para colocar as coisas de volta da maneira que estavam. Para editar um arquivo, digite -[source,bash] +[source,shell] .... # vi filename .... @@ -282,7 +282,7 @@ exibe as páginas do manual para o sistema de arquivos UNIX(R) e sua estrutura h Use o comando `find` para localizar [.filename]#filename# no diretório [.filename]#/usr# e nos seus subdiretórios: -[source,bash] +[source,shell] .... % find /usr -name "filename" .... @@ -300,7 +300,7 @@ Se você achar o handbook muito sofisticado (com isso do `lndir` e tudo mais) ao Encontre o port que você deseja, digamos o `kermit`. Haverá um diretório para ele no CDROM. Copie o subdiretório para [.filename]#/usr/local# (este é um bom lugar para softwares que você adicione no sistema e que devem estar disponíveis para todos os usuários) com: -[source,bash] +[source,shell] .... # cp -R /cdrom/ports/comm/kermit /usr/local .... @@ -311,7 +311,7 @@ Em seguida, crie o diretório [.filename]#/usr/ports/distfiles# se ele ainda nã Em seguida, use o comando `cd` para ir para o subdiretório [.filename]#/usr/local/kermit# que contém o arquivo [.filename]#Makefile#. Digite -[source,bash] +[source,shell] .... # make all install .... diff --git a/documentation/content/pt-br/articles/pam/_index.adoc b/documentation/content/pt-br/articles/pam/_index.adoc index 55090c0a82..cc5c9a1f8f 100644 --- a/documentation/content/pt-br/articles/pam/_index.adoc +++ b/documentation/content/pt-br/articles/pam/_index.adoc @@ -99,7 +99,7 @@ Esta seção tem como objetivo ilustrar os significados de alguns dos termos def Este exemplo simples mostra `alice` usando man:su[1] para se tornar `root`. -[source,bash] +[source,shell] .... % whoami @@ -125,7 +125,7 @@ root O exemplo abaixo mostra `eve` tentar iniciar uma conexão man:ssh[1] com `login.example.com`, solicitar para efetuar login como `bob` e ter exito. Bob deveria ter escolhido uma senha melhor! -[source,bash] +[source,shell] .... % whoami @@ -298,7 +298,7 @@ auth required pam_nologin.so no_warn Como consequência dessa sintaxe simplificada, é possível usar a mesma política para vários serviços vinculando cada nome de serviço a um mesmo arquivo de política. Por exemplo, para usar a mesma política para os serviços `su` e `sudo`, pode-se fazer o seguinte: -[source,bash] +[source,shell] .... # cd /etc/pam.d diff --git a/documentation/content/pt-br/articles/rc-scripting/_index.adoc b/documentation/content/pt-br/articles/rc-scripting/_index.adoc index 40c918ae8c..58144c2a27 100644 --- a/documentation/content/pt-br/articles/rc-scripting/_index.adoc +++ b/documentation/content/pt-br/articles/rc-scripting/_index.adoc @@ -94,7 +94,7 @@ Os pontos a serem observadas são: ➊ Um script interpretado deve começar com a linha mágica "shebang". Essa linha especifica o programa interpretador para o script. Devido a linha shebang, o script pode ser invocado exatamente como um programa binário, desde que tenha o bit de execução definido. (Veja man:chmod[1].) Por exemplo, um administrador do sistema pode executar nosso script manualmente, a partir da linha de comando: -[source,bash] +[source,shell] .... # /etc/rc.d/dummy start .... @@ -193,7 +193,7 @@ Ao examinar os scripts [.filename]#rc.d#, tenha em mente que o man:sh[1] adia a ==== Você pode fazer o man:rc.subr[8] agir como se o knob fosse definido como `ON`, independentemente da sua configuração atual, prefixando o argumento para o script com `one` ou `force`, como em `onestart` ou `forcestop`. Tenha em mente que o `force` tem outros efeitos perigosos que mencionaremos abaixo, enquanto `one` apenas sobrescreve o knob ON/OFF. Por exemplo, suponha que `dummy_enable` seja `OFF`. O comando a seguir executará o método `start` apesar da configuração: -[source,bash] +[source,shell] .... # /etc/rc.d/dummy onestart .... @@ -371,7 +371,7 @@ Comandos não padrão não são chamados durante a inicialização ou o desligam A lista completa de comandos disponíveis pode ser encontrada na linha de uso impressa por man:rc.subr[8] quando o script é invocado sem argumentos. Por exemplo, aqui está a linha de uso do script em estudo: -[source,bash] +[source,shell] .... # /etc/rc.d/mumbled Uso: /etc/rc.d/mumbled [fast|force|one](start|stop|restart|rcvar|reload|plugh|xyzzy|status|poll) @@ -556,7 +556,7 @@ Quais mudanças essenciais podemos notar no script? ➊ Todos os argumentos digitados após `start` podem terminar como parâmetros posicionais para o respectivo método. Podemos usá-los de qualquer maneira de acordo com nossa tarefa, habilidades e fantasia. No exemplo atual, apenas passamos todos eles para man:echo[1] como uma cadeia na linha seguinte - note `$*` entre aspas duplas. Aqui está como o script pode ser chamado agora: -[source,bash] +[source,shell] .... # /etc/rc.d/dummy start Nothing started. @@ -566,7 +566,7 @@ Greeting message: Hello world! ➋ O mesmo se aplica a qualquer método que nosso script forneça, não apenas a um método padrão. Nós adicionamos um método customizado chamado `kiss`, e ele pode tirar proveito dos argumentos extras da mesma forma que o `start` tira. Por exemplo: -[source,bash] +[source,shell] .... # /etc/rc.d/dummy kiss A ghost gives you a kiss. diff --git a/documentation/content/pt-br/articles/releng/_index.adoc b/documentation/content/pt-br/articles/releng/_index.adoc index 9affb8e8e7..fccbb25c68 100644 --- a/documentation/content/pt-br/articles/releng/_index.adoc +++ b/documentation/content/pt-br/articles/releng/_index.adoc @@ -129,21 +129,21 @@ Em todos os exemplos abaixo, `$FSVN` refere-se ao local do repositório Subversi O layout das branchs do FreeBSD no Subversion é descrito no link:{committers-guide}#subversion-primer-base-layout[Guia do Commiter]. O primeiro passo na criação de uma branch é identificar a revisão do código fonte do `stable/_X_`, a partir do qual você deseja criar a nova _branch_. -[source,bash] +[source,shell] .... # svn log -v $FSVN/stable/9 .... O próximo passo é criar a _branch da release_ -[source,bash] +[source,shell] .... # svn cp $FSVN/stable/9@REVISION $FSVN/releng/9.2 .... Esta branch pode ser obtida com: -[source,bash] +[source,shell] .... # svn co $FSVN/releng/9.2 src .... @@ -214,7 +214,7 @@ Além disso, atualize o arquivo da "Árvore Genealógica do BSD": Quando a versão final estiver pronta, o seguinte comando criará a tag `release/9.2.0`. -[source,bash] +[source,shell] .... # svn cp $FSVN/releng/9.2 $FSVN/release/9.2.0 .... @@ -232,7 +232,7 @@ As "releases" do FreeBSD podem ser construídas por qualquer pessoa com uma máq A página de manual man:release[7] documenta os comandos exatos necessários para construir uma Release do FreeBSD. As seguintes sequências de comandos podem construir uma versão 9.2.0: -[source,bash] +[source,shell] .... # cd /usr/src/release # sh generate-release.sh release/9.2.0 /local3/release @@ -271,7 +271,7 @@ A https://www.FreeBSD.org/ports[Coleção de Ports do FreeBSD] é uma coleção Começando no FreeBSD 4.4, o Projeto FreeBSD decidiu liberar todas as quatro imagens ISO que eram vendidas anteriormente nas distribuições "oficiais" em CDROM pela __BSRi/Wind River Systems/FreeBSD Mall__. Cada um dos quatro discos deve conter um arquivo [.filename]#README.TXT# que explica o conteúdo do disco, um arquivo [.filename]#CDROM.INF# que fornece metadados do disco para que o man:bsdinstall[8] possa validar e usar o conteúdo, e um arquivo [.filename]#filename.txt# que fornece um manifesto para o disco. Este _manifesto_ pode ser criado com um simples comando: -[source,bash] +[source,shell] .... /stage/cdrom# find . -type f | sed -e 's/^\.\///' | sort > filename.txt .... diff --git a/documentation/content/pt-br/articles/remote-install/_index.adoc b/documentation/content/pt-br/articles/remote-install/_index.adoc index 6712825cbb..683e94912c 100644 --- a/documentation/content/pt-br/articles/remote-install/_index.adoc +++ b/documentation/content/pt-br/articles/remote-install/_index.adoc @@ -77,7 +77,7 @@ Por favor, note que os detalhes de como o mfsBSD funciona internamente e como tu Faça o download e extraia a versão mais recente do mfsBSD e altere seu diretório de trabalho para o diretório em que os scripts mfsBSD residirão: -[source,bash] +[source,shell] .... # fetch http://mfsbsd.vx.sk/release/mfsbsd-2.1.tar.gz # tar xvzf mfsbsd-2.1.tar.gz @@ -128,7 +128,7 @@ O processo de construção de uma imagem mfsBSD é bastante simples. O primeiro passo é montar o CD de instalação do FreeBSD, ou a imagem ISO de instalação em [.filename]#/cdrom#. Por exemplo, neste artigo vamos supor que você tenha baixado o ISO do FreeBSD 10.1-RELEASE. Montar esta imagem ISO no diretório [.filename]#/cdrom# é fácil de se fazer com o utilitário man:mdconfig[8]: -[source,bash] +[source,shell] .... # mdconfig -a -t vnode -u 10 -f FreeBSD-10.1-RELEASE-amd64-disc1.iso # mount_cd9660 /dev/md10 /cdrom @@ -136,7 +136,7 @@ O primeiro passo é montar o CD de instalação do FreeBSD, ou a imagem ISO de i Como as versões recentes do FreeBSD não contêm conjuntos de distribuição regulares, é necessário extrair os arquivos de distribuição do FreeBSD dos arquivos de distribuição localizados na imagem ISO: -[source,bash] +[source,shell] .... # mkdir DIST # tar -xvf /cdrom/usr/freebsd-dist/base.txz -C DIST @@ -145,7 +145,7 @@ Como as versões recentes do FreeBSD não contêm conjuntos de distribuição re Em seguida, construa a imagem mfsBSD inicializável: -[source,bash] +[source,shell] .... # make BASE=DIST .... @@ -159,14 +159,14 @@ O make acima deve ser executado a partir do nível superior da árvore de diret Agora que a imagem mfsBSD está pronta, ela deve ser carregada para o sistema remoto executando o sistema de recuperação ou uma distribuição Linux(R) pré-instalada. A ferramenta mais adequada para essa tarefa é o scp: -[source,bash] +[source,shell] .... # scp disk.img root@192.168.0.2:. .... Para inicializar corretamente a imagem mfsBSD, ela deve ser colocada no primeiro dispositivo (inicializável) da máquina em questão. Isso pode ser feito usando este exemplo, desde que o [.filename]#sda# seja o primeiro dispositivo de disco inicializável: -[source,bash] +[source,shell] .... # dd if=/root/disk.img of=/dev/sda bs=1m .... @@ -184,7 +184,7 @@ A primeira tarefa é alocar espaço em disco para o FreeBSD, ou seja: criar slic No início, marque todos os discos do sistema como vazios. Repita o seguinte comando para cada disco rígido: -[source,bash] +[source,shell] .... # dd if=/dev/zero of=/dev/ad0 count=2 .... @@ -193,7 +193,7 @@ Em seguida, crie as slices e atribua um label usando sua ferramenta preferida. E O exemplo a seguir descreverá como criar slices e labels, inicializar o man:gmirror[8] em cada partição e como criar um sistema de arquivos UFS2 em cada partição espelhada: -[source,bash] +[source,shell] .... # fdisk -BI /dev/ad0 <.> # fdisk -BI /dev/ad1 @@ -228,7 +228,7 @@ O exemplo a seguir descreverá como criar slices e labels, inicializar o man:gmi Esta é a parte mais importante. Esta seção irá descrever como instalar a distribuição mínima do FreeBSD nos discos rígidos que preparamos na seção anterior. Para atingir este objetivo, todos os sistemas de arquivos precisam ser montados para que o Sysinstall possa gravar o conteúdo do FreeBSD nos discos rígidos: -[source,bash] +[source,shell] .... # mount /dev/mirror/root /mnt # mkdir /mnt/var /mnt/usr @@ -260,7 +260,7 @@ O sistema operacional do FreeBSD deve estar instalado agora; no entanto, o proce Você deve agora executar man:chroot[8] para o sistema recém-instalado para concluir a instalação. Use o seguinte comando: -[source,bash] +[source,shell] .... # chroot /mnt .... @@ -269,7 +269,7 @@ Para completar nosso objetivo, execute estas etapas: * Copie o kernel `GENERIC` para o diretório [.filename]#/boot/kernel#: + -[source,bash] +[source,shell] .... # cp -Rp /boot/GENERIC/* /boot/kernel .... @@ -294,7 +294,7 @@ zfs_load="YES" .... * Execute o seguinte comando, que disponibilizará o ZFS na próxima inicialização: + -[source,bash] +[source,shell] .... # echo 'zfs_enable="YES"' >> /etc/rc.conf .... @@ -311,14 +311,14 @@ Se o seu sistema sobreviveu à reinicialização, agora deve ser possível efetu O único passo restante é configurar o man:zpool[8] e criar algum sistemas de arquivos man:zfs[8]. Criar e administrar o ZFS é muito simples. Primeiro, crie um pool espelhado: -[source,bash] +[source,shell] .... # zpool create tank mirror /dev/ad[01]s1f .... Em seguida, crie alguns sistemas de arquivos: -[source,bash] +[source,shell] .... # zfs create tank/ports # zfs create tank/src diff --git a/documentation/content/pt-br/articles/serial-uart/_index.adoc b/documentation/content/pt-br/articles/serial-uart/_index.adoc index 37687707f8..ea57e431f7 100644 --- a/documentation/content/pt-br/articles/serial-uart/_index.adoc +++ b/documentation/content/pt-br/articles/serial-uart/_index.adoc @@ -535,7 +535,7 @@ O COMTEST pode ser usado como uma ferramenta de triagem para alertar o administr Se você executar o COMTEST em um 16550 que esteja em um modem ou se um modem estiver conectado à porta serial, será necessário primeiro emitir um comando ATE0&W para o modem para que o modem não faça eco de nenhum dos caracteres de teste. Se você esquecer de fazer isso, o COMTEST informará pelo menos essa diferença: -[source,bash] +[source,shell] .... Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61 .... @@ -781,7 +781,7 @@ A entrada de flags _deve_ ser alterada deste exemplo, a menos que você esteja u indica que a porta principal é a sio16. Se eu adicionasse outra placa e atribuísse do sio17 até sio28, os sinalizadores para todas as 16 portas _nesta_ placa seriam 0x1C05, onde 1C indica o menor número da porta principal. Não altere a configuração 05. . Salve e complete a configuração do kernel, recompile, instale e reinicialize. Presumindo que você tenha instalado com sucesso o kernel recompilado e configurado para o endereço e IRQ correto, sua mensagem de boot deve indicar o teste bem-sucedido das portas Boca da seguinte forma: (obviamente os números sio, IO e IRQ podem ser diferentes) + -[source,bash] +[source,shell] .... sio1 at 0x100-0x107 flags 0x1005 on isa sio1: type 16550A (multiport) @@ -819,7 +819,7 @@ sio16: type 16550A (multiport master) + Se as mensagens forem muito rápidas para serem visualizadas, + -[source,bash] +[source,shell] .... # dmesg | more .... @@ -829,7 +829,7 @@ mostrará as mensagens de inicialização. + Se você precisar criar as entradas [.filename]#/dev#, execute o seguinte como `root`: + -[source,bash] +[source,shell] .... # cd /dev # ./MAKEDEV tty1 @@ -842,7 +842,7 @@ Se você precisar criar as entradas [.filename]#/dev#, execute o seguinte como ` Se você não quiser ou precisar de dispositivos de chamada por algum motivo, você pode dispensar o uso dos dispositivos [.filename]#cua*#. . Se você quiser uma maneira rápida e desleixada de se certificar de que os dispositivos estão funcionando, você pode simplesmente conectar um modem em cada porta e (como root) + -[source,bash] +[source,shell] .... # echo at > ttyd* .... @@ -906,7 +906,7 @@ device sio2 at isa? port "IO_COM3" flags 0x205 irq 3 Note que a configuração das `flags` para [.filename]#sio1# e [.filename]#sio2# é realmente essencial; consulte man:sio[4] para detalhes. (Geralmente, o `2` no atributo "flags" refere-se ao [.filename]#sio2# que contém o IRQ, e você certamente deseja um "nibble" abaixo de `5`. ) Com o modo verboso do kernel ativado, isso deve render algo semelhante a isto: -[source,bash] +[source,shell] .... sio0: irq maps: 0x1 0x11 0x1 0x1 sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa @@ -939,7 +939,7 @@ device cy0 at isa? irq 10 iomem 0xd4000 iosiz 0x2000 . Recompile e instale o novo kernel. . Crie os device nodes digitando (o exemplo a seguir assume uma placa de 8 portas) footnote:[Você pode omitir esta parte se você estiver executando o FreeBSD 5.X com devfs5.]: + -[source,bash] +[source,shell] .... # cd /dev # for i in 0 1 2 3 4 5 6 7;do ./MAKEDEV cuac$i ttyc$i;done @@ -1003,7 +1003,7 @@ A etapa seguinte, não é necessária se você estiver usando o man:devfs[5] no Após a reinicialização com o novo kernel, você precisa criar os device nodes no [.filename]#/dev#. O script [.filename]#MAKEDEV# cuidará disso para você. Conte quantas portas totais você tem e digite: -[source,bash] +[source,shell] .... # cd /dev # ./MAKEDEV ttyAnn cuaAnn diff --git a/documentation/content/pt-br/articles/solid-state/_index.adoc b/documentation/content/pt-br/articles/solid-state/_index.adoc index c6b8c1dde5..3ed1debea0 100644 --- a/documentation/content/pt-br/articles/solid-state/_index.adoc +++ b/documentation/content/pt-br/articles/solid-state/_index.adoc @@ -89,14 +89,14 @@ Alguns aplicativos no sistema começarão a falhar imediatamente como resultado Uma coisa importante para lembrar é que um sistema de arquivos que foi montado como read-only com o [.filename]#/etc/fstab# pode ser colocado em modo read-write a qualquer momento, executando o comando: -[source,bash] +[source,shell] .... # /sbin/mount -uw partition .... e pode ser alternado de volta para somente leitura com o comando: -[source,bash] +[source,shell] .... # /sbin/mount -ur partition .... @@ -117,7 +117,7 @@ Após inicializar com os disquetes do kern e mfsroot, escolha `custom` no menu d + Saia do menu de instalação personalizada e, no menu de instalação principal, escolha a opção `fixit`. Depois de entrar no ambiente do fixit, digite o seguinte comando: + -[source,bash] +[source,shell] .... # disklabel -e /dev/ad0c .... @@ -131,7 +131,7 @@ a: 123456 0 4.2BSD 0 0 + Onde _123456_ é um número o qual é exatamente o mesmo que o número existente na entrada `c:` para o tamanho. Basicamente, você está duplicando a linha `c:` existente como uma linha `a:`, certifique-se de que o fstype seja `4.2BSD`. Salve o arquivo e saia. + -[source,bash] +[source,shell] .... # disklabel -B -r /dev/ad0c # newfs /dev/ad0a @@ -141,14 +141,14 @@ Onde _123456_ é um número o qual é exatamente o mesmo que o número existente + Monte a mídia flash recém-preparada: + -[source,bash] +[source,shell] .... # mount /dev/ad0a /flash .... + Coloque esta máquina na rede para que possamos transferir nosso arquivo tar e extrai-lo em nosso sistema de arquivos de mídia flash. Um exemplo de como fazer isso é: + -[source,bash] +[source,shell] .... # ifconfig xl0 192.168.0.10 netmask 255.255.255.0 # route add default 192.168.0.1 @@ -156,21 +156,21 @@ Coloque esta máquina na rede para que possamos transferir nosso arquivo tar e e + Agora que a máquina está na rede, transfira seu arquivo tar. Você pode se deparar com um pequeno dilema neste ponto - se a sua memória flash tiver por exemplo 128 megabytes, e seu arquivo tar for maior que 64 megabytes, você não poderá ter o seu arquivo tar na mídia flash ao mesmo tempo em que realiza a descompressão - você ficará sem espaço. Uma solução para esse problema, se você estiver usando FTP, é descompactar o arquivo enquanto ele é transferido por FTP. Se você realizar sua transferência desta maneira, você nunca terá o arquivo tar e o conteúdo do tar em seu disco ao mesmo tempo: + -[source,bash] +[source,shell] .... ftp> get tarfile.tar "| tar xvf -" .... + Se o seu arquivo tar estiver gzipado, você pode fazer isso também: + -[source,bash] +[source,shell] .... ftp> get tarfile.tar "| zcat | tar xvf -" .... + Depois que o conteúdo do seu sistema de arquivos compactado pelo tar estiver no sistema de arquivos da sua memória flash, você poderá desmontar a memória flash e reinicializar: + -[source,bash] +[source,shell] .... # cd / # umount /flash @@ -194,7 +194,7 @@ No entanto, isso não resolve o problema de manter as crontabs entre nas reinici O [.filename]#syslog.conf# especifica os locais de certos arquivos de log que existem em [.filename]#/var/log#. Esses arquivos não são criados pelo [.filename]#/etc/rc.d/var# na inicialização do sistema. Portanto, em algum lugar do [.filename]#/etc/rc.d/var#, logo após a seção que cria os diretórios em [.filename]#/var#, você precisará adicionar algo como isto: -[source,bash] +[source,shell] .... # touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages # chmod 0644 /var/log/* @@ -208,14 +208,14 @@ Para tornar possível entrar em um diretório do ports e executar com sucesso o Primeiro, crie o diretório do banco de dados de pacotes. Ele fica normalmente em [.filename]#/var/db/pkg#, mas não podemos colocá-lo lá, pois ele irá desaparecer toda vez que o sistema for inicializado. -[source,bash] +[source,shell] .... # mkdir /etc/pkg .... Agora, adicione uma linha ao arquivo [.filename]#/etc/rc.d/var# que vincule o [.filename]#/etc/pkg# ao [.filename]#/var/db/pkg#. Um exemplo: -[source,bash] +[source,shell] .... # ln -s /etc/pkg /var/db/pkg .... @@ -235,7 +235,7 @@ Primeiro, adicione o diretório `log/apache` à lista de diretórios a serem cri Segundo, adicione estes comandos ao [.filename]#/etc/rc.d/var# após a seção de criação do diretório: -[source,bash] +[source,shell] .... # chmod 0774 /var/log/apache # chown nobody:nobody /var/log/apache @@ -243,7 +243,7 @@ Segundo, adicione estes comandos ao [.filename]#/etc/rc.d/var# após a seção d Por fim, remova o diretório [.filename]#apache_log_dir# existente e substitua-o por um link: -[source,bash] +[source,shell] .... # rm -rf apache_log_dir # ln -s /var/log/apache apache_log_dir diff --git a/documentation/content/pt-br/articles/vinum/_index.adoc b/documentation/content/pt-br/articles/vinum/_index.adoc index 42e4f6fc4e..40d20eaacf 100644 --- a/documentation/content/pt-br/articles/vinum/_index.adoc +++ b/documentation/content/pt-br/articles/vinum/_index.adoc @@ -397,7 +397,7 @@ Para o sistema os volumes são idênticos aos discos, com uma exceção. Ao cont Para criar um sistema de arquivos neste volume, use man:newfs[8]: -[source,bash] +[source,shell] .... # newfs /dev/gvinum/concat .... @@ -478,7 +478,7 @@ Para configurar essas partições `a` para cada dispositivo contendo parte do vo [.procedure] . A localização, offset desde o início do dispositivo, e o tamanho do subdisco desse dispositivo que faz parte do volume raiz precisam ser examinados, usando o comando: + -[source,bash] +[source,shell] .... # gvinum l -rv root .... @@ -486,7 +486,7 @@ Para configurar essas partições `a` para cada dispositivo contendo parte do vo Os offsets (deslocamentos) e tamanhos do [.filename]#vinum# são medidos em bytes. Eles devem ser divididos por 512 para obter os números de blocos que serão usados pelo `bsdlabel`. . Execute este comando para cada dispositivo que participa do volume raiz: + -[source,bash] +[source,shell] .... # bsdlabel -e devname .... @@ -500,7 +500,7 @@ O offset da partição [.filename]#vinum# neste dispositivo (se houver) deve ser Desta forma, uma nova partição `a` será estabelecida sobrepondo a partição [.filename]#vinum# neste dispositivo. O `bsdlabel` só permitirá essa sobreposição se a partição [.filename]#vinum# tiver sido marcada corretamente usando o modo fstype do `vinum`. . Temos agora uma falsa partição `a` em cada dispositivo que possui uma réplica do volume raiz. É altamente recomendável verificar o resultado usando um comando como: + -[source,bash] +[source,shell] .... # fsck -n /dev/devnamea .... @@ -509,7 +509,7 @@ Deve ser lembrado que todos os arquivos contendo informações de controle devem Na próxima reinicialização, o bootstrap deve descobrir as informações de controle apropriadas do novo sistema de arquivos raiz baseado no [.filename]#vinum# e agir de acordo. No final do processo de inicialização do kernel, após todos os dispositivos terem sido anunciados, o aviso de destaque que mostra o sucesso desta configuração é uma mensagem como: -[source,bash] +[source,shell] .... Mounting root from ufs:/dev/gvinum/root .... @@ -518,7 +518,7 @@ Mounting root from ufs:/dev/gvinum/root Depois que o volume raiz [.filename]#vinum# foi configurado, a saída de `gvinum l -rv root` pode parecer com: -[source,bash] +[source,shell] .... ... Subdisk root.p0.s0: @@ -538,7 +538,7 @@ Os valores a serem observados são `135680` para o offset, relativo à partiçã O bsdlabel para esses dispositivos pode se parecer com: -[source,bash] +[source,shell] .... ... 8 partitions: diff --git a/documentation/content/pt-br/books/faq/_index.adoc b/documentation/content/pt-br/books/faq/_index.adoc index fd4b8d9ba6..4f1fd80b49 100644 --- a/documentation/content/pt-br/books/faq/_index.adoc +++ b/documentation/content/pt-br/books/faq/_index.adoc @@ -324,7 +324,7 @@ Depois de escolher o formato e o mecanismo de compactação, baixe os arquivos c Por exemplo, a versão split HTML do FAQ, compactada usando man:bzip2[1], pode ser encontrada em [.filename]#doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2# Para baixar e descompactar esse arquivo, digite: -[source,bash] +[source,shell] .... # fetch https://download.freebsd.org/ftp/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2 # tar xvf book.html-split.tar.bz2 @@ -420,14 +420,14 @@ Se o Windows(TM) for instalado primeiro, então sim. O gerenciador de boot do Fr Isso depende do gerenciador de inicialização. O menu de seleção de inicialização do FreeBSD pode ser reinstalado usando man:boot0cfg[8]. Por exemplo, para restaurar o menu de inicialização no disco _ada0_: -[source,bash] +[source,shell] .... # boot0cfg -B ada0 .... O gerenciador de inicialização MBR não interativo pode ser instalado usando man:gpart[8]: -[source,bash] +[source,shell] .... # gpart bootcode -b /boot/mbr ada0 .... @@ -537,7 +537,7 @@ Veja a lista completa nas Notas de Hardware para o FreeBSD https://www.FreeBSD.o O driver de console padrão, man:vt[4], fornece a capacidade de usar um ponteiro de mouse em consoles de texto para cortar & colar o texto. Execute o daemon do mouse, man:moused[8] e ative o ponteiro do mouse no console virtual: -[source,bash] +[source,shell] .... # moused -p /dev/xxxx -t yyyy # vidcontrol -m on @@ -584,7 +584,7 @@ bindkey ^[[3~ delete-char # para o xterm Algumas placas de som definem seu volume de saída como 0 em cada inicialização. Execute o seguinte comando toda vez que a máquina inicializar: -[source,bash] +[source,shell] .... # mixer pcm 100 vol 100 cd 100 .... @@ -686,7 +686,7 @@ O computador tem dois ou mais relógios e o FreeBSD escolheu usar o errado. Execute o comando man:dmesg[8] e verifique as linhas que contêm a palavra `Timecounter`. Aquele com o maior valor de quality é o que o FreeBSD escolheu. -[source,bash] +[source,shell] .... # dmesg | grep Timecounter Timecounter "i8254" frequency 1193182 Hz quality 0 @@ -697,7 +697,7 @@ Timecounters tick every 1.000 msec Confirme isso verificando o valor da variável `kern.timecounter.hardware` no man:sysctl[3]. -[source,bash] +[source,shell] .... # sysctl kern.timecounter.hardware kern.timecounter.hardware: ACPI-fast @@ -714,7 +714,7 @@ Ou a BIOS poderá modificar o relógio TSC - talvez para mudar a velocidade do p Neste exemplo, o relógio `i8254` também está disponível e pode ser selecionado alterando-se a variável `kern.timecounter.hardware` do man:sysctl[3]. -[source,bash] +[source,shell] .... # sysctl kern.timecounter.hardware=i8254 kern.timecounter.hardware: TSC -> i8254 @@ -878,7 +878,7 @@ Há várias causas possíveis para esse problema: O nome do agendador que atualmente sendo usado está diretamente disponível como o valor da variavel `kern.sched.name` do sysctl: -[source,bash] +[source,shell] .... % sysctl kern.sched.name kern.sched.name: ULE @@ -914,7 +914,7 @@ Quando os discos estiverem formatados com UFS, nunca use nada além do man:dump[ Por exemplo, para mover [.filename]#/dev/ada1s1a# tendo [.filename]#/mnt# como o ponto de montagem temporário, digite: -[source,bash] +[source,shell] .... # newfs /dev/ada1s1a # mount /dev/ada1s1a /mnt @@ -924,7 +924,7 @@ Por exemplo, para mover [.filename]#/dev/ada1s1a# tendo [.filename]#/mnt# como o Reorganizar as partições com o comando `dump` requer um pouco mais de trabalho. Para mesclar uma partição como [.filename]#/var# com a partição pai, crie uma nova partição grande o suficiente para conter ambas, mova a partição pai conforme descrito acima e mova a partição filha para o diretório vazio criado pela primeira movimentação: -[source,bash] +[source,shell] .... # newfs /dev/ada1s1a # mount /dev/ada1s1a /mnt @@ -936,7 +936,7 @@ Reorganizar as partições com o comando `dump` requer um pouco mais de trabalho Para separar um diretório do seu pai, digamos colocar [.filename]#/var# em sua própria partição quando não era antes, crie as duas partições, monte a partição filho no diretório apropriado no ponto de montagem temporário e mova a antiga partição única: -[source,bash] +[source,shell] .... # newfs /dev/ada1s1a # newfs /dev/ada1s1d @@ -992,7 +992,7 @@ O FreeBSD inclui o sistema de arquivos de rede NFS e a Coleção de Ports do Fre As partições secundárias do DOS são encontradas depois de _todas_ as partições primárias. Por exemplo, se `E` for a segunda partição DOS na segunda unidade SCSI, haverá um arquivo de dispositivo para a "slice 5" em [.filename]#/dev#. Para montá-lo: -[source,bash] +[source,shell] .... # mount -t msdosfs /dev/da1s5 /dos/e .... @@ -1028,14 +1028,14 @@ Isso não pode ser feito com o gerenciador de inicialização padrão sem reescr Se a unidade já tiver um sistema de arquivos, use um comando como este: -[source,bash] +[source,shell] .... # mount -t msdosfs /dev/da0s1 /mnt .... Se a unidade só for usada com sistemas FreeBSD, particione-a com UFS ou ZFS. Isso fornecerá suporte a nomes longos de arquivo, melhoria no desempenho e na estabilidade. Se a unidade for usada por outros sistemas operacionais, uma escolha mais portátil, como por exemplo o msdosfs, será mais apropriada. -[source,bash] +[source,shell] .... # dd if=/dev/zero of=/dev/da0 count=2 # gpart create -s GPT /dev/da0 @@ -1044,14 +1044,14 @@ Se a unidade só for usada com sistemas FreeBSD, particione-a com UFS ou ZFS. Is Finalmente, crie um novo sistema de arquivos: -[source,bash] +[source,shell] .... # newfs /dev/da0p1 .... e monte-o: -[source,bash] +[source,shell] .... # mount /dev/da0s1 /mnt .... @@ -1095,7 +1095,7 @@ Por padrão, o man:mount[8] tentará montar a última trilha de dados (sessão) Como `root`, defina a variável `vfs.usermount` do sysctl como `1`. -[source,bash] +[source,shell] .... # sysctl vfs.usermount=1 .... @@ -1115,7 +1115,7 @@ Por exemplo, para permitir que os usuários montem a primeira unidade USB, adici Todos os usuários agora podem montar dispositivos que eles podem ler em um diretório que eles possuem: -[source,bash] +[source,shell] .... % mkdir ~/my-mount-point % mount -t msdosfs /dev/da0 ~/my-mount-point @@ -1123,7 +1123,7 @@ Todos os usuários agora podem montar dispositivos que eles podem ler em um dire Desmontar o dispositivo é simples: -[source,bash] +[source,shell] .... % umount ~/my-mount-point .... @@ -1193,7 +1193,7 @@ A deduplicação também pode levar há algumas situações inesperadas. Em part Isso pode acontecer porque o pool está 100% cheio. O ZFS requer espaço no disco para gravar metadados de transação. Para restaurar o pool para um estado utilizável, primeiro faça o truncate do arquivo que irá excluir: -[source,bash] +[source,shell] .... % truncate -s 0 unimportant-file .... @@ -1229,7 +1229,7 @@ O arquivo de configuração principal é o [.filename]#/etc/defaults/rc.conf#, o Por exemplo, se para iniciar man:named[8], o servidor DNS incluído: -[source,bash] +[source,shell] .... # echo 'named_enable="YES"' >> /etc/rc.conf .... @@ -1248,7 +1248,7 @@ Isto normalmente é causado pela edição do crontab do sistema. Esta não é a Para excluir o crontab extra incorreto: -[source,bash] +[source,shell] .... # crontab -r .... @@ -1259,7 +1259,7 @@ Este é um recurso de segurança. Para executar `su` para `root`, ou qualquer ou Para permitir que alguém execute o comando `su root`, coloque-os no grupo `wheel` usando o comando `pw`: -[source,bash] +[source,shell] .... # pw groupmod wheel -m lisa .... @@ -1347,7 +1347,7 @@ Se a partição raiz não puder ser montada a partir do modo de usuário único, Ao usar man:vt[4], o driver de console padrão, isso pode ser feito configurando o seguinte sysctl man:sysctl[8]: -[source,bash] +[source,shell] .... # sysctl kern.vt.kbd_reboot=0 .... @@ -1356,7 +1356,7 @@ Ao usar man:vt[4], o driver de console padrão, isso pode ser feito configurando Use este comando man:perl[1]: -[source,bash] +[source,shell] .... % perl -i.bak -npe 's/\r\n/\n/g' file(s) .... @@ -1365,7 +1365,7 @@ no qual _files(s)_ trata-se de um ou mais arquivos que desejamos processar. A mo Alternativamente, use o man:tr[1]: -[source,bash] +[source,shell] .... % tr -d '\r' < dos-text-file > unix-file .... @@ -1378,7 +1378,7 @@ Uma outra maneira de reformatar arquivos de texto do DOS é usar o port package: Entre no modo single user e retorne ao modo multi usuário: -[source,bash] +[source,shell] .... # shutdown now # return @@ -1401,7 +1401,7 @@ Resposta curta: o nível de segurança é maior que 0. Reinicialize diretamente Resposta longa: O FreeBSD não permite alterar os flags do sistema em níveis de segurança superiores a 0. Para verificar o nível de segurança atual: -[source,bash] +[source,shell] .... # sysctl kern.securelevel .... @@ -1414,7 +1414,7 @@ Resposta curta: o sistema está em um nível de segurança maior que 1. Reinicia Resposta longa: O FreeBSD proíbe a alteração do tempo em mais de um segundo em níveis de segurança superiores a 1. Para verificar o nível de segurança: -[source,bash] +[source,shell] .... # sysctl kern.securelevel .... @@ -1459,7 +1459,7 @@ O [.filename]#/var/empty# é um diretório que o programa man:sshd[8] utiliza ao Para ver o que man:newsyslog[8] vai fazer, use o seguinte: -[source,bash] +[source,shell] .... % newsyslog -nrvv .... @@ -1486,7 +1486,7 @@ Use package:x11/xorg-minimal[], que constrói e instala apenas os componentes Xo Instale o Xorg a partir de pacotes do FreeBSD: -[source,bash] +[source,shell] .... # pkg install xorg .... @@ -1531,7 +1531,7 @@ link sysmouse mouse Este link pode ser criado reiniciando o man:devfs[5] com o seguinte comando (executado como `root`): -[source,bash] +[source,shell] .... # service devfs restart .... @@ -1599,7 +1599,7 @@ Por motivos de segurança, a configuração padrão é não permitir que uma má Para ativar esse recurso, inicie o X com o argumento opcional `-listen_tcp`: -[source,bash] +[source,shell] .... % startx -listen_tcp .... @@ -1714,7 +1714,7 @@ Supondo que todos os teclados Windows sigam um padrão, os códigos de teclas pa Para que a tecla kbd:[ Windows ] da esquerda imprima uma vírgula, tente isto. -[source,bash] +[source,shell] .... # xmodmap -e "keycode 115 = comma" .... @@ -1780,14 +1780,14 @@ Sim. Para obter instruções sobre como usar o NAT em uma conexão PPP, consulte Se o alias estiver na mesma sub-rede que um endereço já configurado na interface, adicione `netmask 0xffffffff` a este comando: -[source,bash] +[source,shell] .... # ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff .... Caso contrário, especifique o endereço de rede e a máscara de rede como de costume: -[source,bash] +[source,shell] .... # ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00 .... @@ -1798,7 +1798,7 @@ Mais informações podem ser encontradas link:{handbook}#configtuning-virtual-ho Algumas versões do código NFS do Linux(TM) aceitam somente solicitações de montagem vindas de uma porta privilegiada; tente executar o seguinte comando: -[source,bash] +[source,shell] .... # mount -o -P linuxbox:/blah /mnt .... @@ -1821,7 +1821,7 @@ Se o kernel é compilado com a opção `IPFIREWALL`, esteja ciente de que a pol Se o firewall foi inadvertidamente configurado de forma errada, restaure a operacionalidade da rede digitando o seguinte comando como `root`: -[source,bash] +[source,shell] .... # ipfw add 65534 allow all from any to any .... @@ -1834,7 +1834,7 @@ Para obter mais informações sobre como configurar seu firewall, consulte o lin Possivelmente porque você precisa utilizar a conversão de endereços de rede (NAT) em vez de apenas encaminhar os pacotes. Uma regra "fwd" apenas encaminha os pacotes, ela não altera os dados dentro do pacote. Considere esta regra: -[source,bash] +[source,shell] .... 01000 fwd 10.0.0.1 from any to foo 21 .... @@ -1880,14 +1880,14 @@ Esta mensagem do kernel indica que alguma atividade está provocando o envio de O primeiro número na mensagem indica quantos pacotes o kernel teria enviado se o limite não estivesse no lugar e o segundo indica o limite. Este limite é controlado usando `net.inet.icmp.icmplim`. Este exemplo define o limite para `300` pacotes por segundo: -[source,bash] +[source,shell] .... # sysctl net.inet.icmp.icmplim=300 .... Para desativar essas mensagens sem desativar a limitação de resposta, use o `net.inet.icmp.icmplim_output` para desativar a saída: -[source,bash] +[source,shell] .... # sysctl net.inet.icmp.icmplim_output=0 .... @@ -1906,7 +1906,7 @@ Porque um pacote está vindo de fora da rede inesperadamente. Para desativá-los Configure seu kernel com estas configurações: -[source,bash] +[source,shell] .... include GENERIC ident GENERIC-IPV6ONLY @@ -1953,7 +1953,7 @@ Um processo UNIX(TM) é de propriedade de um determinado ID de usuário. Se o ID Para verificar o status do securelevel em um sistema em execução: -[source,bash] +[source,shell] .... # sysctl -n kern.securelevel .... @@ -1992,7 +1992,7 @@ Veja link:{handbook}#serialconsole-setup[ esta seção do Handbook]. Quando o kernel do FreeBSD for inicializado, ele irá sondar as portas seriais para as quais o kernel está configurado. Observe atentamente as mensagens de inicialização ou execute este comando após o sistema estar ativo e em execução: -[source,bash] +[source,shell] .... % grep -E '^(sio|uart)[0-9]' < /var/run/dmesg.boot sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 @@ -2051,7 +2051,7 @@ Os utilitários man:tip[1] and man:cu[1] só podem acessar o diretório [.filena Como alternativa, todos podem ser configurados para executar man:tip[1] e man:cu[1] digitando: -[source,bash] +[source,shell] .... # chmod 4511 /usr/bin/cu # chmod 4511 /usr/bin/tip @@ -2073,7 +2073,7 @@ A resposta simples é que a memória livre é uma memória desperdiçada. Qualqu Os links simbólicos não têm permissões e, por padrão, man:chmod[1] seguirá links simbólicos para alterar as permissões no arquivo de origem, se possível. Para o arquivo, [.filename]#foo# com um link simbólico chamado [.filename]#bar#, este comando será sempre bem-sucedido. -[source,bash] +[source,shell] .... % chmod g-w bar .... @@ -2087,7 +2087,7 @@ Ao alterar os modos das hierarquias de arquivos do usuario root em vez dos próp `-R` faz um man:chmod[1] recursivo. Tenha cuidado ao especificar diretórios ou links simbólicos para diretórios para o man:chmod[1]. Para alterar as permissões de um diretório referenciado por um link simbólico, use man:chmod[1] sem nenhuma opção e siga o link simbólico com uma barra à direita ([.filename]#/#). Por exemplo, se [.filename]#foo# for um link simbólico para o diretório [.filename]#bar#, para alterar as permissões de [.filename]#foo# (na verdade [.filename]#bar#) faça algo como: -[source,bash] +[source,shell] .... % chmod 555 foo/ .... @@ -2328,14 +2328,14 @@ Para prosseguir: . Anote o valor do ponteiro de instrução. Note que a parte `0x8:` no começo não é relevante neste caso: é a parte `0xf0xxxxxx` que nós queremos. . Quando o sistema for reinicializado, faça o seguinte: + -[source,bash] +[source,shell] .... % nm -n kernel.that.caused.the.panic | grep f0xxxxxx .... + no qual `f0xxxxxx` é o valor do ponteiro de instrução. As probabilidades são de que você não obterá uma correspondência exata, pois os símbolos na tabela de símbolos do kernel são para os pontos de entrada das funções e o endereço do ponteiro de instrução estará em algum lugar dentro de uma função, não no início. Se você não obtiver uma correspondência exata, omita o último dígito do valor do ponteiro de instrução e tente novamente: + -[source,bash] +[source,shell] .... % nm -n kernel.that.caused.the.panic | grep f0xxxxx .... @@ -2359,21 +2359,21 @@ makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols + . Mude para o diretório [.filename]#/usr/src#: + -[source,bash] +[source,shell] .... # cd /usr/src .... + . Compile o kernel: + -[source,bash] +[source,shell] .... # make buildkernel KERNCONF=MYKERNEL .... + . Aguarde até o man:make[1] terminar a compilação. + -[source,bash] +[source,shell] .... # make installkernel KERNCONF=MYKERNEL .... @@ -2397,7 +2397,7 @@ Os despejos de memória do FreeBSD são geralmente do mesmo tamanho que a RAM f Depois que o despejo de memória for recuperado, obtenha um rastreamento de pilha da seguinte maneira: -[source,bash] +[source,shell] .... % kgdb /usr/obj/usr/src/sys/MYKERNEL/kernel.debug /var/crash/vmcore.0 (kgdb) backtrace diff --git a/documentation/content/pt-br/books/handbook/advanced-networking/_index.adoc b/documentation/content/pt-br/books/handbook/advanced-networking/_index.adoc index 2b8b9093ce..0a97a16b23 100644 --- a/documentation/content/pt-br/books/handbook/advanced-networking/_index.adoc +++ b/documentation/content/pt-br/books/handbook/advanced-networking/_index.adoc @@ -81,7 +81,7 @@ Esta seção fornece uma visão geral dos fundamentos de roteamento. Em seguida, Para ver a tabela de roteamento de um sistema FreeBSD, use man:netstat[1]: -[source,bash] +[source,shell] .... % netstat -r Routing tables @@ -166,7 +166,7 @@ defaultrouter="10.20.30.1" Também é possível adicionar manualmente a rota usando o comando `route`: -[source,bash] +[source,shell] .... # route add default 10.20.30.1 .... @@ -202,7 +202,7 @@ Neste cenário, o `RouterA` é uma máquina FreeBSD que está agindo como um rot Antes de adicionar rotas estáticas, a tabela de roteamento no `RouterA` se parece com: -[source,bash] +[source,shell] .... % netstat -nr Routing tables @@ -217,7 +217,7 @@ default 10.0.0.1 UGS 0 49378 xl0 Com a tabela de roteamento atual, o `RouterA` não tem uma rota para a rede `192.168.2.0/24`. O comando a seguir adiciona a rede `Internal Net 2` à tabela de roteamento do `RouterA` usando `192.168.1.2` como o próximo salto: -[source,bash] +[source,shell] .... # route add -net 192.168.2.0/24 192.168.1.2 .... @@ -300,14 +300,14 @@ Conectar um computador a uma rede sem fio existente é uma situação muito comu . Obtenha o SSID (identificador de conjunto de serviços) e PSK (chave pré-compartilhada) para a rede sem fio do administrador da rede. . Identifique o adaptador sem fio. O kernel [.filename]#GENERIC# do FreeBSD inclui drivers para muitos adaptadores sem fio comuns. Se o adaptador sem fio for um desses modelos, ele será mostrado na saída do man:ifconfig[8]: + -[source,bash] +[source,shell] .... % ifconfig | grep -B3 -i wireless .... + No FreeBSD 11 ou superior, use este comando: + -[source,bash] +[source,shell] .... % sysctl net.wlan.devices .... @@ -335,7 +335,7 @@ ifconfig_wlan0="WPA SYNCDHCP" + . Reinicie o computador ou reinicie o serviço de rede para conectar-se à rede: + -[source,bash] +[source,shell] .... # service netif restart .... @@ -400,7 +400,7 @@ Com esta informação no arquivo de configuração do kernel, recompile o kernel Informações sobre o dispositivo sem fio devem aparecer nas mensagens de inicialização, assim: -[source,bash] +[source,shell] .... ath0: <Atheros 5212> mem 0x88000000-0x8800ffff irq 11 at device 0.0 on cardbus1 ath0: [ITHREAD] @@ -413,14 +413,14 @@ Como a situação regulatória é diferente em várias partes do mundo, é neces As definições de região disponíveis podem ser encontradas em [.filename]#/etc/regdomain.xml#. Para definir os dados em tempo de execução, use o `ifconfig`: -[source,bash] +[source,shell] .... # ifconfig wlan0 regdomain ETSI country AT .... Para persistir as configurações, adicione-o ao [.filename]#/etc/rc.conf#: -[source,bash] +[source,shell] .... # sysrc create_args_wlan0="country AT regdomain ETSI" .... @@ -435,7 +435,7 @@ O modo de infra-estrutura (BSS) é o modo normalmente usado. Neste modo, vários Para procurar redes disponíveis, use man:ifconfig[8]. Essa solicitação pode demorar alguns instantes para ser concluída, pois exige que o sistema alterne para cada frequência sem fio disponível e sonde os pontos de acesso disponíveis. Apenas o superusuário pode iniciar uma varredura: -[source,bash] +[source,shell] .... # ifconfig wlan0 create wlandev ath0 # ifconfig wlan0 up scan @@ -475,7 +475,7 @@ A saída de uma solicitação de varredura lista cada rede BSS/IBSS encontrada. Pode-se também exibir a lista atual de redes conhecidas com: -[source,bash] +[source,shell] .... # ifconfig wlan0 list scan .... @@ -553,14 +553,14 @@ ifconfig_wlan0="DHCP" A interface sem fio está agora pronta para subir: -[source,bash] +[source,shell] .... # service netif start .... Quando a interface estiver rodando, use o man:ifconfig[8] para ver o status da interface [.filename]#ath0#: -[source,bash] +[source,shell] .... # ifconfig wlan0 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 @@ -626,7 +626,7 @@ ifconfig_wlan0="WPA DHCP" Então, suba a interface: -[source,bash] +[source,shell] .... # service netif start Starting wpa_supplicant. @@ -650,7 +650,7 @@ wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 Ou, tente configurar a interface manualmente usando as informações em [.filename]#/etc/wpa_supplicant.conf#: -[source,bash] +[source,shell] .... # wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz) @@ -661,7 +661,7 @@ CTRL-EVENT-CONNECTED - Connection to 00:11:95:c3:0d:ac completed (auth) [id=0 id A próxima operação é iniciar o man:dhclient[8] para obter o endereço IP do servidor DHCP: -[source,bash] +[source,shell] .... # dhclient wlan0 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 @@ -687,7 +687,7 @@ Se o [.filename]#/etc/rc.conf# tiver uma entrada `ifconfig_wlan0="DHCP"`, man:dh Se o DHCP não for possível ou desejado, defina um endereço IP estático após o man:wpa_supplicant[8] autenticar a estação: -[source,bash] +[source,shell] .... # ifconfig wlan0 inet 192.168.0.100 netmask 255.255.255.0 # ifconfig wlan0 @@ -705,7 +705,7 @@ wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 Quando o DHCP não é usado, o gateway padrão e o servidor de nomes também precisam ser definidos manualmente: -[source,bash] +[source,shell] .... # route add default your_default_router # echo "nameserver your_DNS_server" >> /etc/resolv.conf @@ -765,7 +765,7 @@ ifconfig_wlan0="WPA DHCP" O próximo passo é subir a interface: -[source,bash] +[source,shell] .... # service netif start Starting wpa_supplicant. @@ -828,7 +828,7 @@ ifconfig_wlan0="WPA DHCP" O próximo passo é subir a interface: -[source,bash] +[source,shell] .... # service netif start Starting wpa_supplicant. @@ -900,7 +900,7 @@ ifconfig_wlan0="WPA DHCP" Então, suba a interface: -[source,bash] +[source,shell] .... # service netif start Starting wpa_supplicant. @@ -928,7 +928,7 @@ A privacidade equivalente com fio (WEP) faz parte do padrão 802.11 original. N O WEP pode ser configurado usando o man:ifconfig[8]: -[source,bash] +[source,shell] .... # ifconfig wlan0 create wlandev ath0 # ifconfig wlan0 inet 192.168.1.100 netmask 255.255.255.0 \ @@ -959,7 +959,7 @@ network={ Então: -[source,bash] +[source,shell] .... # wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz) @@ -972,7 +972,7 @@ O modo IBSS, também chamado de modo ad-hoc, é projetado para conexões ponto a Em `A`: -[source,bash] +[source,shell] .... # ifconfig wlan0 create wlandev ath0 wlanmode adhoc # ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap @@ -991,7 +991,7 @@ O parâmetro `adhoc` indica que a interface está sendo executada no modo IBSS. `B` deve ser capaz de detectar `A`: -[source,bash] +[source,shell] .... # ifconfig wlan0 create wlandev ath0 wlanmode adhoc # ifconfig wlan0 up scan @@ -1001,7 +1001,7 @@ O parâmetro `adhoc` indica que a interface está sendo executada no modo IBSS. O `I` na saída confirma que `A` está no modo ad-hoc. Agora, configure `B` com um endereço IP diferente: -[source,bash] +[source,shell] .... # ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap # ifconfig wlan0 @@ -1034,7 +1034,7 @@ O wrapper do driver NDIS para os drivers Windows(TM) não suporta atualmente a o Quando o suporte à rede sem fio estiver carregado, verifique se o dispositivo sem fio oferece suporte ao modo de ponto de acesso baseado em host, também conhecido como modo hostap: -[source,bash] +[source,shell] .... # ifconfig wlan0 create wlandev ath0 # ifconfig wlan0 list caps @@ -1046,14 +1046,14 @@ Esta saída exibe os recursos da placa. A palavra `HOSTAP` confirma que esta pla O dispositivo sem fio só pode ser colocado no modo hostap durante a criação do pseudo-dispositivo de rede, portanto, um dispositivo criado anteriormente deve ser destruído primeiro: -[source,bash] +[source,shell] .... # ifconfig wlan0 destroy .... e então regenerado com a opção correta antes de configurar os outros parâmetros: -[source,bash] +[source,shell] .... # ifconfig wlan0 create wlandev ath0 wlanmode hostap # ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1 @@ -1061,7 +1061,7 @@ e então regenerado com a opção correta antes de configurar os outros parâmet Use o man:ifconfig[8] novamente para ver o status da interface [.filename]#wlan0#: -[source,bash] +[source,shell] .... # ifconfig wlan0 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 @@ -1091,7 +1091,7 @@ Embora não seja recomendado executar um AP sem nenhuma autenticação ou cripto Quando o AP estiver configurado, inicie uma verificação de outra máquina sem fio para encontrar o AP: -[source,bash] +[source,shell] .... # ifconfig wlan0 create wlandev ath0 # ifconfig wlan0 up scan @@ -1101,7 +1101,7 @@ freebsdap 00:11:95:c3:0d:ac 1 54M -66:-96 100 ES WME A máquina cliente encontrou o AP e pode ser associado a ele: -[source,bash] +[source,shell] .... # ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap # ifconfig wlan0 @@ -1170,12 +1170,12 @@ Algoritmos de criptografia aceitos pelo ponto de acesso. Neste exemplo, apenas a O próximo passo é iniciar man:hostapd[8]: -[source,bash] +[source,shell] .... # service hostapd forcestart .... -[source,bash] +[source,shell] .... # ifconfig wlan0 wlan0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 @@ -1200,7 +1200,7 @@ Não é recomendado o uso do WEP para configurar um AP, já que não há mecanis O dispositivo sem fio agora pode ser colocado no modo hostap e configurado com o endereço SSID e IP corretos: -[source,bash] +[source,shell] .... # ifconfig wlan0 create wlandev ath0 wlanmode hostap # ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 \ @@ -1212,7 +1212,7 @@ O dispositivo sem fio agora pode ser colocado no modo hostap e configurado com o Use o man:ifconfig[8] para ver o status da interface [.filename]#wlan0#: -[source,bash] +[source,shell] .... # ifconfig wlan0 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 @@ -1227,7 +1227,7 @@ Use o man:ifconfig[8] para ver o status da interface [.filename]#wlan0#: De uma outra máquina sem fio, agora é possível iniciar uma varredura para encontrar o AP: -[source,bash] +[source,shell] .... # ifconfig wlan0 create wlandev ath0 # ifconfig wlan0 up scan @@ -1256,7 +1256,7 @@ O suporte a depuração é fornecido pelo man:wpa_supplicant[8]. Tente executar * Uma vez que o sistema possa se associar com o ponto de acesso, diagnostique a configuração da rede usando ferramentas como o man:ping[8]. * Existem muitas ferramentas de depuração de nível inferior. As mensagens de depuração podem ser ativadas na camada de suporte do protocolo 802.11 usando o man:wlandebug[8]. Por exemplo, para habilitar mensagens do console relacionadas à varredura de pontos de acesso e aos handshakes do protocolo 802.11 necessários para organizar a comunicação: + -[source,bash] +[source,shell] .... # wlandebug -i wlan0 +scan+auth+debug+assoc net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan> @@ -1277,7 +1277,7 @@ Muitos telefones celulares oferecem a opção de compartilhar sua conexão de da Antes de conectar um dispositivo, carregue o driver apropriado no kernel: -[source,bash] +[source,shell] .... # kldload if_urndis # kldload if_cdce @@ -1288,7 +1288,7 @@ Uma vez que o dispositivo esteja conectado, ``ue``__0__ estará disponível para Para tornar essa alteração permanente e carregar o driver como um módulo no momento da inicialização, coloque a linha apropriada abaixo em [.filename]#/boot/loader.conf#: -[source,bash] +[source,shell] .... if_urndis_load="YES" if_cdce_load="YES" @@ -1308,7 +1308,7 @@ A pilha Bluetooth no FreeBSD é implementada usando o framework man:netgraph[4]. Antes de conectar um dispositivo, determine qual dos drivers acima ele usa e, em seguida, carregue o driver. Por exemplo, se o dispositivo usar o driver man:ng_ubt[4]: -[source,bash] +[source,shell] .... # kldload ng_ubt .... @@ -1322,7 +1322,7 @@ ng_ubt_load="YES" Quando o driver estiver carregado, conecte o dongle USB. Se a carga do driver tiver sido bem-sucedida, uma saída semelhante à seguinte deve aparecer no console e em [.filename]#/var/log/messages#: -[source,bash] +[source,shell] .... ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2 ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2 @@ -1332,7 +1332,7 @@ ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3, Para iniciar e parar a stack Bluetooth, use seu script de inicialização. É uma boa ideia parar a stack antes de desconectar o dispositivo. Iniciar a stack bluetooth pode exigir que o man:hcsecd[8] seja iniciado. Ao iniciar a stack, a saída deve ser semelhante à seguinte: -[source,bash] +[source,shell] .... # service bluetooth start ubt0 BD_ADDR: 00:02:72:00:d4:1a @@ -1354,7 +1354,7 @@ A Interface do Controlador do Host (HCI) fornece um método uniforme para acessa Uma das tarefas mais comuns é a descoberta de dispositivos Bluetooth dentro da proximidade RF. Esta operação é chamada _inquiry_. Investigação e outras operações relacionadas a HCI são feitas usando man:hccontrol[8]. O exemplo abaixo mostra como descobrir quais dispositivos Bluetooth estão ao alcance. A lista de dispositivos deve ser exibida em alguns segundos. Note que um dispositivo remoto só irá responder a pergunta se estiver configurado para o modo _detectável_. -[source,bash] +[source,shell] .... % hccontrol -n ubt0hci inquiry Inquiry result, num_responses=1 @@ -1370,7 +1370,7 @@ Inquiry complete. Status: No error [00] O `BD_ADDR` é o endereço exclusivo de um dispositivo Bluetooth, semelhante ao endereço MAC de uma placa de rede. Este endereço é necessário para uma comunicação posterior com um dispositivo e é possível atribuir um nome legível a um `BD_ADDR`. Informações sobre os hosts Bluetooth conhecidos estão contidas em [.filename]#/etc/bluetooth/hosts#. O exemplo a seguir mostra como obter o nome legível que foi atribuído ao dispositivo remoto: -[source,bash] +[source,shell] .... % hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4 BD_ADDR: 00:80:37:29:19:a4 @@ -1383,7 +1383,7 @@ Dispositivos remotos podem receber aliases em [.filename]#/etc/bluetooth/hosts#. O sistema Bluetooth fornece uma conexão ponta-a-ponto entre duas unidades Bluetooth ou uma conexão ponto-a-multiponto que é compartilhada entre vários dispositivos Bluetooth. O exemplo a seguir mostra como criar uma conexão a um dispositivo remoto: -[source,bash] +[source,shell] .... % hccontrol -n ubt0hci create_connection BT_ADDR .... @@ -1392,7 +1392,7 @@ O `create_connection` aceita `BT_ADDR`, bem como aliases de host em [.filename]# O exemplo a seguir mostra como obter a lista de conexões de banda base ativas para o dispositivo local: -[source,bash] +[source,shell] .... % hccontrol -n ubt0hci read_connection_list Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State @@ -1401,7 +1401,7 @@ Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State Um _identificador de conexão_ é útil quando a finalização da conexão de banda base é necessária, embora normalmente não seja necessário fazer isso manualmente. A stack terminará automaticamente as conexões de banda básica inativas. -[source,bash] +[source,shell] .... # hccontrol -n ubt0hci disconnect 41 Connection handle: 41 @@ -1457,7 +1457,7 @@ No FreeBSD, esses perfis são implementados com o man:ppp[8] e o wrapper man:rfc Neste exemplo, o man:rfcomm_pppd[8] é usado para abrir uma conexão com um dispositivo remoto com um `BD_ADDR` de `00:80:37:29:19:a4` em um canal DUNRFCOMM: -[source,bash] +[source,shell] .... # rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup .... @@ -1466,7 +1466,7 @@ O número real do canal será obtido a partir do dispositivo remoto usando o pro Para fornecer acesso à rede com o serviço PPPLAN, o man:sdpd[8] precisa estar sendo executado e uma nova entrada para clientes LAN deve ser criada em [.filename]#/etc/ppp/ppp.conf#. Consulte man:rfcomm_pppd[8] para exemplos. Por fim, inicie o servidor RFCOMMPPP em um número de canal RFCOMM válido. O servidor RFCOMMPPP registrará automaticamente o serviço Bluetooth LAN com o daemon local SDP. O exemplo abaixo mostra como iniciar o servidor RFCOMMPPP. -[source,bash] +[source,shell] .... # rfcomm_pppd -s -C 7 -l rfcomm-server .... @@ -1485,7 +1485,7 @@ No FreeBSD, um nó netgraph L2CAP é criado para cada dispositivo Bluetooth. Ess Um comando útil é o man:l2ping[8], que pode ser usado para executar ping em outros dispositivos. Algumas implementações Bluetooth podem não retornar todos os dados enviados para elas, portanto, a saída `0 bytes` no exemplo a seguir é normal. -[source,bash] +[source,shell] .... # l2ping -a 00:80:37:29:19:a4 0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0 @@ -1496,7 +1496,7 @@ Um comando útil é o man:l2ping[8], que pode ser usado para executar ping em ou O utilitário man:l2control[8] é usado para executar várias operações em nós L2CAP. Este exemplo mostra como obter a lista de conexões lógicas (canais) e a lista de conexões de banda base para o dispositivo local: -[source,bash] +[source,shell] .... % l2control -a 00:02:72:00:d4:1a read_channel_list L2CAP channels: @@ -1510,7 +1510,7 @@ Remote BD_ADDR Handle Flags Pending State Outra ferramenta de diagnóstico é o man:btsockstat[1]. Ele é semelhante ao man:netstat[1], mas para estruturas de dados relacionadas à rede Bluetooth. O exemplo abaixo mostra a mesma conexão lógica que man:l2control[8] acima. -[source,bash] +[source,shell] .... % btsockstat Active L2CAP sockets @@ -1544,7 +1544,7 @@ Normalmente, um cliente SDP procura serviços baseados em algumas característic O servidor Bluetooth SDP, man:sdpd[8] e o cliente de linha de comandos, man:sdpcontrol[8], estão incluídos na instalação padrão do FreeBSD. O exemplo a seguir mostra como executar uma consulta de navegação SDP. -[source,bash] +[source,shell] .... % sdpcontrol -a 00:01:03:fc:6e:ec browse Record Handle: 00000000 @@ -1572,7 +1572,7 @@ Bluetooth Profile Descriptor List: Observe que cada serviço tem uma lista de atributos, como o canal RFCOMM. Dependendo do serviço, o usuário pode precisar anotar alguns dos atributos. Algumas implementações Bluetooth não suportam a navegação de serviço e podem retornar uma lista vazia. Nesse caso, é possível procurar pelo serviço específico. O exemplo abaixo mostra como pesquisar o serviço OBEX Object Push (OPUSH) : -[source,bash] +[source,shell] .... % sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH .... @@ -1586,7 +1586,7 @@ sdpd_enable="YES" Então o daemon man:sdpd[8] pode ser iniciado com: -[source,bash] +[source,shell] .... # service sdpd start .... @@ -1595,7 +1595,7 @@ O aplicativo de servidor local que deseja fornecer um serviço Bluetooth a clien A lista de serviços registrados no servidor SDPlocal pode ser obtida através da emissão de uma consulta de navegação SDP através do canal de controle local: -[source,bash] +[source,shell] .... # sdpcontrol -l browse .... @@ -1608,7 +1608,7 @@ O servidor e o cliente OBEX são implementados pelo obexapp, que pode ser instal O cliente OBEX é usado para empurrar e/ou puxar objetos do servidor OBEX. Um exemplo de objeto é um cartão de visita ou um compromisso. O cliente OBEX pode obter o número do canal RFCOMM do dispositivo remoto via SDP. Isso pode ser feito especificando o nome do serviço em vez do número do canal RFCOMM. Os nomes de serviços suportados são: `IrMC`, `FTRN` e `OPUSH`. Também é possível especificar o canal RFCOMM como um número. Abaixo está um exemplo de uma sessão OBEX em que o objeto de informações do dispositivo é extraído do telefone celular e um novo objeto, o cartão de visita, é inserido no diretório do telefone. -[source,bash] +[source,shell] .... % obexapp -a 00:80:37:29:19:a4 -C IrMC obex> get telecom/devinfo.txt devinfo-t39.txt @@ -1621,7 +1621,7 @@ Success, response: OK, Success (0x20) Para fornecer o serviço OPUSH, o man:sdpd[8] deve estar em execução e uma pasta raiz, onde todos os objetos recebidos serão armazenados, deve ser criado. O caminho padrão para a pasta raiz é [.filename]#/var/spool/obex#. Por fim, inicie o servidor OBEX em um número de canal RFCOMM válido. O servidor OBEX registrará automaticamente o serviço OPUSH com o daemon SDP local. O exemplo abaixo mostra como iniciar o servidor OBEX. -[source,bash] +[source,shell] .... # obexapp -s -C 10 .... @@ -1632,7 +1632,7 @@ O perfil de porta serial (SPP) permite que dispositivos Bluetooth executem emula No FreeBSD, o man:rfcomm_sppd[1] implementa o SPP e uma pseudo tty é usada como uma abstração de porta serial virtual. O exemplo abaixo mostra como se conectar ao serviço de porta serial de um dispositivo remoto. Um canal RFCOMM não precisa ser especificado uma vez que o man:rfcomm_sppd[1] pode obtê-lo a partir do dispositivo remoto via SDP. Para sobrescrever isso, especifique um canal RFCOMM na linha de comando. -[source,bash] +[source,shell] .... # rfcomm_sppd -a 00:07:E0:00:0B:CA -t rfcomm_sppd[94692]: Starting on /dev/pts/6... @@ -1641,7 +1641,7 @@ rfcomm_sppd[94692]: Starting on /dev/pts/6... Uma vez conectado, o pseudo-tty pode ser usado como porta serial: -[source,bash] +[source,shell] .... # cu -l /dev/pts/6 .... @@ -1658,7 +1658,7 @@ cu -l $PTS Por padrão, quando o FreeBSD está aceitando uma nova conexão, ele tenta executar uma troca de função e se tornar o mestre. Alguns dispositivos Bluetooth mais antigos que não suportam a troca de função não poderão se conectar. Como a troca de função é executada quando uma nova conexão está sendo estabelecida, não é possível perguntar ao dispositivo remoto se ele suporta a troca de função. No entanto, há uma opção HCI para desativar a alternância de funções no lado local: -[source,bash] +[source,shell] .... # hccontrol -n ubt0hci write_node_role_switch 0 .... @@ -1704,7 +1704,7 @@ No FreeBSD, o man:if_bridge[4] é um módulo do kernel que é carregado automati A bridge é criada usando clonagem de interface. Para criar a interface da bridge: -[source,bash] +[source,shell] .... # ifconfig bridge create bridge0 @@ -1720,7 +1720,7 @@ Quando uma interface de bridge é criada, ela recebe automaticamente um endereç Em seguida, especifique quais interfaces de rede adicionar como membros da bridge. Para a bridge encaminhar pacotes, todas as interfaces de membros e a bridge precisam estar ativas: -[source,bash] +[source,shell] .... # ifconfig bridge0 addm fxp0 addm fxp1 up # ifconfig fxp0 up @@ -1739,7 +1739,7 @@ ifconfig_fxp1="up" Se o host de ponte precisar de um endereço IP, defina-o na interface de bridge, não nas interfaces de membro. O endereço pode ser definido estaticamente ou via DHCP. Este exemplo define um endereço IP estático: -[source,bash] +[source,shell] .... # ifconfig bridge0 inet 192.168.0.1/24 .... @@ -1761,7 +1761,7 @@ O protocolo Rapid Spanning Tree (RSTP ou 802.1w) fornece compatibilidade retroat O STP pode ser ativado nas interfaces de membro usando o man:ifconfig[8]. Para uma bridge com [.filename]#fxp0# e [.filename]#fxp1# como as interfaces atuais, ative o STP com: -[source,bash] +[source,shell] .... # ifconfig bridge0 stp fxp0 stp fxp1 bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 @@ -1781,7 +1781,7 @@ Essa ponte possui um spanning tree ID de `00:01:02:4b:d4:50` e uma prioridade de Outra bridge na rede também tem o STP ativado: -[source,bash] +[source,shell] .... bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 96:3d:4b:f1:79:7a @@ -1808,7 +1808,7 @@ Uma interface privada não encaminha qualquer tráfego para qualquer outra porta span:: Uma porta span transmite uma cópia de cada quadro Ethernet recebido pela bridge. O número de portas de span configuradas em uma bridge é ilimitado, mas se uma interface for designada como uma porta de span, ela também não poderá ser usada como uma porta de bridge comum. Isso é mais útil para espionar passivamente uma rede em bridge a partir de outro host conectado a uma das portas da bridge. Por exemplo, para enviar uma cópia de todos os quadros para fora da interface denominada [.filename]#fxp4#: + -[source,bash] +[source,shell] .... # ifconfig bridge0 span fxp4 .... @@ -1818,7 +1818,7 @@ Se uma interface de membro de uma bridge estiver marcada como fixa, as entradas + Um exemplo do uso de endereços fixos é combinar a bridge com VLANs para isolar redes de clientes sem desperdiçar espaço de endereço IP. Considere que `CustomerA` está em `vlan100`, `CustomerB` está em `vlan101`, e a bridge tem o endereço `192.168.0.1`: + -[source,bash] +[source,shell] .... # ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101 # ifconfig bridge0 inet 192.168.0.1/24 @@ -1828,7 +1828,7 @@ Neste exemplo, os dois clientes vêem `192.168.0.1` como seu gateway padrão. Co + Qualquer comunicação entre as VLANs pode ser bloqueada usando um firewall ou, como visto neste exemplo, interfaces privadas: + -[source,bash] +[source,shell] .... # ifconfig bridge0 private vlan100 private vlan101 .... @@ -1839,14 +1839,14 @@ O número de endereços MAC de origem exclusivos por trás de uma interface pode + O exemplo a seguir define o número máximo de dispositivos Ethernet para `CustomerA` em `vlan100` para 10: + -[source,bash] +[source,shell] .... # ifconfig bridge0 ifmaxaddr vlan100 10 .... As interfaces de bridge também suportam o modo monitor, onde os pacotes são descartados após processamento do man:bpf[4] e não são processados ou encaminhados. Isso pode ser usado para multiplexar a entrada de duas ou mais interfaces em um único fluxo man:bpf[4]. Isso é útil para reconstruir o tráfego de taps de rede que transmitem os sinais RX/TX através de duas interfaces separadas. Por exemplo, para ler a entrada de quatro interfaces de rede como um fluxo: -[source,bash] +[source,shell] .... # ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up # tcpdump -i bridge0 @@ -1872,7 +1872,7 @@ bsnmpd_enable="YES" Em seguida, inicie o man:bsnmpd[1]: -[source,bash] +[source,shell] .... # service bsnmpd start .... @@ -1887,7 +1887,7 @@ mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIB Para monitorar uma única bridge usando o IETF BRIDGE-MIB (RFC4188): -[source,bash] +[source,shell] .... % snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44 @@ -1911,7 +1911,7 @@ O valor `dot1dStpTopChanges.0` é dois, indicando que a topologia da bridge STP Para monitorar várias interfaces de bridge, o BEGEMOT-BRIDGE-MIB privado pode ser usado: -[source,bash] +[source,shell] .... % snmpwalk -v 2c -c public bridge1.example.com enterprises.fokus.begemot.begemotBridge @@ -1932,7 +1932,7 @@ BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge2" = Hex-STRING: 80 00 Para alterar a interface da bridge que está sendo monitorada através da subárvore `mib-2.dot1dBridge`: -[source,bash] +[source,shell] .... % snmpset -v 2c -c private bridge1.example.com BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2 @@ -1973,7 +1973,7 @@ A ordenação de quadros é obrigatória em links Ethernet e qualquer tráfego e No switch Cisco(TM), adicione as interfaces _FastEthernet0/1_ e _FastEthernet0/2_ ao grupo de canais _1_: -[source,bash] +[source,shell] .... interface FastEthernet0/1 channel-group 1 mode active @@ -1986,7 +1986,7 @@ interface FastEthernet0/2 No sistema FreeBSD, crie a interface man:lagg[4] usando as interfaces físicas _fxp0_ e _fxp1_ e suba as interfaces com o endereço IP de _10.0.0.3/24_: -[source,bash] +[source,shell] .... # ifconfig fxp0 up # ifconfig fxp1 up @@ -1996,7 +1996,7 @@ No sistema FreeBSD, crie a interface man:lagg[4] usando as interfaces físicas _ Em seguida, verifique o status da interface virtual: -[source,bash] +[source,shell] .... # ifconfig lagg0 lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 @@ -2014,7 +2014,7 @@ Portas marcadas como `ACTIVE` fazem parte do LAG que foi negociado com o switch Para ver o status da porta no switch Cisco(TM): -[source,bash] +[source,shell] .... switch# show lacp neighbor Flags: S - Device is requesting Slow LACPDUs @@ -2051,7 +2051,7 @@ ifconfig_lagg0="laggproto lacp laggport fxp0 laggport fxp1 10.0.0.3/24" ==== O modo de failover pode ser usado para alternar para uma interface secundária se o link for perdido na interface principal. Para configurar o failover, certifique-se de que as interfaces físicas subjacentes estejam ativadas e crie a interface man:lagg[4]. Neste exemplo, _fxp0_ é a interface principal, _fxp1_ é a interface secundária e a interface virtual recebeu um endereço IP de _10.0.0.15/24_: -[source,bash] +[source,shell] .... # ifconfig fxp0 up # ifconfig fxp1 up @@ -2061,7 +2061,7 @@ O modo de failover pode ser usado para alternar para uma interface secundária s A interface virtual deve ser algo como isto: -[source,bash] +[source,shell] .... # ifconfig lagg0 lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 @@ -2109,7 +2109,7 @@ Se o driver para a interface wireless não estiver carregado no kernel `GENERIC` Neste exemplo, a interface Ethernet, _re0_, é a interface principal e a interface sem fio, _wlan0_, é o failover. A interface _wlan0_ foi criada a partir da interface wireless _ath0_, e a interface Ethernet será configurada com o endereço MAC da interface wireless. Primeiro, determine o endereço MAC da interface wireless: -[source,bash] +[source,shell] .... # ifconfig wlan0 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 @@ -2127,21 +2127,21 @@ wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 Substitua _wlan0_ para corresponder ao nome da interface wireless do sistema. A linha `ether` conterá o endereço MAC da interface especificada. Agora, altere o endereço MAC da interface Ethernet subjacente: -[source,bash] +[source,shell] .... # ifconfig re0 ether b8:ee:65:5b:32:59 .... Suba a interface sem fio (substituindo _FR_ pelo seu próprio código de país com duas letras), mas não defina um endereço IP: -[source,bash] +[source,shell] .... # ifconfig wlan0 create wlandev ath0 country FR ssid my_router up .... Certifique-se de que a interface _re0_ esteja ativa, então crie a interface man:lagg[4] com a _re0_ como master com failover para a_wlan0_: -[source,bash] +[source,shell] .... # ifconfig re0 up # ifconfig lagg0 create @@ -2150,7 +2150,7 @@ Certifique-se de que a interface _re0_ esteja ativa, então crie a interface man A interface virtual deve ser algo como isto: -[source,bash] +[source,shell] .... # ifconfig lagg0 lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 @@ -2166,7 +2166,7 @@ lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 Em seguida, inicie o cliente DHCP para obter um endereço IP: -[source,bash] +[source,shell] .... # dhclient lagg0 .... @@ -2216,7 +2216,7 @@ As etapas mostradas nesta seção configuram os servidores internos de NFS e TFT . Crie o diretório raiz que irá conter uma instalação do FreeBSD para ser montado por NFS: + -[source,bash] +[source,shell] .... # export NFSROOTDIR=/b/tftpboot/FreeBSD/install # mkdir -p ${NFSROOTDIR} @@ -2239,7 +2239,7 @@ nfs_server_enable="YES" . Inicie o servidor NFS: + -[source,bash] +[source,shell] .... # service nfsd start .... @@ -2265,7 +2265,7 @@ Algumas versões do PXE exigem a versão TCP do TFTP. Neste caso, remova o comen + . Inicie o man:inetd[8]: + -[source,bash] +[source,shell] .... # service inetd start .... @@ -2273,7 +2273,7 @@ Algumas versões do PXE exigem a versão TCP do TFTP. Neste caso, remova o comen . Instale o sistema básico em [.filename]#${NFSROOTDIR}#, seja descompactando os arquivos oficiais ou recompilando o kernel do FreeBSD e o userland (consulte crossref:cutting-edge[makeworld,Atualizando o FreeBSD a partir do código fonte] para instruções mais detalhadas, mas não esqueça de adicionar `DESTDIR=_${NFSROOTDIR}_` ao executar os comandos `make installkernel` e `make installworld`. . Teste que o servidor TFTP funciona e que pode baixar o gerenciador de boot que será obtido via PXE: + -[source,bash] +[source,shell] .... # tftp localhost tftp> get FreeBSD/install/boot/pxeboot @@ -2291,7 +2291,7 @@ myhost.example.com:/b/tftpboot/FreeBSD/install / nfs ro Substitua _myhost.example.com_ pelo nome do host ou pelo endereço IP do servidor NFS. Neste exemplo, o sistema de arquivos raiz é montado como somente leitura para evitar que os clientes do NFS excluam potencialmente o conteúdo do sistema de arquivos raiz. . Defina a senha de root no ambiente PXE para as máquinas clientes que serão inicializadas por PXE: + -[source,bash] +[source,shell] .... # chroot ${NFSROOTDIR} # passwd @@ -2303,7 +2303,7 @@ Substitua _myhost.example.com_ pelo nome do host ou pelo endereço IP do servido Ao inicializar de um volume raiz NFS, o [.filename]#/etc/rc# detecta a inicialização do NFS e executa o [.filename]#/etc/rc.initdiskless#. Neste caso, o [.filename]#/etc# e [.filename]#/var# precisam ser sistemas de arquivos montados em memória para que estes diretórios sejam graváveis mas o diretório raiz NFS seja apenas de leitura: -[source,bash] +[source,shell] .... # chroot ${NFSROOTDIR} # mkdir -p conf/base @@ -2359,7 +2359,7 @@ dhcpd_enable="YES" Então inicie o serviço DHCP: -[source,bash] +[source,shell] .... # service isc-dhcpd start .... @@ -2379,7 +2379,7 @@ image::pxe-nfs.png[] + . No servidor TFTP, leia o [.filename]#/var/log/xferlog# para garantir que o [.filename]#pxeboot# esteja sendo recuperado do local correto. Para testar esta configuração de exemplo: + -[source,bash] +[source,shell] .... # tftp 192.168.0.1 tftp> get FreeBSD/install/boot/pxeboot @@ -2389,7 +2389,7 @@ Received 264951 bytes in 0.1 seconds As seções de `BUGS` do man:tftpd[8] e man:tftp[1] documenta algumas limitações com o TFTP. . Certifique-se de que o sistema de arquivos raiz possa ser montado via NFS. Para testar esta configuração de exemplo: + -[source,bash] +[source,shell] .... # mount -t nfs 192.168.0.1:/b/tftpboot/FreeBSD/install /mnt .... @@ -2433,7 +2433,7 @@ Uma terceira forma é escrever os últimos 32 bits usando a conhecida notação Para visualizar o endereço IPv6 do sistema FreeBSD, use man:ifconfig[8]: -[source,bash] +[source,shell] .... # ifconfig .... @@ -2646,7 +2646,7 @@ carp_load="YES" Para carregar o módulo agora sem reiniciar: -[source,bash] +[source,shell] .... # kldload carp .... @@ -2692,7 +2692,7 @@ Ter dois CARPVHIDs configurados significa que o `hostc.example.org` notará se u ==== Se o servidor mestre original se tornar disponível novamente, o `hostc.example.org` não liberará o endereço virtual IP de volta a ele automaticamente. Para que isso aconteça, a preempção deve ser ativada. O recurso está desabilitado por padrão, ele é controlado por meio da variável man:sysctl[8]`net.inet.carp.preempt`. O administrador pode forçar o servidor de backup a retornar o endereço IP para o mestre: -[source,bash] +[source,shell] .... # ifconfig em0 vhid 1 state backup .... @@ -2717,7 +2717,7 @@ if_carp_load="YES" Para carregar o módulo agora sem reiniciar: -[source,bash] +[source,shell] .... # kldload carp .... @@ -2731,7 +2731,7 @@ device carp Em seguida, em cada host, crie um dispositivo CARP: -[source,bash] +[source,shell] .... # ifconfig carp0 create .... @@ -2771,7 +2771,7 @@ ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24" ==== A preempção está desabilitada no kernel [.filename]#GENERIC# do FreeBSD. Se a preempção tiver sido ativada com um kernel personalizado, o `hostc.example.org` poderá não liberar o endereço IP de volta ao servidor de conteúdo original. O administrador pode forçar o servidor de backup a retornar o endereço IP para o mestre com o comando: -[source,bash] +[source,shell] .... # ifconfig carp0 down && ifconfig carp0 up @@ -2793,7 +2793,7 @@ Ao configurar uma VLAN, algumas informações devem ser conhecidas. Primeiro, qu Para configurar uma VLANs em tempo de execução, com uma NIC `em0` e uma tag VLAN de `5` o comando ficaria assim: -[source,bash] +[source,shell] .... # ifconfig em0.5 create vlan 5 vlandev em0 inet 192.168.20.20/24 .... @@ -2817,14 +2817,14 @@ VLANs adicionais podem ser inseridas, simplesmente adicionando a tag ao campo `v Para configurar a VLAN `5`, na NIC `em0`, atribua o nome de interface `cameras`, e atribua à interface um endereço IP de `_192.168.20.20_` com um prefixo `24`-bit, use este comando: -[source,bash] +[source,shell] .... # ifconfig em0.5 create vlan 5 vlandev em0 name cameras inet 192.168.20.20/24 .... Para uma interface denominada `video`, use o seguinte: -[source,bash] +[source,shell] .... # ifconfig video.5 create vlan 5 vlandev video name cameras inet 192.168.20.20/24 .... diff --git a/documentation/content/pt-br/books/handbook/audit/_index.adoc b/documentation/content/pt-br/books/handbook/audit/_index.adoc index 24ce36127a..b78fbacd19 100644 --- a/documentation/content/pt-br/books/handbook/audit/_index.adoc +++ b/documentation/content/pt-br/books/handbook/audit/_index.adoc @@ -97,7 +97,7 @@ auditd_enable="YES" Em seguida, inicie o daemon de auditoria: -[source,bash] +[source,shell] .... # service auditd start .... @@ -310,7 +310,7 @@ Como as trilhas de auditoria são armazenadas no formato binário BSM, várias f Por exemplo, para baixar todo o conteúdo de um log de auditoria especificado em texto simples: -[source,bash] +[source,shell] .... # praudit /var/audit/AUDITFILE .... @@ -336,7 +336,7 @@ O formato de saída XML também é suportado e pode ser selecionado incluindo `- Como os logs de auditoria podem ser muito grandes, um subconjunto de registros pode ser selecionado usando `auditreduce`. Este exemplo seleciona todos os registros de auditoria produzidos para o usuário `trhodes` armazenados em [.filename]#AUDITFILE#: -[source,bash] +[source,shell] .... # auditreduce -u trhodes /var/audit/AUDITFILE | praudit .... @@ -347,7 +347,7 @@ Os membros do grupo `audit` têm permissão para ler trilhas de auditoria em [.f Pipes de auditoria são pseudo-dispositivos clones que permitem que os aplicativos acessem o fluxo de registro de auditoria em tempo real. Isto é principalmente de interesse para os autores de aplicações de detecção de intrusão e monitoramento de sistemas. No entanto, o dispositivo de canal de auditoria é uma maneira conveniente para o administrador permitir o monitoramento ao vivo sem incorrer em problemas com a propriedade do arquivo de trilha de auditoria ou a rotação de log interrompendo o fluxo de eventos. Para acompanhar o fluxo de eventos de auditoria em tempo real: -[source,bash] +[source,shell] .... # praudit /dev/auditpipe .... @@ -371,7 +371,7 @@ Veja man:devfs.rules[5] para mais informações sobre como configurar o sistema As trilhas de auditoria são gravadas pelo kernel e gerenciadas pelo daemon de auditoria, man:auditd[8]. Os administradores não devem tentar usar o man:newsyslog.conf[5] ou outras ferramentas para rotacionar diretamente os logs de auditoria. Em vez disso, o `audit` deve ser usado para encerrar a auditoria, reconfigurar o sistema de auditoria e executar a rotação de log. O comando a seguir faz com que o daemon de auditoria crie um novo log de auditoria e sinalize ao kernel para alternar para o novo log. O log antigo será finalizado e renomeado, podendo então ser manipulado pelo administrador: -[source,bash] +[source,shell] .... # audit -n .... diff --git a/documentation/content/pt-br/books/handbook/basics/_index.adoc b/documentation/content/pt-br/books/handbook/basics/_index.adoc index ddfb8c8233..aeb78470e2 100644 --- a/documentation/content/pt-br/books/handbook/basics/_index.adoc +++ b/documentation/content/pt-br/books/handbook/basics/_index.adoc @@ -69,7 +69,7 @@ Depois de ler este capítulo, você saberá: A menos que o FreeBSD tenha sido configurado para iniciar automaticamente um ambiente gráfico durante a inicialização, o sistema inicializará em um prompt de login da linha de comando, como visto neste exemplo: -[source,bash] +[source,shell] .... FreeBSD/amd64 (pc3.example.org) (ttyv0) @@ -147,21 +147,21 @@ __Tenha cuidado ao alterar esta configuração para ``inseguro``__! Se a senha d O modo de vídeo padrão do console do FreeBSD pode ser ajustado para 1024x768, 1280x1024 ou qualquer outro tamanho suportado pelo chip gráfico e monitor. Para usar um modo de vídeo diferente, carregue o módulo `VESA`: -[source,bash] +[source,shell] .... # kldload vesa .... Para determinar quais modos de vídeo são suportados pelo hardware, use man:vidcontrol[1]. Para obter uma lista de modos de vídeo suportados, execute o seguinte: -[source,bash] +[source,shell] .... # vidcontrol -i mode .... A saída deste comando lista os modos de vídeo suportados pelo hardware. Para selecionar um novo modo de vídeo, especifique o modo usando man:vidcontrol[1] como o usuário `root` : -[source,bash] +[source,shell] .... # vidcontrol MODE_279 .... @@ -265,7 +265,7 @@ Neste exemplo, o usuário só se torna superusuário para executar `make install [example] ==== -[source,bash] +[source,shell] .... % configure % make @@ -320,7 +320,7 @@ O utilitário man:adduser[8] é interativo e percorre as etapas para criar uma n [example] ==== -[source,bash] +[source,shell] .... # adduser Username: jru @@ -386,7 +386,7 @@ Por padrão, um modo interativo é usado, conforme mostrado no exemplo a seguir. [example] ==== -[source,bash] +[source,shell] .... # rmuser jru Matching password entry: @@ -418,7 +418,7 @@ Em <<users-modifying-chpass-su>>, o superusuário digitou `chpass jru` e agora e [example] ==== -[source,bash] +[source,shell] .... #Changing user database information for jru. Login: jru @@ -444,7 +444,7 @@ Other information: [example] ==== -[source,bash] +[source,shell] .... #Changing user database information for jru. Shell: /usr/local/bin/zsh @@ -471,7 +471,7 @@ Qualquer usuário pode alterar facilmente sua senha usando o man:passwd[1]. Para [example] ==== -[source,bash] +[source,shell] .... % passwd Changing local password for jru. @@ -490,7 +490,7 @@ O superusuário pode alterar a senha de qualquer usuário especificando o nome d [example] ==== -[source,bash] +[source,shell] .... # passwd jru Changing local password for jru. @@ -525,7 +525,7 @@ O superusuário pode modificar o [.filename]#/etc/group# usando um editor de tex [example] ==== -[source,bash] +[source,shell] .... # pw groupadd teamtwo # pw groupshow teamtwo @@ -540,7 +540,7 @@ Neste exemplo, `1100` é o GID de `teamtwo`. No momento, `teamtwo` não possui m [example] ==== -[source,bash] +[source,shell] .... # pw groupmod teamtwo -M jru # pw groupshow teamtwo @@ -555,7 +555,7 @@ O argumento para a opção `-M` é uma lista de usuários, delimitada por vírgu [example] ==== -[source,bash] +[source,shell] .... # pw groupmod teamtwo -m db # pw groupshow teamtwo @@ -570,7 +570,7 @@ Neste exemplo, o argumento para `-m` é uma lista delimitada por vírgulas de us [example] ==== -[source,bash] +[source,shell] .... % id jru uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo) @@ -635,7 +635,7 @@ A Tabela 4.1 resume as possíveis possibilidades numéricas e alfabéticas. Ao l Use o argumento `-l` com o man:ls[1] para exibir uma lista longa de diretórios que inclua uma coluna de informações sobre um permissões do arquivo para o proprietário, grupo e outros. Por exemplo, um `ls -l` em um diretório arbitrário pode mostrar: -[source,bash] +[source,shell] .... % ls -l total 530 @@ -716,14 +716,14 @@ Permissões simbólicas usam caracteres em vez de valores octais para atribuir p Esses valores são usados com o man:chmod[1], mas com letras em vez de números. Por exemplo, o comando a seguir impediria que outros usuários acessassem _FILE_: -[source,bash] +[source,shell] .... % chmod go= FILE .... Uma lista separada por vírgula pode ser fornecida quando mais de um conjunto de alterações em um arquivo precisar ser feito. Por exemplo, o comando a seguir remove as permissões de gravação do grupo e "resto do mundo" no _FILE_ e adiciona as permissões de execução para todos: -[source,bash] +[source,shell] .... % chmod go-w,a+x FILE .... @@ -734,21 +734,21 @@ Além das permissões de arquivo, o FreeBSD suporta o uso de "flags de arquivo". Os sinalizadores de arquivo são modificados usando o man:chflags[1]. Por exemplo, para ativar o sinalizador undeletable do sistema no arquivo [.filename]#file1#, use o seguinte comando: -[source,bash] +[source,shell] .... # chflags sunlink file1 .... Para desabilitar o sinalizador undeletable do sistema, coloque um "no" na frente do `sunlink`: -[source,bash] +[source,shell] .... # chflags nosunlink file1 .... Para visualizar os sinalizadores de um arquivo, use `-lo` com o man:ls[1]: -[source,bash] +[source,shell] .... # ls -lo file1 .... @@ -770,7 +770,7 @@ O ID de usuário real é o UID que inicia ou é o dono do processo. O ID de usu A permissão setuid pode ser definida prefixando um conjunto de permissões com o número quatro (4), conforme mostrado no exemplo a seguir: -[source,bash] +[source,shell] .... # chmod 4755 suidexample.sh .... @@ -793,7 +793,7 @@ Para ver isso em tempo real, abra dois terminais. Em um deles, digite `passwd` c No terminal A: -[source,bash] +[source,shell] .... Changing local password for trhodes Old Password: @@ -801,12 +801,12 @@ Old Password: No terminal B: -[source,bash] +[source,shell] .... # ps aux | grep passwd .... -[source,bash] +[source,shell] .... trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd @@ -818,14 +818,14 @@ A permissão `setgid` executa a mesma função que a permissão `setuid`; exceto Para definir a permissão `setgid` em um arquivo, execute o man:chmod[1] com dois (2) no início: -[source,bash] +[source,shell] .... # chmod 2755 sgidexample.sh .... Na listagem a seguir, observe que o `s` está agora no campo designado para as configurações de permissão do grupo: -[source,bash] +[source,shell] .... -rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh .... @@ -839,19 +839,19 @@ Os bits de permissão `setuid` e `setgid` podem diminuir a segurança do sistema Quando o `sticky bit` é definido em um diretório, ele permite a exclusão de arquivos apenas pelo proprietário do arquivo. Isso é útil para impedir a exclusão de arquivos em diretórios públicos, como [.filename]#/tmp#, por usuários que não possuem o arquivo. Para utilizar essa permissão, use o um (1) no início das permissões: -[source,bash] +[source,shell] .... # chmod 1777 /tmp .... A permissão `sticky bit` será exibida como um `t` no final do conjunto de permissões: -[source,bash] +[source,shell] .... # ls -al / | grep tmp .... -[source,bash] +[source,shell] .... drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp .... @@ -1174,7 +1174,7 @@ Consulte man:fstab[5] para obter maiores informações sobre o formato do [.file Os sistemas de arquivos são montados usando o comando man:mount[8]. A sintaxe mais básica é a seguinte: -[source,bash] +[source,shell] .... # mount device mountpoint .... @@ -1237,7 +1237,7 @@ Para ver os processos em execução no sistema, use o man:ps[1] ou o man:top[1]. Por padrão, o man:ps[1] mostra apenas os comandos que estão em execução e que são de propriedade do usuário. Por exemplo: -[source,bash] +[source,shell] .... % ps PID TT STAT TIME COMMAND @@ -1251,7 +1251,7 @@ Várias opções diferentes estão disponíveis para alterar as informações ex A saída do man:top[1] é semelhante a abaixo: -[source,bash] +[source,shell] .... % top last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46 @@ -1304,7 +1304,7 @@ Este exemplo mostra como enviar um sinal para o man:inetd[8]. O arquivo de confi . Encontre o PID do processo para enviar o sinal usando man:pgrep[1]. Neste exemplo, o PID do man:inetd[8] é 198: + -[source,bash] +[source,shell] .... % pgrep -l inetd 198 inetd -wW @@ -1312,7 +1312,7 @@ Este exemplo mostra como enviar um sinal para o man:inetd[8]. O arquivo de confi + . Use o man:kill[1] para enviar o sinal. Como o man:inetd[8] é de propriedade do `root`, use o man:su[1] para se tornar `root` primeiro. + -[source,bash] +[source,shell] .... % su Password: @@ -1390,14 +1390,14 @@ Outra característica do shell é o uso de variáveis de ambiente. As variáveis O processo para definir uma variável de ambiente difere entre as shells. Em man:tcsh[1] e man:csh[1], use `setenv` para definir variáveis de ambiente. Em man:sh[1] e no `bash`, use `export` para definir as variáveis de ambiente atuais. Este exemplo define o `EDITOR` padrão para [.filename]#/usr/local/bin/emacs# para a shell man:tcsh[1]: -[source,bash] +[source,shell] .... % setenv EDITOR /usr/local/bin/emacs .... O comando equivalente para `bash` seria: -[source,bash] +[source,shell] .... % export EDITOR="/usr/local/bin/emacs" .... @@ -1415,7 +1415,7 @@ A maneira mais fácil de alterar permanentemente a shell padrão é usar o `chsh Como alternativa, use `chsh -s`, que irá definir a shell especificada sem abrir um editor. Por exemplo, para alterar a shell para `bash`: -[source,bash] +[source,shell] .... % chsh -s /usr/local/bin/bash @@ -1425,7 +1425,7 @@ Como alternativa, use `chsh -s`, que irá definir a shell especificada sem abrir ==== A nova shell _deve_ estar presente no arquivo [.filename]#/etc/shells#. Se a shell foi instalada a partir da coleção de ports do FreeBSD, como descrito em crossref:ports[ports, Instalando Aplicativos. Pacotes e Ports], ela deve ser adicionada automaticamente a este arquivo. Se estiver faltando, adicione-a usando este comando, substituindo o caminho pelo caminho da shell: -[source,bash] +[source,shell] .... # echo /usr/local/bin/bash >> /etc/shells @@ -1440,21 +1440,21 @@ A shell UNIX(TM) não é apenas um interpretador de comandos, ela atua como uma O redirecionamento de shell é a ação de enviar a saída ou a entrada de um comando para outro comando ou para um arquivo. Para capturar a saída do comando man:ls[1], por exemplo, em um arquivo, redirecione a saída: -[source,bash] +[source,shell] .... % ls > directory_listing.txt .... O conteúdo do diretório agora será listado em [.filename]#directory_listing.txt#. Alguns comandos podem ser usados para ler entradas, como man:sort[1]. Para classificar esta listagem, redirecione a entrada: -[source,bash] +[source,shell] .... % sort < directory_listing.txt .... A entrada será classificada e colocada na tela. Para redirecionar essa entrada para outro arquivo, pode-se redirecionar a saída de man:sort[1] misturando a direção: -[source,bash] +[source,shell] .... % sort < directory_listing.txt > sorted.txt .... @@ -1465,7 +1465,7 @@ Através do uso desses descritores, a shell permite que a saída e a entrada sej O operador pipe UNIX(TM), "|" permite que a saída de um comando seja transmitida diretamente ou direcionada para outro programa. Basicamente, um pipe permite que a saída padrão de um comando seja passada como entrada padrão para outro comando, por exemplo: -[source,bash] +[source,shell] .... % cat directory_listing.txt | sort | less .... @@ -1497,14 +1497,14 @@ A maioria dos dispositivos no FreeBSD deve ser acessada através de arquivos esp A documentação mais abrangente sobre o FreeBSD está na forma de páginas de manual. Quase todos os programas do sistema vêm com um breve manual de referência explicando a operação básica e os argumentos disponíveis. Estes manuais podem ser visualizados usando o `man`: -[source,bash] +[source,shell] .... % man command .... onde _command_ é o nome do comando para aprender. Por exemplo, para saber mais sobre o man:ls[1], digite: -[source,bash] +[source,shell] .... % man ls .... @@ -1523,7 +1523,7 @@ As páginas de manual são divididas em seções que representam o tipo de tópi Em alguns casos, o mesmo tópico pode aparecer em mais de uma seção do manual online. Por exemplo, existe um comando de usuário `chmod` e uma chamada de sistema `chmod()`. Para informar ao man:man[1] qual seção exibir, especifique o número da seção: -[source,bash] +[source,shell] .... % man 1 chmod .... @@ -1532,7 +1532,7 @@ Isto irá mostrar a página de manual do comando man:chmod[1]. Referências a um Se o nome da página de manual for desconhecido, use `man -k` para procurar por palavras-chave nas descrições da página de manual: -[source,bash] +[source,shell] .... % man -k mail .... @@ -1541,7 +1541,7 @@ Este comando exibe uma lista de comandos que possuem a palavra-chave "mail" em s Para ler as descrições de todos os comandos em [.filename]#/usr/bin#, digite: -[source,bash] +[source,shell] .... % cd /usr/bin % man -f * | more @@ -1549,7 +1549,7 @@ Para ler as descrições de todos os comandos em [.filename]#/usr/bin#, digite: ou -[source,bash] +[source,shell] .... % cd /usr/bin % whatis * |more @@ -1562,7 +1562,7 @@ O FreeBSD inclui vários aplicativos e utilitários produzidos pela Free Softwar Para usar o man:info[1], digite: -[source,bash] +[source,shell] .... % info .... diff --git a/documentation/content/pt-br/books/handbook/boot/_index.adoc b/documentation/content/pt-br/books/handbook/boot/_index.adoc index 98b486a9ba..04ee029ebd 100644 --- a/documentation/content/pt-br/books/handbook/boot/_index.adoc +++ b/documentation/content/pt-br/books/handbook/boot/_index.adoc @@ -101,7 +101,7 @@ O MBR instalado pelo instalador do FreeBSD é baseado no [.filename]#/boot/boot0 [example] ==== -[source,bash] +[source,shell] .... F1 Win F2 FreeBSD @@ -113,7 +113,7 @@ Default: F2 Outros sistemas operacionais sobrescreverão um MBR existente se forem instalados após o FreeBSD. Se isto acontecer, ou para substituir o MBR existente com o MBR do FreeBSD, use o seguinte comando: -[source,bash] +[source,shell] .... # fdisk -B -b /boot/boot0 device .... @@ -136,7 +136,7 @@ O estágio dois, [.filename]#boot2#, é um pouco mais sofisticado, e entende o s [example] ==== -[source,bash] +[source,shell] .... >> FreeBSD/i386 BOOT Default: 0:ad(0,a)/boot/loader @@ -147,7 +147,7 @@ boot: Para substituir o [.filename]#boot1# e [.filename]#boot2# instalados, use o `bsdlabel`, onde _diskslice_ é o disco e o slice para inicializar, como [.filename]#ad0s1# para o primeiro slice no primeiro disco IDE: -[source,bash] +[source,shell] .... # bsdlabel -B diskslice .... @@ -219,14 +219,14 @@ Finalmente, por padrão, o loader realiza uma espera de 10 segundos por pression Aqui estão alguns exemplos práticos de uso do loader. Para inicializar o kernel usual no modo single-user : -[source,bash] +[source,shell] .... boot -s .... Para descarregar o kernel e os módulos usuais e, em seguida, carregar o kernel anterior ou outro especificado: -[source,bash] +[source,shell] .... unload load kernel.old @@ -236,7 +236,7 @@ Use o [.filename]#kernel.GENERIC# para se referir ao kernel padrão que vem com Use o seguinte para carregar os módulos usuais com outro kernel: -[source,bash] +[source,shell] .... unload set kernel="kernel.old" @@ -245,7 +245,7 @@ Use o seguinte para carregar os módulos usuais com outro kernel: Para carregar um script de configuração do kernel automatizado: -[source,bash] +[source,shell] .... load -t userconfig_script /boot/kernel.conf .... @@ -380,14 +380,14 @@ Uma vez que o sistema é inicializado, man:kenv[1] pode ser usado para despejar A sintaxe para o arquivo [.filename]#/boot/device.hints# é uma variável por linha, usando o hash "#" como marcadores de comentário. As linhas são construídas da seguinte forma: -[source,bash] +[source,shell] .... hint.driver.unit.keyword="value" .... A sintaxe para o estágio 3 do boot loader é: -[source,bash] +[source,shell] .... set hint.driver.unit.keyword=value .... diff --git a/documentation/content/pt-br/books/handbook/bsdinstall/_index.adoc b/documentation/content/pt-br/books/handbook/bsdinstall/_index.adoc index adb4706042..6ef781c0fb 100644 --- a/documentation/content/pt-br/books/handbook/bsdinstall/_index.adoc +++ b/documentation/content/pt-br/books/handbook/bsdinstall/_index.adoc @@ -198,7 +198,7 @@ Este exemplo usa [.filename]#/dev/da0# como o dispositivo de destino em que a im ====== . O utilitário de linha de comando man:dd[1] está disponível no BSD, no Linux(TM) e no Mac OS(TM). Para gravar a imagem usando o `dd`, insira o pendrive USB e determine o nome do dispositivo. Em seguida, especifique o nome do arquivo de instalação baixado e o nome do dispositivo para o pendrive USB. Este exemplo grava a imagem de instalação amd64 no primeiro dispositivo USB em um sistema FreeBSD existente. + -[source,bash] +[source,shell] .... # dd if=FreeBSD-12.1-RELEASE-amd64-memstick.img of=/dev/da0 bs=1M conv=sync .... @@ -261,7 +261,7 @@ Se o computador carregar o sistema operacional existente em vez do instalador do Na maioria das máquinas, manter pressionado o kbd:[C] no teclado durante a inicialização irá inicializar a partir do CD. Caso contrário, mantenha pressionados kbd:[Command+Option+O+F], ou kbd:[Windows+Alt+O+F] em teclados não-Apple(TM). No prompt `0 >`, digite -[source,bash] +[source,shell] .... boot cd:,\ppc\loader cd:0 .... @@ -893,7 +893,7 @@ As mensagens que apareceram durante a inicialização podem ser revisadas pressi Se o sshd foi habilitado em <<bsdinstall-config-serv>>, a primeira inicialização pode ser um pouco mais lenta, pois o sistema gerará as chaves RSA e DSA. As inicializações subseqüentes serão mais rápidas. As impressões digitais das chaves serão exibidas, conforme mostrado neste exemplo: -[source,bash] +[source,shell] .... Generating public/private rsa1 key pair. Your identification has been saved in /etc/ssh/ssh_host_key. @@ -1048,7 +1048,7 @@ Os fabricantes geralmente desaconselham a atualização da BIOS da placa-mãe, a Se o sistema trava enquanto verifica o hardware durante a inicialização ou se comporta de maneira estranha durante a instalação, o ACPI pode ser o culpado. O FreeBSD faz uso extensivo do sistema ACPI nas plataformas i386 e amd64 para ajudar na configuração do sistema, caso seja detectado durante a inicialização. Infelizmente, alguns bugs ainda existem tanto no driver ACPI como nas placas-mãe do sistema e no firmware BIOS. O ACPI pode ser desativado configurando a opção `hint.acpi.0.disabled` no terceiro estágio do boot loader: -[source,bash] +[source,shell] .... set hint.acpi.0.disabled="1" .... diff --git a/documentation/content/pt-br/books/handbook/config/_index.adoc b/documentation/content/pt-br/books/handbook/config/_index.adoc index 5b5d7e8334..9d82dc488e 100644 --- a/documentation/content/pt-br/books/handbook/config/_index.adoc +++ b/documentation/content/pt-br/books/handbook/config/_index.adoc @@ -159,7 +159,7 @@ PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin <.> Para criar um crontab de usuário, invoque o `crontab` no modo editor: -[source,bash] +[source,shell] .... % crontab -e .... @@ -198,7 +198,7 @@ O ambiente definido pelo cron é discutido em man:crontab[5]. Verificar se os sc Quando terminar de editar o crontab, salve o arquivo. Ele será instalado automaticamente e o cron lerá o crontab e executará seus cron jobs nos horários especificados. Para listar as tarefas agendadas em um crontab, use este comando: -[source,bash] +[source,shell] .... % crontab -l 0 14 * * * /usr/home/dru/bin/mycustomscript.sh @@ -206,7 +206,7 @@ Quando terminar de editar o crontab, salve o arquivo. Ele será instalado automa Para remover todas as tarefas cron em um crontab de usuário: -[source,bash] +[source,shell] .... % crontab -r remove crontab for dru? y @@ -217,7 +217,7 @@ remove crontab for dru? y O FreeBSD usa o sistema man:rc[8] de scripts de inicialização durante a inicialização do sistema e para gerenciar serviços. Os scripts listados em [.filename]#/etc/rc.d# fornecem serviços básicos que podem ser controlados com `start`, `stop` e `restart` opções para man:service[8]. Por exemplo, man:sshd[8] pode ser reiniciado com o seguinte comando: -[source,bash] +[source,shell] .... # service sshd restart .... @@ -233,14 +233,14 @@ Se uma linha `natd_enable="NO"` já estiver presente, altere o `NO` para `YES`. Como o sistema man:rc[8] é destinado principalmente a iniciar e parar serviços na inicialização do sistema e no tempo de desligamento, o `start`, as opções `stop` e `restart` somente executarão suas ações se a variável apropriada estiver configurada no [.filename]#/etc/rc.conf#. Por exemplo, o `sshd restart` só funcionará se `sshd_enable` estiver definido como `YES` em [.filename]#/etc/rc.conf#. Para `iniciar`, `parar` ou `reiniciar` um serviço independente das configurações em [.filename]#/etc/rc.conf#, estes comandos deve ser prefixado com "one". Por exemplo, para reiniciar man:sshd[8] independentemente da configuração atual do [.filename]#/etc/rc.conf#, execute o seguinte comando: -[source,bash] +[source,shell] .... # service sshd onerestart .... Para verificar se um serviço está habilitado em [.filename]#/etc/rc.conf#, execute o script apropriado man:rc[8] com `rcvar`. Este exemplo verifica se o man:sshd[8] está habilitado no [.filename]#/etc/rc.conf#: -[source,bash] +[source,shell] .... # service sshd rcvar # sshd @@ -256,7 +256,7 @@ A linha `# sshd` é gerada pelo comando acima, não pelo console do `root`. Para determinar se um serviço está ou não em execução, use `status`. Por exemplo, para verificar se o man:sshd[8] está em execução: -[source,bash] +[source,shell] .... # service sshd status sshd is running as pid 433. @@ -266,7 +266,7 @@ Em alguns casos, também é possível fazer o `reload` denum serviço. Isso tent O sistema man:rc[8] é usado para serviços de rede e também contribui para a maior parte da inicialização do sistema. Por exemplo, quando o script [.filename]#/etc/rc.d/bgfsck# é executado, ele imprime a seguinte mensagem: -[source,bash] +[source,shell] .... Starting background file system checks in 60 seconds. .... @@ -335,7 +335,7 @@ Se a NIC é suportada, determine o nome do driver do FreeBSD para a NIC. Consult Os drivers para as NICs comuns já estão presentes no kernel [.filename]#GENERIC#, o que significa que a NIC deve ser verificada durante a inicialização. As mensagens de inicialização do sistema podem ser visualizadas digitando `more /var/run/dmesg.boot` e usando a barra de espaço para percorrer o texto. Neste exemplo, duas NICs Ethernet que utilizam o driver man:dc[4] estão presentes no sistema: -[source,bash] +[source,shell] .... dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38 000ff irq 15 at device 11.0 on pci0 @@ -377,21 +377,21 @@ A largura do bit do driver deve corresponder à versão do FreeBSD. Para FreeBSD O próximo passo é compilar o binário do driver em um módulo do kernel carregável. Como `root`, use man:ndisgen[8]: -[source,bash] +[source,shell] .... # ndisgen /path/to/W32DRIVER.INF /path/to/W32DRIVER.SYS .... Este comando é interativo e solicita qualquer informação extra necessária. Um novo módulo do kernel será gerado no diretório atual. Use man:kldload[8] para carregar o novo módulo: -[source,bash] +[source,shell] .... # kldload ./W32DRIVER_SYS.ko .... Além do módulo do kernel gerado, os módulos [.filename]#ndis.ko# e [.filename]#if_ndis.ko# devem ser carregados. Isso deve acontecer automaticamente quando qualquer módulo que dependa do man:ndis[4] for carregado. Caso contrário, carregue-os manualmente, usando os seguintes comandos: -[source,bash] +[source,shell] .... # kldload ndis # kldload if_ndis @@ -401,7 +401,7 @@ O primeiro comando carrega o wrapper do driver da miniporta man:ndis[4] e o segu Execute o comando man:dmesg[8] para ver se houve algum erro de carregamento. Se tudo correu bem, a saída deve ser semelhante à seguinte: -[source,bash] +[source,shell] .... ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1 ndis0: NDIS API version: 5.0 @@ -425,7 +425,7 @@ Quando o driver correto é carregado para a NIC, a placa precisa ser configurada Para exibir a configuração da NIC, digite o seguinte comando: -[source,bash] +[source,shell] .... % ifconfig dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 @@ -468,7 +468,7 @@ Neste exemplo, o [.filename]#dc0# está ativo e em execução. Os principais ind Se a saída man:ifconfig[8] tivesse mostrado algo semelhante a: -[source,bash] +[source,shell] .... dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=80008<VLAN_MTU,LINKSTATE> @@ -511,7 +511,7 @@ Se a rede não estiver usando DNS, edite o [.filename]#/etc/hosts# para adiciona ==== Se não houver um servidor DHCP e o acesso à Internet for necessário, configure manualmente o gateway padrão e o nameserver: -[source,bash] +[source,shell] .... # echo 'defaultrouter="your_default_router"' >> /etc/rc.conf # echo 'nameserver your_DNS_server' >> /etc/resolv.conf @@ -524,7 +524,7 @@ Se não houver um servidor DHCP e o acesso à Internet for necessário, configur Uma vez que as alterações necessárias no [.filename]#/etc/rc.conf# sejam salvas, uma reinicialização pode ser usada para testar a configuração de rede e verificar se o sistema é reiniciado sem nenhum erro. Como alternativa, aplique as configurações ao sistema de rede com este comando: -[source,bash] +[source,shell] .... # service netif restart .... @@ -533,7 +533,7 @@ Uma vez que as alterações necessárias no [.filename]#/etc/rc.conf# sejam salv ==== Se um gateway padrão foi configurado no [.filename]#/etc/rc.conf#, também execute este comando: -[source,bash] +[source,shell] .... # service routing restart .... @@ -546,7 +546,7 @@ Uma vez que o sistema de rede tiver sido reiniciado, teste as NIC. Para verificar se uma placa Ethernet está configurada corretamente, execute um man:ping[8] na própria interface e, em seguida, man:ping[8] outra máquina na LAN: -[source,bash] +[source,shell] .... % ping -c5 192.168.1.3 PING 192.168.1.3 (192.168.1.3): 56 data bytes @@ -561,7 +561,7 @@ PING 192.168.1.3 (192.168.1.3): 56 data bytes round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms .... -[source,bash] +[source,shell] .... % ping -c5 192.168.1.2 PING 192.168.1.2 (192.168.1.2): 56 data bytes @@ -804,14 +804,14 @@ Múltiplas opções `-a` podem ser especificadas para permitir o registro de mú Finalmente, crie o arquivo de log: -[source,bash] +[source,shell] .... # touch /var/log/logclient.log .... Neste ponto, o syslogd deve ser reiniciado e verificado: -[source,bash] +[source,shell] .... # service syslogd restart # pgrep syslog @@ -842,14 +842,14 @@ Em seguida, defina o servidor de log no [.filename]#/etc/syslog.conf# do cliente Depois de salvar a edição, reinicie o syslogd para que as alterações entrem em vigor: -[source,bash] +[source,shell] .... # service syslogd restart .... Para testar se as mensagens de log estão sendo enviadas pela rede, use o man:logger[1] no cliente para enviar uma mensagem para syslogd: -[source,bash] +[source,shell] .... # logger "Test message from logclient" .... @@ -867,14 +867,14 @@ Se o `ping` for bem-sucedido em ambos os hosts, mas as mensagens de log ainda n syslogd_flags="-d -a logclient.example.com -v -v" .... -[source,bash] +[source,shell] .... # service syslogd restart .... Dados de debug semelhantes aos seguintes irão aparecer no console imediatamente após a reinicialização: -[source,bash] +[source,shell] .... logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart syslogd: restarted @@ -888,7 +888,7 @@ rejected in rule 0 due to name mismatch. Neste exemplo, as mensagens de log estão sendo rejeitadas devido a um erro de digitação que resulta em uma incompatibilidade de nome de host. O nome do host do cliente deve ser `logclient`, não `logclien`. Corrija o erro de digitação, execute uma reinicialização e verifique os resultados: -[source,bash] +[source,shell] .... # service syslogd restart logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart @@ -1049,14 +1049,14 @@ Em sua essência, o man:sysctl[8] serve duas funções: ler e modificar as confi Para ver todas as variáveis legíveis: -[source,bash] +[source,shell] .... % sysctl -a .... Para ler uma variável específica, especifique seu nome: -[source,bash] +[source,shell] .... % sysctl kern.maxproc kern.maxproc: 1044 @@ -1064,7 +1064,7 @@ kern.maxproc: 1044 Para definir uma variável específica, use a sintaxe _variable_=_value_: -[source,bash] +[source,shell] .... # sysctl kern.maxfiles=5000 kern.maxfiles: 2088 -> 5000 @@ -1098,7 +1098,7 @@ Em alguns casos, pode ser desejável modificar os valores de variáveis do man:s Por exemplo, em alguns modelos de laptops, o dispositivo man:cardbus[4] não examinará os intervalos de memória e falhará com erros semelhantes a: -[source,bash] +[source,shell] .... cbb0: Could not map register memory device_probe_and_attach: cbb0 attach returned 12 @@ -1146,7 +1146,7 @@ A opção de configuração do kernel `SCSI_DELAY` pode ser usada para reduzir o Para ajustar um sistema de arquivos, use man:tunefs[8]. Este programa tem muitas opções diferentes. Para ativar e desativar o Soft Updates, use: -[source,bash] +[source,shell] .... # tunefs -n enable /filesystem # tunefs -n disable /filesystem @@ -1232,7 +1232,7 @@ Um vnode é a representação interna de um arquivo ou diretório. Aumentar o n Para ver o número atual de vnodes em uso: -[source,bash] +[source,shell] .... # sysctl vfs.numvnodes vfs.numvnodes: 91349 @@ -1240,7 +1240,7 @@ vfs.numvnodes: 91349 Para ver o máximo de vnodes: -[source,bash] +[source,shell] .... # sysctl kern.maxvnodes kern.maxvnodes: 100000 @@ -1262,7 +1262,7 @@ Adicionar um novo disco rígido para swap resulta em um melhor desempenho do que Use o `swapon` para adicionar uma partição swap ao sistema. Por exemplo: -[source,bash] +[source,shell] .... # swapon /dev/ada1s1b .... @@ -1298,14 +1298,14 @@ O uso de arquivos de swap requer que o módulo necessário pelo man:md[4] tenha . Crie o arquivo de swap: + -[source,bash] +[source,shell] .... # dd if=/dev/zero of=/usr/swap0 bs=1m count=512 .... + . Defina as permissões adequadas no novo arquivo: + -[source,bash] +[source,shell] .... # chmod 0600 /usr/swap0 .... @@ -1321,7 +1321,7 @@ O dispositivo [.filename]#md99# do man:md[4] é usado, deixando números de disp + . O espaço de swap será adicionado na inicialização do sistema. Para adicionar espaço de swap imediatamente, use o man:swapon[8]: + -[source,bash] +[source,shell] .... # swapon -aL .... @@ -1377,7 +1377,7 @@ O ACPI tem três estados de suspensão para RAM (STR), `S1`-`S3`, e um de suspen Use o `sysctl hw.acpi` para verificar os itens relacionados à suspensão. Estes resultados de exemplo são de um Thinkpad: -[source,bash] +[source,shell] .... hw.acpi.supported_sleep_state: S3 S4 S5 hw.acpi.s4bios: 0 @@ -1389,7 +1389,7 @@ Ao testar as ações de suspend/resume, inicie com o `S1`, se suportado. É mais Um problema comum com suspend/resume é que muitos drivers de dispositivo não salvam, restauram ou reinicializam seu firmware, registros ou memória do dispositivo adequadamente. Como primeira tentativa de depuração do problema, tente: -[source,bash] +[source,shell] .... # sysctl debug.bootverbose=1 # sysctl debug.acpi.suspend_bounce=1 @@ -1429,7 +1429,7 @@ Primeiro, tente definir `hw.acpi.disable_on_poweroff="0"` no [.filename]#/boot/l Alguns fornecedores de BIOS fornecem bytecode incorreto ou com bugs. Isso geralmente é manifestado por mensagens do console do kernel como esta: -[source,bash] +[source,shell] .... ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\ (Node 0xc3f6d160), AE_NOT_FOUND @@ -1445,7 +1445,7 @@ O objetivo do FreeBSD é que todos trabalhem com ACPI sem qualquer intervenção Para ajudar a identificar o comportamento de bugs e possivelmente corrigi-lo manualmente, uma cópia pode ser feita do ASL do sistema. Para copiar o ASL do sistema para um nome de arquivo especificado, use `acpidump` com `-t`, para mostrar o conteúdo das tabelas fixas e `-d`, para desmontar o AML: -[source,bash] +[source,shell] .... # acpidump -td > my.asl .... @@ -1454,7 +1454,7 @@ Algumas versões de AML assumem que o usuário está executando o Windows(TM). P Outras soluções alternativas podem exigir que o [.filename]#my.asl# seja personalizado. Se este arquivo for editado, compile o novo ASL usando o seguinte comando. Os avisos geralmente podem ser ignorados, mas erros são bugs que geralmente impedem que o ACPI funcione corretamente. -[source,bash] +[source,shell] .... # iasl -f my.asl .... @@ -1478,7 +1478,7 @@ O driver ACPI possui um recurso de depuração flexível. Um conjunto de subsist A saída de depuração não está ativada por padrão. Para ativá-la, adicione as opções `ACPI_DEBUG` ao arquivo de configuração do kernel personalizado se ACPI estiver compilado no kernel. Adicione `ACPI_DEBUG=1` ao [.filename]#/etc/make.conf# para ativá-lo globalmente. Se um módulo for usado em vez de um kernel personalizado, recompile apenas o módulo [.filename]#acpi.ko# como segue: -[source,bash] +[source,shell] .... # cd /sys/modules/acpi/acpi && make clean && make ACPI_DEBUG=1 .... @@ -1508,7 +1508,7 @@ Ao enviar um relatório de problemas, inclua as seguintes informações: * Saída do `sysctl hw.acpi`. Isso lista quais recursos o sistema oferece. * A URL para uma versão do ASL do sistema hospedada na web. _Não_ envie o ASL diretamente para a lista, pois pode ser muito grande. Gere uma cópia do ASL executando este comando: + -[source,bash] +[source,shell] .... # acpidump -dt > name-system.asl .... diff --git a/documentation/content/pt-br/books/handbook/cutting-edge/_index.adoc b/documentation/content/pt-br/books/handbook/cutting-edge/_index.adoc index 1c2dddd5f0..c4ca1444f4 100644 --- a/documentation/content/pt-br/books/handbook/cutting-edge/_index.adoc +++ b/documentation/content/pt-br/books/handbook/cutting-edge/_index.adoc @@ -151,7 +151,7 @@ O processo de aplicação de patches de segurança do FreeBSD foi simplificado, Patches de segurança do FreeBSD podem ser baixados e instalados usando os seguintes comandos. O primeiro comando determinará se algum patch pendente está disponível e, em caso afirmativo, listará os arquivos que serão modificados se os patches forem aplicados. O segundo comando aplicará os patches. -[source,bash] +[source,shell] .... # freebsd-update fetch # freebsd-update install @@ -175,7 +175,7 @@ Se houver patches, eles serão automaticamente baixados, mas não serão aplicad Se algo der errado, o `freebsd-update` terá a capacidade de reverter o último conjunto de alterações com o seguinte comando: -[source,bash] +[source,shell] .... # freebsd-update rollback Uninstalling updates... done. @@ -206,14 +206,14 @@ Se o sistema estiver executando um kernel personalizado, certifique-se de que um O seguinte comando, quando executado em um sistema FreeBSD 9.0, irá atualizá-lo para o FreeBSD 9.1: -[source,bash] +[source,shell] .... # freebsd-update -r 9.1-RELEASE upgrade .... Depois que o comando for recebido, o `freebsd-update` avaliará o arquivo de configuração e o sistema atual na tentativa de reunir as informações necessárias para executar a atualização. Uma listagem de tela exibirá quais componentes foram e quais não foram detectados. Por exemplo: -[source,bash] +[source,shell] .... Looking up update.FreeBSD.org mirrors... 1 mirrors found. Fetching metadata signature for 9.0-RELEASE from update1.FreeBSD.org... done. @@ -237,7 +237,7 @@ Neste ponto, o `freebsd-update` tentará baixar todos os arquivos necessários p Ao usar um kernel personalizado, a etapa acima produzirá um aviso semelhante ao seguinte: -[source,bash] +[source,shell] .... WARNING: This system is running a "MYKERNEL" kernel, which is not a kernel configuration distributed as part of FreeBSD 9.0-RELEASE. @@ -253,7 +253,7 @@ Depois que todos os patches tiverem sido baixados para o sistema local, eles ser ==== O sistema não está sendo alterado, já que todos os patches e merges estão acontecendo em outro diretório. Uma vez que todas as correções tenham sido aplicadas com sucesso, e todos os arquivos de configuração foram mesclados e tudo indicar que o processo ocorrerá sem problemas, as alterações poderão ser confirmadas pelo usuário usando o seguinte comando: -[source,bash] +[source,shell] .... # freebsd-update install .... @@ -262,7 +262,7 @@ O sistema não está sendo alterado, já que todos os patches e merges estão ac O kernel e os módulos do kernel serão atualizados primeiro. Se o sistema estiver sendo executado com um kernel personalizado, use o man:nextboot[8] para definir que o kernel para a próxima inicialização será o [.filename]#/boot/GENERIC#: -[source,bash] +[source,shell] .... # nextboot -k GENERIC .... @@ -275,14 +275,14 @@ Antes de reinicializar com o kernel [.filename]#GENERIC#, verifique se ele cont A máquina agora deve ser reiniciada com o kernel atualizado: -[source,bash] +[source,shell] .... # shutdown -r now .... Quando o sistema estiver on-line, reinicie o `freebsd-update` usando o comando a seguir. Como o estado do processo foi salvo, o `freebsd-update` não será iniciado desde o início, mas passará para a próxima fase e removerá todas as bibliotecas compartilhadas e os arquivos de objetos antigos. -[source,bash] +[source,shell] .... # freebsd-update install .... @@ -301,7 +301,7 @@ Antes de usar o `freebsd-update`, assegure-se de que uma cópia do kernel [.file Se um kernel personalizado foi compilado mais de uma vez ou se é desconhecido quantas vezes o kernel personalizado foi compilado, obtenha uma cópia do kernel `GENERIC` que corresponda à versão atual do sistema operacional. Se o acesso físico ao sistema estiver disponível, uma cópia do kernel `GENERIC` pode ser instalada a partir da mídia de instalação: -[source,bash] +[source,shell] .... # mount /cdrom # cd /cdrom/usr/freebsd-dist @@ -310,7 +310,7 @@ Se um kernel personalizado foi compilado mais de uma vez ou se é desconhecido q Como alternativa, o kernel `GENERIC` pode ser recriado e instalado a partir da do código fonte: -[source,bash] +[source,shell] .... # cd /usr/src # make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null @@ -327,14 +327,14 @@ Geralmente, os aplicativos instalados continuarão funcionando sem problemas ap Uma atualização forçada de todos os pacotes instalados substituirá os pacotes por novas versões a partir do repositório, mesmo que o número da versão não tenha aumentado. Isso é necessário por causa da alteração da versão do ABI que ocorre ao atualizar entre versões principais do FreeBSD. A atualização forçada pode ser realizada executando: -[source,bash] +[source,shell] .... # pkg-static upgrade -f .... Uma recompilação de todos os aplicativos instalados pode ser realizada com este comando: -[source,bash] +[source,shell] .... # portmaster -af .... @@ -343,7 +343,7 @@ Este comando exibirá as telas de configuração de cada aplicativo que possui o Quando as atualizações de software estiverem concluídas, conclua o processo de atualização com uma chamada final para o `freebsd-update` para amarrar todas as pontas soltas no processo de atualização: -[source,bash] +[source,shell] .... # freebsd-update install .... @@ -365,7 +365,7 @@ Este comando não é um substituto para um IDS real como o package:security/snor Para começar a comparação, especifique um arquivo de saída para salvar os resultados: -[source,bash] +[source,shell] .... # freebsd-update IDS >> outfile.ids .... @@ -374,7 +374,7 @@ O sistema agora será inspecionado e uma longa lista de arquivos, junto com os v As entradas na listagem são extremamente longas, mas o formato de saída pode ser facilmente analisado. Por exemplo, para obter uma lista de todos os arquivos que diferem daqueles na release, execute o seguinte comando: -[source,bash] +[source,shell] .... # cat outfile.ids | awk '{ print $1 }' | more /etc/master.passwd @@ -401,7 +401,7 @@ Recompilar a documentação do FreeBSD a partir do código-fonte requer uma cole Uma vez instalado, use o svnlite para buscar uma cópia limpa dos fontes da documentação: -[source,bash] +[source,shell] .... # svnlite checkout https://svn.FreeBSD.org/doc/head /usr/doc .... @@ -410,7 +410,7 @@ O download inicial dos fontes da documentação pode demorar um pouco. Deixe exe Futuras atualizações dos fontes da documentação podem ser obtidas executando: -[source,bash] +[source,shell] .... # svnlite update /usr/doc .... @@ -419,7 +419,7 @@ Depois que um snapshot atualizado dos fontes da documentação for obtido e disp Uma atualização completa de todos os idiomas disponíveis pode ser realizada digitando: -[source,bash] +[source,shell] .... # cd /usr/doc # make install clean @@ -427,7 +427,7 @@ Uma atualização completa de todos os idiomas disponíveis pode ser realizada d Se uma atualização de apenas um idioma específico for desejada, o `make` pode ser executado em um subdiretório específico de idioma do [.filename]#/usr/doc#: -[source,bash] +[source,shell] .... # cd /usr/doc/en_US.ISO8859-1 # make install clean @@ -435,14 +435,14 @@ Se uma atualização de apenas um idioma específico for desejada, o `make` pode Uma maneira alternativa de atualizar a documentação é executar este comando a partir do [.filename]#/usr/doc# ou do subdiretório específico do idioma desejado: -[source,bash] +[source,shell] .... # make update .... Os formatos de saída que serão instalados podem ser especificados definindo o parâmetro `FORMATS`: -[source,bash] +[source,shell] .... # cd /usr/doc # make FORMATS='html html-split' install clean @@ -481,7 +481,7 @@ A organização dos ports de documentação é a seguinte: Quando pacotes binários são usados, a documentação do FreeBSD será instalada em todos os formatos disponíveis para o idioma especificado. Por exemplo, o comando a seguir instalará o pacote mais recente da documentação em húngaro: -[source,bash] +[source,shell] .... # pkg install hu-freebsd-doc .... @@ -493,7 +493,7 @@ Os pacotes usam um formato que difere do nome do port correspondente: `_lang_-fr Para especificar o formato da documentação, compile o port em vez de instalar o pacote. Por exemplo, para compilar e instalar a documentação em inglês: -[source,bash] +[source,shell] .... # cd /usr/ports/misc/freebsd-doc-en # make install clean @@ -514,7 +514,7 @@ Especifica onde instalar a documentação. O padrão é [.filename]#/usr/local/s Este exemplo usa variáveis para instalar a documentação húngara como um arquivo PDF no diretório especificado: -[source,bash] +[source,shell] .... # cd /usr/ports/misc/freebsd-doc-hu # make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean @@ -522,7 +522,7 @@ Este exemplo usa variáveis para instalar a documentação húngara como um arqu Pacotes ou ports de documentação podem ser atualizados usando as instruções em crossref:ports[ports, Instalando Aplicativos. Pacotes e Ports]. Por exemplo, o seguinte comando atualiza a documentação húngara instalada usando package:ports-mgmt/portmaster[] através do uso apenas de pacotes: -[source,bash] +[source,shell] .... # portmaster -PP hu-freebsd-doc .... @@ -598,7 +598,7 @@ Esta é uma referência rápida para as etapas típicas usadas para atualizar o . Atualizar e Compilar + -[source,bash] +[source,shell] .... # svnlite update /usr/src <.> check /usr/src/UPDATING <.> @@ -633,7 +633,7 @@ Leia o [.filename]#/usr/src/UPDATING#. Quaisquer etapas manuais que devem ser ex O código fonte do FreeBSD está localizado em [.filename]#/usr/src/#. O método preferido para atualizar os fontes é através do sistema de controle de versão do Subversion. Verifique se o código-fonte está sob controle de versão: -[source,bash] +[source,shell] .... # svnlite info /usr/src Path: /usr/src @@ -643,7 +643,7 @@ Working Copy Root Path: /usr/src Isto indica que o [.filename]#/usr/src/# está sob controle de versão e pode ser atualizado com o man:svnlite[1]: -[source,bash] +[source,shell] .... # svnlite update /usr/src .... @@ -682,7 +682,7 @@ Os ramos STABLE ocasionalmente possuem bugs ou incompatibilidades que podem afet Determine qual versão do FreeBSD está sendo usada com man:uname[1]: -[source,bash] +[source,shell] .... # uname -r 10.3-RELEASE @@ -690,7 +690,7 @@ Determine qual versão do FreeBSD está sendo usada com man:uname[1]: Baseado em <<updating-src-obtaining-src-repopath>>, a fonte usada para atualizar `10.3-RELEASE` tem como caminho de repositório `base/releng/10.3`. Este caminho é usado ao verificar a fonte: -[source,bash] +[source,shell] .... # mv /usr/src /usr/src.bak <.> # svnlite checkout https://svn.freebsd.org/base/releng/10.3 /usr/src <.> @@ -705,7 +705,7 @@ Baseado em <<updating-src-obtaining-src-repopath>>, a fonte usada para atualizar O _world_, ou todo o sistema operacional, exceto o kernel, é compilado. Isso é feito primeiro para fornecer ferramentas atualizadas para construir o kernel. Então o próprio kernel é construído: -[source,bash] +[source,shell] .... # cd /usr/src # make buildworld @@ -721,7 +721,7 @@ Estes são os passos básicos. Opções adicionais para controlar a compilação Algumas versões do sistema de compilação do FreeBSD deixam o código previamente compilado no diretório de objetos temporários, [.filename]#/usr/obj#. Isso pode acelerar as compilações posteriores, evitando recompilar o código que não foi alterado. Para forçar uma reconstrução limpa de tudo, use `cleanworld` antes de iniciar uma construção: -[source,bash] +[source,shell] .... # make cleanworld .... @@ -737,7 +737,7 @@ Aumentar o número de jobs de compilação em processadores com vários núcleos ==== Compilando o mundo e o kernel com quatro jobs: -[source,bash] +[source,shell] .... # make -j4 buildworld buildkernel .... @@ -749,7 +749,7 @@ Compilando o mundo e o kernel com quatro jobs: Um `buildworld` deve ser completado se o código-fonte for alterado. Depois disso, um `buildkernel` para compilar um kernel pode ser executado a qualquer momento. Para compilar apenas o kernel: -[source,bash] +[source,shell] .... # cd /usr/src # make buildkernel @@ -772,7 +772,7 @@ O [.filename]#/usr/src# pode ser deletado ou recriado, então é preferível man Um arquivo de configuração personalizado pode ser criado copiando o arquivo de configuração [.filename]#GENERIC#. Neste exemplo, o novo kernel personalizado é para um servidor de armazenamento, portanto, é denominado [.filename]#STORAGESERVER#: -[source,bash] +[source,shell] .... # cp /usr/src/sys/amd64/conf/GENERIC /root/STORAGESERVER # cd /usr/src/sys/amd64/conf @@ -783,7 +783,7 @@ O [.filename]#/root/STORAGESERVER# é então editado, adicionando ou removendo d O kernel personalizado é compilado pela configuração `KERNCONF` no arquivo de configuração do kernel na linha de comando: -[source,bash] +[source,shell] .... # make buildkernel KERNCONF=STORAGESERVER .... @@ -793,7 +793,7 @@ O kernel personalizado é compilado pela configuração `KERNCONF` no arquivo de Depois que as etapas `buildworld` e `buildkernel` forem concluídas, o novo kernel e o restante do sistema base serão instalados: -[source,bash] +[source,shell] .... # cd /usr/src # make installkernel @@ -805,7 +805,7 @@ Depois que as etapas `buildworld` e `buildkernel` forem concluídas, o novo kern Se um kernel customizado foi compilado, `KERNCONF` também deve ser configurado para usar o novo kernel customizado: -[source,bash] +[source,shell] .... # cd /usr/src # make installkernel KERNCONF=STORAGESERVER @@ -827,7 +827,7 @@ O man:mergemaster[8] fornece uma maneira fácil de mesclar as alterações feita Com a opção `-Ui`, o man:mergemaster[8] atualizará automaticamente os arquivos que não foram modificados pelo usuário e instalará os novos arquivos que ainda não estiverem presentes: -[source,bash] +[source,shell] .... # mergemaster -Ui .... @@ -839,28 +839,28 @@ Se um arquivo precisar ser mesclado manualmente, uma exibição interativa permi Alguns arquivos ou diretórios obsoletos podem permanecer após uma atualização. Esses arquivos podem ser localizados: -[source,bash] +[source,shell] .... # make check-old .... e excluído: -[source,bash] +[source,shell] .... # make delete-old .... Algumas bibliotecas obsoletas também podem permanecer. Estes podem ser detectados com: -[source,bash] +[source,shell] .... # make check-old-libs .... e deletado com -[source,bash] +[source,shell] .... # make delete-old-libs .... @@ -872,7 +872,7 @@ Os programas que ainda estavam usando estas bibliotecas antigas deixarão de fun Quando todos os arquivos ou diretórios antigos forem considerados seguros para serem excluídos, a ação de pressionar kbd:[y] e kbd:[Enter] para excluir cada arquivo poderá ser evitada configurando a variável `BATCH_DELETE_OLD_FILES` no comando. Por exemplo: -[source,bash] +[source,shell] .... # make BATCH_DELETE_OLD_FILES=yes delete-old-libs .... @@ -884,7 +884,7 @@ Quando todos os arquivos ou diretórios antigos forem considerados seguros para A última etapa após a atualização é reiniciar o computador para que todas as alterações entrem em vigor: -[source,bash] +[source,shell] .... # shutdown -r now .... diff --git a/documentation/content/pt-br/books/handbook/desktop/_index.adoc b/documentation/content/pt-br/books/handbook/desktop/_index.adoc index e710c7a405..5c293be3da 100644 --- a/documentation/content/pt-br/books/handbook/desktop/_index.adoc +++ b/documentation/content/pt-br/books/handbook/desktop/_index.adoc @@ -103,21 +103,21 @@ O Firefox é um navegador de código-fonte aberto que apresenta um mecanismo de Para instalar o pacote da versão mais recente do Firefox, digite: -[source,bash] +[source,shell] .... # pkg install firefox .... Para instalar a versão ESR (Extended Support Release) do Firefox, use: -[source,bash] +[source,shell] .... # pkg install firefox-esr .... A Coleção de Ports pode ser usada para compilar a versão desejada do Firefox a partir do código-fonte. Este exemplo compila o package:www/firefox[], onde o `firefox` pode ser substituído pelo ESR ou pela versão localizada para instalar. -[source,bash] +[source,shell] .... # cd /usr/ports/www/firefox # make install clean @@ -129,14 +129,14 @@ O Konqueror é mais do que um navegador Web, pois também é um gerenciador de a O Konqueror pode ser instalado como um pacote digitando: -[source,bash] +[source,shell] .... # pkg install konqueror .... Para instalar a partir da Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/x11-fm/konqueror/ # make install clean @@ -148,14 +148,14 @@ O Chromium é um projeto de navegador de código aberto que visa criar uma exper O Chromium pode ser instalado como um pacote digitando: -[source,bash] +[source,shell] .... # pkg install chromium .... Alternativamente, o Chromium pode ser compilado a partir do código-fonte usando a Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/www/chromium # make install clean @@ -213,14 +213,14 @@ O ambiente de área de trabalho do KDE inclui uma suíte de escritório que pode No FreeBSD, o package:editors/calligra[] pode ser instalado como um pacote ou um port. Para instalar o pacote: -[source,bash] +[source,shell] .... # pkg install calligra .... Se o pacote não estiver disponível, use a Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/editors/calligra # make install clean @@ -234,14 +234,14 @@ O AbiWord pode importar ou exportar muitos formatos de arquivo, incluindo alguns Para instalar o pacote do AbiWord: -[source,bash] +[source,shell] .... # pkg install abiword .... Se o pacote não estiver disponível, ele pode ser compilado a partir da Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/editors/abiword # make install clean @@ -253,14 +253,14 @@ Para autoria ou retoque de imagens, o GIMP fornece um sofisticado programa de ma Para instalar o pacote: -[source,bash] +[source,shell] .... # pkg install gimp .... Como alternativa, use a Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/graphics/gimp # make install clean @@ -276,14 +276,14 @@ O processador de texto do Apache OpenOffice usa um formato de arquivo XML nativo Para instalar o pacote Apache OpenOffice: -[source,bash] +[source,shell] .... # pkg install apache-openoffice .... Depois que o pacote for instalado, digite o seguinte comando para iniciar o Apache OpenOffice: -[source,bash] +[source,shell] .... % openoffice-X.Y.Z .... @@ -292,7 +292,7 @@ onde _X.Y.Z_ é o número da versão instalada do Apache OpenOffice. Na primeira Se o pacote do Apache OpenOffice desejado não estiver disponível, a compilação do port ainda será uma opção. No entanto, isso requer muito espaço em disco e um tempo bastante longo para compilar: -[source,bash] +[source,shell] .... # cd /usr/ports/editors/openoffice-4 # make install clean @@ -302,7 +302,7 @@ Se o pacote do Apache OpenOffice desejado não estiver disponível, a compilaç ==== Para compilar uma versão localizada, substitua o comando anterior por: -[source,bash] +[source,shell] .... # make LOCALIZED_LANG=your_language install clean .... @@ -318,7 +318,7 @@ O processador de texto do LibreOffice usa um formato de arquivo XML nativo para Para instalar a versão em inglês do pacote LibreOffice: -[source,bash] +[source,shell] .... # pkg install libreoffice .... @@ -327,7 +327,7 @@ A categoria de editores de texto (https://www.FreeBSD.org/ports/[freebsd.org/por Quando o pacote estiver instalado, digite o seguinte comando para executar o LibreOffice: -[source,bash] +[source,shell] .... % libreoffice .... @@ -336,7 +336,7 @@ Durante a primeira execução, algumas perguntas serão feitas e uma pasta [.fil Se o pacote LibreOffice desejado não estiver disponível, a compilação do port ainda será uma opção. No entanto, isso requer muito espaço em disco e um tempo bastante longo para compilar. Este exemplo compila a versão em inglês: -[source,bash] +[source,shell] .... # cd /usr/ports/editors/libreoffice # make install clean @@ -392,14 +392,14 @@ Para os usuários que preferem um pequeno visualizador de PDF do FreeBSD, o Xpdf Para instalar o pacote Xpdf: -[source,bash] +[source,shell] .... # pkg install xpdf .... Se o pacote não estiver disponível, use a Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/graphics/xpdf # make install clean @@ -413,14 +413,14 @@ O gv é um visualizador de arquivos PostScript(TM) e PDF. Ele é baseado no ghos Para instalar o gv como um pacote: -[source,bash] +[source,shell] .... # pkg install gv .... Se um pacote não estiver disponível, use a Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/print/gv # make install clean @@ -432,14 +432,14 @@ O Geeqie é um fork do projeto abandonado GQView, em um esforço para levar o Para instalar o pacote Geeqie: -[source,bash] +[source,shell] .... # pkg install geeqie .... Se o pacote não estiver disponível, use a Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/graphics/geeqie # make install clean @@ -451,14 +451,14 @@ O ePDFView é um visualizador de documentos PDF leve que usa somente as bibliote Para instalar o ePDFView como um pacote: -[source,bash] +[source,shell] .... # pkg install epdfview .... Se um pacote não estiver disponível, use a Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/graphics/epdfview # make install clean @@ -470,14 +470,14 @@ O Okular é um visualizador de documentos universal baseado no KPDF para KDE. El Para instalar o Okular como um pacote: -[source,bash] +[source,shell] .... # pkg install okular .... Se um pacote não estiver disponível, use a Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/graphics/okular # make install clean @@ -522,14 +522,14 @@ O GnuCash fornece um registro inteligente, um sistema hierárquico de contas e Para instalar o pacote GnuCash: -[source,bash] +[source,shell] .... # pkg install gnucash .... Se o pacote não estiver disponível, use a Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/finance/gnucash # make install clean @@ -541,14 +541,14 @@ O Gnumeric é um programa de planilha eletrônica desenvolvido pela comunidade G Para instalar o Gnumeric como um pacote: -[source,bash] +[source,shell] .... # pkg install gnumeric .... Se o pacote não estiver disponível, use a Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/math/gnumeric # make install clean @@ -560,14 +560,14 @@ O KMyMoney é uma aplicação de finanças pessoais criada pela comunidade KDE. Para instalar o KMyMoney como um pacote: -[source,bash] +[source,shell] .... # pkg install kmymoney-kde4 .... Se o pacote não estiver disponível, use a Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/finance/kmymoney-kde4 # make install clean diff --git a/documentation/content/pt-br/books/handbook/disks/_index.adoc b/documentation/content/pt-br/books/handbook/disks/_index.adoc index 891b614329..029b113d6d 100644 --- a/documentation/content/pt-br/books/handbook/disks/_index.adoc +++ b/documentation/content/pt-br/books/handbook/disks/_index.adoc @@ -83,7 +83,7 @@ Se o disco a ser adicionado não estiver em branco, as informações antigas da O esquema de partição é criado e, em seguida, uma única partição é adicionada. Para melhorar o desempenho em discos mais recentes com tamanhos maiores de blocos de hardware, a partição está alinhada a divisões de um megabyte: -[source,bash] +[source,shell] .... # gpart create -s GPT ada1 # gpart add -t freebsd-ufs -a 1M ada1 @@ -93,7 +93,7 @@ Dependendo do uso, várias partições menores podem ser desejadas. Veja man:gpa As informações da partição de disco podem ser visualizadas com `gpart show`: -[source,bash] +[source,shell] .... % gpart show ada1 => 34 1465146988 ada1 GPT (699G) @@ -104,14 +104,14 @@ As informações da partição de disco podem ser visualizadas com `gpart show`: Um sistema de arquivos é criado em uma nova partição no novo disco: -[source,bash] +[source,shell] .... # newfs -U /dev/ada1p1 .... Um diretório vazio é criado como um _ponto de montagem_, um local para montar o novo disco no sistema de arquivos do disco original: -[source,bash] +[source,shell] .... # mkdir /newdisk .... @@ -125,7 +125,7 @@ Finalmente, uma entrada é adicionada ao arquivo [.filename]#/etc/fstab# para qu O novo disco pode ser montado manualmente, sem reiniciar o sistema: -[source,bash] +[source,shell] .... # mount /newdisk .... @@ -139,7 +139,7 @@ Determine o nome do dispositivo do disco a ser redimensionado inspecionando o ar Liste as partições no disco para ver a configuração atual: -[source,bash] +[source,shell] .... # gpart show ada0 => 34 83886013 ada0 GPT (48G) [CORRUPT] @@ -153,7 +153,7 @@ Liste as partições no disco para ver a configuração atual: ==== Se o disco foi formatado com o esquema de particionamento http://en.wikipedia.org/wiki/GUID_Partition_Table[GPT], ele pode ser exibido como "corrompido" porque a tabela de partições de backup GPT não está mais no final da unidade. Corrija a tabela de partições de backup com o `gpart`: -[source,bash] +[source,shell] .... # gpart recover ada0 ada0 recovered @@ -163,7 +163,7 @@ ada0 recovered Agora, o espaço adicional no disco está disponível para uso por uma nova partição ou uma partição existente pode ser expandida: -[source,bash] +[source,shell] .... # gpart show ada0 => 34 102399933 ada0 GPT (48G) @@ -177,14 +177,14 @@ As partições só podem ser redimensionadas para um espaço livre contíguo. Aq Desative a partição de swap: -[source,bash] +[source,shell] .... # swapoff /dev/ada0p3 .... Exclua a terceira partição, especificada pela flag `-i`, do disco _ada0_. -[source,bash] +[source,shell] .... # gpart delete -i 3 ada0 ada0p3 deleted @@ -200,7 +200,7 @@ ada0p3 deleted Existe o risco de perda de dados ao modificar a tabela de partições de um sistema de arquivos montado. É melhor executar as etapas a seguir em um sistema de arquivos desmontado durante a execução de um dispositivo CD-ROM ou USB live. No entanto, se for absolutamente necessário, um sistema de arquivos montado pode ser redimensionado depois de desativar os recursos de segurança do GEOM: -[source,bash] +[source,shell] .... # sysctl kern.geom.debugflags=16 .... @@ -209,7 +209,7 @@ Existe o risco de perda de dados ao modificar a tabela de partições de um sist Redimensione a partição, deixando espaço para recriar uma partição swap do tamanho desejado. A partição a ser redimensionada é especificada com `-i` e o novo tamanho desejado com `-s`. Opcionalmente, o alinhamento da partição é controlado com `-a`. Isso só modifica o tamanho da partição. O sistema de arquivos na partição será expandido em uma etapa separada. -[source,bash] +[source,shell] .... # gpart resize -i 2 -s 47G -a 4k ada0 ada0p2 resized @@ -222,7 +222,7 @@ ada0p2 resized Recrie a partição swap e ative-a. Se nenhum tamanho for especificado com `-s`, todo o espaço restante será usado: -[source,bash] +[source,shell] .... # gpart add -t freebsd-swap -a 4k ada0 ada0p3 added @@ -236,7 +236,7 @@ ada0p3 added Aumente o sistema de arquivos UFS para usar a nova capacidade da partição redimensionada: -[source,bash] +[source,shell] .... # growfs /dev/ada0p2 Device is mounted read-write; resizing will result in temporary write suspension for /. @@ -249,7 +249,7 @@ super-block backups (for fsck -b #) at: Se o sistema de arquivos for ZFS, o redimensionamento será acionado pela execução do subcomando `online` com `-e`: -[source,bash] +[source,shell] .... # zpool online -e zroot /dev/ada0p2 .... @@ -290,7 +290,7 @@ O restante desta seção demonstra como verificar se um dispositivo de armazenam Para testar a configuração USB, conecte o dispositivo USB. Use `dmesg` para confirmar que a unidade aparece no buffer de mensagens do sistema. Deve parecer algo como isto: -[source,bash] +[source,shell] .... umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0 umass0: SCSI over Bulk-Only; quirks = 0x0100 @@ -307,7 +307,7 @@ A marca, o nó de dispositivo ([.filename]#da0#), a velocidade e o tamanho serã Como o dispositivo USB é visto como um SCSI, o `camcontrol` pode ser usado para listar os dispositivos de armazenamento USB conectados ao sistema: -[source,bash] +[source,shell] .... # camcontrol devlist <STECH Simple Drive 1.04> at scbus4 target 0 lun 0 (pass3,da0) @@ -315,7 +315,7 @@ Como o dispositivo USB é visto como um SCSI, o `camcontrol` pode ser usado para Alternativamente, o `usbconfig` pode ser usado para listar o dispositivo. Consulte o man:usbconfig[8] para obter mais informações sobre este comando. -[source,bash] +[source,shell] .... # usbconfig ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA) @@ -365,7 +365,7 @@ vfs.usermount=1 Como isso só entra em vigor após a próxima reinicialização, use `sysctl` para definir essa variável agora: -[source,bash] +[source,shell] .... # sysctl vfs.usermount=1 vfs.usermount: 0 -> 1 @@ -373,7 +373,7 @@ vfs.usermount: 0 -> 1 A etapa final é criar um diretório no qual o sistema de arquivos deve ser montado. Esse diretório precisa pertencer ao usuário que deve montar o sistema de arquivos. Uma maneira de fazer isso é para o `root` criar um subdiretório de propriedade daquele usuário como [.filename]#/mnt/username#. No exemplo a seguir, substitua _username_ pelo nome de login do usuário e _usergroup_ pelo grupo principal do usuário: -[source,bash] +[source,shell] .... # mkdir /mnt/username # chown username:usergroup /mnt/username @@ -381,21 +381,21 @@ A etapa final é criar um diretório no qual o sistema de arquivos deve ser mont Suponha que um thumbdrive USB esteja conectado e um dispositivo [.filename]#/dev/da0s1# apareça. Se o dispositivo estiver formatado com um sistema de arquivos FAT, o usuário poderá montá-lo usando: -[source,bash] +[source,shell] .... % mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username .... Antes que o dispositivo possa ser desconectado, ele _deve_ ser desmontado primeiro: -[source,bash] +[source,shell] .... % umount /mnt/username .... Após a remoção do dispositivo, o buffer de mensagens do sistema mostrará mensagens semelhantes às seguintes: -[source,bash] +[source,shell] .... umass0: at uhub3, port 2, addr 3 (disconnected) da0 at umass-sim0 bus 0 scbus4 target 0 lun 0 @@ -407,14 +407,14 @@ da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached Dispositivos USB podem ser montados automaticamente removendo o comentário desta linha no arquivo [.filename]#/etc/auto_master#: -[source,bash] +[source,shell] .... /media -media -nosuid .... Então adicione estas linhas ao arquivo [.filename]#/etc/devd.conf#: -[source,bash] +[source,shell] .... notify 100 { match "system" "GEOM"; @@ -425,7 +425,7 @@ notify 100 { Recarregue a configuração se man:autofs[5] e man:devd[8] já estiverem em execução: -[source,bash] +[source,shell] .... # service automount restart # service devd restart @@ -442,7 +442,7 @@ man:autofs[5] requer que o man:devd[8] esteja ativado, como é por padrão. Inicie os serviços imediatamente com: -[source,bash] +[source,shell] .... # service automount start # service automountd start @@ -454,7 +454,7 @@ Cada sistema de arquivos que pode ser montado automaticamente aparece como um di O sistema de arquivos é montado de forma transparente no primeiro acesso e desmontado após um período de inatividade. Unidades montadas automaticamente também podem ser desmontadas manualmente: -[source,bash] +[source,shell] .... # automount -fu .... @@ -530,7 +530,7 @@ Isso exigirá uma reinicialização do sistema, pois esse driver só pode ser ca Para verificar se o FreeBSD reconhece o dispositivo, execute o `dmesg` e procure por uma entrada para o dispositivo. Nos sistemas anteriores a 10.x, o nome do dispositivo na primeira linha da saída será [.filename]#acd0# em vez de [.filename]#cd0#. -[source,bash] +[source,shell] .... % dmesg | grep cd cd0 at ahcich1 bus 0 scbus1 target 0 lun 0 @@ -547,14 +547,14 @@ No FreeBSD, `cdrecord` pode ser usado para gravar CDs. Este comando é instalado Enquanto o `cdrecord` tem muitas opções, o uso básico é simples. Especifique o nome do arquivo ISO para gravar e, se o sistema tiver vários dispositivos de gravação, especifique o nome do dispositivo a ser usado: -[source,bash] +[source,shell] .... # cdrecord dev=device imagefile.iso .... Para determinar o nome do dispositivo do gravador, use `-scanbus`, que pode produzir resultados como este: -[source,bash] +[source,shell] .... # cdrecord -scanbus ProDVD-ProBD-Clone 3.00 (amd64-unknown-freebsd10.0) Copyright (C) 1995-2010 Jörg Schilling @@ -583,7 +583,7 @@ Localize a entrada para o gravador de CD e use os três números separados por v Como alternativa, execute o seguinte comando para obter o endereço do dispositivo do gravador: -[source,bash] +[source,shell] .... # camcontrol devlist <MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (cd0,pass0) @@ -596,7 +596,7 @@ Use os valores numéricos para `scbus`, `target` e `lun`. Para este exemplo, `1, Para produzir um CD de dados, os arquivos de dados que compõem as faixas no CD devem ser preparados antes que possam ser gravados no CD. No FreeBSD, package:sysutils/cdrtools[] instala o `mkisofs`, que pode ser usado para produzir um sistema de arquivos ISO 9660 que é uma imagem de uma árvore de diretórios dentro um sistema de arquivos UNIX(TM). O uso mais simples é especificar o nome do arquivo ISO para criar e o caminho para os arquivos a serem colocados no sistema de arquivos ISO 9660: -[source,bash] +[source,shell] .... # mkisofs -o imagefile.iso /path/to/tree .... @@ -609,14 +609,14 @@ Para CDs que serão usados apenas em sistemas FreeBSD, `-U` pode ser usado para A última opção de uso geral é `-b`. Isso é usado para especificar a localização de uma imagem de inicialização para uso na produção de um CD inicializável "El Torito". Essa opção usa um argumento que é o caminho para uma imagem de inicialização a partir do topo da árvore que está sendo gravada no CD. Por padrão, o `mkisofs` cria uma imagem ISO no modo de "emulação de disquete" e, portanto, espera que a imagem de inicialização tenha exatamente 1200, 1440 ou 2880 KB de tamanho. Alguns gerenciadores de inicialização, como o usado pela mídia de distribuição do FreeBSD, não utilizam o modo de emulação. Nesse caso, `-no-emul-boot` deve ser usado. Então, se [.filename]#/tmp/myboot# possuir um sistema FreeBSD inicializável com a imagem de inicialização em [.filename]#/tmp/myboot/boot/cdboot#, este comando produziria [.filename]#/tmp/bootable.iso#: -[source,bash] +[source,shell] .... # mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot .... A imagem ISO resultante pode ser montada como um disco de memória com: -[source,bash] +[source,shell] .... # mdconfig -a -t vnode -f /tmp/bootable.iso -u 0 # mount -t cd9660 /dev/md0 /mnt @@ -630,7 +630,7 @@ Existem muitas outras opções disponíveis para `mkisofs` para ajustar seu comp ==== É possível copiar um CD de dados para um arquivo de imagem que seja funcionalmente equivalente ao arquivo de imagem criado com `mkisofs`. Para fazer isso, use [.filename]#dd# com o nome do dispositivo como o arquivo de entrada e o nome do ISO para criar como o arquivo de saída: -[source,bash] +[source,shell] .... # dd if=/dev/cd0 of=file.iso bs=2048 .... @@ -643,7 +643,7 @@ O arquivo de imagem resultante pode ser gravado em CD, conforme descrito em <<cd Uma vez que uma ISO tenha sido gravada em um CD, ela pode ser montada especificando o tipo de sistema de arquivos, o nome do dispositivo que contém o CD e um ponto de montagem existente: -[source,bash] +[source,shell] .... # mount -t cd9660 /dev/cd0 /mnt .... @@ -681,7 +681,7 @@ Isso faz com que o barramento SCSI faça uma pausa de 15 segundos durante a inic Este tipo de disco não pode ser montado como um CD de dados normal. Para recuperar os dados gravados em um CD, os dados devem ser lidos no nó do dispositivo bruto. Por exemplo, este comando irá extrair um arquivo tar compactado localizado no segundo dispositivo de CD para o diretório de trabalho atual: -[source,bash] +[source,shell] .... # tar xzvf /dev/cd1 .... @@ -703,7 +703,7 @@ Para duplicar um CD de áudio, extraia os dados de áudio do CD para uma série . O pacote ou port package:sysutils/cdrtools[] instala o `cdda2wav`. Este comando pode ser usado para extrair todas as faixas de áudio, com cada faixa gravada em um arquivo WAV separado no diretório de trabalho atual: + -[source,bash] +[source,shell] .... % cdda2wav -vall -B -Owav .... @@ -711,7 +711,7 @@ Para duplicar um CD de áudio, extraia os dados de áudio do CD para uma série Um nome de dispositivo não precisa ser especificado se houver apenas um dispositivo de CD no sistema. Consulte a página de manual `cdda2wav` para obter instruções sobre como especificar um dispositivo e aprender mais sobre as outras opções disponíveis para este comando. . Use o `cdrecord` para escrever os arquivos [.filename]#.wav#: + -[source,bash] +[source,shell] .... % cdrecord -v dev=2,0 -dao -useinfo *.wav .... @@ -765,7 +765,7 @@ Já que man:growisofs[1] é um front-end para <<mkisofs,mkisofs>>, ele invocará Para gravar em um DVD+R ou DVD-R os dados em [.filename]#/path/to/data#, use o seguinte comando: -[source,bash] +[source,shell] .... # growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data .... @@ -776,7 +776,7 @@ Para a gravação inicial da sessão, `-Z` é usado para sessões únicas e múl Para gravar uma imagem pré-masterizada, como _imagefile.iso_, use: -[source,bash] +[source,shell] .... # growisofs -dvd-compat -Z /dev/cd0=imagefile.iso .... @@ -789,14 +789,14 @@ Para suportar arquivos de trabalho maiores que 4.38GB, um sistema de arquivos h Para criar este tipo de arquivo ISO: -[source,bash] +[source,shell] .... % mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data .... Para gravar arquivos diretamente em um disco: -[source,bash] +[source,shell] .... # growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data .... @@ -812,7 +812,7 @@ Um DVD-Video é um layout de arquivo específico baseado nas especificações IS Se uma imagem do sistema de arquivos DVD-Video já existir, ela poderá ser gravada da mesma maneira que qualquer outra imagem. Se o `dvdauthor` foi usado para criar o DVD e o resultado está em [.filename]#/path/to/video#, o seguinte comando deve ser usado para gravar o DVD-Vídeo: -[source,bash] +[source,shell] .... # growisofs -Z /dev/cd0 -dvd-video /path/to/video .... @@ -823,7 +823,7 @@ Se uma imagem do sistema de arquivos DVD-Video já existir, ela poderá ser grav Ao contrário do CD-RW, um DVD+RW virgem precisa ser formatado antes do primeiro uso. É _recomendado_ para permitir que man:growisofs[1] cuide disso automaticamente sempre que apropriado. No entanto, é possível usar `dvd+rw-format` para formatar o DVD+RW: -[source,bash] +[source,shell] .... # dvd+rw-format /dev/cd0 .... @@ -832,7 +832,7 @@ Somente execute esta operação uma vez e tenha em mente que apenas mídias DVD+ Para gravar um sistema de arquivos totalmente novo e não apenas acrescentar alguns dados em um DVD+RW, a mídia não precisa ser apagada primeiro. Em vez disso, escreva sobre a gravação anterior assim: -[source,bash] +[source,shell] .... # growisofs -Z /dev/cd0 -J -R /path/to/newdata .... @@ -841,7 +841,7 @@ O formato DVD+RW suporta anexar dados a uma gravação anterior. Essa operação Por exemplo, para anexar dados a um DVD+RW, use o seguinte: -[source,bash] +[source,shell] .... # growisofs -M /dev/cd0 -J -R /path/to/nextdata .... @@ -855,7 +855,7 @@ Use `-dvd-compat` para melhor compatibilidade de mídia com as unidades de DVD-R Para apagar a mídia, use: -[source,bash] +[source,shell] .... # growisofs -Z /dev/cd0=/dev/zero @@ -869,7 +869,7 @@ Um DVD-RW virgem pode ser escrito diretamente sem ser formatado. No entanto, um Para apagar um DVD-RW em modo sequencial: -[source,bash] +[source,shell] .... # dvd+rw-format -blank=full /dev/cd0 .... @@ -878,7 +878,7 @@ Para apagar um DVD-RW em modo sequencial: ==== Um preenchimento completo usando `-blank=full` levará cerca de uma hora em uma mídia 1x. Um limpeza rápida pode ser executada usando `-blank`, se o DVD-RW for gravado no modo Disk-At-Once (DAO). Para gravar o DVD-RW no modo DAO, use o comando: -[source,bash] +[source,shell] .... # growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso .... @@ -890,7 +890,7 @@ Em vez disso, deve-se usar o modo de sobrescrita restrita com qualquer DVD-RW, p Para escrever dados em um DVD-RW seqüencial, use as mesmas instruções que para os outros formatos de DVD: -[source,bash] +[source,shell] .... # growisofs -Z /dev/cd0 -J -R /path/to/data .... @@ -901,14 +901,14 @@ Um DVD-RW no formato de sobrescrita restrita não precisa ser em apagado antes d Para colocar um DVD-RW no formato de sobrescrita restrita, o seguinte comando deve ser usado: -[source,bash] +[source,shell] .... # dvd+rw-format /dev/cd0 .... Para voltar ao formato sequencial, use: -[source,bash] +[source,shell] .... # dvd+rw-format -blank=full /dev/cd0 .... @@ -919,7 +919,7 @@ Poucas unidades de DVD-ROM suportam DVDs multi-sessão e na maioria das vezes ap Usando o seguinte comando após uma sessão inicial não fechada em um DVD+R, DVD-R ou DVD-RW em formato sequencial, será adicionada uma nova sessão ao disco: -[source,bash] +[source,shell] .... # growisofs -M /dev/cd0 -J -R /path/to/nextdata .... @@ -954,7 +954,7 @@ hw.ata.atapi_dma="1" Um DVD-RAM pode ser visto como um disco rígido removível. Como qualquer outro disco rígido, o DVD-RAM deve ser formatado antes de poder ser usado. Neste exemplo, todo o espaço em disco será formatado com um sistema de arquivos UFS2 padrão: -[source,bash] +[source,shell] .... # dd if=/dev/zero of=/dev/acd0 bs=2k count=1 # bsdlabel -Bw acd0 @@ -965,7 +965,7 @@ O dispositivo DVD, [.filename]#acd0#, deve ser alterado de acordo com a configur Uma vez que o DVD-RAM tenha sido formatado, ele pode ser montado como um disco rígido normal: -[source,bash] +[source,shell] .... # mount /dev/acd0 /mnt .... @@ -985,7 +985,7 @@ Um disquete precisa ser formatado em baixo nível antes de poder ser usado. Isso . Para formatar o disquete, insira um novo disquete de 3.5 polegadas na primeira unidade de disquete e digite: + -[source,bash] +[source,shell] .... # /usr/sbin/fdformat -f 1440 /dev/fd0 .... @@ -994,7 +994,7 @@ Um disquete precisa ser formatado em baixo nível antes de poder ser usado. Isso + Para escrever o rótulo do disco, use man:bsdlabel[8]: + -[source,bash] +[source,shell] .... # /sbin/bsdlabel -B -w /dev/fd0 fd1440 .... @@ -1003,7 +1003,7 @@ Para escrever o rótulo do disco, use man:bsdlabel[8]: + Para formatar o disquete com o FAT, digite: + -[source,bash] +[source,shell] .... # /sbin/newfs_msdos /dev/fd0 .... @@ -1048,7 +1048,7 @@ Em vez disso, pode-se usar `dump` e `restore` de uma maneira mais segura em uma [example] ==== -[source,bash] +[source,shell] .... # /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz @@ -1062,7 +1062,7 @@ Este exemplo configura `RSH` para gravar o backup em uma unidade de fita em um s [example] ==== -[source,bash] +[source,shell] .... # env RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr .... @@ -1081,7 +1081,7 @@ Este exemplo cria um backup compactado do diretório atual e o salva no arquivo [example] ==== -[source,bash] +[source,shell] .... # tar czvf /tmp/mybackup.tgz . .... @@ -1094,7 +1094,7 @@ Para restaurar o backup inteiro, `cd` no diretório para restaurar e especificar [example] ==== -[source,bash] +[source,shell] .... # tar xzvf /tmp/mybackup.tgz .... @@ -1111,7 +1111,7 @@ Por exemplo, uma lista de arquivos pode ser criada usando `ls` ou `find`. Este e [example] ==== -[source,bash] +[source,shell] .... # ls -R | cpio -ovF /tmp/mybackup.cpio .... @@ -1126,7 +1126,7 @@ O `pax` equivalente aos exemplos anteriores seria: [example] ==== -[source,bash] +[source,shell] .... # pax -wf /tmp/mybackup.pax . .... @@ -1142,7 +1142,7 @@ Para dispositivos de fita SCSI, o FreeBSD usa o driver man:sa[4] e os dispositiv No FreeBSD, o `mt` é usado para controlar as operações da unidade de fita, como procurar arquivos em uma fita ou gravar marcas de controle na fita. Por exemplo, os três primeiros arquivos em uma fita podem ser preservados, ignorando-os antes de gravar um novo arquivo: -[source,bash] +[source,shell] .... # mt -f /dev/nsa0 fsf 3 .... @@ -1151,28 +1151,28 @@ Este utilitário suporta muitas operações. Consulte man:mt[1] para detalhes. Para gravar um único arquivo em fita usando `tar`, especifique o nome do dispositivo de fita e o arquivo para backup: -[source,bash] +[source,shell] .... # tar cvf /dev/sa0 file .... Para recuperar arquivos de um arquivo `tar` em fita no diretório atual: -[source,bash] +[source,shell] .... # tar xvf /dev/sa0 .... Para fazer backup de um sistema de arquivos UFS, use `dump`. Este exemplo faz o backup de [.filename]#/usr# sem rebobinar a fita quando terminar: -[source,bash] +[source,shell] .... # dump -0aL -b64 -f /dev/nsa0 /usr .... Para restaurar arquivos interativamente de um arquivo `dump` em fita no diretório atual: -[source,bash] +[source,shell] .... # restore -i -f /dev/nsa0 .... @@ -1222,7 +1222,7 @@ device md Para montar uma imagem do sistema de arquivos existente, use o `mdconfig` para especificar o nome do arquivo ISO e um número de unidade livre. Em seguida, consulte esse número de unidade para montá-lo em um ponto de montagem existente. Uma vez montado, os arquivos na imagem ISO aparecerão no ponto de montagem. Este exemplo anexa o arquivo _diskimage.iso_ ao dispositivo de memória [.filename]#/dev/md0# e monta o dispositivo de memória em [.filename]#/mnt#: -[source,bash] +[source,shell] .... # mdconfig -f diskimage.iso -u 0 # mount -t cd9660 /dev/md0 /mnt @@ -1232,7 +1232,7 @@ Note que `-t cd9660` foi usado para montar uma imagem ISO. Se um número de unid Quando um disco de memória não está mais em uso, seus recursos devem ser liberados de volta ao sistema. Primeiro, desmonte o sistema de arquivos e use o `mdconfig` para desanexar o disco do sistema e liberar seus recursos. Para continuar este exemplo: -[source,bash] +[source,shell] .... # umount /mnt # mdconfig -d -u 0 @@ -1247,7 +1247,7 @@ O FreeBSD também suporta discos virtuais onde o armazenamento a ser utilizado Para criar um novo disco virtual baseado em memória, especifique um tipo de `swap` e o tamanho do disco de memória a ser criado. Em seguida, formate o disco de memória com um sistema de arquivos e monte como de costume. Este exemplo cria um disco de memória de 5M na unidade `1`. Esse disco de memória é formatado com o sistema de arquivos UFS antes de ser montado: -[source,bash] +[source,shell] .... # mdconfig -a -t swap -s 5m -u 1 # newfs -U md1 @@ -1264,7 +1264,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on Para criar um novo disco virtual baseado em arquivo, primeiro aloque a área que será usada para o disco. Esse exemplo cria um arquivo vázio de 5MB chamado [.filename]#newimage#: -[source,bash] +[source,shell] .... # dd if=/dev/zero of=newimage bs=1k count=5k 5120+0 records in @@ -1273,7 +1273,7 @@ Para criar um novo disco virtual baseado em arquivo, primeiro aloque a área que Em seguida, anexe esse arquivo a um disco de memória, rotule o disco de memória e formate-o com o sistema de arquivos UFS, monte o disco de memória e verifique o tamanho do disco com backup de arquivo: -[source,bash] +[source,shell] .... # mdconfig -f newimage -u 0 # bsdlabel -w md0 auto @@ -1290,14 +1290,14 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on São necessários vários comandos para criar um disco virtual baseado em arquivo ou memória usando `mdconfig`. O FreeBSD também vem com o `mdmfs` que configura automaticamente um disco de memória, formata-o com o sistema de arquivos UFS e o monta. Por exemplo, depois de criar _newimage_ com `dd`, esse comando é equivalente a executar os comandos `bsdlabel`, `newfs` e `mount` mostrados acima: -[source,bash] +[source,shell] .... # mdmfs -F newimage -s 5m md0 /mnt .... Para criar um novo disco virtual baseado em memória com o `mdmfs`, use este comando: -[source,bash] +[source,shell] .... # mdmfs -s 5m md1 /mnt .... @@ -1315,21 +1315,21 @@ A flag de arquivo `snapshot` não alterável é definida por man:mksnap_ffs[8] a Os snapshots são criados usando man:mount[8]. Para colocar um snapshot de [.filename]#/var# no arquivo [.filename]#/var/snapshot/snap#, use o seguinte comando: -[source,bash] +[source,shell] .... # mount -u -o snapshot /var/snapshot/snap /var .... Como alternativa, use man:mksnap_ffs[8] para criar o snapshot: -[source,bash] +[source,shell] .... # mksnap_ffs /var /var/snapshot/snap .... É possível encontrar arquivos de snapshots em um sistema de arquivos, como [.filename]#/var#, usando man:find[1]: -[source,bash] +[source,shell] .... # find /var -flags snapshot .... @@ -1341,7 +1341,7 @@ Depois que um snapshot foi criado, ele tem vários usos: * Executando man:dump[8] em um snapshot produzirá um arquivo de dump que seja consistente com o sistema de arquivos e o registro de data e hora do snapshot. man:dump[8] também pode criar um snapshot, criar uma imagem de dump e remover o snapshot em um comando usando `-L`. * O snapshot pode ser montado como uma imagem congelada do sistema de arquivos. Para montar o snapshot use man:mount[8] passando o nome do snapshot [.filename]#/var/snapshot/snap#: + -[source,bash] +[source,shell] .... # mdconfig -a -t vnode -o readonly -f /var/snapshot/snap -u 4 # mount -r /dev/md4 /mnt @@ -1349,7 +1349,7 @@ Depois que um snapshot foi criado, ele tem vários usos: O [.filename]#/var# congelado agora está disponível através de [.filename]#/mnt#. Tudo estará inicialmente no mesmo estado que estava quando o snapshot foi criado. A única exceção é que os snapshots anteriores aparecerão como arquivos com comprimento zero. Para desmontar o snapshot, use: -[source,bash] +[source,shell] .... # umount /mnt # mdconfig -d -u 4 @@ -1368,7 +1368,7 @@ Esta seção descreve como configurar cotas de disco para o sistema de arquivos Para determinar se o kernel do FreeBSD fornece suporte para cotas de disco: -[source,bash] +[source,shell] .... % sysctl kern.features.ufs_quota kern.features.ufs_quota: 1 @@ -1419,7 +1419,7 @@ No curso normal das operações, não deve haver necessidade de executar manualm Para verificar se as cotas estão ativadas, execute: -[source,bash] +[source,shell] .... # quota -v .... @@ -1436,7 +1436,7 @@ Os limites flexíveis podem ser excedidos por um período de tempo limitado, con No exemplo a seguir, a cota da conta `test` está sendo editada. Quando `edquota` é invocado, o editor especificado por `EDITOR` é aberto para editar os limites de cota. O editor padrão é configurado para vi. -[source,bash] +[source,shell] .... # edquota -u test Quotas for user test: @@ -1457,7 +1457,7 @@ Os novos limites de cotas entram em vigor ao sair do editor. Às vezes, é desejável definir limites de cota em vários usuários. Isso pode ser feito primeiro atribuindo o limite de cota desejado a um usuário. Em seguida, use `-p` para duplicar essa cota para um intervalo especificado de IDs de usuário (UIDs). O comando a seguir duplicará esses limites de cota para UIDs de `10.000` até `19.999`: -[source,bash] +[source,shell] .... # edquota -p test 10000-19999 .... @@ -1493,7 +1493,7 @@ rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad Em seguida, reinicie o `inetd`: -[source,bash] +[source,shell] .... # service inetd restart .... @@ -1515,7 +1515,7 @@ Este recurso oferece várias barreiras para proteger os dados armazenados em cad O FreeBSD fornece um módulo do kernel para gbde, que pode ser carregado com este comando: -[source,bash] +[source,shell] .... # kldload geom_bde .... @@ -1534,7 +1534,7 @@ O exemplo a seguir demonstra a adição de um novo disco rígido a um sistema qu + Instale a nova unidade no sistema, conforme explicado em <<disks-adding>>. Para propósitos deste exemplo, uma nova partição de disco rígido foi adicionada como [.filename]#/dev/ad4s1c# e [.filename]#/dev/ad0s1*# representa o existente partições padrão do FreeBSD. + -[source,bash] +[source,shell] .... # ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 @@ -1544,7 +1544,7 @@ Instale a nova unidade no sistema, conforme explicado em <<disks-adding>>. Para + . Criar um diretório para conter os arquivos de lock do `gbde` + -[source,bash] +[source,shell] .... # mkdir /etc/gbde .... @@ -1554,7 +1554,7 @@ O arquivo de lock gbde contém informações que o gbde requer para acessar part + Uma partição gbde deve ser inicializada antes de poder ser usada. Essa inicialização precisa ser executada apenas uma vez. Esse comando abrirá o editor padrão, para definir várias opções de configuração em um modelo. Para uso com o sistema de arquivos UFS, defina o sector_size como 2048: + -[source,bash] +[source,shell] .... # gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock # $FreeBSD: head/pt_BR.ISO8859-1/books/handbook/book.xml 53984 2020-03-15 16:03:31Z dbaio $ @@ -1580,14 +1580,14 @@ Arquivos de lock _devem_ ter backups junto com o conteúdo de qualquer partiçã + . Anexando a Partição Criptografada ao Kernel + -[source,bash] +[source,shell] .... # gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock .... + Este comando solicitará a entrada da senha que foi selecionada durante a inicialização da partição criptografada. O novo dispositivo criptografado aparecerá em [.filename]#/dev# como [.filename]#/dev/device_name.bde#: + -[source,bash] +[source,shell] .... # ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 @@ -1599,7 +1599,7 @@ Este comando solicitará a entrada da senha que foi selecionada durante a inicia + Uma vez que o dispositivo criptografado tenha sido anexado ao kernel, um sistema de arquivos pode ser criado no dispositivo. Este exemplo cria um sistema de arquivos UFS com atualizações soft ativadas. Certifique-se de especificar a partição que possui uma extensão [.filename]#*.bde#: + -[source,bash] +[source,shell] .... # newfs -U /dev/ad4s1c.bde .... @@ -1608,7 +1608,7 @@ Uma vez que o dispositivo criptografado tenha sido anexado ao kernel, um sistema + Crie um ponto de montagem e monte o sistema de arquivos criptografados: + -[source,bash] +[source,shell] .... # mkdir /private # mount /dev/ad4s1c.bde /private @@ -1618,7 +1618,7 @@ Crie um ponto de montagem e monte o sistema de arquivos criptografados: + O sistema de arquivos criptografados agora deve estar visível e disponível para uso: + -[source,bash] +[source,shell] .... % df -H Filesystem Size Used Avail Capacity Mounted on @@ -1646,7 +1646,7 @@ Isso requer que a frase secreta seja inserida no console no momento da inicializ ==== O sysinstall é incompatível com os dispositivos criptografados com gbde. Todos os dispositivos [.filename]#*.bde# devem ser desanexado do kernel antes de iniciar o sysinstall ou ele irá travar durante a análise inicial dos dispositivos. Para desanexar o dispositivo criptografado usado no exemplo, use o seguinte comando: -[source,bash] +[source,shell] .... # gbde detach /dev/ad4s1c .... @@ -1685,7 +1685,7 @@ geom_eli_load="YES" + Para carregar o módulo do kernel agora: + -[source,bash] +[source,shell] .... # kldload geom_eli .... @@ -1702,7 +1702,7 @@ device crypto + Os comandos a seguir geram uma chave mestra com a qual todos os dados serão criptografados. Esta chave nunca pode ser alterada. Em vez de usá-lo diretamente, ele é criptografado com uma ou mais chaves de usuário. As chaves do usuário são compostas por uma combinação opcional de bytes aleatórios de um arquivo, [.filename]#/root/da2.key# e/ou uma senha. Neste caso, a fonte de dados do arquivo de chave é [.filename]#/dev/random#. Este comando também configura o tamanho do setor do provedor ([.filename]#/dev/da2.eli#) como 4kB, para melhor desempenho: + -[source,bash] +[source,shell] .... # dd if=/dev/random of=/root/da2.key bs=64 count=1 # geli init -K /root/da2.key -s 4096 /dev/da2 @@ -1714,7 +1714,7 @@ Não é obrigatório o uso de uma frase secreta e de um arquivo de chave, pois c + Se o arquivo de chave é dado como "-", a entrada padrão será usada. Por exemplo, este comando gera três arquivos principais: + -[source,bash] +[source,shell] .... # cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2 .... @@ -1723,7 +1723,7 @@ Se o arquivo de chave é dado como "-", a entrada padrão será usada. Por exemp + Para anexar o provedor, especifique o arquivo de chave, o nome do disco e a frase secreta: + -[source,bash] +[source,shell] .... # geli attach -k /root/da2.key /dev/da2 Enter passphrase: @@ -1731,7 +1731,7 @@ Enter passphrase: + Isso cria um novo dispositivo com uma extensão [.filename]#.eli#: + -[source,bash] +[source,shell] .... # ls /dev/da2* /dev/da2 /dev/da2.eli @@ -1741,7 +1741,7 @@ Isso cria um novo dispositivo com uma extensão [.filename]#.eli#: + Em seguida, formate o dispositivo com o sistema de arquivos UFS e monte-o em um ponto de montagem existente: + -[source,bash] +[source,shell] .... # dd if=/dev/random of=/dev/da2.eli bs=1m # newfs /dev/da2.eli @@ -1750,7 +1750,7 @@ Em seguida, formate o dispositivo com o sistema de arquivos UFS e monte-o em um + O sistema de arquivos criptografado agora deve estar disponível para uso: + -[source,bash] +[source,shell] .... # df -H Filesystem Size Used Avail Capacity Mounted on @@ -1765,7 +1765,7 @@ Filesystem Size Used Avail Capacity Mounted on Uma vez que o trabalho na partição criptografada é feito, e a partição [.filename]#/private# não é mais necessária, é prudente colocar o dispositivo no armazenamento frio desmontando e desanexando a partição `geli` criptografada do kernel: -[source,bash] +[source,shell] .... # umount /private # geli detach da2.eli @@ -1792,7 +1792,7 @@ Esta seção demonstra como configurar uma partição swap criptografada usando As partições de swap não são criptografadas por padrão e devem ser limpas de quaisquer dados confidenciais antes de continuar. Para sobrescrever a partição swap atual com lixo aleatório, execute o seguinte comando: -[source,bash] +[source,shell] .... # dd if=/dev/random of=/dev/ada0s1b bs=1m .... @@ -1841,7 +1841,7 @@ Depois que o sistema for reinicializado, a operação adequada da swap criptogra Se man:gbde[8] estiver sendo usado: -[source,bash] +[source,shell] .... % swapinfo Device 1K-blocks Used Avail Capacity @@ -1850,7 +1850,7 @@ Device 1K-blocks Used Avail Capacity Se man:geli[8] estiver sendo usado: -[source,bash] +[source,shell] .... % swapinfo Device 1K-blocks Used Avail Capacity @@ -1947,7 +1947,7 @@ Também é possível usar nomes de host nas instruções `remote` se os hosts fo Uma vez que a configuração exista em ambos os nós, o conjunto HAST pode ser criado. Execute esses comandos nos dois nós para colocar os metadados iniciais no disco local e para iniciar man:hastd[8]: -[source,bash] +[source,shell] .... # hastctl create test # service hastd onestart @@ -1960,21 +1960,21 @@ _Não_ é possível usar os provedores GEOM com um sistema de arquivos existente Um nó HAST `primário` ou `secundário` é selecionado por um administrador, ou software como Heartbeat, usando man:hastctl[8]. No nó primário, `hasta`, execute este comando: -[source,bash] +[source,shell] .... # hastctl role primary test .... Execute este comando no nó secundário, `hastb`: -[source,bash] +[source,shell] .... # hastctl role secondary test .... Verifique o resultado executando `hastctl` em cada nó: -[source,bash] +[source,shell] .... # hastctl status test .... @@ -1983,7 +1983,7 @@ Verifique a linha `status` na saída. Se disser `degraded`, algo está errado co O próximo passo é criar um sistema de arquivos no provedor GEOM e montá-lo. Isso deve ser feito no nó `primário`. A criação do sistema de arquivos pode levar alguns minutos, dependendo do tamanho do disco rígido. Este exemplo cria um sistema de arquivos UFS em [.filename]#/dev/hast/test#: -[source,bash] +[source,shell] .... # newfs -U /dev/hast/test # mkdir /hast/test @@ -2033,7 +2033,7 @@ Se os sistemas estiverem executando o FreeBSD 10 ou superior, substitua [.filena Reinicie o man:devd[8] em ambos os nós para colocar a nova configuração em vigor: -[source,bash] +[source,shell] .... # service devd restart .... @@ -2166,7 +2166,7 @@ _Split-brain_ ocorre quando os nós do cluster não conseguem se comunicar entre O administrador deve decidir qual nó tem alterações mais importantes ou executar a mesclagem manualmente. Então, deixe o HAST executar a sincronização completa do nó que possui os dados quebrados. Para fazer isso, emita esses comandos no nó que precisa ser ressincronizado: -[source,bash] +[source,shell] .... # hastctl role init test # hastctl create test diff --git a/documentation/content/pt-br/books/handbook/dtrace/_index.adoc b/documentation/content/pt-br/books/handbook/dtrace/_index.adoc index f4663162f3..f6523be992 100644 --- a/documentation/content/pt-br/books/handbook/dtrace/_index.adoc +++ b/documentation/content/pt-br/books/handbook/dtrace/_index.adoc @@ -72,7 +72,7 @@ Antes de ler este capítulo, você deve: Embora o DTrace no FreeBSD seja semelhante ao encontrado no Solaris(TM), existem diferenças. A principal diferença é que no FreeBSD, o DTrace é implementado como um conjunto de módulos do kernel e o DTrace não pode ser usado até que os módulos sejam carregados. Para carregar todos os módulos necessários: -[source,bash] +[source,shell] .... # kldload dtraceall .... @@ -127,7 +127,7 @@ Os scripts do DTrace consistem em uma lista de um ou mais testes _probes_, ou po Para ver todos os probes, o administrador pode executar o seguinte comando: -[source,bash] +[source,shell] .... # dtrace -l | more .... @@ -138,7 +138,7 @@ Os exemplos nesta seção fornecem uma visão geral de como usar dois dos script O script [.filename]#hotkernel# é projetado para identificar qual função está usando a maior parte do tempo do kernel. Ele produzirá uma saída semelhante à seguinte: -[source,bash] +[source,shell] .... # cd /usr/local/share/dtrace-toolkit # ./hotkernel @@ -147,7 +147,7 @@ Sampling... Hit Ctrl-C to end. Conforme instruído, use a combinação de teclas kbd:[Ctrl+C] para interromper o processo. Após o término, o script exibirá uma lista de funções do kernel e informações de tempo, classificando a saída em ordem crescente de tempo: -[source,bash] +[source,shell] .... kernel`_thread_lock_flags 2 0.0% 0xc1097063 2 0.0% @@ -179,7 +179,7 @@ kernel`sched_idletd 137 0.3% Este script também funcionará com módulos do kernel. Para usar este recurso, execute o script com `-m`: -[source,bash] +[source,shell] .... # ./hotkernel -m Sampling... Hit Ctrl-C to end. @@ -201,7 +201,7 @@ kernel 874 0.4% O script [.filename]#procsystime# captura e imprime o uso do tempo de chamada do sistema para um determinado processo ID (PID) ou nome do processo. No exemplo a seguir, uma nova instância de [.filename]#/bin/csh# foi gerada. Então, [.filename]#procsystime# foi executado e permaneceu aguardando enquanto alguns comandos foram digitados na outra instância do `csh`. Estes são os resultados deste teste: -[source,bash] +[source,shell] .... # ./procsystime -n csh Tracing... Hit Ctrl-C to end... diff --git a/documentation/content/pt-br/books/handbook/filesystems/_index.adoc b/documentation/content/pt-br/books/handbook/filesystems/_index.adoc index 5b44351f27..ea867121c4 100644 --- a/documentation/content/pt-br/books/handbook/filesystems/_index.adoc +++ b/documentation/content/pt-br/books/handbook/filesystems/_index.adoc @@ -85,14 +85,14 @@ Esse driver também pode ser usado para acessar os sistemas de arquivos ext3 e e Para acessar um sistema de arquivos ext, primeiro carregue o módulo correspondente do kernel: -[source,bash] +[source,shell] .... # kldload ext2fs .... Em seguida, monte o volume ext especificando seu nome de partição no FreeBSD e um ponto de montagem existente. Este exemplo monta [.filename]#/dev/ad1s1# em [.filename]#/mnt#: -[source,bash] +[source,shell] .... # mount -t ext2fs /dev/ad1s1 /mnt .... diff --git a/documentation/content/pt-br/books/handbook/firewalls/_index.adoc b/documentation/content/pt-br/books/handbook/firewalls/_index.adoc index c4f8775930..f35d00e653 100644 --- a/documentation/content/pt-br/books/handbook/firewalls/_index.adoc +++ b/documentation/content/pt-br/books/handbook/firewalls/_index.adoc @@ -144,7 +144,7 @@ Para usar o PF, seu módulo do kernel deve ser carregado primeiro. Esta seção Comece adicionando a seguinte linha `pf_enable=yes` ao arquivo [.filename]#/etc/rc.conf#: -[source,bash] +[source,shell] .... # sysrc pf_enable=yes .... @@ -165,7 +165,7 @@ pf_rules="/path/to/pf.conf" O suporte de log para o PF é fornecido pelo man:pflog[4]. Para ativar o suporte aos logs, adicione esta linha ao [.filename]#/etc/rc.conf#: -[source,bash] +[source,shell] .... # sysrc pflog_enable=yes .... @@ -187,7 +187,7 @@ gateway_enable="YES" # Enable as LAN gateway Depois de salvar as edições necessárias, o PF pode ser iniciado com o suporte de log, digitando: -[source,bash] +[source,shell] .... # service pf start # service pflog start @@ -242,7 +242,7 @@ pass out all keep state A primeira regra nega todo o tráfego de entrada por padrão. A segunda regra permite que as conexões originadas por este sistema sejam liberadas, mantendo as informações de estado nessas conexões. Essas informações de estado permitem que o tráfego de retorno para essas conexões seja liberado e só deve ser usado em máquinas confiáveis. O conjunto de regras pode ser carregado com: -[source,bash] +[source,shell] .... # pfctl -e ; pfctl -f /etc/pf.conf .... @@ -270,14 +270,14 @@ Embora o UDP seja considerado um protocolo sem estado, o PF é capaz de rastrear Sempre que uma edição é feita em um conjunto de regras, as novas regras devem ser carregadas para que possam ser usadas: -[source,bash] +[source,shell] .... # pfctl -f /etc/pf.conf .... Se não houver erros de sintaxe, o `pfctl` não exibirá nenhuma mensagem durante o carregamento da regra. As regras também podem ser testadas antes de tentar carregá-las: -[source,bash] +[source,shell] .... # pfctl -nf /etc/pf.conf .... @@ -297,21 +297,21 @@ Esta seção demonstra como configurar um sistema FreeBSD executando PF para atu Primeiro, ative o gateway para permitir que a máquina encaminhe o tráfego de rede que recebe em uma interface para outra interface. Esta configuração do sysctl encaminhará pacotes IPv4: -[source,bash] +[source,shell] .... # sysctl net.inet.ip.forwarding=1 .... Para encaminhar tráfego IPv6, use: -[source,bash] +[source,shell] .... # sysctl net.inet6.ip6.forwarding=1 .... Para ativar essas configurações na inicialização do sistema, use o man:sysrc[8] para adicioná-las ao [.filename]#/etc/rc.conf#: -[source,bash] +[source,shell] .... # sysrc gateway_enable=yes # sysrc ipv6_gateway_enable=yes @@ -452,7 +452,7 @@ onde `$proxy` se expande para o endereço ao qual o daemon proxy está vinculado Salve o arquivo [.filename]#/etc/pf.conf#, carregue as novas regras e verifique a partir de um cliente se as conexões FTP estão funcionando: -[source,bash] +[source,shell] .... # pfctl -f /etc/pf.conf .... @@ -564,14 +564,14 @@ pass inet proto tcp from <clients> to any port $client_out flags S/SA keep state O conteúdo de uma tabela pode ser manipulado ao vivo, usando `pfctl`. Este exemplo adiciona outra rede a tabela: -[source,bash] +[source,shell] .... # pfctl -t clients -T add 192.168.1.0/16 .... Observe que quaisquer alterações feitas dessa maneira terão efeito imediato, tornando-as ideais para testes, mas não sobreviverão a uma falha de energia ou reinicialização. Para tornar as alterações permanentes, modifique a definição da tabela no conjunto de regras ou edite o arquivo a que a tabela se refere. É possível manter a cópia em disco da tabela usando uma tarefa man:cron[8] que copia o conteúdo da tabela para o disco em intervalos de tempo, usando um comando como `pfctl -t clients -T show >/etc/clients`. Alternativamente, o [.filename]#/etc/clients# pode ser atualizado com o conteúdo da tabela na memória: -[source,bash] +[source,shell] .... # pfctl -t clients -T replace -f /etc/clients .... @@ -650,7 +650,7 @@ Com o tempo, as tabelas serão preenchidas por regras de sobrecarga e seu tamanh Para situações como essas, o pfctl fornece a capacidade de expirar as entradas da tabela. Por exemplo, este comando removerá entradas de tabela `<bruteforce>` que não foram referenciadas por `86400` segundos: -[source,bash] +[source,shell] .... # pfctl -t bruteforce -T expire 86400 .... @@ -903,14 +903,14 @@ Para aqueles usuários que desejam compilar estaticamente o suporte ao IPFW em u Para configurar o sistema para ativar o IPFW no momento da inicialização, adicione `firewall_enable="YES"` ao [.filename]#/etc/rc.conf#: -[source,bash] +[source,shell] .... # sysrc firewall_enable="YES" .... Para usar um dos tipos de firewall padrão fornecidos pelo FreeBSD, adicione outra linha que especifique o tipo: -[source,bash] +[source,shell] .... # sysrc firewall_type="open" .... @@ -931,14 +931,14 @@ Observe que o tipo `filename` é usado para carregar um conjunto de regras custo Uma maneira alternativa de carregar um conjunto de regras personalizado é definir a variável `firewall_script` para o caminho absoluto de um _script executável_ que inclui comandos IPFW. Os exemplos usados nesta seção assumem que o `firewall_script` está definido como [.filename]#/etc/ipfw.rules#: -[source,bash] +[source,shell] .... # sysrc firewall_script="/etc/ipfw.rules" .... Para habilitar o registro em log por meio do man:syslogd[8], inclua esta linha: -[source,bash] +[source,shell] .... # sysrc firewall_logging="YES" .... @@ -951,21 +951,21 @@ Somente regras de firewall com opção de `log` vão ser registradas. As regras Não existe uma variável em [.filename]#/etc/rc.conf# para definir os limites de log. Para limitar o número de vezes que uma regra é registrada por tentativa de conexão, especifique o número usando esta linha no [.filename]#/etc/sysctl.conf#: -[source,bash] +[source,shell] .... # echo "net.inet.ip.fw.verbose_limit=5" >> /etc/sysctl.conf .... Para habilitar o registro através de uma interface dedicada chamada `ipfw0`, adicione esta linha ao [.filename]#/etc/rc.conf# em vez disso: -[source,bash] +[source,shell] .... # sysrc firewall_logif="YES" .... Em seguida, use o tcpdump para ver o que está sendo registrado: -[source,bash] +[source,shell] .... # tcpdump -t -n -i ipfw0 .... @@ -978,7 +978,7 @@ Não há sobrecarga devido ao log, a menos que o tcpdump esteja anexado. Depois de salvar as edições necessárias, inicie o firewall. Para ativar os limites de log agora, defina também o valor `sysctl` especificado acima: -[source,bash] +[source,shell] .... # service ipfw start # sysctl net.inet.ip.fw.verbose_limit=5 @@ -1399,49 +1399,49 @@ O `ipfw` é uma maneira útil para se exibir as regras de firewall em execução Para listar todas as regras em execução em sequência: -[source,bash] +[source,shell] .... # ipfw list .... Para listar todas as regras em execução com um registro de data e hora de quando a última vez em que a regra foi utilizada: -[source,bash] +[source,shell] .... # ipfw -t list .... O próximo exemplo lista as informações contábeis e a contagem de pacotes das regras correspondentes, junto com as próprias regras. A primeira coluna é o número da regra, seguido pelo número de pacotes e bytes correspondidos, seguidos pela própria regra. -[source,bash] +[source,shell] .... # ipfw -a list .... Para listar regras dinâmicas além das regras estáticas: -[source,bash] +[source,shell] .... # ipfw -d list .... Para mostrar também as regras dinâmicas expiradas: -[source,bash] +[source,shell] .... # ipfw -d -e list .... Para zerar os contadores: -[source,bash] +[source,shell] .... # ipfw zero .... Para zerar os contadores apenas para a regra com o número _NUM_: -[source,bash] +[source,shell] .... # ipfw zero NUM .... @@ -1493,7 +1493,7 @@ As regras não são importantes, pois o foco deste exemplo é como os campos de Se o exemplo acima estiver no arquivo [.filename]#/etc/ipfw.rules#, as regras podem ser recarregadas pelo seguinte comando: -[source,bash] +[source,shell] .... # sh /etc/ipfw.rules .... @@ -1502,7 +1502,7 @@ Se o exemplo acima estiver no arquivo [.filename]#/etc/ipfw.rules#, as regras po A mesma coisa pode ser realizada executando esses comandos manualmente: -[source,bash] +[source,shell] .... # ipfw -q -f flush # ipfw -q add check-state @@ -1598,7 +1598,7 @@ Então, inicie o IPF: Para carregar as regras de firewall, especifique o nome do arquivo do conjunto de regras usando `ipf`. O comando a seguir pode ser usado para substituir as regras de firewall que está em execução: -[source,bash] +[source,shell] .... # ipf -Fa -f /etc/ipf.rules .... @@ -1922,28 +1922,28 @@ pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state Sempre que o arquivo contendo as regras de NAT for editado, execute `ipnat` com `-CF` para excluir as regras atuais de NAT e liberar o conteúdo da tabela de tradução dinâmica. Inclua `-f` e especifique o nome do conjunto de regras NAT para carregar: -[source,bash] +[source,shell] .... # ipnat -CF -f /etc/ipnat.rules .... Para exibir as estatísticas de NAT: -[source,bash] +[source,shell] .... # ipnat -s .... Para listar os mapeamentos atuais da tabela NAT: -[source,bash] +[source,shell] .... # ipnat -l .... Para ativar o modo verbose e exibir informações relacionadas ao processamento de regras, regras ativas e registros nas tabelas: -[source,bash] +[source,shell] .... # ipnat -v .... @@ -1954,7 +1954,7 @@ O IPF inclui o man:ipfstat[8] que pode ser usado para recuperar e exibir estatí A saída padrão do `ipfstat` é semelhante a esta: -[source,bash] +[source,shell] .... input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0 output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0 @@ -1977,7 +1977,7 @@ input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0 Várias opções estão disponíveis. Quando executado com `-i` para entrada ou `-o` para saída, o comando recuperará e exibirá a lista apropriada de regras de filtro atualmente instaladas e em uso pelo kernel. Para também ver os números das regras, inclua `-n`. Por exemplo, `ipfstat -on` exibe a tabela de regras de saída com os números de regra: -[source,bash] +[source,shell] .... @1 pass out on xl0 from any to any @2 block out on dc0 from any to any @@ -1986,7 +1986,7 @@ Várias opções estão disponíveis. Quando executado com `-i` para entrada ou Inclua `-h` para prefixar cada regra com uma contagem de quantas vezes a regra foi utilizada. Por exemplo, `ipfstat -oh` exibe a tabela de regras internas de saída, prefixando cada regra com sua contagem de uso: -[source,bash] +[source,shell] .... 2451423 pass out on xl0 from any to any 354727 block out on dc0 from any to any @@ -2015,7 +2015,7 @@ Uma vez que o recurso de criação de log esteja ativado no arquivo [.filename]# Por padrão, o modo `ipmon -Ds` usa `local0` como o recurso de log. Os níveis de registro a seguir podem ser usados para separar ainda mais os dados logados: -[source,bash] +[source,shell] .... LOG_INFO - pacotes logados usando a palavra-chave "log" ao invés da ação pass ou block. LOG_NOTICE - pacotes logados que também são liberados @@ -2025,7 +2025,7 @@ LOG_ERR - pacotes que foram logados e que podem ser considerados insuficientes d Para configurar o IPF para logar todos os dados em [.filename]#/var/log/ipfilter.log#, primeiro crie o arquivo vazio: -[source,bash] +[source,shell] .... # touch /var/log/ipfilter.log .... @@ -2067,14 +2067,14 @@ Este capítulo descreve como instalar o blacklistd, configurá-lo e fornece exem A configuração principal do blacklistd é armazenada em man:blacklistd.conf[5]. Várias opções de linha de comando também estão disponíveis para alterar o comportamento em tempo de execução do blacklistd. Para persistir as configurações em uma reinicialização do sistema, deve se armazenar as opções em [.filename]#/etc/blacklistd.conf#. Para ativar o daemon durante a inicialização do sistema, adicione a linha `blacklistd_enable` no [.filename]#/etc/rc.conf# assim: -[source,bash] +[source,shell] .... # sysrc blacklistd_enable=yes .... Para iniciar o serviço manualmente, execute este comando: -[source,bash] +[source,shell] .... # service blacklistd start .... @@ -2190,7 +2190,7 @@ Isso é tudo o que é necessário para que esses programas conversem com o black O Blacklistd fornece ao usuário um utilitário de gerenciamento chamado man:blacklistctl[8]. Ele exibe endereços e redes bloqueados que estão na lista negra pelas regras definidas em man:blacklistd.conf[5]. Para ver a lista de hosts atualmente bloqueados, use `dump` combinado com `-b` assim. -[source,bash] +[source,shell] .... # blacklistctl dump -b address/ma:port id nfail last access @@ -2201,7 +2201,7 @@ Este exemplo mostra que houve 6 de três tentativas permitidas na porta 22 prove Para ver o tempo restante em que esse host estará na lista negra, adicione `-r` ao comando anterior. -[source,bash] +[source,shell] .... # blacklistctl dump -br address/ma:port id nfail remaining time @@ -2214,7 +2214,7 @@ Neste exemplo, restam 36 segundos para que este host não seja mais bloqueado. Às vezes, é necessário remover um host da lista de bloqueios antes que o tempo restante expire. Infelizmente, não há funcionalidade no blacklistd para fazer isso. No entanto, é possível remover o endereço da tabela PF usando pfctl. Para cada porta bloqueada, existe uma âncora filha dentro da âncora do blacklistd definida em [.filename]#/etc/pf.conf#. Por exemplo, se houver uma âncora filha para bloquear a porta 22, ela será chamada `blacklistd/22`. Há uma tabela dentro dessa âncora filha que contém os endereços bloqueados. Essa tabela é chamada de port seguida pelo número da porta. Neste exemplo, ele seria chamada de `port22`. Com essas informações em mãos, agora é possível usar o man:pfctl[8] para exibir todos os endereços listados desta maneira: -[source,bash] +[source,shell] .... # pfctl -a blacklistd/22 -t port22 -T show ... @@ -2224,7 +2224,7 @@ Neste exemplo, restam 36 segundos para que este host não seja mais bloqueado. Depois de identificar o endereço a ser desbloqueado da lista, o seguinte comando o remove da lista: -[source,bash] +[source,shell] .... # pfctl -a blacklistd/22 -t port22 -T delete 213.0.123.128/25 .... diff --git a/documentation/content/pt-br/books/handbook/geom/_index.adoc b/documentation/content/pt-br/books/handbook/geom/_index.adoc index 32b368cd15..0e5161b197 100644 --- a/documentation/content/pt-br/books/handbook/geom/_index.adoc +++ b/documentation/content/pt-br/books/handbook/geom/_index.adoc @@ -88,7 +88,7 @@ O processo para criar um RAID0 por software, baseado no GEOM, em um sistema Free . Carregue o módulo [.filename]#geom_stripe.ko#: + -[source,bash] +[source,shell] .... # kldload geom_stripe .... @@ -96,7 +96,7 @@ O processo para criar um RAID0 por software, baseado no GEOM, em um sistema Free . Assegure-se de que exista um ponto de montagem adequado. Se esse volume se tornar uma partição root, use temporariamente outro ponto de montagem, como [.filename]#/mnt#. . Determine os nomes dos dispositivos para os discos que serão striped e crie o novo dispositivo de stripe. Por exemplo, para distribuir dois discos ATA não utilizados e não particionados com nomes de dispositivos [.filename]#/dev/ad2# e [.filename]#/dev/ad3#: + -[source,bash] +[source,shell] .... # gstripe label -v st0 /dev/ad2 /dev/ad3 Metadata value stored on /dev/ad2. @@ -106,14 +106,14 @@ Done. + . Escreva um label padrão, também conhecido como tabela de partição, no novo volume e instale o código do bootstrap padrão: + -[source,bash] +[source,shell] .... # bsdlabel -wB /dev/stripe/st0 .... + . Este processo deve criar dois outros dispositivos em [.filename]#/dev/stripe# além de [.filename]#st0#. Esses incluem o [.filename]#st0a# e o [.filename]#st0c#. Neste ponto, um sistema de arquivos UFS pode ser criado no [.filename]#st0a# usando o `newfs`: + -[source,bash] +[source,shell] .... # newfs -U /dev/stripe/st0a .... @@ -121,14 +121,14 @@ Done. Muitos números irão deslizar pela tela e, após alguns segundos, o processo será concluído. O volume foi criado e está pronto para ser montado. . Para montar manualmente o stripe de disco criado: + -[source,bash] +[source,shell] .... # mount /dev/stripe/st0a /mnt .... + . Para montar este sistema de arquivos distribuído automaticamente durante o processo de inicialização, coloque as informações do volume no arquivo [.filename]#/etc/fstab#. Neste exemplo, um ponto de montagem permanente, chamado [.filename]#stripe#, é criado: + -[source,bash] +[source,shell] .... # mkdir /stripe # echo "/dev/stripe/st0a /stripe ufs rw 2 2" \ @@ -137,7 +137,7 @@ Muitos números irão deslizar pela tela e, após alguns segundos, o processo se + . O módulo [.filename]#geom_stripe.ko# também deve ser carregado automaticamente durante a inicialização do sistema, adicionando uma linha ao arquivo [.filename]#/boot/loader.conf#: + -[source,bash] +[source,shell] .... # echo 'geom_stripe_load="YES"' >> /boot/loader.conf .... @@ -171,21 +171,21 @@ Muitos sistemas de disco armazenam metadados no final de cada disco. Metadados a Os metadados GPT podem ser apagados com man:gpart[8]. Este exemplo apaga as tabelas de partições primárias e de backup do GPT do disco [.filename]#ada8#: -[source,bash] +[source,shell] .... # gpart destroy -F ada8 .... Um disco pode ser removido de um espelhamento ativo e os metadados apagados em uma etapa usando man:gmirror[8]. Aqui, o disco de exemplo [.filename]#ada8# é removido do espelhamento ativo [.filename]#gm4#: -[source,bash] +[source,shell] .... # gmirror remove gm4 ada8 .... Se o espelhamento não estiver em execução, mas os metadados do espelhamento antigo ainda estiverem no disco, use o comando `gmirror clear` para removê-lo: -[source,bash] +[source,shell] .... # gmirror clear ada8 .... @@ -199,14 +199,14 @@ Neste exemplo, o FreeBSD já foi instalado em um único disco, [.filename]#ada0# O módulo do kernel [.filename]#geom_mirror.ko# deve ser compilado no kernel ou carregado no boot ou em tempo de execução. Carregue manualmente o módulo do kernel agora: -[source,bash] +[source,shell] .... # gmirror load .... Crie o espelho com as duas novas unidades: -[source,bash] +[source,shell] .... # gmirror label -v gm0 /dev/ada1 /dev/ada2 .... @@ -217,7 +217,7 @@ As tabelas de partição MBR e bsdlabel agora podem ser criadas no mirror com o As partições no espelho não precisam ser do mesmo tamanho que as do disco existente, mas devem ser grandes o suficiente para conter todos os dados já presentes no disco [.filename]#ada0#. -[source,bash] +[source,shell] .... # gpart create -s MBR mirror/gm0 # gpart add -t freebsd -a 4k mirror/gm0 @@ -228,7 +228,7 @@ As partições no espelho não precisam ser do mesmo tamanho que as do disco exi 156301425 61 - free - (30k) .... -[source,bash] +[source,shell] .... # gpart create -s BSD mirror/gm0s1 # gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1 @@ -249,7 +249,7 @@ As partições no espelho não precisam ser do mesmo tamanho que as do disco exi Torne o espelhamento inicializável instalando o bootcode no MBR e no bsdlabel e definindo a slice ativa: -[source,bash] +[source,shell] .... # gpart bootcode -b /boot/mbr mirror/gm0 # gpart set -a active -i 1 mirror/gm0 @@ -258,7 +258,7 @@ Torne o espelhamento inicializável instalando o bootcode no MBR e no bsdlabel e Formate os sistemas de arquivos no novo espelhamento, habilitando as atualizações simples. -[source,bash] +[source,shell] .... # newfs -U /dev/mirror/gm0s1a # newfs -U /dev/mirror/gm0s1d @@ -268,7 +268,7 @@ Formate os sistemas de arquivos no novo espelhamento, habilitando as atualizaç Os sistemas de arquivos do disco original [.filename]#ada0# agora podem ser copiados para o espelho com o man:dump[8] e o man:restore[8]. -[source,bash] +[source,shell] .... # mount /dev/mirror/gm0s1a /mnt # dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -) @@ -312,14 +312,14 @@ Neste exemplo, o FreeBSD já foi instalado em um único disco, [.filename]#ada0# Carregue o módulo do kernel [.filename]#geom_mirror.ko#: -[source,bash] +[source,shell] .... # gmirror load .... Verifique o tamanho da mídia do disco original com `diskinfo`: -[source,bash] +[source,shell] .... # diskinfo -v ada0 | head -n3 /dev/ada0 @@ -329,7 +329,7 @@ Verifique o tamanho da mídia do disco original com `diskinfo`: Crie um espelhamento no novo disco. Para garantir que a capacidade do espelhamento não seja maior do que a unidade [.filename]#ada0# original, man:gnop[8] é usado para criar uma unidade falsa exatamente do mesmo tamanho. Esta unidade não armazena dados, mas é usada apenas para limitar o tamanho do espelhamento. Quando o man:gmirror[8] cria o espelhamento, ele irá restringir a capacidade ao tamanho de [.filename]#gzero.nop#, mesmo se a nova unidade [.filename]#ada1# tiver mais espaço. Note que o _1000204821504_ na segunda linha é igual ao tamanho de mídia do [.filename]#ada0# como mostrado pelo comando `diskinfo` acima. -[source,bash] +[source,shell] .... # geom zero load # gnop create -s 1000204821504 gzero @@ -343,7 +343,7 @@ Depois de criar o [.filename]#gm0#, veja a tabela de partições em [.filename]# No entanto, se a saída mostrar que todo o espaço no disco está alocado, como na listagem a seguir, não há espaço disponível para os 512-bytes de metadados de espelhamento no final do disco. -[source,bash] +[source,shell] .... # gpart show ada0 => 63 1953525105 ada0 MBR (931G) @@ -354,7 +354,7 @@ Neste caso, a tabela de partição deve ser editada para reduzir a capacidade de Em qualquer um dos casos, as tabelas de partição no disco principal devem ser primeiro copiadas usando `gpart backup` e `gpart restore`. -[source,bash] +[source,shell] .... # gpart backup ada0 > table.ada0 # gpart backup ada0s1 > table.ada0s1 @@ -362,14 +362,14 @@ Em qualquer um dos casos, as tabelas de partição no disco principal devem ser Esses comandos criam dois arquivos, [.filename]#table.ada0# e [.filename]#table.ada0s1#. Este exemplo é de uma unidade de 1 TB: -[source,bash] +[source,shell] .... # cat table.ada0 MBR 4 1 freebsd 63 1953525105 [active] .... -[source,bash] +[source,shell] .... # cat table.ada0s1 BSD 8 @@ -383,14 +383,14 @@ BSD 8 Se nenhum espaço livre for exibido no final do disco, o tamanho da slice e da última partição deve ser reduzido por um setor. Edite os dois arquivos, reduzindo o tamanho da fatia e da última partição em um. Estes são os últimos números em cada listagem. -[source,bash] +[source,shell] .... # cat table.ada0 MBR 4 1 freebsd 63 1953525104 [active] .... -[source,bash] +[source,shell] .... # cat table.ada0s1 BSD 8 @@ -406,7 +406,7 @@ Se pelo menos um setor não foi alocado no final do disco, esses dois arquivos p Agora restaure a tabela de partições em [.filename]#mirror/gm0#: -[source,bash] +[source,shell] .... # gpart restore mirror/gm0 < table.ada0 # gpart restore mirror/gm0s1 < table.ada0s1 @@ -414,7 +414,7 @@ Agora restaure a tabela de partições em [.filename]#mirror/gm0#: Verifique a tabela de partições com o comando `gpart show`. Este exemplo tem [.filename]#gm0s1a# para [.filename]#/#, [.filename]#gm0s1d# para [.filename]#/var#, [.filename]#gm0s1e# para [.filename]#/usr#, [.filename]#gm0s1f# para [.filename]#/data1# e [.filename]#gm0s1g# para [.filename]#/data2#. -[source,bash] +[source,shell] .... # gpart show mirror/gm0 => 63 1953525104 mirror/gm0 MBR (931G) @@ -436,7 +436,7 @@ Tanto a fatia quanto a última partição devem ter pelo menos um bloco livre no Crie sistemas de arquivos nessas novas partições. O número de partições varia de acordo com o disco original, [.filename]#ada0#. -[source,bash] +[source,shell] .... # newfs -U /dev/mirror/gm0s1a # newfs -U /dev/mirror/gm0s1d @@ -447,7 +447,7 @@ Crie sistemas de arquivos nessas novas partições. O número de partições var Torne o espelhamento inicializável instalando o bootcode no MBR e no bsdlabel e definindo a slice ativa: -[source,bash] +[source,shell] .... # gpart bootcode -b /boot/mbr mirror/gm0 # gpart set -a active -i 1 mirror/gm0 @@ -457,7 +457,7 @@ Torne o espelhamento inicializável instalando o bootcode no MBR e no bsdlabel e Ajuste o arquivo [.filename]#/etc/fstab# para usar as novas partições no espelhamento.Primeiro faça o backup deste arquivo copiando ele para [.filename]#/etc/fstab.orig#. -[source,bash] +[source,shell] .... # cp /etc/fstab /etc/fstab.orig .... @@ -484,7 +484,7 @@ geom_mirror_load="YES" Os sistemas de arquivos do disco original agora podem ser copiados para o espelhamento com o man:dump[8] e o man:restore[8]. Cada sistema de arquivos copiados com o `dump -L` irá primeiro criar um snapshot, o que pode levar algum tempo. -[source,bash] +[source,shell] .... # mount /dev/mirror/gm0s1a /mnt # dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -) @@ -509,7 +509,7 @@ Após inicializar a partir de [.filename]#mirror/gm0# com sucesso, a etapa final Quando o [.filename]#ada0# for inserido no espelhamento, seu conteúdo anterior será substituído pelos dados do espelhamento. Certifique-se de que [.filename]#mirror/gm0# tenha o mesmo conteúdo do [.filename]#ada0# antes de adicionar o [.filename]#ada0# ao espelhamento. Se o conteúdo anteriormente copiado pelo man:dump[8] e man:restore[8] não forem idênticos ao que estava em [.filename]#ada0#, reverta o arquivo [.filename]#/etc/fstab# para montar os sistemas de arquivos em [.filename]#ada0#, e reinicie todo o procedimento novamente. ==== -[source,bash] +[source,shell] .... # gmirror insert gm0 ada0 GEOM_MIRROR: Device gm0: rebuilding provider ada0 @@ -517,7 +517,7 @@ GEOM_MIRROR: Device gm0: rebuilding provider ada0 A sincronização entre os dois discos será iniciada imediatamente. Use `gmirror status` para visualizar o progresso. -[source,bash] +[source,shell] .... # gmirror status Name Status Components @@ -527,7 +527,7 @@ mirror/gm0 DEGRADED ada1 (ACTIVE) Depois de um tempo, a sincronização será concluída. -[source,bash] +[source,shell] .... GEOM_MIRROR: Device gm0: rebuilding provider ada0 finished. # gmirror status @@ -545,7 +545,7 @@ Se o sistema não inicializar mais, as configurações da BIOS podem ter que ser Se a inicialização parar com esta mensagem, algo está errado com o dispositivo espelhado: -[source,bash] +[source,shell] .... Mounting from ufs:/dev/mirror/gm0s1a failed with error 19. @@ -572,7 +572,7 @@ mountroot> Esquecer de carregar o módulo [.filename]#geom_mirror.ko# no arquivo [.filename]#/boot/loader.conf# pode causar este problema. Para consertá-lo, inicialize a partir de uma mídia de instalação do FreeBSD e escolha `Shell` no primeiro prompt. Em seguida, carregue o módulo de espelhamento e monte o dispositivo espelhado: -[source,bash] +[source,shell] .... # gmirror load # mount /dev/mirror/gm0s1a /mnt @@ -589,7 +589,7 @@ Salve o arquivo e reinicie. Outros problemas que causam o `error 19` requerem mais esforço para serem corrigidos. Embora o sistema deva inicializar a partir de [.filename]#ada0#, outro prompt para selecionar um shell aparecerá se o arquivo [.filename]#/etc/fstab# estiver incorreto. Digite `ufs:/dev/ada0s1a` no prompt do carregador de boot e pressione kbd:[Enter]. Desfaça as edições no arquivo [.filename]#/etc/fstab# e monte os sistemas de arquivos a partir do disco original ([.filename]#ada0#) em vez do espelhado. Reinicialize o sistema e tente o procedimento novamente. -[source,bash] +[source,shell] .... Enter full pathname of shell or RETURN for /bin/sh: # cp /etc/fstab.orig /etc/fstab @@ -604,14 +604,14 @@ Para substituir a unidade com falha, desligue o sistema e substitua fisicamente Depois que o computador for ligado novamente, o espelho será executado em um modo "degradado" com apenas uma unidade. O espelho é avisado para esquecer as unidades que não estão conectadas no momento: -[source,bash] +[source,shell] .... # gmirror forget gm0 .... Quaisquer metadados antigos devem ser apagados do disco de substituição usando as instruções em <<geom-mirror-metadata>>. Em seguida, o disco de substituição, [.filename]#ada4# para este exemplo, é inserido no espelho: -[source,bash] +[source,shell] .... # gmirror insert gm0 /dev/ada4 .... @@ -643,28 +643,28 @@ No FreeBSD, o suporte para RAID3 é implementado pela classe GEOMman:graid3[8]. . Primeiro, carregue o módulo do kernel [.filename]#geom_raid3.ko# emitindo um dos seguintes comandos: + -[source,bash] +[source,shell] .... # graid3 load .... + ou: + -[source,bash] +[source,shell] .... # kldload geom_raid3 .... + . Assegure-se de que exista um ponto de montagem adequado. Este comando cria um novo diretório para usar como ponto de montagem: + -[source,bash] +[source,shell] .... # mkdir /multimedia .... + . Determine os nomes dos dispositivos para os discos que serão adicionados à matriz e crie o novo dispositivo RAID3. O dispositivo final listado atuará como o disco de paridade dedicado. Este exemplo usa três unidades ATA não-particionadas: [.filename]#ada1# e [.filename]#ada2# para dados e [.filename]#ada3# para paridade. + -[source,bash] +[source,shell] .... # graid3 label -v gr0 /dev/ada1 /dev/ada2 /dev/ada3 Metadata value stored on /dev/ada1. @@ -675,7 +675,7 @@ Done. + . Particione o dispositivo [.filename]#gr0# recém-criado e coloque um sistema de arquivos UFS: + -[source,bash] +[source,shell] .... # gpart create -s GPT /dev/raid3/gr0 # gpart add -t freebsd-ufs /dev/raid3/gr0 @@ -684,7 +684,7 @@ Done. + Muitos números irão ser exibios na tela e, após algum tempo, o processo será concluído. O volume foi criado e está pronto para ser montado: + -[source,bash] +[source,shell] .... # mount /dev/raid3/gr0p1 /multimedia/ .... @@ -733,7 +733,7 @@ O `graid label` é usado para criar um novo array. A placa-mãe usada neste exem Algum espaço nas unidades será sobrescrito quando elas forem transformadas em um novo array. Faça o backup dos dados existentes primeiro! ==== -[source,bash] +[source,shell] .... # graid label Intel gm0 RAID1 ada0 ada1 GEOM_RAID: Intel-a29ea104: Array Intel-a29ea104 created. @@ -749,7 +749,7 @@ GEOM_RAID: Intel-a29ea104: Provider raid/r0 for volume gm0 created. Uma verificação de status mostra que o novo espelhamento está pronto para uso: -[source,bash] +[source,shell] .... # graid status Name Status Components @@ -761,7 +761,7 @@ O dispositivo de array aparece em [.filename]#/dev/raid/#. O primeiro array é c O menu da BIOS em alguns desses dispositivos pode criar arrays com caracteres especiais em seus nomes. Para evitar problemas com esses caracteres especiais, os arrays recebem nomes numerados simples como [.filename]#r0#. Para mostrar os rótulos reais, como [.filename]#gm0# no exemplo acima, use o man:sysctl[8]: -[source,bash] +[source,shell] .... # sysctl kern.geom.raid.name_format=1 .... @@ -771,7 +771,7 @@ O menu da BIOS em alguns desses dispositivos pode criar arrays com caracteres es Alguns dispositivos de RAID via software suportam mais de um _volume_ em um array. Os volumes funcionam como partições, permitindo que o espaço nas unidades físicas seja dividido e usado de diferentes maneiras. Por exemplo, os dispositivos RAID via software Intel suportam dois volumes. Este exemplo cria um espelho de 40 G para armazenar com segurança o sistema operacional, seguido por um volume de 20 G RAID0 (stripe) para armazenamento temporário rápido: -[source,bash] +[source,shell] .... # graid label -S 40G Intel gm0 RAID1 ada0 ada1 # graid add -S 20G gm0 RAID0 @@ -791,14 +791,14 @@ Sob certas condições específicas, é possível converter uma única unidade e Se a unidade atender a esses requisitos, comece fazendo um backup completo. Em seguida, crie um espelhamento de unidade única com essa unidade: -[source,bash] +[source,shell] .... # graid label Intel gm0 RAID1 ada0 NONE .... Os metadados do man:graid[8] foram gravados no final da unidade no espaço não utilizado. Uma segunda unidade pode agora ser inserida no espelhamento: -[source,bash] +[source,shell] .... # graid insert raid/r0 ada1 .... @@ -812,7 +812,7 @@ As unidades podem ser inseridas em uma matriz como substitutos de unidades que f No array de espelho do exemplo, os dados começam a ser copiados imediatamente para a unidade recém-inserida. Qualquer informação existente na nova unidade será substituída. -[source,bash] +[source,shell] .... # graid insert raid/r0 ada1 GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from NONE to ACTIVE. @@ -826,7 +826,7 @@ GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 rebuild start at 0. Discos individuais podem ser permanentemente removidos de um array e seus metadados apagados: -[source,bash] +[source,shell] .... # graid remove raid/r0 ada1 GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from ACTIVE to OFFLINE. @@ -839,7 +839,7 @@ GEOM_RAID: Intel-a29ea104: Volume gm0 state changed from OPTIMAL to DEGRADED. Um array pode ser interrompido sem remover os metadados das unidades. O array será reiniciado quando o sistema for inicializado. -[source,bash] +[source,shell] .... # graid stop raid/r0 .... @@ -849,7 +849,7 @@ Um array pode ser interrompido sem remover os metadados das unidades. O array se O status do array pode ser verificado a qualquer momento. Depois que um disco foi adicionado ao espelho no exemplo acima, os dados estarão sendo copiados do disco original para o novo disco: -[source,bash] +[source,shell] .... # graid status Name Status Components @@ -859,7 +859,7 @@ raid/r0 DEGRADED ada0 (ACTIVE (ACTIVE)) Alguns tipos de arrays, como `RAID0` ou `CONCAT`, podem não ser mostrados no relatório de status se os discos falharem. Para ver esses arrays com falhas parciais, adicione `-ga`: -[source,bash] +[source,shell] .... # graid status -ga Name Status Components @@ -871,7 +871,7 @@ Intel-e2d07d9a BROKEN ada6 (ACTIVE (ACTIVE)) Arrays são destruídos, excluindo todos os volumes deles. Quando o último volume presente é excluído, o array é interrompido e os metadados são removidos dos discos: -[source,bash] +[source,shell] .... # graid delete raid/r0 .... @@ -886,7 +886,7 @@ Os discos podem conter metadados man:graid[8] inesperados, originados no seu uso . Inicialize o sistema. No menu de inicialização, selecione `2` para o prompt do utilitário de boot. Entre: + -[source,bash] +[source,shell] .... OK set kern.geom.raid.enable=0 OK boot @@ -905,7 +905,7 @@ no arquivo [.filename]#/boot/loader.conf#. + Para remover permanentemente os metadados man:graid[8] do disco afetado, inicialize uma instalação do FreeBSD usando um CD-ROM ou um memory stick e selecione a opção `Shell`. Use o comando `status` para encontrar o nome do array, normalmente `raid/r0`: + -[source,bash] +[source,shell] .... # graid status Name Status Components @@ -915,7 +915,7 @@ raid/r0 OPTIMAL ada0 (ACTIVE (ACTIVE)) + Exclua o volume pelo nome: + -[source,bash] +[source,shell] .... # graid delete raid/r0 .... @@ -939,7 +939,7 @@ Semelhante ao NFS, que é discutido em crossref:network-servers[network-nfs,Netw Antes de exportar o dispositivo, verifique se ele não está montado no momento. Em seguida, inicie o ggated: -[source,bash] +[source,shell] .... # ggated .... @@ -948,7 +948,7 @@ Várias opções estão disponíveis para especificar uma porta de escuta altern Para acessar o dispositivo exportado na máquina cliente, primeiro use o comando `ggatec` para especificar o endereço IP do servidor e o nome do dispositivo exportado. Se bem sucedido, este comando irá exibir um nome de dispositivo `ggate` para montar. Monte esse nome de dispositivo especificado em um ponto de montagem livre. Este exemplo conecta-se à partição [.filename]#/dev/da0s4d# no `192.168.1.1`, em seguida, monta o [.filename]#/dev/ggate0# em [.filename]#/mnt#: -[source,bash] +[source,shell] .... # ggatec create -o rw 192.168.1.1 /dev/da0s4d ggate0 @@ -986,7 +986,7 @@ Os rótulos temporários são destruídos na próxima reinicialização. Esses r Para criar um rótulo permanente para um sistema de arquivos UFS2 sem destruir nenhum dado, emita o seguinte comando: -[source,bash] +[source,shell] .... # tunefs -L home /dev/da3 .... @@ -1005,7 +1005,7 @@ O sistema de arquivos não deve ser montado durante a tentativa de executar o `t Agora o sistema de arquivos pode ser montado: -[source,bash] +[source,shell] .... # mount /home .... @@ -1016,7 +1016,7 @@ Os sistemas de arquivos também podem ser criados com um rótulo padrão usando O seguinte comando pode ser usado para destruir o rótulo: -[source,bash] +[source,shell] .... # glabel destroy home .... @@ -1030,7 +1030,7 @@ Ao marcar permanentemente as partições no disco de inicialização, o sistema Reinicialize o sistema e, no prompt do man:loader[8], pressione kbd:[4] para inicializar no modo de usuário único. Em seguida, insira os seguintes comandos: -[source,bash] +[source,shell] .... # glabel label rootfs /dev/ad0s1a GEOM_LABEL: Label for provider /dev/ad0s1a is label/rootfs @@ -1059,7 +1059,7 @@ O sistema continuará com a inicialização multiusuário. Depois que a iniciali O sistema agora pode ser reinicializado. Se tudo correr bem, ele aparecerá normalmente e o comando `mount` mostrará: -[source,bash] +[source,shell] .... # mount /dev/label/rootfs on / (ufs, local) @@ -1073,7 +1073,7 @@ devfs on /dev (devfs, local) A classe man:glabel[8] suporta um tipo de rótulo para sistemas de arquivos UFS, com base no ID do sistema de arquivos exclusivo `ufsid`. Esses rótulos podem ser encontrados em [.filename]#/dev/ufsid# e são criados automaticamente durante a inicialização do sistema. É possível usar rótulos `ufsid` para montar partições usando o [.filename]#/etc/fstab#. Use o `glabel status` para receber uma lista de sistemas de arquivos e seus rótulos `ufsid` correspondentes: -[source,bash] +[source,shell] .... % glabel status Name Status Components @@ -1116,7 +1116,7 @@ options GEOM_JOURNAL Depois que o módulo é carregado, um journal pode ser criado em um novo sistema de arquivos usando as etapas a seguir. Neste exemplo, [.filename]#da4# é um novo disco SCSI: -[source,bash] +[source,shell] .... # gjournal load # gjournal label /dev/da4 @@ -1126,7 +1126,7 @@ Isto irá carregar o módulo e criar um nó de dispositivo [.filename]#/dev/da4. Um sistema de arquivos UFS pode agora ser criado no dispositivo journaled e depois montado em um ponto de montagem existente: -[source,bash] +[source,shell] .... # newfs -O 2 -J /dev/da4.journal # mount /dev/da4.journal /mnt diff --git a/documentation/content/pt-br/books/handbook/jails/_index.adoc b/documentation/content/pt-br/books/handbook/jails/_index.adoc index 98466f2bce..c7f0b844ea 100644 --- a/documentation/content/pt-br/books/handbook/jails/_index.adoc +++ b/documentation/content/pt-br/books/handbook/jails/_index.adoc @@ -110,7 +110,7 @@ Alguns administradores dividem as jails nos dois seguintes tipos: jails "complet A ferramenta man:bsdinstall[8] pode ser usada para baixar e instalar os binários necessários para uma Jail. Será apresentando a seleção de um mirror, quais distribuições serão instaladas no diretório de destino e algumas configurações básicas da Jail: -[source,bash] +[source,shell] .... # bsdinstall jail /here/is/the/jail .... @@ -124,7 +124,7 @@ Para instalar o userland da mídia de instalação, primeiro crie o diretório r Inicie um shell e defina a variável `DESTDIR`: -[source,bash] +[source,shell] .... # sh # export DESTDIR=/here/is/the/jail @@ -132,7 +132,7 @@ Inicie um shell e defina a variável `DESTDIR`: Monte a mídia de instalação como abordado em man:mdconfig[8] ao usar a ISO de instalação: -[source,bash] +[source,shell] .... # mount -t cd9660 /dev/`mdconfig -f cdimage.iso` /mnt # cd /mnt/usr/freebsd-dist/ @@ -142,14 +142,14 @@ Extraia os binários dos tarballs na mídia de instalação dentro do destino de Para instalar apenas o sistema básico: -[source,bash] +[source,shell] .... # tar -xf /mnt/usr/freebsd-dist/base.txz -C $DESTDIR .... Para instalar tudo, exceto o kernel: -[source,bash] +[source,shell] .... # for set in base ports; do tar -xf /mnt/usr/freebsd-dist/$set.txz -C $DESTDIR ; done .... @@ -159,7 +159,7 @@ Para instalar tudo, exceto o kernel: A página de manual man:jail[8] explica o procedimento para compilar uma jail: -[source,bash] +[source,shell] .... # setenv D /here/is/the/jail # mkdir -p $D <.> @@ -221,7 +221,7 @@ Para obter uma lista completa das opções disponíveis, consulte a página de m man:service[8] pode ser usado para iniciar ou parar uma jail manualmente, se uma entrada para ela existir no arquivo [.filename]#jail.conf#: -[source,bash] +[source,shell] .... # service jail start www # service jail stop www @@ -229,7 +229,7 @@ man:service[8] pode ser usado para iniciar ou parar uma jail manualmente, se uma As jails podem ser desligadas com o man:jexec[8]. Use man:jls[8] para identificar o `JID` da jail e, em seguida, use man:jexec[8] para executar o script de desligamento nessa jail. -[source,bash] +[source,shell] .... # jls JID IP Address Hostname Path @@ -267,7 +267,7 @@ O sistema base do FreeBSD contém um conjunto básico de ferramentas para visual * Apresentar uma lista de jails ativas e seu identificador de jail correspondente (JID), endereço IP, hostname e path. * Se conectar a uma jail em execução, a partir de seu sistema host, e executar um comando dentro da jaijl ou executar tarefas administrativas dentro da própria jail. Isso é especialmente útil quando o usuário `root` deseja desligar de maneira limpa uma jail. O utilitário man:jexec[8] também pode ser usado para iniciar um shell em uma jail para administração; por exemplo: + -[source,bash] +[source,shell] .... # jexec 1 tcsh .... @@ -284,7 +284,7 @@ As jails devem ser atualizadas a partir do sistema operacional do host, pois a t Para atualizar a Jail para o último release patch da versão do FreeBSD que já está em execução, execute os seguintes comandos no host: -[source,bash] +[source,shell] .... # freebsd-update -b /here/is/the/jail fetch # freebsd-update -b /here/is/the/jail install @@ -292,7 +292,7 @@ Para atualizar a Jail para o último release patch da versão do FreeBSD que já Para atualizar a jail para uma versão maior ou menor, primeiro atualize o sistema hospedeiro com descrito em crossref:cutting-edge[freebsdupdate-upgrade,Realizando Upgrades de Versão Principais e Menores]. Uma vez que o hospedeiro esteja atualizado e reiniciado, a jail pode então ser atualizada. Por exemplo, para atualizar de 12.0-RELEASE para 12.1-RELEASE, rode no hospedeiro: -[source,bash] +[source,shell] .... # freebsd-update -b /here/is/the/jail --currently-running 12.0-RELEASE -r 12.1-RELEASE upgrade # freebsd-update -b /here/is/the/jail install @@ -302,7 +302,7 @@ Para atualizar a jail para uma versão maior ou menor, primeiro atualize o siste Então, se foi uma atualização de versão principal, reinstale todos os pacotes instalados e reinicie a jail novamente. Isso é necessário porque a versão ABI muda ao atualizar entre as versões principais do FreeBSD. Pelo host: -[source,bash] +[source,shell] .... # pkg -j myjail upgrade -f # service jail restart myjail @@ -353,7 +353,7 @@ Esta seção descreve as etapas necessárias para criar o template master. . Primeiro, crie uma estrutura de diretório para o sistema de arquivo read-only que conterá os binários do FreeBSD para as jails. Em seguida, altere para o diretório de código-fonte do FreeBSD e instale o sistema de arquivos read-only no template das jails: + -[source,bash] +[source,shell] .... # mkdir /home/j /home/j/mroot # cd /usr/src @@ -362,7 +362,7 @@ Esta seção descreve as etapas necessárias para criar o template master. + . Em seguida, prepare uma Coleção de Ports do FreeBSD para as jails, assim como uma árvore de código fonte do FreeBSD, que são necessários para o mergemaster: + -[source,bash] +[source,shell] .... # cd /home/j/mroot # mkdir usr/ports @@ -372,7 +372,7 @@ Esta seção descreve as etapas necessárias para criar o template master. + . Crie um esqueleto para a parte de read-write do sistema: + -[source,bash] +[source,shell] .... # mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles # mv etc /home/j/skel @@ -384,7 +384,7 @@ Esta seção descreve as etapas necessárias para criar o template master. + . Use o mergemaster para instalar os arquivos de configuração ausentes. Em seguida, remova os diretórios extras criados pelo mergemaster: + -[source,bash] +[source,shell] .... # mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i # cd /home/j/skel @@ -393,7 +393,7 @@ Esta seção descreve as etapas necessárias para criar o template master. + . Agora, faça os links dos sistema de arquivos read-write ao sistema de arquivos read-only. Certifique-se de que os links simbólicos sejam criados nos locais corretos de [.filename]#s/#, pois a criação de diretórios nos locais errados fará com que a instalação falhe. + -[source,bash] +[source,shell] .... # cd /home/j/mroot # mkdir s @@ -462,14 +462,14 @@ jail_www_devfs_enable="YES" A variável ``jail_name_rootdir`` é configurada como [.filename]#/usr/home# em vez de [.filename]#/home# porque o caminho físico de [.filename]#/home# em uma instalação padrão do FreeBSD é [.filename]#/usr/home#. A variável ``jail_name_rootdir`` __não__ deve ser configurada para um caminho que inclua um link simbólico, caso contrário as jails não serão iniciadas. . Crie os pontos de montagem necessários para o sistema de arquivos read-only de cada jail: + -[source,bash] +[source,shell] .... # mkdir /home/j/ns /home/j/mail /home/j/www .... + . Instale o template read-write em cada jail usando package:sysutils/cpdup[]: + -[source,bash] +[source,shell] .... # mkdir /home/js # cpdup /home/j/skel /home/js/ns @@ -479,7 +479,7 @@ A variável ``jail_name_rootdir`` é configurada como [.filename]#/usr/home# em + . Nesta fase, as jails estão compiladas e preparadas para execução. Primeiro, monte os sistemas de arquivos necessários para cada jail e, em seguida, inicie-as: + -[source,bash] +[source,shell] .... # mount -a # service jail start @@ -488,7 +488,7 @@ A variável ``jail_name_rootdir`` é configurada como [.filename]#/usr/home# em As jails devem estar funcionando agora. Para verificar se eles foram iniciadas corretamente, use `jls`. Sua saída deve ser semelhante ao seguinte: -[source,bash] +[source,shell] .... # jls JID IP Address Hostname Path @@ -499,7 +499,7 @@ As jails devem estar funcionando agora. Para verificar se eles foram iniciadas c Neste ponto, deve ser possível entrar em cada jail, adicionar novos usuários ou configurar daemons. A coluna `JID` indica o número de identificação da jail de cada jail em execução. Use o seguinte comando para executar tarefas administrativas na jail cujo JID é `3`: -[source,bash] +[source,shell] .... # jexec 3 tcsh .... @@ -514,7 +514,7 @@ O design dessa configuração fornece uma maneira fácil de atualizar as jails e . O primeiro passo é atualizar o sistema host. Em seguida, crie um novo template temporário read-only em [.filename]#/home/j/mroot2#. + -[source,bash] +[source,shell] .... # mkdir /home/j/mroot2 # cd /usr/src @@ -526,7 +526,7 @@ O design dessa configuração fornece uma maneira fácil de atualizar as jails e + O `installworld` cria alguns diretórios desnecessários, que devem ser removidos: + -[source,bash] +[source,shell] .... # chflags -R 0 var # rm -R etc var root usr/local tmp @@ -534,7 +534,7 @@ O `installworld` cria alguns diretórios desnecessários, que devem ser removido + . Recrie os links simbólicos read-write para o sistema de arquivos master: + -[source,bash] +[source,shell] .... # ln -s s/etc etc # ln -s s/root root @@ -547,14 +547,14 @@ O `installworld` cria alguns diretórios desnecessários, que devem ser removido + . Em seguida, pare as jails: + -[source,bash] +[source,shell] .... # service jail stop .... + . Desmonte os sistemas de arquivos originais, pois os sistemas read-write estão conectados ao sistema read-only ([.filename]#/s#): + -[source,bash] +[source,shell] .... # umount /home/j/ns/s # umount /home/j/ns @@ -566,7 +566,7 @@ O `installworld` cria alguns diretórios desnecessários, que devem ser removido + . Mova o antigo sistema de arquivos read-only e substitua-o pelo novo. Isso servirá como backup e arquivamento do antigo sistema de arquivos read-only se algo der errado. A convenção de nomenclatura usada aqui corresponde a quando um novo sistema de arquivos read-only foi criado. Mova a Coleção de Ports do FreeBSD original para o novo sistema de arquivos para economizar espaço e inodes: + -[source,bash] +[source,shell] .... # cd /home/j # mv mroot mroot.20060601 @@ -576,7 +576,7 @@ O `installworld` cria alguns diretórios desnecessários, que devem ser removido + . Neste ponto, o novo template read-only está pronto, então a única tarefa restante é remontar os sistemas de arquivos e iniciar as jails: + -[source,bash] +[source,shell] .... # mount -a # service jail start @@ -610,7 +610,7 @@ cloned_interfaces="lo1" + A segunda interface de loopback `lo1` será criada quando o sistema for iniciado. Também pode ser criado manualmente sem reiniciar: + -[source,bash] +[source,shell] .... # service netif cloneup Created clone interfaces: lo1. @@ -623,7 +623,7 @@ Dentro de uma jail, o acesso ao endereço de loopback `127.0.0.1` é redireciona Dê a cada jail um endereço de loopback exclusivo no bloco de rede `127.0.0.0/8`. . Instale o package:sysutils/ezjail[]: + -[source,bash] +[source,shell] .... # cd /usr/ports/sysutils/ezjail # make install clean @@ -638,7 +638,7 @@ ezjail_enable="YES" + . O serviço será iniciado automaticamente na inicialização do sistema. Ele pode ser iniciado imediatamente na sessão atual: + -[source,bash] +[source,shell] .... # service ezjail start .... @@ -658,7 +658,7 @@ Em ambos os exemplos, `-p` faz com que a árvore de ports seja baixada com o man + Para uma basejail baseada na mesma versão FreeBSD RELEASE do computador host, use o comando `install`. Por exemplo, em um computador host executando o FreeBSD 10-STABLE, a versão mais recente do FreeBSD -10 será instalada na jail: + -[source,bash] +[source,shell] .... # ezjail-admin install -p .... @@ -669,7 +669,7 @@ A basejail pode ser instalada a partir de binários criados pelo `buildworld` no + Neste exemplo, o FreeBSD 10-STABLE foi compilado a partir do código fonte. Os diretórios da jail são criados. E então `installworld` é executado, instalando o [.filename]#/usr/obj# do host na basejail. + -[source,bash] +[source,shell] .... # ezjail-admin update -i -p .... @@ -708,7 +708,7 @@ Novas jails são criadas com o comando `ezjail-admin create`. Nestes exemplos, a . Crie a jail, especificando um nome e as interfaces de loopback e de rede a serem usadas, junto com seus endereços IP. Neste exemplo, a jail é denominada `dnsjail`. + -[source,bash] +[source,shell] .... ezjail-admin create dnsjail 'lo1|127.0.1.1,em0|192.168.1.50' .... @@ -730,14 +730,14 @@ Não habilite raw network sockets, a menos que os serviços na jail realmente pr + . Inicie a jail: + -[source,bash] +[source,shell] .... # ezjail-admin start dnsjail .... + . Use um console na jail: + -[source,bash] +[source,shell] .... # ezjail-admin console dnsjail .... @@ -752,7 +752,7 @@ A jail está funcionando e configurações adicionais podem ser realizadas. Conf + Conecte-se à jail e configure a senha do usuário `root`: + -[source,bash] +[source,shell] .... # ezjail-admin console dnsjail # passwd @@ -793,14 +793,14 @@ Como a cópia do userland da basejail é compartilhada pelas outras jails, a atu Para compilar o world a partir do código fonte no host, e depois instala-lo na basejail, use: -[source,bash] +[source,shell] .... # ezjail-admin update -b .... Se o world já estiver sido compilado no host, instale-o no basejail com: -[source,bash] +[source,shell] .... # ezjail-admin update -i .... @@ -809,14 +809,14 @@ Atualizações binárias usam o man:freebsd-update[8]. Essas atualizações têm Atualize a basejail para a última versão de patchs da versão do FreeBSD no host. Por exemplo, atualizando de RELEASE-p1 para RELEASE-p2. -[source,bash] +[source,shell] .... # ezjail-admin update -u .... Para atualizar a basejail para uma nova versão, primeiro atualize o sistema host como descrito em crossref:cutting-edge[freebsdupdate-upgrade,Realizando Upgrades de Versão Principais e Menores]. Depois que o host tiver sido atualizado e reinicializado, a basejail poderá ser atualizada. O man:freebsd-update[8] não tem como determinar qual versão está atualmente instalada na basejail, então a versão original deve ser especificada. Use o man:file[1] para determinar a versão original na basejail: -[source,bash] +[source,shell] .... # file /usr/jails/basejail/bin/sh /usr/jails/basejail/bin/sh: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 9.3, stripped @@ -824,7 +824,7 @@ Para atualizar a basejail para uma nova versão, primeiro atualize o sistema hos Agora use essas informações para executar a atualização de `9.3-RELEASE` para a versão atual do sistema host: -[source,bash] +[source,shell] .... # ezjail-admin update -U -s 9.3-RELEASE .... @@ -839,7 +839,7 @@ Como usar o man:mergemaster[8] depende do propósito e da confiabilidade de uma ==== Exclua o link do [.filename]#/usr/src# da jail para a basejail e crie um novo [.filename]#/usr/src# na jail como um ponto de montagem. Monte o [.filename]#/usr/src# do computador host como read-only no novo ponto de montagem [.filename]#/usr/src# da jail: -[source,bash] +[source,shell] .... # rm /usr/jails/jailname/usr/src # mkdir /usr/jails/jailname/usr/src @@ -848,14 +848,14 @@ Exclua o link do [.filename]#/usr/src# da jail para a basejail e crie um novo [. Execute um console na jail: -[source,bash] +[source,shell] .... # ezjail-admin console jailname .... Dentro da jail, execute `mergemaster`. Em seguida, saia do console da jail: -[source,bash] +[source,shell] .... # cd /usr/src # mergemaster -U @@ -864,7 +864,7 @@ Dentro da jail, execute `mergemaster`. Em seguida, saia do console da jail: Finalmente, desmonte o [.filename]#/usr/src# da jail: -[source,bash] +[source,shell] .... # umount /usr/jails/jailname/usr/src .... @@ -877,7 +877,7 @@ Finalmente, desmonte o [.filename]#/usr/src# da jail: ==== Se os usuários e serviços em uma jail forem confiáveis, o man:mergemaster[8] pode ser executado a partir do host: -[source,bash] +[source,shell] .... # mergemaster -U -D /usr/jails/jailname .... @@ -889,7 +889,7 @@ Se os usuários e serviços em uma jail forem confiáveis, o man:mergemaster[8] Após uma atualização de versão principal, é recomendado pelo package:sysutils/ezjail[] garantir que o `pkg` seja da versão correta. Portanto, digite: -[source,bash] +[source,shell] .... # pkg-static upgrade -f pkg .... @@ -904,7 +904,7 @@ A árvore de ports na basejail é compartilhada pelas outras jails. A atualizaç A árvore de ports da basejail é atualizada com o man:portsnap[8]: -[source,bash] +[source,shell] .... # ezjail-admin update -P .... @@ -917,7 +917,7 @@ A árvore de ports da basejail é atualizada com o man:portsnap[8]: O ezjail inicia automaticamente as jails quando o computador é iniciado. As jails podem ser manualmente paradas e reiniciadas com `stop` e `start`: -[source,bash] +[source,shell] .... # ezjail-admin stop sambajail Stopping jails: sambajail. @@ -925,7 +925,7 @@ Stopping jails: sambajail. Por padrão, as jails são iniciadas automaticamente quando o computador host é iniciado. A inicialização automática pode ser desativada com `config`: -[source,bash] +[source,shell] .... # ezjail-admin config -r norun seldomjail .... @@ -934,7 +934,7 @@ Isso entrará em vigor na próxima vez em que o computador host for iniciado. Um A ativação do início automático é muito semelhante: -[source,bash] +[source,shell] .... # ezjail-admin config -r run oftenjail .... @@ -948,7 +948,7 @@ O archive pode ser copiado em outro lugar como um backup, ou uma jail existente Pare e arquive uma jail chamada `wwwserver`: -[source,bash] +[source,shell] .... # ezjail-admin stop wwwserver Stopping jails: wwwserver. @@ -959,7 +959,7 @@ wwwserver-201407271153.13.tar.gz Crie uma nova jail chamada `wwwserver-clone` do archive criado na etapa anterior. Use a interface [.filename]#em1# e atribua um novo endereço IP para evitar conflito com a original: -[source,bash] +[source,shell] .... # ezjail-admin create -a /usr/jails/ezjail_archives/wwwserver-201407271153.13.tar.gz wwwserver-clone 'lo1|127.0.3.1,em1|192.168.1.51' .... @@ -987,7 +987,7 @@ cloned_interfaces="lo1" Imediatamente crie a nova interface de loopback: -[source,bash] +[source,shell] .... # service netif cloneup Created clone interfaces: lo1. @@ -995,14 +995,14 @@ Created clone interfaces: lo1. Crie a jail: -[source,bash] +[source,shell] .... # ezjail-admin create dns1 'lo1|127.0.2.1,re0|192.168.1.240' .... Inicie a jail, conecte-se a ao seu console e realize algumas configurações básicas: -[source,bash] +[source,shell] .... # ezjail-admin start dns1 # ezjail-admin console dns1 @@ -1025,7 +1025,7 @@ nameserver 10.0.0.61 Ainda usando o console da jail, instale o package:dns/bind99[]. -[source,bash] +[source,shell] .... # make -C /usr/ports/dns/bind99 install clean .... @@ -1090,7 +1090,7 @@ named_enable="YES" Inicie e teste o servidor de nomes: -[source,bash] +[source,shell] .... # service named start wrote key file "/usr/local/etc/namedb/rndc.key" @@ -1100,14 +1100,14 @@ Starting named. Uma resposta que inclui -[source,bash] +[source,shell] .... ;; Got answer; .... mostra que o novo servidor DNS está funcionando. Um longo delay seguido por uma resposta incluindo -[source,bash] +[source,shell] .... ;; connection timed out; no servers could be reached .... diff --git a/documentation/content/pt-br/books/handbook/kernelconfig/_index.adoc b/documentation/content/pt-br/books/handbook/kernelconfig/_index.adoc index 1fcf0aee28..1b2611953d 100644 --- a/documentation/content/pt-br/books/handbook/kernelconfig/_index.adoc +++ b/documentation/content/pt-br/books/handbook/kernelconfig/_index.adoc @@ -80,7 +80,7 @@ Antes de criar um kernel personalizado, considere a razão para isso. Se houver Os módulos do kernel existem em [.filename]#/boot/kernel# e podem ser dinamicamente carregados no kernel em execução usando o man:kldload[8]. A maioria dos drivers do kernel tem um módulo carregável e uma página de manual. Por exemplo, o driver Ethernet sem fio man:ath[4] tem as seguintes informações em sua página de manual: -[source,bash] +[source,shell] .... Como alternativa, para carregar o driver como um módulo no momento da inicialização, coloque o a seguinte linha no loader.conf(5): @@ -103,7 +103,7 @@ Algumas versões do Microsoft (TM)Windows(TM) têm um ícone System que pode ser Se o FreeBSD for o único sistema operacional instalado, use o man:dmesg[8] para determinar o hardware que foi encontrado e listado durante a verificação de inicialização. A maioria dos drivers de dispositivos no FreeBSD tem uma página de manual que lista o hardware suportado pelo driver. Por exemplo, as seguintes linhas indicam que o driver man:psm[4] encontrou um mouse: -[source,bash] +[source,shell] .... psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: [GIANT-LOCKED] @@ -117,7 +117,7 @@ Se a saída do `dmesg` não exibir os resultados da saída da verificação de i Outra ferramenta para encontrar hardware é o man:pciconf[8], que fornece uma saída mais detalhada. Por exemplo: -[source,bash] +[source,shell] .... % pciconf -lv ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00 @@ -131,7 +131,7 @@ Esta saída mostra que o driver [.filename]#ath# localizou um dispositivo Ethern O sinalizador `-k` do man:man[1] pode ser usado para fornecer informações úteis. Por exemplo, ele pode ser usado para exibir uma lista de páginas de manual que contêm uma marca ou um nome de dispositivo específico: -[source,bash] +[source,shell] .... # man -k Atheros ath(4) - Atheros IEEE 802.11 wireless network driver @@ -151,7 +151,7 @@ Depois que o código-fonte for instalado, revise o conteúdo do [.filename]#/usr Não faça edições no [.filename]#GENERIC#. Em vez disso, copie o arquivo para um nome diferente e faça edições na cópia. A convenção é usar um nome do host com todas as letras maiúsculas. Ao manter várias máquinas FreeBSD com hardware diferente, é uma boa idéia nomeá-lo com o nome do host da máquina. Este exemplo cria uma cópia, denominada [.filename]#MYKERNEL#, do arquivo de configuração [.filename]#GENERIC# para a arquitetura `amd64`: -[source,bash] +[source,shell] .... # cd /usr/src/sys/amd64/conf # cp GENERIC MYKERNEL @@ -176,7 +176,7 @@ Quando terminar de personalizar o arquivo de configuração do kernel, salve uma Como alternativa, mantenha o arquivo de configuração do kernel em outro lugar e crie um link simbólico para o arquivo: -[source,bash] +[source,shell] .... # cd /usr/src/sys/amd64/conf # mkdir /root/kernels @@ -205,7 +205,7 @@ Usando este método, o arquivo de configuração local expressa as diferenças l ==== Para compilar um arquivo que contém todas as opções disponíveis, execute o seguinte comando como `root`: -[source,bash] +[source,shell] .... # cd /usr/src/sys/arch/conf && make LINT .... @@ -223,21 +223,21 @@ Depois que as edições no arquivo de configuração personalizada forem salvas, . Mude para este diretório: + -[source,bash] +[source,shell] .... # cd /usr/src .... + . Compile o novo kernel especificando o nome do arquivo de configuração do kernel personalizado: + -[source,bash] +[source,shell] .... # make buildkernel KERNCONF=MYKERNEL .... + . Instale o novo kernel associado ao arquivo de configuração do kernel especificado. Este comando irá copiar o novo kernel para [.filename]#/boot/kernel/kernel# e salvar o kernel antigo para [.filename]#/boot/kernel.old/kernel#: + -[source,bash] +[source,shell] .... # make installkernel KERNCONF=MYKERNEL .... @@ -271,7 +271,7 @@ Existem quatro categorias de problemas que podem ocorrer ao criar um kernel pers falhas na `config`:: Se o `config` falhar, ele imprimirá o número da linha que está incorreta. Como exemplo, para a seguinte mensagem, certifique-se de que a linha 17 seja digitada corretamente, comparando-a com [.filename]#GENERIC# ou [.filename]#NOTES#: + -[source,bash] +[source,shell] .... config: line 17: syntax error .... @@ -289,7 +289,7 @@ Após inicializar com um kernel correto, verifique o arquivo de configuração e ==== Ao solucionar problemas de um kernel, certifique-se de manter uma cópia do [.filename]#GENERIC#, ou algum outro kernel que funcione, como um nome diferente que não será apagado na próxima compilação. Isto é importante porque toda vez que um novo kernel é instalado, o [.filename]#kernel.old# é sobrescrito com o último kernel instalado, que pode ou não ser inicializável. Assim que possível, mova o kernel funcional renomeando o diretório que contém o kernel correto: -[source,bash] +[source,shell] .... # mv /boot/kernel /boot/kernel.bad # mv /boot/kernel.good /boot/kernel diff --git a/documentation/content/pt-br/books/handbook/l10n/_index.adoc b/documentation/content/pt-br/books/handbook/l10n/_index.adoc index 15f470ee55..ba806b0686 100644 --- a/documentation/content/pt-br/books/handbook/l10n/_index.adoc +++ b/documentation/content/pt-br/books/handbook/l10n/_index.adoc @@ -95,14 +95,14 @@ O _LanguageCode_ e o _CountryCode_ são usados para determinar o país e a varia Uma lista completa de localidades disponíveis pode ser encontrada digitando: -[source,bash] +[source,shell] .... % locale -a | more .... Para determinar a configuração atual de localidade: -[source,bash] +[source,shell] .... % locale .... @@ -185,7 +185,7 @@ Veja o man:login.conf[5] para mais detalhes sobre estas variáveis. Observe que Sempre que [.filename]#/etc/login.conf# for editado, lembre-se de executar o seguinte comando para atualizar o banco de dados de recursos: -[source,bash] +[source,shell] .... # cap_mkdb /etc/login.conf .... @@ -212,28 +212,28 @@ Se todos os novos usuários usarem o mesmo idioma, configure `defaultclass=_lang Para substituir essa configuração ao criar um usuário, insira a localidade necessária neste prompt: -[source,bash] +[source,shell] .... Enter login class: default []: .... ou especifique a localidade ao executar o `adduser`: -[source,bash] +[source,shell] .... # adduser -class language .... Se o `pw` for usado para adicionar novos usuários, especifique a localidade da seguinte forma: -[source,bash] +[source,shell] .... # pw useradd user_name -L language .... Para alterar a classe de login de um usuário existente, `chpass` pode ser usado. Execute-o como superusuário e forneça o nome do usuário para edição como argumento. -[source,bash] +[source,shell] .... # chpass user_name .... diff --git a/documentation/content/pt-br/books/handbook/linuxemu/_index.adoc b/documentation/content/pt-br/books/handbook/linuxemu/_index.adoc index 707cb07dae..3a274c624d 100644 --- a/documentation/content/pt-br/books/handbook/linuxemu/_index.adoc +++ b/documentation/content/pt-br/books/handbook/linuxemu/_index.adoc @@ -75,21 +75,21 @@ Por padrão, as bibliotecas do Linux(TM) não estão instaladas e a compatibilid Antes de tentar compilar o port, carregue o módulo de kernel Linux(TM), caso contrário a compilação irá falhar: -[source,bash] +[source,shell] .... # kldload linux .... Para compatibilidade com 64 bits: -[source,bash] +[source,shell] .... # kldload linux64 .... Para verificar se o módulo está carregado: -[source,bash] +[source,shell] .... % kldstat Id Refs Address Size Name @@ -99,7 +99,7 @@ Para verificar se o módulo está carregado: O pacote ou port package:emulators/linux_base-c7[] é a maneira mais fácil de instalar um conjunto básico de bibliotecas e binários do Linux(TM) em um sistema FreeBSD. Para instalar o port: -[source,bash] +[source,shell] .... # pkg install emulators/linux_base-c7 .... @@ -122,7 +122,7 @@ Se um aplicativo Linux(TM) reclamar sobre a falta de bibliotecas compartilhadas A partir de um sistema Linux(TM), o `ldd` pode ser usado para determinar quais bibliotecas compartilhadas o aplicativo precisa. Por exemplo, para verificar quais bibliotecas compartilhadas o `linuxdoom` precisa, execute este comando a partir de um sistema Linux(TM) que tenha o Doom instalado: -[source,bash] +[source,shell] .... % ldd linuxdoom libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 @@ -132,7 +132,7 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 Então, copie todos os arquivos listados na última coluna da saída do comando no sistema Linux(TM) para o diretório [.filename]#/compat/linux# no sistema FreeBSD. Depois de copiados, crie links simbólicos para os nomes na primeira coluna. Este exemplo irá resultar nos seguintes arquivos no sistema FreeBSD: -[source,bash] +[source,shell] .... /compat/linux/usr/X11/lib/libXt.so.3.1.0 /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 @@ -146,7 +146,7 @@ Se uma biblioteca compartilhada Linux(TM) já existir com um número de revisão Por exemplo, essas bibliotecas já existem no sistema FreeBSD: -[source,bash] +[source,shell] .... /compat/linux/lib/libc.so.4.6.27 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27 @@ -154,14 +154,14 @@ Por exemplo, essas bibliotecas já existem no sistema FreeBSD: e o `ldd` indica que um binário requer uma versão posterior: -[source,bash] +[source,shell] .... libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29 .... Como a biblioteca existente tem apenas uma ou duas versões desatualizadas no último dígito, o programa ainda deve funcionar com a versão um pouco mais antiga. No entanto, é seguro substituir o [.filename]#libc.so# existente pela versão mais nova: -[source,bash] +[source,shell] .... /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29 @@ -173,7 +173,7 @@ Geralmente, será necessário procurar as bibliotecas compartilhadas que os bin Os binários ELF requerem por vezes um passo extra. Quando um binário ELF sem marca for executado, ele gerará uma mensagem de erro: -[source,bash] +[source,shell] .... % ./my-linux-elf-binary ELF binary type not known @@ -182,7 +182,7 @@ Abort Para ajudar o kernel do FreeBSD a distinguir entre um binário do FreeBSD ELF e um binário Linux(TM), use man:brandelf[1]: -[source,bash] +[source,shell] .... % brandelf -t Linux my-linux-elf-binary .... @@ -193,7 +193,7 @@ Como o conjunto de ferramentas GNU coloca as informações de branding apropriad Para instalar um aplicativo baseado em Linux(TM)RPM, primeiro instale o pacote ou o port package:archivers/rpm4[]. Uma vez instalado, o usuário `root` pode usar este comando para instalar um [.filename]#.rpm#: -[source,bash] +[source,shell] .... # cd /compat/linux # rpm2cpio < /path/to/linux.archive.rpm | cpio -id @@ -205,7 +205,7 @@ Se necessário, use o `brandelf` nos binários ELF instalados . Observe que isso Se o DNS não funcionar ou este erro aparecer: -[source,bash] +[source,shell] .... resolv+: "bind" is an invalid keyword resolv+: "hosts" is an invalid keyword @@ -240,7 +240,7 @@ Para o suporte ao Linux(TM)ABI, o FreeBSD vê o número mágico como um binário Para que os binários Linux(TM) funcionem, eles devem ser _marcados_ como tipo `Linux` usando o comando man:brandelf[1]: -[source,bash] +[source,shell] .... # brandelf -t Linux file .... diff --git a/documentation/content/pt-br/books/handbook/mac/_index.adoc b/documentation/content/pt-br/books/handbook/mac/_index.adoc index bc480f2f8b..c21dc60445 100644 --- a/documentation/content/pt-br/books/handbook/mac/_index.adoc +++ b/documentation/content/pt-br/books/handbook/mac/_index.adoc @@ -113,7 +113,7 @@ Usar uma política de rótulos múltiplos em uma partição e estabelecer um mod O comando a seguir definirá a flag `multilabel` no sistema de arquivos UFS especificado . Isso só pode ser feito no modo de usuário único e não é um requisito para o sistema de arquivos de swap: -[source,bash] +[source,shell] .... # tunefs -l enable / .... @@ -131,7 +131,7 @@ Praticamente todos os aspectos da configuração do módulo de política de rót Toda a configuração pode ser feita usando `setfmac`, que é usado para definir rótulos MAC em objetos do sistema, e `setpmac`, que é usado para definir os rótulos em sujeitos do sistema. Por exemplo, para definir o rótulo MAC`biba` como `high` em [.filename]#test#: -[source,bash] +[source,shell] .... # setfmac biba/high test .... @@ -140,7 +140,7 @@ Se a configuração for bem sucedida, o prompt será retornado sem erro. Um erro O administrador do sistema pode usar `setpmac` para substituir as configurações do módulo de política, atribuindo um rótulo diferente a chamada do processo: -[source,bash] +[source,shell] .... # setfmac biba/high test Permission denied @@ -223,7 +223,7 @@ Os rótulos podem ser definidos em interfaces de rede para ajudar a controlar o Ao definir o rótulo MAC em interfaces de rede, `maclabel` pode ser passado para o `ifconfig`: -[source,bash] +[source,shell] .... # ifconfig bge0 maclabel biba/equal .... @@ -302,7 +302,7 @@ A lista de regras pode ser inserida usando o man:ugidfw[8] que possui uma sintax Depois que o módulo man:mac_bsdextended[4] tiver sido carregado, o seguinte comando poderá ser usado para listar a configuração atual da regra: -[source,bash] +[source,shell] .... # ugidfw list 0 slots, 0 rules @@ -310,14 +310,14 @@ Depois que o módulo man:mac_bsdextended[4] tiver sido carregado, o seguinte com Por padrão, nenhuma regra é definida e tudo está completamente acessível. Para criar uma regra que bloqueia todo o acesso dos usuários, mas que não afeta o ` root `: -[source,bash] +[source,shell] .... # ugidfw add subject not uid root new object not uid root mode n .... Embora essa regra seja simples de implementar, é uma idéia muito ruim, pois impede que todos os usuários emitam comandos. Um exemplo mais realista bloqueia todo o acesso do `user1`, incluindo listagens de diretórios, ao diretório inicial do usuário `_user2_` : -[source,bash] +[source,shell] .... # ugidfw set 2 subject uid user1 object uid user2 mode n # ugidfw set 3 subject uid user1 object gid user2 mode n @@ -369,7 +369,7 @@ Uma vez carregado, este módulo habilita a política MAC em todos os sockets. Os Por padrão, as portas abaixo de 1024 só podem ser usadas por processos privilegiados que são executados como `root`. Para que o man:mac_portacl[4] permita que processos não privilegiados se vinculem a portas abaixo de 1024, defina os seguintes ajustes da seguinte forma: -[source,bash] +[source,shell] .... # sysctl security.mac.portacl.port_high=1023 # sysctl net.inet.ip.portrange.reservedlow=0 @@ -378,21 +378,21 @@ Por padrão, as portas abaixo de 1024 só podem ser usadas por processos privile Para evitar que o usuário `root` seja afetado por esta política, configure `security.mac.portacl.suser_exempt` para um valor diferente de zero. -[source,bash] +[source,shell] .... # sysctl security.mac.portacl.suser_exempt=1 .... Para permitir que o usuário `www` com UID 80 seja vinculado à porta 80 sem precisar do privilégio `root`: -[source,bash] +[source,shell] .... # sysctl security.mac.portacl.rules=uid:80:tcp:80 .... Este próximo exemplo permite que o usuário com o UID de 1001 se vincule às portas TCP 110 (POP3) e 995 (POP3): -[source,bash] +[source,shell] .... # sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995 .... @@ -414,21 +414,21 @@ Quando essa política esta ativada, os usuários só poderão ver seus processos Este exemplo adiciona o `top` ao conjunto de rótulos dos usuários na classe `insecure`. Todos os processos gerados por usuários na classe `insecure` permanecerão no rótulo `partition/13`. -[source,bash] +[source,shell] .... # setpmac partition/13 top .... Este comando exibe o rótulo da partição e a lista de processos: -[source,bash] +[source,shell] .... # ps Zax .... Esse comando exibe o rótulo da partição de processo de outro usuário e os processos atualmente em execução desse usuário: -[source,bash] +[source,shell] .... # ps -ZU trhodes .... @@ -471,14 +471,14 @@ Os seguintes ajustes `sysctl` estão disponíveis: Para manipular os rótulos MLS, use man:setfmac[8]. Para atribuir um rótulo a um objeto: -[source,bash] +[source,shell] .... # setfmac mls/5 test .... Para obter o rótulo MLS para o arquivo [.filename]#test#: -[source,bash] +[source,shell] .... # getfmac test .... @@ -525,7 +525,7 @@ Os seguintes ajustes podem ser usados para manipular a política Biba: Para acessar a configuração de política Biba em objetos do sistema, use `setfmac` e `getfmac`: -[source,bash] +[source,shell] .... # setfmac biba/low test # getfmac test @@ -555,7 +555,7 @@ Essa política se baseia na rotulagem onipresente de todos os objetos do sistema Como as políticas Biba e MLS, `setfmac` e `setpmac` são usadas para colocar rótulos nos objetos do sistema: -[source,bash] +[source,shell] .... # setfmac /usr/home/trhodes lomac/high[low] # getfmac /usr/home/trhodes lomac/high[low] @@ -642,7 +642,7 @@ Em seguida, adicione a seguinte linha a seção de classe de usuário padrão: Salve as edições e rode o seguinte comando para reconstruir o banco de dados: -[source,bash] +[source,shell] .... # cap_mkdb /etc/login.conf .... @@ -651,14 +651,14 @@ Salve as edições e rode o seguinte comando para reconstruir o banco de dados: Configure o usuário `root` para a classe padrão usando: -[source,bash] +[source,shell] .... # pw usermod root -L default .... Todas as contas de usuário que não são `root` agora exigirão uma classe de login. A classe de login é necessária, caso contrário, os usuários terão acesso recusado aos comandos comuns. O seguinte script `sh` deve resolver: -[source,bash] +[source,shell] .... # for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \ /etc/passwd`; do pw usermod $x -L default; done; @@ -666,7 +666,7 @@ Todas as contas de usuário que não são `root` agora exigirão uma classe de l Em seguida, altere as contas `nagios` e `www` para a classe insegura: -[source,bash] +[source,shell] .... # pw usermod nagios -L insecure # pw usermod www -L insecure @@ -709,7 +709,7 @@ Essa política impõe segurança ao definir restrições no fluxo de informaçõ Este arquivo será lido depois da execução do `setfsmac` em cada sistema de arquivos. Este exemplo define a política no sistema de arquivos raiz: -[source,bash] +[source,shell] .... # setfsmac -ef /etc/policy.contexts / .... @@ -748,7 +748,7 @@ Primeiro, certifique-se de que o servidor Web e o Nagios não iniciarão na inic Se tudo parecer bem, o Nagios, o Apache e o Sendmail agora poderão ser iniciados: -[source,bash] +[source,shell] .... # cd /etc/mail && make stop && \ setpmac biba/equal make start && setpmac biba/10\(10-10\) apachectl start && \ @@ -761,7 +761,7 @@ Verifique novamente para garantir que tudo esteja funcionando corretamente. Caso ==== O usuário `root` ainda pode alterar a aplicação de segurança e editar seus arquivos de configuração. O comando a seguir permitirá a degradação da política de segurança para um nível inferior para um shell recém executado: -[source,bash] +[source,shell] .... # setpmac biba/10 csh .... diff --git a/documentation/content/pt-br/books/handbook/mail/_index.adoc b/documentation/content/pt-br/books/handbook/mail/_index.adoc index 1efcc62540..8d8db0f0ec 100644 --- a/documentation/content/pt-br/books/handbook/mail/_index.adoc +++ b/documentation/content/pt-br/books/handbook/mail/_index.adoc @@ -102,7 +102,7 @@ Além de mapear nomes de hosts para endereços de IP, o DNS é responsável por + Para visualizar os registros MX de um domínio, especifique o tipo de registro. Consulte man:host[1], para mais detalhes sobre este comando: + -[source,bash] +[source,shell] .... % host -t mx FreeBSD.org FreeBSD.org mail is handled by 10 mx1.FreeBSD.org @@ -146,7 +146,7 @@ Para configurar o arquivo de acesso, use o formato mostrado no exemplo para adic + Sempre que este arquivo for atualizado, atualize seu banco de dados e reinicie o Sendmail: + -[source,bash] +[source,shell] .... # makemap hash /etc/mail/access < /etc/mail/access # service sendmail restart @@ -188,7 +188,7 @@ postmaster@example.com postmaster@noc.example.net + Este arquivo é processado pela primeira entrada que for correspondida. Quando um endereço de email corresponde ao endereço à esquerda, ele é mapeado para a caixa de correio local listada à direita. O formato da primeira entrada neste exemplo mapeia um endereço de email específico para uma caixa de correio local, enquanto o formato da segunda entrada mapeia um endereço de email específico para uma caixa de correio remota. Por fim, qualquer endereço de email de `example.com` que não correspondeu a nenhuma das entradas anteriores corresponderá ao último mapeamento e será enviado para a caixa de correio local `joe`. Ao criar entradas personalizadas, use este formato e adicione-as ao [.filename]#/etc/mail/virtusertable#. Sempre que este arquivo for editado, atualize seu banco de dados e reinicie o Sendmail: + -[source,bash] +[source,shell] .... # makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable # service sendmail restart @@ -252,7 +252,7 @@ Mais informações sobre as opções de inicialização do Sendmail estão dispo Quando um novo MTA é instalado usando a Coleção de Ports, seu script de inicialização também é instalado e as instruções de inicialização são mencionadas em sua mensagem de pacote. Antes de iniciar o novo MTA, pare os processos do Sendmail em execução. Este exemplo interrompe todos esses serviços e em seguida, inicia o serviço Postfix: -[source,bash] +[source,shell] .... # service sendmail stop # service postfix start @@ -432,7 +432,7 @@ Qualquer um dos itens acima permitirá que o correio seja recebido diretamente n Tente isto: -[source,bash] +[source,shell] .... # hostname example.FreeBSD.org @@ -444,7 +444,7 @@ Neste exemplo, as mensagens enviadas diretamente para mailto:yourlogin@exemplo.F Para este exemplo: -[source,bash] +[source,shell] .... # host example.FreeBSD.org example.FreeBSD.org has address 204.216.27.XX @@ -516,7 +516,7 @@ Além disso, um acordo típico de serviço de acesso à Internet pode proibir a A maneira mais fácil de atender a essas necessidades é instalar o port package:mail/ssmtp[]: -[source,bash] +[source,shell] .... # cd /usr/ports/mail/ssmtp # make install replace clean @@ -622,7 +622,7 @@ saslauthd_enable="YES" + Finalmente, inicie o daemon saslauthd: + -[source,bash] +[source,shell] .... # service saslauthd start .... @@ -639,7 +639,7 @@ SENDMAIL_LDADD=/usr/local/lib/libsasl2.so Essas linhas fornecem ao Sendmail as opções de configuração apropriadas para vincular ao package:cyrus-sasl2[] em tempo de compilação. Certifique-se de que o package:cyrus-sasl2[] tenha sido instalado antes de recompilar o Sendmail. . Recompile o Sendmail executando os seguintes comandos: + -[source,bash] +[source,shell] .... # cd /usr/src/lib/libsmutil # make cleandir && make obj && make @@ -681,14 +681,14 @@ Embora o `mail` não suporte nativamente a interação com os servidores POP ou Para enviar e receber email, execute `mail`: -[source,bash] +[source,shell] .... % mail .... O conteúdo da caixa de correio do usuário em [.filename]#/var/mail# é lido automaticamente pelo `mail`. Se a caixa de correio estiver vazia, o utilitário sairá com uma mensagem indicando que nenhum email foi encontrado. Se o email existir, a interface do aplicativo será iniciada e uma lista de mensagens será exibida. As mensagens são numeradas automaticamente, como pode ser visto no exemplo a seguir: -[source,bash] +[source,shell] .... Mail version 8.1 6/6/93. Type ? for help. "/var/mail/marcs": 3 messages 3 new @@ -699,7 +699,7 @@ Mail version 8.1 6/6/93. Type ? for help. Agora as mensagens podem ser lidas digitando kbd:[t] seguido pelo número da mensagem. Este exemplo lê o primeiro email: -[source,bash] +[source,shell] .... & t 1 Message 1: @@ -718,7 +718,7 @@ Como visto neste exemplo, a mensagem será exibida com cabeçalhos completos. Pa Se o email exigir uma resposta, pressione as teclas kbd:[R] ou kbd:[r] no `mail`. kbd:[R] instrui o `mail` a responder apenas ao remetente do email, enquanto kbd:[r] responde a todos os outros destinatários da mensagem. Esses comandos podem ser sufixados com o número do email. Depois de digitar a resposta, o final da mensagem deve ser marcado por um único kbd:[.] em sua própria linha. Um exemplo pode ser visto abaixo: -[source,bash] +[source,shell] .... & R 1 To: root@localhost @@ -731,7 +731,7 @@ EOT Para enviar um novo email, pressione kbd:[m], seguido pelo endereço de email do destinatário. Vários destinatários podem ser especificados separando cada endereço com o delimitador kbd:[,]. O assunto da mensagem pode então ser inserido, seguido pelo conteúdo da mensagem. O final da mensagem deve ser especificado colocando um único kbd:[.] em sua própria linha. -[source,bash] +[source,shell] .... & mail root@localhost Subject: I mastered mail @@ -763,7 +763,7 @@ Consulte http://www.mutt.org[http://www.mutt.org] para mais informações sobre O mutt pode ser instalado usando o port package:mail/mutt[]. Após o port ter sido instalado, o mutt pode ser iniciado com o seguinte comando: -[source,bash] +[source,shell] .... % mutt .... @@ -802,7 +802,7 @@ O alpine teve várias vulnerabilidades remotas descobertas no passado, que permi A versão atual do alpine pode ser instalada usando o port package:mail/alpine[]. Após a instalação do port, o alpine pode ser iniciado executando o seguinte comando: -[source,bash] +[source,shell] .... % alpine .... @@ -843,7 +843,7 @@ O fetchmail é um cliente IMAP e POP completo. Ele permite que os usuários baix Esta seção explica alguns dos recursos básicos do fetchmail. Este utilitário requer uma configuração [.filename]#.fetchmailrc# no diretório pessoal do usuário para que seja executado corretamente. Este arquivo inclui informações do servidor, bem como credenciais de login. Devido à natureza sensível do conteúdo deste arquivo, é aconselhável torná-lo legível apenas pelo usuário, com o seguinte comando: -[source,bash] +[source,shell] .... % chmod 600 .fetchmailrc .... @@ -868,7 +868,7 @@ user "john", with password "XXXXX", is "myth" here; fetchmail pode ser executado no modo daemon executando-o com `-d`, seguido pelo intervalo (em segundos) que o fetchmail deve pesquisar servidores listados em [.filename]#.fetchmailrc#. O exemplo a seguir configura o fetchmail para pesquisar a cada 600 segundos: -[source,bash] +[source,shell] .... % fetchmail -d 600 .... diff --git a/documentation/content/pt-br/books/handbook/mirrors/_index.adoc b/documentation/content/pt-br/books/handbook/mirrors/_index.adoc index 07fd8f8c98..eeb20388c6 100644 --- a/documentation/content/pt-br/books/handbook/mirrors/_index.adoc +++ b/documentation/content/pt-br/books/handbook/mirrors/_index.adoc @@ -409,7 +409,7 @@ Esta seção demonstra como instalar o Subversion em um sistema FreeBSD e usá-l A instalação do package:security/ca_root_nss[] permite que o Subversion verifique a identidade dos servidores de repositório HTTPS. Os certificados raiz SSL podem ser instalados a partir de um port: -[source,bash] +[source,shell] .... # cd /usr/ports/security/ca_root_nss # make install clean @@ -417,7 +417,7 @@ A instalação do package:security/ca_root_nss[] permite que o Subversion verifi ou como um pacote: -[source,bash] +[source,shell] .... # pkg install ca_root_nss .... @@ -436,7 +436,7 @@ Se o `svnlite` não estiver disponível ou a versão completa do Subversion for O Subversion pode ser instalado a partir da coleção de ports: -[source,bash] +[source,shell] .... # cd /usr/ports/devel/subversion # make install clean @@ -444,7 +444,7 @@ O Subversion pode ser instalado a partir da coleção de ports: O Subversion também pode ser instalado como um pacote: -[source,bash] +[source,shell] .... # pkg install subversion .... @@ -466,7 +466,7 @@ O Subversion usa URLs para designar um repositório, sob a forma de _protocol:// Um checkout de um determinado repositório é executado com um comando como este: -[source,bash] +[source,shell] .... # svn checkout https://svn.FreeBSD.org/repository/branch lwcdir .... @@ -479,7 +479,7 @@ Onde: Este exemplo obtém a coleção de ports do repositório do FreeBSD usando o protocolo HTTPS, colocando a cópia de trabalho local em [.filename]#/usr/ports#. Se o [.filename]#/usr/ports# já estiver presente, mas não tiver sido criado pelo `svn`, lembre-se de renomeá-lo ou excluí-lo antes do checkout. -[source,bash] +[source,shell] .... # svn checkout https://svn.FreeBSD.org/ports/head /usr/ports .... @@ -488,14 +488,14 @@ Como o checkout inicial deve fazer o download da ramificação completa do repos Após o checkout inicial, a cópia de trabalho local pode ser atualizada executando: -[source,bash] +[source,shell] .... # svn update lwcdir .... Para atualizar o [.filename]#/usr/ports# criado no exemplo acima, use: -[source,bash] +[source,shell] .... # svn update /usr/ports .... @@ -504,7 +504,7 @@ O update é muito mais rápido do que um checkout, transferindo apenas os arquiv Uma maneira alternativa de atualizar a cópia de trabalho local após o checkout é fornecida pelo [.filename]#Makefile# existente em [.filename]#/usr/ports#, [.filename]#/usr/src#, e [.filename]#/usr/doc#. Configure o `SVN_UPDATE` e use o destino `atualizar`. Por exemplo, para atualizar [.filename]#/usr/src#: -[source,bash] +[source,shell] .... # cd /usr/src # make update SVN_UPDATE=yes diff --git a/documentation/content/pt-br/books/handbook/multimedia/_index.adoc b/documentation/content/pt-br/books/handbook/multimedia/_index.adoc index 7385b96456..53fb4a9535 100644 --- a/documentation/content/pt-br/books/handbook/multimedia/_index.adoc +++ b/documentation/content/pt-br/books/handbook/multimedia/_index.adoc @@ -78,7 +78,7 @@ Antes de iniciar a configuração, determine o modelo da placa de som e o chip u Para usar um dispositivo de som, seu driver deve ser carregado. A maneira mais fácil é carregar o módulo do kernel para a placa de som com o man:kldload[8]. Este exemplo carrega o driver para um chipset de áudio integrado baseado na especificação Intel: -[source,bash] +[source,shell] .... # kldload snd_hda .... @@ -92,7 +92,7 @@ snd_hda_load="YES" Outros módulos de som disponíveis estão listados no arquivo [.filename]#/boot/defaults/loader.conf#. Quando não tiver certeza de qual driver usar, carregue o módulo [.filename]#snd_driver#: -[source,bash] +[source,shell] .... # kldload snd_driver .... @@ -149,7 +149,7 @@ As configurações mostradas acima são os padrões. Em alguns casos, a IRQ ou o Depois de carregar o módulo necessário ou reinicializar no kernel personalizado, a placa de som deve ser detectada. Para confirmar, execute `dmesg | grep pcm`. Este exemplo é de um sistema com um chipset integrado Conexant CX20590: -[source,bash] +[source,shell] .... pcm0: <NVIDIA (0x001c) (HDMI/DP 8ch)> at nid 5 on hdaa0 pcm1: <NVIDIA (0x001c) (HDMI/DP 8ch)> at nid 6 on hdaa0 @@ -158,7 +158,7 @@ pcm2: <Conexant CX20590 (Analog 2.0+HP/2.0)> at nid 31,25 and 35,27 on hdaa1 O status da placa de som também pode ser verificado usando este comando: -[source,bash] +[source,shell] .... # cat /dev/sndstat FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64) @@ -172,7 +172,7 @@ A saída irá variar dependendo da placa de som. Se nenhum dispositivo [.filenam Se tudo correr bem, a placa de som deverá funcionar no FreeBSD. Se a unidade de CD ou DVD estiver corretamente conectada à placa de som, é possível inserir um CD de áudio na unidade e reproduzi-lo com man:cdcontrol[1]: -[source,bash] +[source,shell] .... % cdcontrol -f /dev/acd0 play 1 .... @@ -187,7 +187,7 @@ Várias aplicações, como package:audio/workman[], fornecem uma interface mais Outra maneira rápida de testar a placa é enviar dados para [.filename]#/dev/dsp#: -[source,bash] +[source,shell] .... % cat filename > /dev/dsp .... @@ -206,28 +206,28 @@ Conectar a um dispositivo Bluetooth está fora do escopo deste capítulo. Consul Para que o dispositivo Bluetooth funcione com o sistema de som do FreeBSD, os usuários precisam primeiramente instalar o package:audio/virtual_oss[]: -[source,bash] +[source,shell] .... # pkg install virtual_oss .... package:audio/virtual_oss[] requer `cuse` para ser carregado no kernel: -[source,bash] +[source,shell] .... # kldload cuse .... Para carregar o `cuse` durante a inicialização do sistema, execute o comando: -[source,bash] +[source,shell] .... # sysrc -f /boot/loader.conf cuse_load=yes .... Para usar fones de ouvido como reprodutor de som com package:audio/virtual_oss[], os usuários precisam criar um dispositivo virtual depois de se conectarem a um dispositivo de áudio Bluetooth: -[source,bash] +[source,shell] .... # virtual_oss -C 2 -c 2 -r 48000 -b 16 -s 768 -R /dev/null -P /dev/bluetooth/headphones -d dsp .... @@ -297,7 +297,7 @@ pcm7: <HDA Realtek ALC889 PCM #3 Digital> at cad 2 nid 1 on hdac1 Neste exemplo, a placa gráfica (`NVidia`) foi enumerada antes da placa de som (`Realtek ALC889`). Para usar a placa de som como o dispositivo de reprodução padrão, altere a variável `hw.snd.default_unit` para a unidade que deve ser usada para reprodução: -[source,bash] +[source,shell] .... # sysctl hw.snd.default_unit=n .... @@ -316,7 +316,7 @@ Muitas vezes é desejável ter várias fontes de som capazes de tocar simultanea Três variáveis no man:sysctl[8] estão disponíveis para configurar canais virtuais: -[source,bash] +[source,shell] .... # sysctl dev.pcm.0.play.vchans=4 # sysctl dev.pcm.0.rec.vchans=4 @@ -356,7 +356,7 @@ Um popular reprodutor gráfico de MP3 é o Audacious. Ele suporta skins do Winam O pacote ou Port package:audio/mpg123[] fornece um reprodutor de MP3 alternativo em linha de comando. Uma vez instalado, especifique o arquivo MP3 para reproduzir na linha de comando. Se o sistema tiver vários dispositivos de áudio, o dispositivo de som também pode ser especificado: -[source,bash] +[source,shell] .... # mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3 High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3 @@ -378,7 +378,7 @@ A ferramenta `cdda2wav`, que é instalada com o suite de programas package:sysut Com o CD de áudio na unidade, o seguinte comando pode ser executado como `root` para ripar um CD inteiro em arquivos WAV, por trilhas: -[source,bash] +[source,shell] .... # cdda2wav -D 0,1,0 -B .... @@ -387,21 +387,21 @@ Neste exemplo, o `-D _0,1,0_` indica o dispositivo SCSI [.filename]#0,1,0# conte Para ripar trilhas individuais, use a opção `-t` para especificar a trilha: -[source,bash] +[source,shell] .... # cdda2wav -D 0,1,0 -t 7 .... Para extrair um intervalo de trilhas, como as trilhas de um a sete, especifique um intervalo: -[source,bash] +[source,shell] .... # cdda2wav -D 0,1,0 -t 1+7 .... Para extrair de uma unidade ATAPI(IDE) CDROM, especifique o nome do dispositivo no lugar dos números da unidade SCSI. Por exemplo, para extrair a trilha 7 de uma unidade IDE: -[source,bash] +[source,shell] .... # cdda2wav -D /dev/acd0 -t 7 .... @@ -415,7 +415,7 @@ Lame é um codificador popular para MP3 que pode ser instalado a partir do port O comando a seguir converterá o arquivo WAV [.filename]#audio01.wav# para [.filename]#audio01.mp3#: -[source,bash] +[source,shell] .... # lame -h -b 128 --tt "Foo Song Title" --ta "FooBar Artist" --tl "FooBar Album" \ --ty "2014" --tc "Ripped and encoded by Foo" --tg "Genre" audio01.wav audio01.mp3 @@ -427,7 +427,7 @@ Para gravar um CD de áudio usando arquivos MP3, primeiro estes devem ser conver Para converter o arquivo [.filename]#audio01.mp3# usando mpg123, especifique o nome do arquivo PCM: -[source,bash] +[source,shell] .... # mpg123 -s audio01.mp3 > audio01.pcm .... @@ -451,7 +451,7 @@ Para usar XMMS para converter um arquivo MP3 para WAV, use esses passos: Os formatos WAV e PCM podem ser usados com cdrecord. Ao usar arquivos WAV, haverá um pequeno som no início de cada trilha. Este som é o cabeçalho do arquivo WAV. O pacote binário ou port package:audio/sox[] pode ser usado para remover o cabeçalho: -[source,bash] +[source,shell] .... % sox -t wav -r 44100 -s -w -c 2 track.wav track.raw .... @@ -465,7 +465,7 @@ Antes de configurar a reprodução de vídeo, determine o modelo e o chipset da É interessante ter um arquivo de teste MPEG pequeno para avaliar vários players e opções. Como alguns aplicativos de DVD procuram por mídia DVD em [.filename]#/dev/dvd# por padrão, ou possuem esse nome de dispositivo codificado neles, pode ser útil fazer um link simbólico para o dispositivo adequado: -[source,bash] +[source,shell] .... # ln -sf /dev/cd0 /dev/dvd .... @@ -505,14 +505,14 @@ Interfaces de vídeo comuns incluem: Para verificar se esta extensão está em execução, use `xvinfo`: -[source,bash] +[source,shell] .... % xvinfo .... O XVideo é suportado pela placa de vídeo se o resultado for semelhante a: -[source,bash] +[source,shell] .... X-Video Extension version 2.2 screen #0 @@ -588,7 +588,7 @@ Os formatos listados, como YUV2 e YUV12, não estão presentes em todas as imple Se o resultado, ao invés disso, se parecer com: -[source,bash] +[source,shell] .... X-Video Extension version 2.2 screen 0 @@ -619,27 +619,27 @@ Esta seção descreve apenas alguns usos comuns. Consulte o mplayer(1) para uma Para reproduzir o arquivo [.filename]#testfile.avi#, especifique as interfaces de vídeo com `-vo`, conforme mostrado nos exemplos a seguir: -[source,bash] +[source,shell] .... % mplayer -vo xv testfile.avi .... -[source,bash] +[source,shell] .... % mplayer -vo sdl testfile.avi .... -[source,bash] +[source,shell] .... % mplayer -vo x11 testfile.avi .... -[source,bash] +[source,shell] .... # mplayer -vo dga testfile.avi .... -[source,bash] +[source,shell] .... # mplayer -vo 'sdl:dga' testfile.avi .... @@ -648,7 +648,7 @@ Vale a pena tentar todas essas opções, pois seu relativo desempenho depende de Para reproduzir um DVD, substitua [.filename]#testfile.avi# por `dvd://_N_ -dvd-device _DEVICE_`, em que _N_ é o número do título a ser reproduzido e _DEVICE_ é o nó do dispositivo para o DVD. Por exemplo, para reproduzir o filme 3 de [.filename]#/dev/dvd#: -[source,bash] +[source,shell] .... # mplayer -vo xv dvd://3 -dvd-device /dev/dvd .... @@ -673,7 +673,7 @@ zoom=yes O `mplayer` pode ser usado para copiar um filme de DVD para um arquivo [.filename]#.vob#. Para gravar o filme em um segundo DVD: -[source,bash] +[source,shell] .... # mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd .... @@ -686,7 +686,7 @@ Antes de usar o `mencoder`, é interessante familiarizar-se com as opções desc Aqui está um exemplo de uma cópia simples: -[source,bash] +[source,shell] .... % mencoder input.avi -oac copy -ovc copy -o output.avi .... @@ -695,7 +695,7 @@ Para copiar para um arquivo, use `-dumpfile` com o `mplayer`. Para converter [.filename]#input.avi# para o codec MPEG4 com codificação de áudio MPEG3, primeiro instale o port package:audio/lame[]. Devido a restrições de licenciamento, um pacote não está disponível. Uma vez instalado, digite: -[source,bash] +[source,shell] .... % mencoder input.avi -oac mp3lame -lameopts br=192 \ -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi @@ -716,7 +716,7 @@ Por padrão, o player xine inicia uma interface gráfica com o usuário. Os menu Alternativamente, o xine pode ser executado a partir da linha de comando, especificando o nome do arquivo a ser reproduzido: -[source,bash] +[source,shell] .... % xine -g -p mymovie.avi .... @@ -732,7 +732,7 @@ No FreeBSD, o Transcode pode ser instalado usando o pacote ou port package:multi Este exemplo demonstra como converter um arquivo DivX em um arquivo PAL MPEG-1 (PAL VCD): -[source,bash] +[source,shell] .... % transcode -i input.avi -V --export_prof vcd-pal -o output_vcd % mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa @@ -791,7 +791,7 @@ options OVERRIDE_TUNER=6 ou, use man:sysctl[8]: -[source,bash] +[source,shell] .... # sysctl hw.bt848.tuner=6 .... @@ -833,14 +833,14 @@ A página https://wiki.freebsd.org/HTPC[wiki.freebsd.org/HTPC] contém uma lista Para instalar o MythTV usando pacotes binários: -[source,bash] +[source,shell] .... # pkg install mythtv .... Como alternativa, para instalar a partir da Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/multimedia/mythtv # make install @@ -848,21 +848,21 @@ Como alternativa, para instalar a partir da Coleção de Ports: Uma vez instalado, configure o banco de dados do MythTV: -[source,bash] +[source,shell] .... # mysql -uroot -p < /usr/local/shared/mythtv/database/mc.sql .... Em seguida, configure o backend: -[source,bash] +[source,shell] .... # mythtv-setup .... Finalmente, inicie o backend: -[source,bash] +[source,shell] .... # sysrc mythbackend_enable=yes # service mythbackend start @@ -893,7 +893,7 @@ device xhci Para verificar se o scanner USB foi detectado, conecte-o e execute o comando `dmesg`, sendo então possível ver se o scanner aparece no buffer de mensagens do sistema. Em caso afirmativo, deve ser exibida uma mensagem semelhante a esta: -[source,bash] +[source,shell] .... ugen0.2: <EPSON> at usbus0 .... @@ -910,7 +910,7 @@ device pass Verifique se o dispositivo é exibido no buffer de mensagens do sistema: -[source,bash] +[source,shell] .... pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device @@ -919,7 +919,7 @@ pass2: 3.300MB/s transfers Se o scanner não foi ligado na inicialização do sistema, ainda é possível forçar manualmente a detecção executando uma varredura de barramento SCSI com o comando `camcontrol`: -[source,bash] +[source,shell] .... # camcontrol rescan all Re-scan of bus 0 was successful @@ -930,7 +930,7 @@ Re-scan of bus 3 was successful O scanner deve agora aparecer na lista de dispositivos SCSI: -[source,bash] +[source,shell] .... # camcontrol devlist <IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) @@ -947,14 +947,14 @@ O sistma SANE provê o acesso ao scanner via backends (package:graphics/sane-bac Para instalar os backends do pacote binário: -[source,bash] +[source,shell] .... # pkg install sane-backends .... Alternativamente, para instalar a partir da Coleção de Ports -[source,bash] +[source,shell] .... # cd /usr/ports/graphics/sane-backends # make install clean @@ -962,7 +962,7 @@ Alternativamente, para instalar a partir da Coleção de Ports Depois de instalar o pacote ou port package:graphics/sane-backends[], use o comando `sane-find-scanner` para verificar a detecção do scanner pelo sistema SANE: -[source,bash] +[source,shell] .... # sane-find-scanner -q found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3 @@ -977,7 +977,7 @@ Alguns scanners USB exigem que o firmware seja carregado. Consulte sane-find-sca Em seguida, verifique se o scanner será identificado por uma interface de digitalização. Os backends SANE incluem o comando `scanimage`, que pode ser usado para listar os dispositivos e realizar uma aquisição de imagens. Use a opção `-L` para listar os dispositivos do scanner. O primeiro exemplo é para um scanner SCSI e o segundo é para um scanner USB: -[source,bash] +[source,shell] .... # scanimage -L device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner @@ -989,7 +989,7 @@ Neste segundo exemplo,`epson2` é o nome do backend e `libusb:000:002` significa Se o comando `scanimage` não conseguir identificar o scanner, esta mensagem será exibida: -[source,bash] +[source,shell] .... # scanimage -L @@ -1008,7 +1008,7 @@ usb /dev/ugen0.2 Salve as edições e verifique se o scanner está identificado com o nome do back-end correto e com o nó do dispositivo: -[source,bash] +[source,shell] .... # scanimage -L device 'epson2:libusb:000:002' is a Epson GT-8200 flatbed scanner @@ -1024,7 +1024,7 @@ Para ter acesso ao scanner, o usuário precisa ler e gravar as permissões no n Este exemplo cria um grupo chamado `_usb_`: -[source,bash] +[source,shell] .... # pw groupadd usb .... @@ -1053,7 +1053,7 @@ add path 'usb/*' mode 0666 group usb Finalmente, adicione os usuários a `_usb_` para permitir acesso ao scanner: -[source,bash] +[source,shell] .... # pw groupmod usb -m joe .... diff --git a/documentation/content/pt-br/books/handbook/network-servers/_index.adoc b/documentation/content/pt-br/books/handbook/network-servers/_index.adoc index c62d17fb1c..cf6d2c734f 100644 --- a/documentation/content/pt-br/books/handbook/network-servers/_index.adoc +++ b/documentation/content/pt-br/books/handbook/network-servers/_index.adoc @@ -93,7 +93,7 @@ inetd_enable="YES" Para iniciar o inetd agora, para que ele ouça o serviço que você configurou, digite: -[source,bash] +[source,shell] .... # service inetd start .... @@ -105,7 +105,7 @@ Uma vez iniciado o inetd, ele precisa ser notificado sempre que uma modificaçã [example] ==== -[source,bash] +[source,shell] .... # service inetd reload .... @@ -332,14 +332,14 @@ mountd_enable="YES O servidor pode ser iniciado agora executando este comando: -[source,bash] +[source,shell] .... # service nfsd start .... Sempre que o servidor NFS for iniciado, o mountd também é iniciado automaticamente. No entanto, mountd lê apenas [.filename]#/etc/exports# quando é iniciado. Para fazer as edições subsequentes de [.filename]#/etc/exports# entrarem em vigor imediatamente, force mountd para ler novamente: -[source,bash] +[source,shell] .... # service mountd reload .... @@ -355,14 +355,14 @@ nfs_client_enable="YES" Em seguida, execute este comando em cada cliente NFS: -[source,bash] +[source,shell] .... # service nfsclient start .... O cliente agora tem tudo de que precisa para montar um sistema de arquivos remoto. Nestes exemplos, o nome do servidor é `server` e o nome do cliente é `client`. Para montar [.filename]#/home# no `server` para o ponto de montagem [.filename]#/mnt# no `client`: -[source,bash] +[source,shell] .... # mount server:/home /mnt .... @@ -390,7 +390,7 @@ rpc_statd_enable="YES" Então inicie as aplicações: -[source,bash] +[source,shell] .... # service lockd start # service statd start @@ -421,7 +421,7 @@ Existe um mapeamento especial montado automaticamente em [.filename]#/net#. Quan ==== Neste exemplo, `showmount -e` mostra os sistemas de arquivos exportados que podem ser montados a partir do servidor NFS, `foobar`: -[source,bash] +[source,shell] .... % showmount -e foobar Exports list on foobar: @@ -443,7 +443,7 @@ autofs_enable="YES" Em seguida, man:autofs[5] pode ser iniciado executando: -[source,bash] +[source,shell] .... # service automount start # service automountd start @@ -589,7 +589,7 @@ nis_client_flags="-S test-domain,server" <.> Depois de salvar as edições, digite `/etc/netstart` para reiniciar a rede e aplicar os valores definidos no arquivo [.filename]#/etc/rc.conf#. Antes de inicializar os mapas de NIS, inicie man:ypserv[8]: -[source,bash] +[source,shell] .... # service ypserv start .... @@ -598,7 +598,7 @@ Depois de salvar as edições, digite `/etc/netstart` para reiniciar a rede e ap Os mapeamentos NIS são gerados a partir dos arquivos de configuração no diretório [.filename]#/etc# no NIS master, com uma exceção: [.filename]#/etc/master.passwd#. Isso evita a propagação de senhas para todos os servidores no domínio NIS. Portanto, antes de inicializar os mapas do NIS, configure os arquivos de senha primários: -[source,bash] +[source,shell] .... # cp /etc/master.passwd /var/yp/master.passwd # cd /var/yp @@ -614,7 +614,7 @@ Assegure-se de que o arquivo [.filename]#/var/yp/master.passwd# não seja de gru Depois de concluir esta tarefa, inicialize os mapas do NIS. O FreeBSD inclui o script man:ypinit[8] para fazer isso. Ao gerar mapas para o servidor master, inclua `-m` e especifique o nome de domínio NIS: -[source,bash] +[source,shell] .... ellington# ypinit -m test-domain Server Type: MASTER Domain: test-domain @@ -652,7 +652,7 @@ NOPUSH = "True" Toda vez que um novo usuário é criado, a conta de usuário deve ser adicionada ao servidor mestre NIS e aos mapeamentos do NIS reconstruídos. Até que isso ocorra, o novo usuário não poderá efetuar login em nenhum lugar, exceto no NIS master. Por exemplo, para adicionar o novo usuário `jsmith` ao domínio `test-domain`, execute estes comandos no servidor master: -[source,bash] +[source,shell] .... # pw useradd jsmith # cd /var/yp @@ -665,7 +665,7 @@ O usuário também pode ser adicionado usando `adduser jsmith` em vez de `pw use Para configurar um servidor NIS slave, faça o logon no servidor slave e edite o arquivo [.filename]#/etc/rc.conf# assim como para o servidor master. Não gere nenhum mapa de NIS, pois estes já existem no servidor master. Ao executar `ypinit` no servidor slave, use `-s` (para slave) ao invés de `-m` (para master). Esta opção requer o nome do NIS master, além do nome do domínio, como visto neste exemplo: -[source,bash] +[source,shell] .... coltrane# ypinit -s ellington test-domain @@ -773,7 +773,7 @@ Esta linha configura o cliente para fornecer qualquer pessoa com uma conta váli Para iniciar imediatamente o cliente NIS, execute os seguintes comandos como superusuário: -[source,bash] +[source,shell] .... # /etc/netstart # service ypbind start @@ -812,7 +812,7 @@ Neste exemplo, o sistema `basie` é uma estação de trabalho da dentro do domí Para previnir usuários específicos de logar em um sistema, desde que eles estejam presentes no banco de dados do NIS, use `vipw` para adicionar `-_username_` com o numero correto de virgulas em direção ao fim do arquivo [.filename]#/etc/master.passwd# no cliente, onde _username_ é o nome de usuário a impedir de logar. A linha com o usuário bloqueado deve estar antes da linha `+` que permite usuários do NIS. Neste exemplo, `bill` está impedido de logar no `basie`: -[source,bash] +[source,shell] .... basie# cat /etc/master.passwd root:[password]:0:0::0:0:The super-user:/root:/bin/csh @@ -922,7 +922,7 @@ Repita este processo se mais de 225 (15 vezes 15) usuários existirem dentro de Para ativar e distribuir o novo mapa do NIS: -[source,bash] +[source,shell] .... ellington# cd /var/yp ellington# make @@ -930,7 +930,7 @@ ellington# make Isso gerará os três mapas NIS, [.filename]#netgroup#, [.filename]#netgroup.byhost# e [.filename]#netgroup.byuser#. Use a opção de chave de mapa man:ypcat[1] para verificar se os novos mapas de NIS estão disponíveis: -[source,bash] +[source,shell] .... ellington% ypcat -k netgroup ellington% ypcat -k netgroup.byhost @@ -1064,7 +1064,7 @@ Neste exemplo, o sistema está usando o formato DES. Outros valores possíveis s Se o formato em um host precisar ser editado para corresponder ao que está sendo usado no domínio NIS, o banco de dados de recursos de login deve ser reconstruído após salvar a alteração: -[source,bash] +[source,shell] .... # cap_mkdb /etc/login.conf .... @@ -1087,7 +1087,7 @@ O LDAP usa vários termos que devem ser entendidos antes de iniciar a configura Um exemplo de entrada LDAP é semelhante ao seguinte. Este exemplo procura a entrada para a conta de usuário especificada (`uid`), unidade organizacional (`ou`) e organização (`o`): -[source,bash] +[source,shell] .... % ldapsearch -xb "uid=trhodes,ou=users,o=example.com" # extended LDIF @@ -1122,7 +1122,7 @@ Maiores informações sobre o LDAP e sua terminologia podem ser encontradas em h O FreeBSD não provê um servidor LDAP embutido. Comece a configuração instalando o pacote ou port package:net/openldap-server[]: -[source,bash] +[source,shell] .... # pkg install openldap-server .... @@ -1131,14 +1131,14 @@ Aqui está um largo conjunto de opções habilitadas no link:{linux-users}#softw A instalação cria o diretório [.filename]#/var/db/openldap-data# para conter os dados. O diretório para armazenar os certificados deve ser criado: -[source,bash] +[source,shell] .... # mkdir /usr/local/etc/openldap/private .... A próxima fase é configurar a autoridade de certificação. Os seguintes comandos devem ser executados em [.filename]#/usr/local/etc/openldap/private#. Isso é importante, pois as permissões de arquivo precisam ser restritivas e os usuários não devem ter acesso a esses arquivos. Informações mais detalhadas sobre certificados e seus parâmetros podem ser encontradas em crossref:security[openssl,OpenSSL]. Para criar a Autoridade de Certificação, comece com este comando e siga os prompts: -[source,bash] +[source,shell] .... # openssl req -days 365 -nodes -new -x509 -keyout ca.key -out ../ca.crt .... @@ -1147,21 +1147,21 @@ As entradas para os prompts podem ser genéricas _exceto_ para o `Common Name`. A próxima tarefa é criar uma solicitação de assinatura de certificado e uma chave privada. Insira este comando e siga os prompts: -[source,bash] +[source,shell] .... # openssl req -days 365 -nodes -new -keyout server.key -out server.csr .... Durante o processo de geração de certificados, certifique-se de configurar corretamente o atributo `Common Name`. A Solicitação de Assinatura de Certificado deve ser assinada com a Autoridade de Certificação para ser usada como um certificado válido: -[source,bash] +[source,shell] .... # openssl x509 -req -days 365 -in server.csr -out ../server.crt -CA ../ca.crt -CAkey ca.key -CAcreateserial .... A parte final do processo de geração de certificados é gerar e assinar os certificados do cliente: -[source,bash] +[source,shell] .... # openssl req -days 365 -nodes -new -keyout client.key -out client.csr # openssl x509 -req -days 3650 -in client.csr -out ../client.crt -CA ../ca.crt -CAkey ca.key @@ -1314,28 +1314,28 @@ Esse http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=tree;f=tests/data Quando a configuração estiver concluída, o [.filename]#slapd.ldif# deve ser colocado em um diretório vazio. Recomenda-se criá-lo como: -[source,bash] +[source,shell] .... # mkdir /usr/local/etc/openldap/slapd.d/ .... Importe o banco de dados de configuração: -[source,bash] +[source,shell] .... # /usr/local/sbin/slapadd -n0 -F /usr/local/etc/openldap/slapd.d/ -l /usr/local/etc/openldap/slapd.ldif .... Inicie o daemon [.filename]#slapd#: -[source,bash] +[source,shell] .... # /usr/local/libexec/slapd -F /usr/local/etc/openldap/slapd.d/ .... A opção `-d` pode ser usada para depuração, conforme especificado em slapd(8). Para verificar se o servidor está em execução e funcionando: -[source,bash] +[source,shell] .... # ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts # extended LDIF @@ -1360,21 +1360,21 @@ result: 0 Success O servidor ainda deve ser confiável. Se isso nunca foi feito antes, siga estas instruções. Instale o pacote ou o port OpenSSL: -[source,bash] +[source,shell] .... # pkg install openssl .... No diretório onde o [.filename]#ca.crt# está armazenado (neste exemplo, [.filename]#/usr/local/etc/openldap#), execute: -[source,bash] +[source,shell] .... # c_rehash . .... Tanto a CA quanto o certificado do servidor agora são reconhecidos corretamente em suas respectivas funções. Para verificar isso, execute este comando no diretório [.filename]#server.crt#: -[source,bash] +[source,shell] .... # openssl verify -verbose -CApath . server.crt .... @@ -1394,7 +1394,7 @@ O [.filename]#slapd# não fornece depuração na inicialização. Verifique o [. O exemplo a seguir adiciona o grupo `team` e o usuário `john` ao banco de dados LDAP de `domain.example`, que ainda está vazio. Primeiro, crie o arquivo [.filename]#domain.ldif#: -[source,bash] +[source,shell] .... # cat domain.ldif dn: dc=domain,dc=example @@ -1435,14 +1435,14 @@ userPassword: secret Veja a documentação do OpenLDAP para mais detalhes. Use [.filename]#slappasswd# para substituir a senha `secret` em texto puro com um hash no `userPassword`. O caminho especificado como `loginShell` deve existir em todos sistemas onde `john` pode se logar. Finalmente, use o administrador `mdb` para modificar o banco de dados: -[source,bash] +[source,shell] .... # ldapadd -W -D "cn=mdbadmin,dc=domain,dc=example" -f domain.ldif .... Modificações para a seção _configurações globais_ podem ser feitas apenas pelo super-usuário global. Por exemplo, assume que a opção `olcTLSCipherSuite: HIGH:MEDIUM:SSLv3` foi inicialmente especificada e deve agora ser deletada. Primeiro, crie um arquivo que contenha o seguinte: -[source,bash] +[source,shell] .... # cat global_mod dn: cn=config @@ -1452,7 +1452,7 @@ delete: olcTLSCipherSuite Em seguida, aplique as modificações: -[source,bash] +[source,shell] .... # ldapmodify -f global_mod -x -D "cn=config" -W .... @@ -1461,7 +1461,7 @@ Quando solicitado, forneça a senha escolhida na seção _configuração backend Se algo der errado ou se o superusuário global não puder acessar o backend de configuração, é possível excluir e reescrever toda a configuração: -[source,bash] +[source,shell] .... # rm -rf /usr/local/etc/openldap/slapd.d/ .... @@ -1582,7 +1582,7 @@ Substitua o `dc0` pela interface (ou interfaces, separadas por espaço em branco Inicie o servidor executando o seguinte comando: -[source,bash] +[source,shell] .... # service isc-dhcpd start .... @@ -1680,21 +1680,21 @@ Quaisquer servidores de nomes existentes em [.filename]#/etc/resolv.conf# serão Se algum dos servidores de nomes listados não suportar o DNSSEC, a resolução local DNS falhará. Certifique-se de testar cada servidor de nomes e remover qualquer um que falhe no teste. O seguinte comando mostrará a árvore de confiança ou uma falha para um servidor de nomes em execução em `192.168.1.1`: ==== -[source,bash] +[source,shell] .... % drill -S FreeBSD.org @192.168.1.1 .... Quando cada servidor de nomes for confirmado para suportar DNSSEC, inicie o Unbound: -[source,bash] +[source,shell] .... # service local_unbound onestart .... Isso cuidará da atualização do arquivo [.filename]#/etc/resolv.conf# para que as consultas para domínios seguros DNSSEC funcionem agora. Por exemplo, execute o seguinte DNSSEC para validar a árvore confiável do FreeBSD.org : -[source,bash] +[source,shell] .... % drill -S FreeBSD.org ;; Number of trusted keys: 1 @@ -1758,7 +1758,7 @@ apache24_flags="" Se o apachectl não relatar erros de configuração, inicie o `httpd` agora: -[source,bash] +[source,shell] .... # service apache24 start .... @@ -1767,7 +1767,7 @@ O serviço `httpd` pode ser testado inserindo `http://_localhost_` em um navegad A configuração do Apache pode ser testada quanto a erros depois de fazer alterações subsequentes de configuração enquanto o `httpd` está em execução usando o seguinte comando: -[source,bash] +[source,shell] .... # service apache24 configtest .... @@ -1861,14 +1861,14 @@ Suporte para PHP para o Apache e alguma outra parte escrita na linguagem, pode s Para todas versões suportadas, procure os dados do pacote usando o comando `pkg`: -[source,bash] +[source,shell] .... # pkg search php .... Uma lista vai ser disponibilizada incluindo as versões e partes adicionais que elas proverem. Os componentes são completamente modulares, significando que as partes especificas são habilitadas instalando o port apropriado. Para instalar o PHP na versão 7.4 para o Apache, use o seguinte comando: -[source,bash] +[source,shell] .... # pkg install mod_php74 .... @@ -1891,7 +1891,7 @@ Em adição, a opção `DirectoryIndex` no arquivo de configuração irá precis Suporte para muitas partes do PHP podem ser instalado também usando o comando `pkg`. Por exemplo, para instalar suporte para o XML ou para SSL, instale os seguintes ports: -[source,bash] +[source,shell] .... # pkg install php74-xml php74-openssl .... @@ -1900,19 +1900,19 @@ Como antes, a configuração do Apache irá precisar ser recarregada para as mud Para realizar uma reinicialização normal para recarregar a configuração, digite o seguinte comando: -[source,bash] +[source,shell] .... # apachectl graceful .... Uma vez que a instalação esteja completa, há dois métodos para obter o suporte para os modulos do PHP e a informação do ambiente dessa instalação. A primeira é instalar o binário completo do PHP e rodar o seguinte comando para obter a informação: -[source,bash] +[source,shell] .... # pkg install php74 .... -[source,bash] +[source,shell] .... # php -i |less .... @@ -1965,7 +1965,7 @@ Para habilitar HTTP2 para VirtualHosts individuais, adicione a mesma linha com a Recarregue a configuração usando o comando `apachectl` reload e teste a configuração seguindo um dos métodos após visitar uma das paginas hosteadas: -[source,bash] +[source,shell] .... # grep "HTTP/2.0" /var/log/httpd-access.log .... @@ -2044,14 +2044,14 @@ ftpd_enable="YES" Para iniciar o serviço agora: -[source,bash] +[source,shell] .... # service ftpd start .... Teste a conexão com o servidor FTP digitando: -[source,bash] +[source,shell] .... % ftp localhost .... @@ -2138,7 +2138,7 @@ O Samba possui vários modelos de autenticação de backend diferentes. Os clien As contas de usuário do FreeBSD devem ser mapeadas para o banco de dados `SambaSAMAccount` para que os clientes Windows(TM) acessem o compartilhamento. Mapear contas de usuários existentes do FreeBSD usando man:pdbedit[8]: -[source,bash] +[source,shell] .... # pdbedit -a username .... @@ -2156,7 +2156,7 @@ samba_server_enable="YES" Para iniciar o Samba agora: -[source,bash] +[source,shell] .... # service samba_server start Performing sanity check on Samba configuration: OK @@ -2173,7 +2173,7 @@ winbindd_enable="YES" O Samba pode ser interrompido a qualquer momento digitando: -[source,bash] +[source,shell] .... # service samba_server stop .... @@ -2241,7 +2241,7 @@ A palavra-chave `leapfile` especifica o local de um arquivo que contém informa Defina `ntpd_enable=YES` para iniciar o ntpd no momento do boot do sistema. Depois que o `ntpd_enable=YES` for adicionado ao [.filename]#/etc/rc.conf#, o ntpd poderá ser iniciado imediatamente sem reiniciar o sistema, digitando: -[source,bash] +[source,shell] .... # service ntpd start .... @@ -2364,14 +2364,14 @@ ctld_enable="YES" Para iniciar o man:ctld[8] agora, execute este comando: -[source,bash] +[source,shell] .... # service ctld start .... Quando o daemon man:ctld[8] é iniciado, ele lê o arquivo [.filename]#/etc/ctl.conf#. Se este arquivo for editado depois que o daemon iniciar, use este comando para que as mudanças entrem em vigor imediatamente: -[source,bash] +[source,shell] .... # service ctld reload .... @@ -2437,7 +2437,7 @@ iscsid_enable="YES" Para iniciar man:iscsid[8] agora, execute este comando: -[source,bash] +[source,shell] .... # service iscsid start .... @@ -2448,7 +2448,7 @@ Conectar-se a um alvo pode ser feito com ou sem um arquivo [.filename]#/etc/iscs Para conectar um inicializador a um único alvo, especifique o endereço IP do portal e o nome do alvo: -[source,bash] +[source,shell] .... # iscsictl -A -p 10.10.10.10 -t iqn.2012-06.com.example:target0 .... @@ -2463,7 +2463,7 @@ iqn.2012-06.com.example:target0 10.10.10.10 Connected: da0 Neste exemplo, a sessão iSCSI foi estabelecida com sucesso, com [.filename]#/dev/da0# representando o LUN anexado. Se o destino `iqn.2012-06.com.example:target0` exportar mais de um LUN, vários nós de dispositivos serão mostrados nessa seção da saída: -[source,bash] +[source,shell] .... Connected: da0 da1 da2. .... @@ -2502,7 +2502,7 @@ iqn.2012-06.com.example:target0 10.10.10.10 Authentication f Para especificar um nome de usuário e uma senha de CHAP, use esta sintaxe: -[source,bash] +[source,shell] .... # iscsictl -A -p 10.10.10.10 -t iqn.2012-06.com.example:target0 -u user -s secretsecret .... @@ -2526,14 +2526,14 @@ O `t0` especifica um nickname para a seção do arquivo de configuração. Ele s Para se conectar ao alvo definido, especifique o apelido: -[source,bash] +[source,shell] .... # iscsictl -An t0 .... Como alternativa, para conectar-se a todos os alvos definidos no arquivo de configuração, use: -[source,bash] +[source,shell] .... # iscsictl -Aa .... diff --git a/documentation/content/pt-br/books/handbook/ports/_index.adoc b/documentation/content/pt-br/books/handbook/ports/_index.adoc index 2e8ce6a3e7..03466133d6 100644 --- a/documentation/content/pt-br/books/handbook/ports/_index.adoc +++ b/documentation/content/pt-br/books/handbook/ports/_index.adoc @@ -121,7 +121,7 @@ A lista de aplicativos disponíveis do FreeBSD está crescendo o tempo todo. Exi * Se encontrar um aplicativo específico se tornar desafiador, tente pesquisar um site como http://www.sourceforge.net/[SourceForge.net] ou http://www.github.com/[GitHub.com] então volte no https://www.FreeBSD.org/ports/[site do FreeBSD] para ver se o aplicativo foi portado. * Para pesquisar o repositório de pacotes binários por um aplicativo: + -[source,bash] +[source,shell] .... # pkg search subversion git-subversion-1.9.2 @@ -139,7 +139,7 @@ subversion17-1.7.16_2 + Os nomes dos pacotes incluem o número da versão e, no caso de ports baseados em python, o número da versão do pacote python sobre o qual o pacote foi compilado. Alguns ports também possuem várias versões disponíveis. No caso do Subversion, existem diferentes versões disponíveis, bem como diferentes opções de compilação. Neste caso, a versão estaticamente vinculada do Subversion. Ao indicar qual pacote instalar, é melhor especificar o aplicativo pela origem do port, que é o caminho na árvore de ports. Repita o `pkg search` com `-o` para listar a origem de cada pacote: + -[source,bash] +[source,shell] .... # pkg search -o subversion devel/git-subversion @@ -158,7 +158,7 @@ devel/subversion-static Pesquisar por shell globs, expressões regulares, correspondência exata, por descrição ou qualquer outro campo no banco de dados do repositório também é suportado pelo `pkg search`. Depois de instalar o package:ports-mgmt/pkg[] ou o package:ports-mgmt/pkg-devel[], veja man:pkg-search[8] para maiores detalhes. * Se a Coleção de Ports já estiver instalada, existem vários métodos para consultar a versão local da árvore de ports. Para descobrir em qual categoria um port está, digite `whereis__file__`, onde __file__ é o programa a ser instalado: + -[source,bash] +[source,shell] .... # whereis lsof lsof: /usr/ports/sysutils/lsof @@ -166,7 +166,7 @@ lsof: /usr/ports/sysutils/lsof + Como alternativa, uma declaração man:echo[1] pode ser usada: + -[source,bash] +[source,shell] .... # echo /usr/ports/*/*lsof* /usr/ports/sysutils/lsof @@ -175,7 +175,7 @@ Como alternativa, uma declaração man:echo[1] pode ser usada: Observe que isso também retornará todos os arquivos correspondentes baixados no diretório [.filename]#/usr/ports/distfiles#. * Outra maneira de encontrar software é usando o mecanismo de pesquisa integrado da Coleção de Ports. Para usar o recurso de pesquisa, cd para [.filename]#/usr/ports#, execute `make search name=program-name` onde _program-name_ é o nome do software. Por exemplo, para procurar por `lsof`: + -[source,bash] +[source,shell] .... # cd /usr/ports # make search name=lsof @@ -198,7 +198,7 @@ A linha "Path:" indica onde encontrar o port. + Para receber menos informações, use o recurso `quicksearch`: + -[source,bash] +[source,shell] .... # cd /usr/ports # make quicksearch name=lsof @@ -234,7 +234,7 @@ Nem todas as versões e arquiteturas do FreeBSD suportam este processo de bootst Para inicializar o sistema, execute: -[source,bash] +[source,shell] .... # /usr/sbin/pkg .... @@ -243,7 +243,7 @@ Você deve ter uma conexão com a Internet para que o processo de inicializaçã Caso contrário, para instalar o port, execute: -[source,bash] +[source,shell] .... # cd /usr/ports/ports-mgmt/pkg # make @@ -252,7 +252,7 @@ Caso contrário, para instalar o port, execute: Ao atualizar um sistema existente que usava originalmente as ferramentas pkg_* mais antigas, o banco de dados deve ser convertido para o novo formato, para que as novas ferramentas estejam cientes dos pacotes já instalados. Uma vez que o pkg tenha sido instalado, o banco de dados de pacotes deve ser convertido do formato tradicional para o novo formato, executando este comando: -[source,bash] +[source,shell] .... # pkg2ng .... @@ -287,12 +287,12 @@ As informações de uso do pkg estão disponíveis na página de manual man:pkg[ Cada argumento do comando pkg é documentado em uma página de manual específica do comando. Para ler a página de manual do `pkg install`, por exemplo, execute um destes comandos: -[source,bash] +[source,shell] .... # pkg help install .... -[source,bash] +[source,shell] .... # man pkg-install .... @@ -306,7 +306,7 @@ As branches `Quarterly`(trimestrais) provê aos usuários uma experiência mais Para alternar de trimestral para latest execute os seguintes comandos: -[source,bash] +[source,shell] .... # cp /etc/pkg/FreeBSD.conf /usr/local/etc/pkg/repos/FreeBSD.conf .... @@ -328,7 +328,7 @@ FreeBSD: { E finalmente rode este comando para atualizar do novo (ultimo) meta dado do repositório. -[source,bash] +[source,shell] .... # pkg update -f .... @@ -340,7 +340,7 @@ Informações sobre os pacotes instalados em um sistema podem ser visualizadas e Por exemplo, para ver qual versão do pkg está instalada, execute: -[source,bash] +[source,shell] .... # pkg info pkg pkg-1.1.4_1 @@ -351,14 +351,14 @@ pkg-1.1.4_1 Para instalar um pacote binário, use o seguinte comando, em que _packagename_ é o nome do pacote a ser instalado: -[source,bash] +[source,shell] .... # pkg install packagename .... Esse comando usa os dados do repositório para determinar qual versão do software instalar e se ele possui alguma dependência faltando. Por exemplo, para instalar o curl: -[source,bash] +[source,shell] .... # pkg install curl Updating repository catalogue @@ -385,7 +385,7 @@ Cleaning up cache files...Done O novo pacote e quaisquer pacotes adicionais que foram instalados como dependências podem ser vistos na lista de pacotes instalados: -[source,bash] +[source,shell] .... # pkg info ca_root_nss-3.15.1_1 The root certificate bundle from the Mozilla Project @@ -395,7 +395,7 @@ pkg-1.1.4_6 New generation package manager Pacotes que não são mais necessários podem ser removidos com `pkg delete`. Por exemplo: -[source,bash] +[source,shell] .... # pkg delete curl The following packages will be deleted: @@ -413,7 +413,7 @@ Proceed with deleting packages [y/N]: y Os pacotes instalados podem ser atualizados para as versões mais recentes executando: -[source,bash] +[source,shell] .... # pkg upgrade .... @@ -425,7 +425,7 @@ Este comando irá comparar as versões instaladas com as disponíveis no catálo Vulnerabilidades de software são regularmente descobertas em aplicativos de terceiros. Para resolver isso, o pkg inclui um mecanismo de auditoria integrado. Para determinar se há alguma vulnerabilidade conhecida para o software instalado no sistema, execute: -[source,bash] +[source,shell] .... # pkg audit -F .... @@ -435,7 +435,7 @@ Vulnerabilidades de software são regularmente descobertas em aplicativos de ter Remover um pacote pode deixar dependências que não são mais necessárias. Pacotes desnecessários que foram instalados como dependências podem ser automaticamente detectados e removidos usando: -[source,bash] +[source,shell] .... # pkg autoremove Packages to be autoremoved: @@ -449,7 +449,7 @@ Deinstalling ca_root_nss-3.15.1_1... done Os pacotes instalados como dependências são chamados de pacotes _automáticos_. Pacotes não automáticos, ou seja, os pacotes que não foram instalados como uma dependência para outro pacote, podem ser listados usando: -[source,bash] +[source,shell] .... # pkg prime-list nginx @@ -459,7 +459,7 @@ sudo O `pkg prime-list` é um alias de comando declarado no [.filename]#/usr/local/etc/pkg.conf#. Existem muitos outros que podem ser usados para consultar o banco de dados de pacotes do sistema. Por exemplo, o comando `pkg prime-origins` pode ser usado para obter o diretório de origem dos ports da lista mencionada acima: -[source,bash] +[source,shell] .... # pkg prime-origins www/nginx @@ -471,7 +471,7 @@ Esta lista pode ser usada para recompilar todos os pacotes instalados em um sist Marcar um pacote instalado como automático pode ser feito usando: -[source,bash] +[source,shell] .... # pkg set -A 1 devel/cmake .... @@ -480,7 +480,7 @@ Uma vez que um pacote é um pacote orfão e está marcado como automático, ele Marcar um pacote instalado como _não_ automático pode ser feito usando: -[source,bash] +[source,shell] .... # pkg set -A 0 devel/cmake .... @@ -498,7 +498,7 @@ Para desabilitar o script que faz o backup periódico do banco de dados de pacot Para restaurar o conteúdo de um backup anterior do banco de dados de pacotes, execute o seguinte comando substituindo _/path/to/pkg.sql_ pelo local do backup: -[source,bash] +[source,shell] .... # pkg backup -r /path/to/pkg.sql .... @@ -510,7 +510,7 @@ Se estiver restaurando um backup feito pelo script periódico, ele deve ser desc Para executar um backup manual do banco de dados pkg, execute o seguinte comando, substituindo _/path/to/pkg.sql_ por um nome de arquivo e local adequados: -[source,bash] +[source,shell] .... # pkg backup -d /path/to/pkg.sql .... @@ -520,14 +520,14 @@ Para executar um backup manual do banco de dados pkg, execute o seguinte comando Por padrão, o pkg armazena pacotes binários em um diretório de cache definido por `PKG_CACHEDIR` no man:pkg.conf[5]. Somente cópias dos últimos pacotes instalados são mantidas. Versões mais antigas do pkg mantinham todos os pacotes anteriores. Para remover esses pacotes binários desatualizados, execute: -[source,bash] +[source,shell] .... # pkg clean .... O cache inteiro pode ser limpo executando: -[source,bash] +[source,shell] .... # pkg clean -a .... @@ -539,21 +539,21 @@ Os softwares dentro da Coleção de Ports do FreeBSD podem passar por grandes mu Para alterar a origem do pacote para o exemplo acima, execute: -[source,bash] +[source,shell] .... # pkg set -o lang/php5:lang/php53 .... Como outro exemplo, para atualizar package:lang/ruby18[] para package:lang/ruby19[], execute: -[source,bash] +[source,shell] .... # pkg set -o lang/ruby18:lang/ruby19 .... Como um exemplo final, para alterar a origem das bibliotecas compartilhadas [.filename]#libglut# de package:graphics/libglut[] para package:graphics/freeglut[], execute: -[source,bash] +[source,shell] .... # pkg install -Rf graphics/freeglut .... @@ -562,7 +562,7 @@ Como um exemplo final, para alterar a origem das bibliotecas compartilhadas [.fi ==== Ao alterar as origens do pacote, é importante reinstalar os pacotes que dependem do pacote com a origem modificada. Para forçar uma reinstalação dos pacotes dependentes, execute: -[source,bash] +[source,shell] .... # pkg install -Rf graphics/freeglut .... @@ -592,21 +592,21 @@ O sistema base do FreeBSD inclui o Portsnap. Esta é uma ferramenta rápida e de . Para baixar um snapshot compactado da coleção de ports em [.filename]#/var/db/portsnap#: + -[source,bash] +[source,shell] .... # portsnap fetch .... + . Ao executar o Portsnap pela primeira vez, extraia o snapshot em [.filename]#/usr/ports#: + -[source,bash] +[source,shell] .... # portsnap extract .... + . Após o primeiro uso do Portsnap ter sido concluído, como mostrado acima, o [.filename]#/usr/ports# pode ser atualizado conforme necessário executando: + -[source,bash] +[source,shell] .... # portsnap fetch # portsnap update @@ -614,7 +614,7 @@ O sistema base do FreeBSD inclui o Portsnap. Esta é uma ferramenta rápida e de + Ao usar `fetch`, a operação `extract` ou `update` pode ser executada consecutivamente, da seguinte forma: + -[source,bash] +[source,shell] .... # portsnap fetch update .... @@ -629,7 +629,7 @@ Se for necessário mais controle sobre a árvore de ports ou se as mudanças loc . O Subversion deve ser instalado antes de poder ser usado para fazer o check-out da árvore de ports. Se uma cópia da árvore de ports já estiver presente, instale o Subversion desta forma: + -[source,bash] +[source,shell] .... # cd /usr/ports/devel/subversion # make install clean @@ -637,35 +637,35 @@ Se for necessário mais controle sobre a árvore de ports ou se as mudanças loc + Se a árvore de ports não estiver disponível, ou o pkg estiver sendo usado para gerenciar pacotes, o Subversion poderá ser instalado como um pacote: + -[source,bash] +[source,shell] .... # pkg install subversion .... + . Check out a copy of the HEAD branch of the ports tree: + -[source,bash] +[source,shell] .... # svn checkout https://svn.FreeBSD.org/ports/head /usr/ports .... + . Or, check out a copy of a quarterly branch: + -[source,bash] +[source,shell] .... # svn checkout https://svn.FreeBSD.org/ports/branches/2020Q3 /usr/ports .... + . Conforme necessário, atualize o [.filename]#/usr/ports# após o check out inicial do Subversion: + -[source,bash] +[source,shell] .... # svn update /usr/ports .... + . As needed, switch [.filename]#/usr/ports# to a different quarterly branch: + -[source,bash] +[source,shell] .... # svn switch http://svn.freebsd.org/ports/branches/2020Q4/ /usr/ports .... @@ -699,7 +699,7 @@ O uso da coleção de ports pressupõe uma conexão de Internet ativa. Também r Para compilar e instalar o port, mude para o diretório do port a ser instalado e, em seguida, digite `make install` no prompt. Mensagens indicarão o progresso: -[source,bash] +[source,shell] .... # cd /usr/ports/sysutils/lsof # make install @@ -741,7 +741,7 @@ Algumas shells mantêm um cache dos comandos que estão disponíveis nos diretó Durante a instalação, é criado um subdiretório de trabalho que contém todos os arquivos temporários usados durante a compilação. A remoção desse diretório economiza espaço em disco e minimiza a possibilidade de problemas mais tarde ao atualizar para a versão mais recente do port: -[source,bash] +[source,shell] .... # make clean ===> Cleaning for lsof-88.d,8 @@ -771,7 +771,7 @@ Para usuários que não podem estar conectados à Internet o tempo todo, o `make Em casos raros, como quando uma organização tem um repositório local de distfiles, a variável `MASTER_SITES` pode ser usada para substituir os locais de download especificados no [.filename]#Makefile#. Ao usar, especifique o local alternativo: -[source,bash] +[source,shell] .... # cd /usr/ports/directory # make MASTER_SITE_OVERRIDE= \ @@ -780,21 +780,21 @@ ftp://ftp.organization.org/pub/FreeBSD/ports/distfiles/ fetch As variáveis `WRKDIRPREFIX` e `PREFIX` podem substituir os diretórios de trabalho e de destino padrão. Por exemplo: -[source,bash] +[source,shell] .... # make WRKDIRPREFIX=/usr/home/example/ports install .... irá compilar o port em [.filename]#/usr/home/example/ports# e instalar tudo sob [.filename]#/usr/local#. -[source,bash] +[source,shell] .... # make PREFIX=/usr/home/example/local install .... irá compilar o port em [.filename]#/usr/ports# e instalá-lo em [.filename]#/usr/home/example/local#. E: -[source,bash] +[source,shell] .... # make WRKDIRPREFIX=../ports PREFIX=../local install .... @@ -810,7 +810,7 @@ Ports instalados podem ser desinstalados usando `pkg delete`. Exemplos para usar Alternativamente, o `make deinstall` pode ser executado no diretório do port: -[source,bash] +[source,shell] .... # cd /usr/ports/sysutils/lsof # make deinstall @@ -833,14 +833,14 @@ Com o tempo, novas versões de software ficam disponíveis na coleção de ports Para determinar se versões mais recentes dos ports instalados estão disponíveis, verifique se a versão mais recente da árvore de ports está instalada, usando o comando de atualização descrito em <<ports-using-portsnap-method,Método Portsnap>> ou <<ports-using-subversion-method,Método Subversion>>. No FreeBSD 10 e posterior, ou se o sistema foi convertido para pkg, o seguinte comando listará os ports instalados que estão desatualizadas: -[source,bash] +[source,shell] .... # pkg version -l "<" .... Para o FreeBSD 9._X_ e menor, o seguinte comando listará os ports instalados que estão desatualizados: -[source,bash] +[source,shell] .... # pkg_version -l "<" .... @@ -867,7 +867,7 @@ A escolha da melhor ferramenta para um determinado sistema depende do administra O package:ports-mgmt/portmaster[] é um utilitário muito pequeno para atualizar os ports instalados. Ele é projetado para usar as ferramentas instaladas com o sistema base do FreeBSD sem depender de outros ports ou bancos de dados. Para instalar este utilitário como um port: -[source,bash] +[source,shell] .... # cd /usr/ports/ports-mgmt/portmaster # make install clean @@ -882,7 +882,7 @@ O Portmaster define quatro categorias de ports: Para listar essas categorias e procurar atualizações: -[source,bash] +[source,shell] .... # portmaster -L ===>>> Root ports (No dependencies, not depended on) @@ -909,7 +909,7 @@ Para listar essas categorias e procurar atualizações: Este comando é usado para atualizar todos os ports desatualizados: -[source,bash] +[source,shell] .... # portmaster -a .... @@ -921,14 +921,14 @@ Por padrão, o Portmaster faz um backup do pacote antes de excluir o port existe Se forem encontrados erros durante o processo de atualização, adicione `-f` para atualizar e recompilar todos os ports: -[source,bash] +[source,shell] .... # portmaster -af .... O Portmaster também pode ser usado para instalar novos ports no sistema, atualizando todas as dependências antes de compilar e instalar o novo port. Para usar essa função, especifique o local do port na coleção de ports: -[source,bash] +[source,shell] .... # portmaster shells/bash .... @@ -940,7 +940,7 @@ Maiores informações sobre package:ports-mgmt/portmaster[] podem ser encontrada O package:ports-mgmt/portupgrade[] é outro utilitário que pode ser usado para atualizar ports. Ele instala um conjunto de aplicativos que podem ser usados para gerenciar ports. No entanto, ele depende do Ruby. Para instalar o port: -[source,bash] +[source,shell] .... # cd /usr/ports/ports-mgmt/portupgrade # make install clean @@ -950,21 +950,21 @@ Antes de executar uma atualização usando esse utilitário, é recomendável ve Para atualizar todos os ports desatualizados instalados no sistema, use o `portupgrade -a`. Como alternativa, inclua `-i` para ser solicitado da confirmação de cada atualização individual: -[source,bash] +[source,shell] .... # portupgrade -ai .... Para atualizar apenas um aplicativo especifico em vez de todos os ports disponíveis, use `portupgrade _pkgname_`. É muito importante incluir `-R` para primeiro atualizar todos os ports requeridos pelo aplicativo fornecido: -[source,bash] +[source,shell] .... # portupgrade -R firefox .... Se `-P` estiver incluído, o Portupgrade procura pacotes disponíveis nos diretórios locais listados em `PKG_PATH`. Se nenhum estiver disponível localmente, ele buscará pacotes de um site remoto. Se os pacotes não puderem ser encontrados localmente ou buscados remotamente, o Portupgrade utilizará os ports. Para evitar completamente o uso do ports, especifique `-PP`. Este último conjunto de opções diz ao Portupgrade para cancelar se nenhum pacote estiver disponível: -[source,bash] +[source,shell] .... # portupgrade -PP gnome3 .... @@ -978,28 +978,28 @@ Maiores informações sobre o package:ports-mgmt/portupgrade[] podem ser encontr A utilização da coleção de ports irá ocupar espaço em disco ao longo do tempo. Depois de compilar e instalar um port, executar `make clean` dentro do diretório de um port limpará o diretório temporário de [.filename]#trabalho#. Se o Portmaster for usado para instalar um port, ele removerá automaticamente esse diretório, a menos que `-K` seja especificado. Se o Portupgrade estiver instalado, este comando removerá todos os diretórios de [.filename]#trabalho# encontrados na cópia local da coleção de ports: -[source,bash] +[source,shell] .... # portsclean -C .... Além disso, arquivos de distribuição de código-fonte desatualizados se acumulam no [.filename]#/usr/ports/distfiles# ao longo do tempo. Para usar Portupgrade para excluir todos os distfiles que não são mais referenciados por nenhum port: -[source,bash] +[source,shell] .... # portsclean -D .... O Portupgrade pode remover todos os distfiles não referenciados por qualquer port atualmente instalado no sistema: -[source,bash] +[source,shell] .... # portsclean -DD .... Se o Portmaster estiver instalado, use: -[source,bash] +[source,shell] .... # portmaster --clean-distfiles .... @@ -1024,7 +1024,7 @@ O número de núcleos do processador detectados é usado para definir quantas co Após a configuração, inicialize o poudriere para que ele instale um jail com a árvore do FreeBSD requerida e uma árvore de ports. Especifique um nome para o jail usando `-j` e a versão do FreeBSD com `-v`. Em sistemas que executam o FreeBSD/amd64, a arquitetura pode ser definida com `-a` para `i386` ou `amd64`. O padrão é a arquitetura mostrada pelo `uname`. -[source,bash] +[source,shell] .... # poudriere jail -c -j 11amd64 -v 11.4-RELEASE [00:00:00] Creating 11amd64 fs at /poudriere/jails/11amd64... done @@ -1072,7 +1072,7 @@ Scanning //usr/share/certs/trusted for certificates... [00:04:07] Jail 11amd64 11.4-RELEASE-p1 amd64 is ready to be used .... -[source,bash] +[source,shell] .... # poudriere ports -c -p local -m svn+https [00:00:00] Creating local fs at /poudriere/ports/local... done @@ -1095,14 +1095,14 @@ ports-mgmt/pkg Opções e dependências para os ports especificados são configuradas: -[source,bash] +[source,shell] .... # poudriere options -j 11amd64 -p local -z workstation -f 11amd64-local-workstation-pkglist .... Finalmente, os pacotes são compilados e um repositório de pacotes é criado: -[source,bash] +[source,shell] .... # poudriere bulk -j 11amd64 -p local -z workstation -f 11amd64-local-workstation-pkglist .... diff --git a/documentation/content/pt-br/books/handbook/ppp-and-slip/_index.adoc b/documentation/content/pt-br/books/handbook/ppp-and-slip/_index.adoc index d2651942ac..9c08de8686 100644 --- a/documentation/content/pt-br/books/handbook/ppp-and-slip/_index.adoc +++ b/documentation/content/pt-br/books/handbook/ppp-and-slip/_index.adoc @@ -361,14 +361,14 @@ Uma alternativa é configurar um "dfilter" para bloquear o tráfego SMTP. Consul Tudo o que resta é reiniciar a máquina. Após a reinicialização, digite: -[source,bash] +[source,shell] .... # ppp .... e, em seguida, o `dial provider` para iniciar a sessão PPP ou para configurar o `ppp` para estabelecer sessões automaticamente quando houver tráfego de saída e o [.filename]#start_if .tun0# não existir, digite: -[source,bash] +[source,shell] .... # ppp -auto provider .... @@ -453,7 +453,7 @@ device uart O dispositivo [.filename]#uart# já está incluído no kernel `GENERIC`, portanto, nenhuma etapa adicional é necessária neste caso. Basta verificar a saída do `dmesg` para o dispositivo do modem com: -[source,bash] +[source,shell] .... # dmesg | grep uart .... @@ -464,33 +464,33 @@ Isso deve exibir alguma saída pertinente sobre os dispositivos [.filename]#uart Conectar-se à Internet controlando manualmente o `ppp` é rápido, fácil e uma ótima maneira de depurar uma conexão ou simplesmente obter informações sobre como o ISP trata as conexões `ppp` do cliente. Vamos iniciar o PPP na linha de comando. Note que em todos os nossos exemplos nós usaremos _example_ como o nome do host da máquina rodando o PPP. Para iniciar o `ppp`: -[source,bash] +[source,shell] .... # ppp .... -[source,bash] +[source,shell] .... ppp ON example> set device /dev/cuau1 .... Este segundo comando define o dispositivo do modem como [.filename]#cuau1#. -[source,bash] +[source,shell] .... ppp ON example> set speed 115200 .... Isso define a velocidade de conexão para 115.200 kbps. -[source,bash] +[source,shell] .... ppp ON example> enable dns .... Isto diz ao `ppp` para configurar o resolver e adicionar as linhas do servidor de nomes ao [.filename]#/etc/resolv.conf#. Se o `ppp` não puder determinar o nome do host, ele poderá ser configurado manualmente mais tarde. -[source,bash] +[source,shell] .... ppp ON example> term .... @@ -503,7 +503,7 @@ deflink: Entering terminal mode on /dev/cuau1 type '~h' for help .... -[source,bash] +[source,shell] .... at OK @@ -512,56 +512,56 @@ OK Use o comando `at` para inicializar o modem, então use o comando `atdt` e o número o ISP para iniciar o processo de discagem. -[source,bash] +[source,shell] .... CONNECT .... Confirmação da conexão, se tivermos problemas de conexão, não relacionados ao hardware, aqui é onde tentaremos resolvê-los. -[source,bash] +[source,shell] .... ISP Login:myusername .... Nesse prompt, responda com o nome de usuário fornecido pelo ISP. -[source,bash] +[source,shell] .... ISP Pass:mypassword .... Nesse prompt, responda com a senha fornecida pelo ISP. Assim como ocorre ao se logar no FreeBSD, a senha não será exibida quando você a digitar. -[source,bash] +[source,shell] .... Shell or PPP:ppp .... Dependendo do ISP, este aviso pode não aparecer. Em caso afirmativo, ele está perguntando se deve usar um shell no provedor ou iniciar o `ppp`. Neste exemplo, o `ppp` foi selecionado para estabelecer uma conexão com a Internet. -[source,bash] +[source,shell] .... Ppp ON example> .... Observe que neste exemplo o primeiro `p` foi capitalizado. Isso mostra que nós nos conectamos com sucesso ao ISP. -[source,bash] +[source,shell] .... PPp ON example> .... Nós nos autenticamos com sucesso com nosso ISP e estamos aguardando que o endereço IP seja atribuído. -[source,bash] +[source,shell] .... PPP ON example> .... Fizemos a negociação de um endereço IP e concluímos nossa conexão com êxito. -[source,bash] +[source,shell] .... PPP ON example>add default HISADDR .... @@ -580,14 +580,14 @@ O PPP pode não retornar ao modo de comando, que geralmente é um erro de negoci Se um prompt de login nunca aparecer, a autenticação PAP ou CHAP provavelmente será necessária. Para usar PAP ou CHAP, adicione as seguintes opções ao PPP antes de entrar no modo terminal: -[source,bash] +[source,shell] .... ppp ON example> set authname myusername .... Onde _myusername_ deve ser substituído pelo nome de usuário que foi atribuído pelo ISP. -[source,bash] +[source,shell] .... ppp ON example> set authkey mypassword .... @@ -637,7 +637,7 @@ name_of_service_provider: Como `root`, execute: -[source,bash] +[source,shell] .... # ppp -ddial name_of_service_provider .... @@ -687,7 +687,7 @@ net.graph.nonstandard_pppoe=1 ou pode ser feito imediatamente com o comando: -[source,bash] +[source,shell] .... # sysctl net.graph.nonstandard_pppoe=1 .... @@ -759,14 +759,14 @@ adsl: É possível inicializar a conexão facilmente, emitindo o seguinte comando como `root`: -[source,bash] +[source,shell] .... # mpd -b adsl .... Para ver o status da conexão: -[source,bash] +[source,shell] .... % ifconfig ng0 ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500 @@ -802,7 +802,7 @@ adsl: Como a senha da conta é adicionada ao [.filename]#ppp.conf# em forma de texto simples, certifique-se de que ninguém possa ler o conteúdo deste arquivo: -[source,bash] +[source,shell] .... # chown root:wheel /etc/ppp/ppp.conf # chmod 600 /etc/ppp/ppp.conf @@ -812,7 +812,7 @@ Como a senha da conta é adicionada ao [.filename]#ppp.conf# em forma de texto s Isso abrirá um túnel para uma sessão PPP para o roteador DSL. Os modems Ethernet DSL têm um endereço IP LAN pré-configurado para conexão. No caso do Alcatel SpeedTouch(TM) Home, este endereço é `10.0.0.138`. A documentação do roteador deve listar o endereço que o dispositivo usa. Para abrir o túnel e iniciar uma sessão PPP: -[source,bash] +[source,shell] .... # pptp address adsl .... @@ -825,7 +825,7 @@ Se um E comercial ("&") for adicionado ao final desse comando, o pptp retornará Um dispositivo de túnel virtual [.filename]#tun# será criado para interação entre os processos do pptp e do ppp. Quando o prompt for retornado ou o processo do pptp confirmar uma conexão, examine o túnel: -[source,bash] +[source,shell] .... % ifconfig tun0 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 diff --git a/documentation/content/pt-br/books/handbook/preface/_index.adoc b/documentation/content/pt-br/books/handbook/preface/_index.adoc index 756d305bf7..30cff90dc4 100644 --- a/documentation/content/pt-br/books/handbook/preface/_index.adoc +++ b/documentation/content/pt-br/books/handbook/preface/_index.adoc @@ -223,21 +223,21 @@ Significaria que o usuário deve digitar as teclas kbd:[Ctrl] e kbd:[X] simultan Exemplos começando com [.filename]#C:\># indicam um comando MS-DOS(TM). Salvo indicação em contrário, estes comandos podem ser executados a partir de uma janela de "Prompt de Comando" em um ambiente Microsoft(TM)Windows(TM). -[source,bash] +[source,shell] .... E:\> tools\fdimage floppies\kern.flp A: .... Exemplos começando com `#` indicam um comando que deve ser executado como superusuário no FreeBSD. Você pode logar como `root` para digitar o comando, ou logar como sua conta normal e usar o comando man:su[1] para obter privilégios de superusuário. -[source,bash] +[source,shell] .... # dd if=kern.flp of=/dev/fd0 .... Exemplos começando com `%` indicam um comando que deve ser chamado a partir de uma conta de usuário normal. Salvo indicação em contrário, a sintaxe C-shell é usada para definir variáveis de ambiente e outros comandos do shell. -[source,bash] +[source,shell] .... % top .... diff --git a/documentation/content/pt-br/books/handbook/printing/_index.adoc b/documentation/content/pt-br/books/handbook/printing/_index.adoc index 4b1de03ae3..9fe885e1a7 100644 --- a/documentation/content/pt-br/books/handbook/printing/_index.adoc +++ b/documentation/content/pt-br/books/handbook/printing/_index.adoc @@ -57,7 +57,7 @@ A impressão básica pode ser configurada rapidamente. A impressora deve ser cap . Crie um diretório para armazenar arquivos enquanto eles estão sendo impressos: + -[source,bash] +[source,shell] .... # mkdir -p /var/spool/lpd/lp # chown daemon:daemon /var/spool/lpd/lp @@ -86,7 +86,7 @@ lpd_enable="YES" + Inicie o serviço: + -[source,bash] +[source,shell] .... # service lpd start Starting lpd. @@ -94,7 +94,7 @@ Starting lpd. + . Imprima um teste: + -[source,bash] +[source,shell] .... # printf "1. This printer can print.\n2. This is the second line.\n" | lpr .... @@ -107,7 +107,7 @@ Se ambas as linhas não iniciarem na borda esquerda, mas em "degrau", consulte < + Arquivos de texto agora podem ser impressos com `lpr`. Dê o nome do arquivo na linha de comando ou canalize a saída diretamente no `lpr`. + -[source,bash] +[source,shell] .... % lpr textfile.txt % ls -lh | lpr @@ -222,14 +222,14 @@ Descrições de muitos PDLs podem ser encontradas em http://www.undocprint.org/f Para impressão ocasional, os arquivos podem ser enviados diretamente para um dispositivo de impressora sem qualquer configuração. Por exemplo, um arquivo chamado [.filename]#exemplo.txt# pode ser enviado para uma impressora USB: -[source,bash] +[source,shell] .... # cp sample.txt /dev/unlpt0 .... A impressão direta para impressoras de rede depende das capacidades da impressora, mas a maioria aceita trabalhos de impressão na porta 9100, e o man:nc[1] pode ser usado com eles. Para imprimir o mesmo arquivo em uma impressora com o nome de host DNS de _netlaser_: -[source,bash] +[source,shell] .... # nc netlaser 9100 < sample.txt .... @@ -246,7 +246,7 @@ O FreeBSD inclui um spooler chamado man:lpd[8]. Os trabalhos de impressão são Um diretório para armazenar trabalhos de impressão é criado, a propriedade é definida e as permissões são definidas para impedir que outros usuários visualizem o conteúdo desses arquivos: -[source,bash] +[source,shell] .... # mkdir -p /var/spool/lpd/lp # chown daemon:daemon /var/spool/lpd/lp @@ -279,7 +279,7 @@ lp:\ <.> Depois de criar o [.filename]#/etc/printcap#, use man:chkprintcap[8] para testar se há erros: -[source,bash] +[source,shell] .... # chkprintcap .... @@ -295,7 +295,7 @@ lpd_enable="YES" Inicie o serviço: -[source,bash] +[source,shell] .... # service lpd start .... @@ -305,7 +305,7 @@ Inicie o serviço: Os documentos são enviados para a impressora com o `lpr`. Um arquivo a ser impresso pode ser nomeado na linha de comando ou canalizado para o `lpr`. Esses dois comandos são equivalentes, enviando o conteúdo de [.filename]#doc.txt# para a impressora padrão: -[source,bash] +[source,shell] .... % lpr doc.txt % cat doc.txt | lpr @@ -313,7 +313,7 @@ Os documentos são enviados para a impressora com o `lpr`. Um arquivo a ser impr Impressoras podem ser selecionadas com `-P`. Para imprimir em uma impressora chamada _laser_: -[source,bash] +[source,shell] .... % lpr -Plaser doc.txt .... @@ -379,7 +379,7 @@ CR=$'\r' Defina as permissões e torne-o executável: -[source,bash] +[source,shell] .... # chmod 555 /usr/local/libexec/lf2crlf .... @@ -408,7 +408,7 @@ Crie o [.filename]#/usr/local/libexec/enscript# com este conteúdo: Defina as permissões e torne-o executável: -[source,bash] +[source,shell] .... # chmod 555 /usr/local/libexec/enscript .... @@ -439,7 +439,7 @@ Crie o [.filename]#/usr/local/libexec/ps2pcl# com este conteúdo: Defina as permissões e torne-o executável: -[source,bash] +[source,shell] .... # chmod 555 /usr/local/libexec/ps2pcl .... @@ -455,7 +455,7 @@ Modifique o [.filename]#/etc/printcap# para usar este novo filtro de entrada: Teste o filtro enviando um pequeno programa PostScript(TM) para ele: -[source,bash] +[source,shell] .... % printf "%%\!PS \n /Helvetica findfont 18 scalefont setfont \ 72 432 moveto (PostScript printing successful.) show showpage \004" | lpr @@ -491,7 +491,7 @@ esac Defina as permissões e torne-o executável: -[source,bash] +[source,shell] .... # chmod 555 /usr/local/libexec/psif .... @@ -551,7 +551,7 @@ O man:lpq[1] mostra o status das tarefas de impressão de um usuário. Trabalhos Mostra os trabalhos pendentes do usuário atual em uma única impressora: -[source,bash] +[source,shell] .... % lpq -Plp Rank Owner Job Files Total Size @@ -560,7 +560,7 @@ Rank Owner Job Files Total Size Mostra os trabalhos pendentes do usuário atual em todas as impressoras: -[source,bash] +[source,shell] .... % lpq -a lp: @@ -579,7 +579,7 @@ O man:lprm[1] é usado para remover trabalhos de impressão. Usuários normais s Remova todos os trabalhos pendentes de uma impressora: -[source,bash] +[source,shell] .... # lprm -Plp - dfA002smithy dequeued @@ -592,7 +592,7 @@ cfA004smithy dequeued Remova um único trabalho de uma impressora. O man:lpq[1] é usado para encontrar o número do trabalho. -[source,bash] +[source,shell] .... % lpq Rank Owner Job Files Total Size @@ -609,7 +609,7 @@ O man:lpc[8] é usado para verificar e modificar o status da impressora. O `lpc` Mostrar o status de todas as impressoras: -[source,bash] +[source,shell] .... % lpc status all lp: @@ -626,7 +626,7 @@ laser: Impedindo que uma impressora aceite novos trabalhos e fazendo com que ela comece a aceitar novos trabalhos novamente: -[source,bash] +[source,shell] .... # lpc disable lp lp: @@ -638,7 +638,7 @@ lp: Pare de imprimir, mas continue aceitando novos trabalhos. Em seguida, comece a imprimir novamente: -[source,bash] +[source,shell] .... # lpc stop lp lp: @@ -651,7 +651,7 @@ lp: Reinicie uma impressora após alguma condição de erro: -[source,bash] +[source,shell] .... # lpc restart lp lp: @@ -662,7 +662,7 @@ lp: Desative a fila de impressão e desative a impressão, com uma mensagem para explicar o problema aos usuários: -[source,bash] +[source,shell] .... # lpc down lp Repair parts will arrive on Monday lp: @@ -672,7 +672,7 @@ lp: Reative uma impressora que esteja inativa: -[source,bash] +[source,shell] .... # lpc up lp lp: @@ -699,14 +699,14 @@ lp|repairsprinter|salesprinter:\ Os aliases podem ser usados no lugar do nome da impressora. Por exemplo, os usuários do departamento de vendas imprimem em sua impressora com -[source,bash] +[source,shell] .... % lpr -Psalesprinter sales-report.txt .... Usuários do departamento de Reparos podem imprimir na _sua_ impressora com -[source,bash] +[source,shell] .... % lpr -Prepairsprinter repairs-report.txt .... diff --git a/documentation/content/pt-br/books/handbook/security/_index.adoc b/documentation/content/pt-br/books/handbook/security/_index.adoc index 628fb89fc8..de9c73b3a8 100644 --- a/documentation/content/pt-br/books/handbook/security/_index.adoc +++ b/documentation/content/pt-br/books/handbook/security/_index.adoc @@ -97,14 +97,14 @@ Ao garantir a segurança de um sistema, um bom ponto de partida é uma auditoria Para negar acesso de login a contas, existem dois métodos. O primeiro é bloquear a conta. Este exemplo bloqueia a conta `toor`: -[source,bash] +[source,shell] .... # pw lock toor .... O segundo método é impedir o acesso ao login alterando o shell para [.filename]#/usr/sbin/nologin#. Apenas o superusuário pode alterar o shell para outros usuários: -[source,bash] +[source,shell] .... # chsh -s /usr/sbin/nologin toor .... @@ -120,7 +120,7 @@ O segundo e recomendado método para permitir o escalonamento de privilégios é Após a instalação, use o `visudo` para editar o [.filename]#/usr/local/etc/sudoers#. Este exemplo cria um novo grupo `webadmin`, adiciona a conta `trhodes` a esse grupo e configura esse acesso de grupo para reiniciar o package:apache24[]: -[source,bash] +[source,shell] .... # pw groupadd webadmin -M trhodes -g 6000 # visudo @@ -139,7 +139,7 @@ O Blowfish não faz parte do AES e não é considerado compatível com nenhum Fe Para determinar qual algoritmo de hash é usado para criptografar a senha de um usuário, o superusuário pode visualizar o hash do usuário no banco de dados de senhas do FreeBSD. Cada hash começa com um símbolo que indica o tipo de mecanismo de hash usado para criptografar a senha. Se DES for usado, não haverá símbolo de início. Para MD5, o símbolo é `$`. Para SHA256 e SHA512, o símbolo é `$6$`. Para o Blowfish, o símbolo é `$2a$`. Neste exemplo, a senha para `dru` é criptografada usando o algoritmo SHA512 padrão quando o hash começa com `$6$`. Observe que o hash criptografado, não a senha em si, é armazenado no banco de dados de senhas: -[source,bash] +[source,shell] .... # grep dru /etc/master.passwd dru:$6$pzIjSvCAn.PBYQBA$PXpSeWPx3g5kscj3IMiM7tUEUSPmGexxta.8Lt9TGSi2lNQqYGKszsBPuGME0:1001:1001::0:0:dru:/usr/home/dru:/bin/csh @@ -183,7 +183,7 @@ A configuração `similar` nega senhas semelhantes à senha anterior do usuário Depois que este arquivo for salvo, um usuário que alterar sua senha verá uma mensagem semelhante a seguinte: -[source,bash] +[source,shell] .... % passwd Changing local password for trhodes @@ -214,7 +214,7 @@ Portanto, para definir uma expiração de 90 dias para esta classe de login, rem Para definir a expiração em usuários individuais, passe uma data de expiração ou o número de dias para expirar e um nome de usuário para o comando `pw`: -[source,bash] +[source,shell] .... # pw usermod -p 30-apr-2015 -n trhodes .... @@ -230,7 +230,7 @@ Um rootkit faz uma coisa útil para administradores: uma vez detectado, é um si Após a instalação deste pacote ou port, o sistema pode ser verificado usando o seguinte comando. Ele produzirá muitas informações e exigirá uma entrada manual da tecla kbd:[ENTER]: -[source,bash] +[source,shell] .... # rkhunter -c .... @@ -248,7 +248,7 @@ O FreeBSD fornece suporte nativo para um sistema de IDS básico. Embora os email O utilitário `mtree` embutido pode ser usado para gerar uma especificação do conteúdo de um diretório. Um seed, ou uma constante numérica, é usada para gerar a especificação e é necessária para verificar se a especificação não foi alterada. Isso possibilita determinar se um arquivo ou binário foi modificado. Como o valor inicial do seed é desconhecido por um invasor, disfarçar ou impossibilitar a verificação dos valores de checksum dos arquivos será difícil ou impossível. O exemplo a seguir gera um conjunto de hashes SHA256, um para cada sistema binário no diretório [.filename]#/bin# e salva esses valores em um arquivo oculto no diretório inicial do `root`, [.filename]#/root/.bin_chksum_mtree#: -[source,bash] +[source,shell] .... # mtree -s 3483151339707503 -c -K cksum,sha256digest -p /bin > /root/.bin_chksum_mtree # mtree: /bin checksum: 3427012225 @@ -286,7 +286,7 @@ O nome do host da máquina, a data e a hora em que a especificação foi criada Para verificar se as assinaturas binárias não foram alteradas, compare o conteúdo atual do diretório com a especificação gerada anteriormente e salve os resultados em um arquivo. Este comando requer o seed que foi usado para gerar a especificação original: -[source,bash] +[source,shell] .... # mtree -s 3483151339707503 -p /bin < /root/.bin_chksum_mtree >> /root/.bin_chksum_output # mtree: /bin checksum: 3427012225 @@ -294,7 +294,7 @@ Para verificar se as assinaturas binárias não foram alteradas, compare o conte Isso deve produzir o mesmo checksum para [.filename]#/bin# que foi produzido quando a especificação foi criada. Se nenhuma alteração tiver ocorrido nos binários nesse diretório, o arquivo de saída [.filename]#/root/.bin_chksum_output# estará vazio. Para simular uma alteração, altere a data no arquivo [.filename]#/bin/cat# usando o `touch` e execute o comando de verificação novamente: -[source,bash] +[source,shell] .... # touch /bin/cat # mtree -s 3483151339707503 -p /bin < /root/.bin_chksum_mtree >> /root/.bin_chksum_output @@ -352,7 +352,7 @@ Esta seção descreve quatro tipos diferentes de operações. A primeira é como Para inicializar o OPIE pela primeira vez, execute este comando a partir de um local seguro: -[source,bash] +[source,shell] .... % opiepasswd -c Adding unfurl: @@ -377,7 +377,7 @@ A linha `ID` lista o nome de login (`unfurl`), a contagem de iterações padrão Para inicializar ou alterar a senha secreta em um sistema inseguro, é necessária uma conexão segura em algum lugar onde o `opiekey` possa ser executado. Isso pode ser um prompt de shell em uma máquina confiável. Uma contagem de iteração é necessária, em que 100 é provavelmente um bom valor, e o seed pode ser especificado ou a gerado aleatoriamente. Na conexão insegura, a máquina sendo inicializada, use man:opiepasswd[1]: -[source,bash] +[source,shell] .... % opiepasswd @@ -396,7 +396,7 @@ LINE PAP MILK NELL BUOY TROY Para aceitar o seed padrão, pressione kbd:[Return]. Antes de inserir uma senha de acesso, passe para a conexão segura e forneça os mesmos parâmetros: -[source,bash] +[source,shell] .... % opiekey 498 to4268 Using the MD5 algorithm to compute response. @@ -411,7 +411,7 @@ Volte para a conexão insegura e copie a senha única gerada para o programa rel Depois de inicializar o OPIE e efetuar login, um prompt como este será exibido: -[source,bash] +[source,shell] .... % telnet example.com Trying 10.0.0.1... @@ -431,7 +431,7 @@ Neste ponto, gere a senha de uso único para responder a este aviso de login. Is No sistema confiável: -[source,bash] +[source,shell] .... % opiekey 498 to4268 Using the MD5 algorithm to compute response. @@ -446,7 +446,7 @@ Depois que a senha descartável for gerada, continue a logar. Às vezes, não há acesso a uma máquina confiável ou conexão segura. Neste caso, é possível usar o man:opiekey[1] para gerar algumas de senhas de uso único antecipadamente. Por exemplo: -[source,bash] +[source,shell] .... % opiekey -n 5 30 zz99999 Using the MD5 algorithm to compute response. @@ -514,7 +514,7 @@ qpopper : ALL : allow Sempre que este arquivo for editado, reinicie o inetd: -[source,bash] +[source,shell] .... # service inetd restart .... @@ -606,14 +606,14 @@ Embora a execução de um KDC exija poucos recursos de computação, uma máquin Para começar, instale o pacote package:security/heimdal[] assim: -[source,bash] +[source,shell] .... # pkg install heimdal .... Em seguida, edite o [.filename]#/etc/rc.conf# como a seguir: -[source,bash] +[source,shell] .... # sysrc kdc_enable=yes # sysrc kadmind_enable=yes @@ -664,7 +664,7 @@ Para que os clientes possam encontrar os serviços Kerberos, eles _devem_ ter um Em seguida, crie o banco de dados do Kerberos que contém as chaves de todos os principals (usuários e hosts) criptografados com uma senha master. Não é necessário lembrar essa senha, pois ela será armazenada no arquivo [.filename]#/var/heimdal/m-key#; Seria razoável usar uma senha aleatória de 45 caracteres para essa finalidade. Para criar a chave master, execute `kstash` e digite uma senha: -[source,bash] +[source,shell] .... # kstash Master key: xxxxxxxxxxxxxxxxxxxxxxx @@ -673,7 +673,7 @@ Verifying password - Master key: xxxxxxxxxxxxxxxxxxxxxxx Depois que a chave master é criada, o banco de dados deve ser inicializado. A ferramenta administrativa do Kerberosman:kadmin[8] pode ser usada no KDC em um modo que opera diretamente no banco de dados, sem usar o serviço de rede man:kadmind[8], como `kadmin -l`. Isso resolve o problema do ovo e da galinha de tentar se conectar ao banco de dados antes de criá-lo. No prompt do `kadmin`, use o `init` para criar o banco de dados inicial do realm: -[source,bash] +[source,shell] .... # kadmin -l kadmin> init EXAMPLE.ORG @@ -682,7 +682,7 @@ Realm max ticket life [unlimited]: Por fim, enquanto ainda estiver no `kadmin`, crie o primeiro principal usando `add`. Atenha-se às opções padrão para o principal por enquanto, pois elas podem ser alteradas posteriormente com `modify`. Digite `?` no prompt para ver as opções disponíveis. -[source,bash] +[source,shell] .... kadmin> add tillman Max ticket life [unlimited]: @@ -696,7 +696,7 @@ Verifying password - Password: xxxxxxxx Em seguida, inicie o serviço KDC executando: -[source,bash] +[source,shell] .... # service kdc start # service kadmind start @@ -704,7 +704,7 @@ Em seguida, inicie o serviço KDC executando: Embora não tenha nenhum daemon do kerberos em execução neste ponto, é possível confirmar que o KDC está funcionando obtendo um ticket para o principal que acabou de ser criado: -[source,bash] +[source,shell] .... % kinit tillman tillman@EXAMPLE.ORG's Password: @@ -712,7 +712,7 @@ tillman@EXAMPLE.ORG's Password: Confirme se um ticket foi obtido com sucesso usando `klist`: -[source,bash] +[source,shell] .... % klist Credentials cache: FILE:/tmp/krb5cc_1001 @@ -724,7 +724,7 @@ Aug 27 15:37:58 2013 Aug 28 01:37:58 2013 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG O ticket temporário pode ser destruído quando o teste terminar: -[source,bash] +[source,shell] .... % kdestroy .... @@ -739,7 +739,7 @@ Naturalmente, o `kadmin` é um serviço kerberizado; um tíquete Kerberos é nec Depois de instalar o arquivo [.filename]#/etc/krb5.conf#, use o `add --random-key` no `kadmin`. Isso adiciona o principal do host do servidor ao banco de dados, mas não extrai uma cópia da chave principal do host para um keytab. Para gerar o keytab, use `ext` para extrair a chave principal do host do servidor para seu próprio keytab: -[source,bash] +[source,shell] .... # kadmin kadmin> add --random-key host/myserver.example.org @@ -754,7 +754,7 @@ kadmin> exit Note que o `ext_keytab` por padrão armazena a chave extraída no arquivo [.filename]#/etc/krb5.keytab#. Isso é bom quando executado no servidor que está sendo kerberizado, mas o argumento `--keytab _path/to/file_` deve ser usado quando o keytab estiver sendo extraído em outro lugar: -[source,bash] +[source,shell] .... # kadmin kadmin> ext_keytab --keytab=/tmp/example.keytab host/myserver.example.org @@ -869,7 +869,7 @@ Para obter maiores informações sobre o SSL, leia o https://www.feistyduck.com/ Para gerar um certificado que será assinado por uma CA externa, emita o seguinte comando e insira as informações solicitadas nos prompts. Esta informação de entrada será gravada no certificado. No prompt `Common Name`, insira o nome completo para o sistema que usará o certificado. Se esse nome não corresponder ao servidor, a aplicação que estiver verificando o certificado emitirá um aviso para o usuário, tornando a verificação provida pelo certificado inútil. -[source,bash] +[source,shell] .... # openssl req -new -nodes -out req.pem -keyout cert.key -sha256 -newkey rsa:2048 Generating a 2048 bit RSA private key @@ -904,7 +904,7 @@ Este comando irá criar dois arquivos no diretório atual. A solicitação de ce Como alternativa, se uma assinatura de uma CA não for necessária, um certificado auto-assinado poderá ser criado. Primeiro, gere a chave RSA: -[source,bash] +[source,shell] .... # openssl genrsa -rand -genkey -out cert.key 2048 0 semi-random bytes loaded @@ -916,7 +916,7 @@ e is 65537 (0x10001) Use essa chave para criar um certificado auto-assinado. Siga os prompts usuais para criar um certificado: -[source,bash] +[source,shell] .... # openssl req -new -x509 -days 365 -key cert.key -out cert.crt -sha256 You are about to be asked to enter information that will be incorporated @@ -957,7 +957,7 @@ sendmail_cert_cn="localhost.example.org" Isso criará automaticamente um certificado auto-assinado, [.filename]#/etc/mail/certs/host.cert#, uma chave de assinatura, [.filename]#/etc/mail/certs/host.key#, e um certificado CA, [.filename]#/etc/mail/certs/cacert.pem#. O certificado usará o `Common Name` especificado em `sendmail_cert_cn`. Depois de salvar as edições, reinicie o Sendmail: -[source,bash] +[source,shell] .... # service sendmail restart @@ -965,7 +965,7 @@ Isso criará automaticamente um certificado auto-assinado, [.filename]#/etc/mail Se tudo correr bem, não haverá mensagens de erro no arquivo [.filename]#/var/log/maillog#. Para um teste simples, conecte-se à porta de escuta do servidor de correio usando o `telnet`: -[source,bash] +[source,shell] .... # telnet example.com 25 Trying 192.0.34.166... @@ -1008,7 +1008,7 @@ O IPsec suporta dois modos de operação. O primeiro modo, _Modo de Transporte_, O suporte a IPsec é ativado por padrão no FreeBSD 11 e posteriores. Para versões anteriores do FreeBSD, adicione estas opções a um arquivo de configuração de kernel personalizado e recompile o kernel usando as instruções em crossref:kernelconfig[kernelconfig, Configurando o kernel do FreeBSD]: -[source,bash] +[source,shell] .... options IPSEC IP security device crypto @@ -1016,7 +1016,7 @@ device crypto Se o suporte a depuração do IPsec for desejado, a seguinte opção de kernel também deve ser adicionada: -[source,bash] +[source,shell] .... options IPSEC_DEBUG debug for IP security .... @@ -1033,7 +1033,7 @@ Para começar, o package:security/ipsec-tools[] deve ser instalado a partir da C O próximo requisito é criar dois pseudo-dispositivos man:gif[4] que serão usados para encapsular pacotes e permitir que ambas as redes se comuniquem adequadamente. Como `root`, execute os seguintes comandos, substituindo _internal_ e _external_ pelos endereços IP reais das interfaces internas e externas dos dois gateways: -[source,bash] +[source,shell] .... # ifconfig gif0 create # ifconfig gif0 internal1 internal2 @@ -1062,7 +1062,7 @@ inet6 fe80::250:bfff:fe3a:c1f%gif0 prefixlen 64 scopeid 0x4 Depois de concluídos, os dois endereços de IP internos devem ser acessados usando man:ping[8]: -[source,bash] +[source,shell] .... priv-net# ping 10.0.0.5 PING 10.0.0.5 (10.0.0.5): 56 data bytes @@ -1075,7 +1075,7 @@ PING 10.0.0.5 (10.0.0.5): 56 data bytes round-trip min/avg/max/stddev = 19.255/25.879/42.786/9.782 ms .... -[source,bash] +[source,shell] .... corp-net# ping 10.246.38.1 PING 10.246.38.1 (10.246.38.1): 56 data bytes @@ -1091,7 +1091,7 @@ round-trip min/avg/max/stddev = 28.106/94.594/154.524/49.814 ms Como esperado, ambos os lados têm a capacidade de enviar e receber pacotes ICMP dos endereços configurados de forma privada. Em seguida, os dois gateways devem ser informados sobre como rotear pacotes para enviar corretamente o tráfego de qualquer rede. Os seguintes comandos atingirão esse objetivo: -[source,bash] +[source,shell] .... corp-net# route add 10.0.0.0 10.0.0.5 255.255.255.0 corp-net# route add net 10.0.0.0: gateway 10.0.0.5 @@ -1206,14 +1206,14 @@ spdadd 10.0.0.0/24 10.246.38.0/24 any -P in ipsec esp/tunnel/192.168.1.12-172.16 Uma vez que o arquivo estiver no seu lugar, o racoon pode ser iniciado em ambos os gateways usando o seguinte comando: -[source,bash] +[source,shell] .... # /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.log .... A saída deve ser semelhante à seguinte: -[source,bash] +[source,shell] .... corp-net# /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf Foreground mode. @@ -1231,7 +1231,7 @@ Foreground mode. Para garantir que o túnel esteja funcionando corretamente, mude para outro console e use o man:tcpdump[1] para exibir o tráfego de rede usando o comando a seguir. Substitua `em0` pela placa de interface de rede conforme necessário: -[source,bash] +[source,shell] .... # tcpdump -i em0 host 172.16.5.4 and dst 192.168.1.12 .... @@ -1301,7 +1301,7 @@ Esta seção fornece uma visão geral dos utilitários embutidos de cliente para Para logar em um servidor SSH, use `ssh` e especifique um nome de usuário que exista naquele servidor e o endereço IP ou nome de host do servidor. Se esta for a primeira vez que uma conexão foi feita ao servidor especificado, o usuário será solicitado a primeiro verificar a impressão digital do servidor: -[source,bash] +[source,shell] .... # ssh user@example.com The authenticity of host 'example.com (10.0.0.1)' can't be established. @@ -1317,7 +1317,7 @@ Por padrão, versões recentes do OpenSSH aceitam apenas conexões SSH v2. Por p Use o man:scp[1] para copiar com segurança um arquivo para ou de uma máquina remota. Este exemplo copia o arquivo [.filename]#COPYRIGHT# do sistema remoto para um arquivo com o mesmo nome no diretório atual do sistema local: -[source,bash] +[source,shell] .... # scp user@example.com:/COPYRIGHT COPYRIGHT Password for user@example.com: ******* @@ -1337,7 +1337,7 @@ Para abrir uma sessão interativa para copiar arquivos, use o `sftp`. Consulte m Em vez de usar senhas, um cliente pode ser configurado para se conectar à máquina remota usando chaves. Para gerar chaves de autenticação RSA, use o `ssh-keygen`. Para gerar um par de chaves pública e privada, especifique o tipo de chave e siga os prompts. Recomenda-se proteger as chaves com uma senha memorável, mas difícil de se adivinhar. -[source,bash] +[source,shell] .... % ssh-keygen -t rsa Generating public/private rsa key pair. @@ -1381,7 +1381,7 @@ A autenticação é feita pelo `ssh-agent`, usando as chaves privadas que estão Para usar o `ssh-agent` em um shell, inicie-o com um shell como um argumento. Adicione a identidade executando `ssh-add` e inserindo a senha para a chave privada. O usuário então poderá executar o `ssh` para se conectar em qualquer host que tenha a chave pública correspondente instalada. Por exemplo: -[source,bash] +[source,shell] .... % ssh-agent csh % ssh-add @@ -1408,7 +1408,7 @@ O OpenSSH tem a capacidade de criar um tunel para encapsular outro protocolo em O comando a seguir informa ao `ssh` para criar um túnel para o telnet: -[source,bash] +[source,shell] .... % ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com % @@ -1439,7 +1439,7 @@ Esse método pode ser usado para agrupar qualquer número de protocolos TCP inse [example] ==== -[source,bash] +[source,shell] .... % ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com user@mailserver.example.com's password: ***** @@ -1457,7 +1457,7 @@ Isso pode ser usado em conjunto com `ssh-keygen` e contas de usuário adicionais ==== Neste exemplo, há um servidor SSH que aceita conexões de fora. Na mesma rede, existe um servidor de email que executa um servidor POP3. Para verificar o e-mail de maneira segura, crie uma conexão SSH com o servidor SSH e encaminhe para o servidor de e-mail: -[source,bash] +[source,shell] .... % ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com user@ssh-server.example.com's password: ****** @@ -1473,7 +1473,7 @@ Alguns firewalls filtram as conexões de entrada e saída. Por exemplo, um firew A solução é criar uma conexão SSH com uma máquina fora do firewall da rede e usá-la para encapsular o serviço desejado: -[source,bash] +[source,shell] .... % ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org user@unfirewalled-system.example.org's password: ******* @@ -1488,7 +1488,7 @@ Além de fornecer utilitários de cliente SSH embutidos, um sistema FreeBSD pode Para ver se o sshd está operando, use o comando man:service[8]: -[source,bash] +[source,shell] .... # service sshd status .... @@ -1502,7 +1502,7 @@ sshd_enable="YES" Isso iniciará o sshd, o programa daemon para o OpenSSH, na próxima vez que o sistema for inicializado. Para iniciá-lo agora: -[source,bash] +[source,shell] .... # service sshd start .... @@ -1540,7 +1540,7 @@ AllowUsers root@192.168.1.32 admin Depois de fazer alterações no arquivo [.filename]#/etc/ssh/sshd_config#, informe o sshd para recarregar seu arquivo de configuração executando: -[source,bash] +[source,shell] .... # service sshd reload .... @@ -1608,7 +1608,7 @@ Neste exemplo, o [.filename]#directory1#, [.filename]#directory2# e [.filename]# As ACLs de um sistema de arquivos podem ser visualizadas usando `getfacl`. Por exemplo, para visualizar as configurações de ACL no arquivo [.filename]#test#: -[source,bash] +[source,shell] .... % getfacl test #file:test @@ -1621,14 +1621,14 @@ As ACLs de um sistema de arquivos podem ser visualizadas usando `getfacl`. Por e Para alterar as configurações de ACL neste arquivo, use `setfacl`. Para remover todos os ACLs atualmente definidos de um arquivo ou sistema de arquivos, inclua `-k`. No entanto, o método preferido é usar `-b`, pois ela deixa os campos básicos necessários para que as ACLs funcionem. -[source,bash] +[source,shell] .... % setfacl -k test .... Para modificar as entradas padrões das ACLs, use `-m`: -[source,bash] +[source,shell] .... % setfacl -m u:trhodes:rwx,group:web:r--,o::--- test .... @@ -1652,7 +1652,7 @@ A instalação fornece arquivos de configuração do man:periodic[8] para manter Após a instalação e para auditar utilitários de terceiros como parte da Coleção de Ports a qualquer momento, um administrador pode optar por atualizar o banco de dados e visualizar as vulnerabilidades conhecidas dos pacotes instalados, invocando: -[source,bash] +[source,shell] .... # pkg audit -F .... @@ -1868,7 +1868,7 @@ Se uma auditoria mais detalhada for necessária, consulte crossref:audit[audit, Antes de usar a auditoria de processos, ela deve ser ativada usando os seguintes comandos: -[source,bash] +[source,shell] .... # sysrc accounting_enable=yes # service accounting start @@ -1880,7 +1880,7 @@ Uma vez ativada, a auditoria começará a rastrear informações, como estatíst Para exibir os comandos emitidos pelos usuários, use o `lastcomm`. Por exemplo, este comando imprime todo o uso do comando `ls` pelo usuário `trhodes` no terminal `ttyp1`: -[source,bash] +[source,shell] .... # lastcomm ls trhodes ttyp1 .... @@ -1907,7 +1907,7 @@ No método tradicional, as classes de login e os limites de recursos a serem apl ==== Sempre que o arquivo [.filename]#/etc/login.conf# for editado, o [.filename]#/etc/login.conf.db# deve ser atualizado executando o seguinte comando: -[source,bash] +[source,shell] .... # cap_mkdb /etc/login.conf .... @@ -1984,7 +1984,7 @@ Nesta regra, o subject é `user`, o subject-id é `trhodes`, o resource, `maxpro Algum cuidado deve ser tomado ao adicionar regras. Como esse usuário está restrito a `10` processos, este exemplo impedirá que o usuário execute outras tarefas depois de efetuar login e executar uma sessão `screen`. Quando um limite de recurso for atingido, um erro será impresso, como neste exemplo: -[source,bash] +[source,shell] .... % man test /usr/bin/man: Cannot fork: Resource temporarily unavailable @@ -1993,7 +1993,7 @@ eval: Cannot fork: Resource temporarily unavailable Como outro exemplo, uma jail pode ser impedida de exceder um limite de memória. Esta regra pode ser escrita como: -[source,bash] +[source,shell] .... # rctl -a jail:httpd:memoryuse:deny=2G/jail .... @@ -2008,14 +2008,14 @@ jail:httpd:memoryuse:deny=2G/jail Para remover uma regra, use o `rctl` para removê-la da lista: -[source,bash] +[source,shell] .... # rctl -r user:trhodes:maxproc:deny=10/user .... Um método para remover todas as regras é documentado em man:rctl[8]. No entanto, se for necessário remover todas as regras para um único usuário, esse comando poderá ser emitido: -[source,bash] +[source,shell] .... # rctl -r user:trhodes .... @@ -2031,7 +2031,7 @@ Até este ponto, o capítulo de segurança cobriu o acesso a usuários autorizad O Sudo permite que os administradores configurem um acesso mais rígido aos comandos do sistema e forneçam alguns recursos avançados de log. Como uma ferramenta, ele está disponível na coleção de ports como package:security/sudo[] ou usando o utilitário man:pkg[8]. Para usar a ferramenta man:pkg[8]: -[source,bash] +[source,shell] .... # pkg install sudo .... @@ -2047,21 +2047,21 @@ user1 ALL=(ALL) /usr/sbin/service webservice * O usuário pode agora iniciar o _webservice_ usando este comando: -[source,bash] +[source,shell] .... % sudo /usr/sbin/service webservice start .... Embora essa configuração permita que um único usuário acesse o serviço webservice; No entanto, na maioria das organizações, existe uma equipe inteira da Web encarregada de gerenciar o serviço. Uma única linha também pode dar acesso a um grupo inteiro. Essas etapas criarão um grupo da Web, adicionarão um usuário a esse grupo e permitirão que todos os membros do grupo gerenciem o serviço: -[source,bash] +[source,shell] .... # pw groupadd -g 6001 -n webteam .... Usando o mesmo comando man:pw[8], o usuário é adicionado ao grupo webteam: -[source,bash] +[source,shell] .... # pw groupmod -m user1 -n webteam .... @@ -2114,14 +2114,14 @@ Uma vez que esta diretiva tenha sido adicionada ao arquivo [.filename]#sudoers#, Deste ponto em diante, todos os membros do grupo _webteam_ que alteram o status do aplicativo _webservice_ serão registrados. A lista de sessões anteriores e atuais pode ser exibida com: -[source,bash] +[source,shell] .... # sudoreplay -l .... Na saída, para reproduzir uma sessão específica, procure a entrada `TSID=` e passe-a para o sudoreplay sem outras opções para reproduzir a sessão na velocidade normal. Por exemplo: -[source,bash] +[source,shell] .... # sudoreplay user1/00/00/02 .... diff --git a/documentation/content/pt-br/books/handbook/serialcomms/_index.adoc b/documentation/content/pt-br/books/handbook/serialcomms/_index.adoc index fefe43a4a5..e0819d0bb0 100644 --- a/documentation/content/pt-br/books/handbook/serialcomms/_index.adoc +++ b/documentation/content/pt-br/books/handbook/serialcomms/_index.adoc @@ -345,7 +345,7 @@ Por padrão, o FreeBSD suporta quatro portas seriais que são comumente conhecid Para ver se o sistema reconhece as portas seriais, procure por mensagens de inicialização do sistema que começam com `uart`: -[source,bash] +[source,shell] .... # grep uart /var/run/dmesg.boot .... @@ -354,21 +354,21 @@ Se o sistema não reconhecer todas as portas seriais necessárias, entradas adic Para determinar o conjunto padrão de configurações de terminal E/S usadas pela porta, especifique o nome do dispositivo. Este exemplo determina as configurações para a porta de chamada em [.filename]#COM2#: -[source,bash] +[source,shell] .... # stty -a -f /dev/ttyu1 .... A inicialização de dispositivos seriais em todo o sistema é controlada por [.filename]#/etc/rc.d/serial#. Este arquivo afeta as configurações padrão dos dispositivos seriais. Para alterar as configurações de um dispositivo, use `stty`. Por padrão, as configurações alteradas estão em vigor até que o dispositivo seja fechado e, quando o dispositivo for reaberto, volte para o conjunto padrão. Para alterar permanentemente o conjunto padrão, abra e ajuste as configurações do dispositivo de inicialização. Por exemplo, para ativar o modo `CLOCAL`, comunicação de 8 bits e controle de fluxo `XON/XOFF` para [.filename]#ttyu5#, digite: -[source,bash] +[source,shell] .... # stty -f /dev/ttyu5.init clocal cs8 ixon ixoff .... Para impedir que determinadas configurações sejam alteradas por um aplicativo, faça ajustes no dispositivo de bloqueio. Por exemplo, para bloquear a velocidade de [.filename]#ttyu5# para 57600 bps, digite: -[source,bash] +[source,shell] .... # stty -f /dev/ttyu5.lock 57600 .... @@ -404,7 +404,7 @@ Existem pelo menos dois utilitários no sistema base do FreeBSD que podem ser us + Por exemplo, para conectar-se de um sistema cliente que executa o FreeBSD para a conexão serial de outro sistema: + -[source,bash] +[source,shell] .... # cu -l /dev/cuauN .... @@ -458,7 +458,7 @@ ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure Depois de fazer qualquer alteração em [.filename]#/etc/ttys#, envie um sinal SIGHUP (hangup) para o processo `init` para forçá-lo a reler seu arquivo de configuração: -[source,bash] +[source,shell] .... # kill -HUP 1 .... @@ -480,7 +480,7 @@ Certifique-se de que o terminal e o FreeBSD concordem com as configurações de Use `ps` para certificar-se de que um processo `getty` esteja em execução e atendendo ao terminal. Por exemplo, a listagem a seguir mostra que um `getty` está sendo executado na segunda porta serial, [.filename]#ttyu1#, e está usando a entrada `std.38400` em [.filename]#/etc/gettytab#: -[source,bash] +[source,shell] .... # ps -axww|grep ttyu 22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyu1 @@ -588,14 +588,14 @@ ttyu0 "/usr/libexec/getty V19200" dialup on Depois de editar o [.filename]#/etc/ttys#, espere até que o modem esteja devidamente configurado e conectado antes de sinalizar o `init`: -[source,bash] +[source,shell] .... # kill -HUP 1 .... Modems de alta velocidade, como os modems V.32, V.32bis e V.34, usam hardware (`RTS/CTS`) para controle de fluxo. Use o `stty` para definir a flag de controle de fluxo de hardware para a porta do modem. Este exemplo define a flag `crtscts` na inicialização dos dispositivos [.filename]#COM2# de dial-in e de dial-out: -[source,bash] +[source,shell] .... # stty -f /dev/ttyu1.init crtscts # stty -f /dev/cuau1.init crtscts @@ -609,7 +609,7 @@ Conecte o modem ao sistema FreeBSD e inicialize o sistema. Se o modem tiver luze Se o indicador DTR não acender, faça o login no sistema FreeBSD através do console e digite `ps ax` para ver se o FreeBSD está executando um processo `getty` na porta correta: -[source,bash] +[source,shell] .... 114 ?? I 0:00.10 /usr/libexec/getty V19200`ttyu0` .... @@ -660,7 +660,7 @@ Use a taxa mais alta de bps que o modem suporta no recurso `br`. Em seguida, dig Ou use `cu` como `root` com o seguinte comando: -[source,bash] +[source,shell] .... # cu -lline -sspeed .... @@ -692,7 +692,7 @@ tip57600|Dial any phone number at 57600 bps:\ Isto deve funcionar agora: -[source,bash] +[source,shell] .... # tip -115200 5551234 .... @@ -707,7 +707,7 @@ cu115200|Use cu to dial any number at 115200bps:\ e digite: -[source,bash] +[source,shell] .... # cu 5551234 -s 115200 .... @@ -827,7 +827,7 @@ Esta seção fornece uma visão geral rápida da configuração do console seria . Conecte o cabo serial ao [.filename]#COM1# e ao terminal de controle. . Para configurar mensagens de inicialização para exibição no console serial, emita o seguinte comando como o superusuário: + -[source,bash] +[source,shell] .... # echo 'console="comconsole"' >> /boot/loader.conf .... @@ -898,7 +898,7 @@ As opções, exceto para `-P`, são passadas para o carregador de boot. O gerenc + Quando o FreeBSD inicia, os blocos de inicialização mostram o conteúdo do [.filename]#/boot.config# para o console. Por exemplo: + -[source,bash] +[source,shell] .... /boot.config: -P Keyboard: no @@ -935,7 +935,7 @@ Após a mensagem, haverá uma pequena pausa antes que os blocos de inicializaç + Pressione qualquer tecla, exceto kbd:[Enter], no console para interromper o processo de inicialização. Os blocos de inicialização então solicitarão mais ações: + -[source,bash] +[source,shell] .... >> FreeBSD/i386 BOOT Default: 0:ad(0,a)/boot/loader @@ -977,7 +977,7 @@ Por padrão, as configurações da porta serial são 9600 baud, 8 bits, sem pari * Edite o [.filename]#/etc/make.conf# e configure o `BOOT_COMCONSOLE_SPEED` para a nova velocidade do console. Em seguida, recompile e instale os blocos de inicialização e o carregador de boot: + -[source,bash] +[source,shell] .... # cd /sys/boot # make clean diff --git a/documentation/content/pt-br/books/handbook/usb-device-mode/_index.adoc b/documentation/content/pt-br/books/handbook/usb-device-mode/_index.adoc index 2e679aee2f..8120c760ca 100644 --- a/documentation/content/pt-br/books/handbook/usb-device-mode/_index.adoc +++ b/documentation/content/pt-br/books/handbook/usb-device-mode/_index.adoc @@ -96,14 +96,14 @@ notify 100 { Recarregue a configuração se o man:devd[8] já estiver em execução: -[source,bash] +[source,shell] .... # service devd restart .... Certifique-se de que os módulos necessários estejam carregados e que o template correto esteja configurado na inicialização, adicionando estas linhas ao [.filename]#/boot/loader.conf#, criando-o se ele ainda não existir: -[source,bash] +[source,shell] .... umodem_load="YES" hw.usb.template=3 @@ -111,7 +111,7 @@ hw.usb.template=3 Para carregar o módulo e definir o modelo sem reiniciar, use: -[source,bash] +[source,shell] .... # kldload umodem # sysctl hw.usb.template=3 @@ -121,7 +121,7 @@ Para carregar o módulo e definir o modelo sem reiniciar, use: Para conectar-se a uma placa configurada para fornecer portas seriais de um dispositivo USB, conecte o host USB, como um laptop, às placas USB OTG ou porta de cliente USB. Use `pstat -t` no host para listar as linhas de terminal. Perto do final da lista, você deve ver uma porta serial USB, por exemplo, "ttyU0". Para abrir a conexão, use: -[source,bash] +[source,shell] .... # cu -l /dev/ttyU0 .... @@ -132,7 +132,7 @@ Depois de pressionar a tecla kbd:[Enter] algumas vezes, você verá um prompt de Para conectar-se a uma placa configurada para fornecer portas seriais de modo de dispositivo USB, conecte o host USB, como um laptop, às placas USB OTG ou porta de cliente USB. Para abrir a conexão, use: -[source,bash] +[source,shell] .... # cu -l /dev/cu.usbmodemFreeBSD1 .... @@ -141,7 +141,7 @@ Para conectar-se a uma placa configurada para fornecer portas seriais de modo de Para conectar-se a uma placa configurada para fornecer portas seriais de modo de dispositivo USB, conecte o host USB, como um laptop, às placas USB OTG ou porta de cliente USB. Para abrir a conexão, use: -[source,bash] +[source,shell] .... # minicom -D /dev/ttyACM0 .... @@ -165,7 +165,7 @@ hw.usb.template=1 Para carregar o módulo e definir o modelo sem reiniciar, use: -[source,bash] +[source,shell] .... # kldload if_cdce # sysctl hw.usb.template=1 @@ -192,7 +192,7 @@ cfumass_enable="YES" Para fazer valer a configuração sem reiniciar, execute este comando: -[source,bash] +[source,shell] .... # service cfumass start .... @@ -205,7 +205,7 @@ O restante deste capítulo fornece uma descrição detalhada da configuração d O armazenamento em massaUSB não exige que o daemon man:ctld[8] esteja em execução, embora ele possa ser usado se desejado. Isso é diferente do iSCSI. Portanto, existem duas maneiras de configurar o target: o man:ctladm[8] ou o man:ctld[8]. Ambos exigem que o módulo do kernel [.filename]#cfumass.ko# seja carregado. O módulo pode ser carregado manualmente: -[source,bash] +[source,shell] .... # kldload cfumass .... @@ -219,7 +219,7 @@ cfumass_load="YES" Um LUN pode ser criado sem o daemon man:ctld[8]: -[source,bash] +[source,shell] .... # ctladm create -b block -o file=/data/target0 .... @@ -251,14 +251,14 @@ ctld_enable="YES" Para iniciar o man:ctld[8] agora, execute este comando: -[source,bash] +[source,shell] .... # service ctld start .... Quando o daemon man:ctld[8] é iniciado, ele lê o [.filename]#/etc/ctl.conf#. Se esse arquivo for editado depois que o daemon iniciar, recarregue as alterações para que elas entrem em vigor imediatamente: -[source,bash] +[source,shell] .... # service ctld reload .... diff --git a/documentation/content/pt-br/books/handbook/virtualization/_index.adoc b/documentation/content/pt-br/books/handbook/virtualization/_index.adoc index b2b904fb54..9226b1f85b 100644 --- a/documentation/content/pt-br/books/handbook/virtualization/_index.adoc +++ b/documentation/content/pt-br/books/handbook/virtualization/_index.adoc @@ -328,7 +328,7 @@ Estes comandos são executados na instancia virtualizada do FreeBSD. Primeiro, instale o pacote ou o port package:emulators/virtualbox-ose-additions[] na instancia virtualizada do FreeBSD. Isso irá instalar o port: -[source,bash] +[source,shell] .... # cd /usr/ports/emulators/virtualbox-ose-additions && make install clean .... @@ -410,14 +410,14 @@ Usuários do HAL devem criar o arquivo [.filename]#/usr/local/etc/hal/fdi/policy Pastas compartilhadas para transferências de arquivos entre o host e a VM são acessíveis montando-as usando `mount_vboxvfs`. Uma pasta compartilhada pode ser criada no host usando a GUI do VirtualBox ou via `vboxmanage`. Por exemplo, para criar uma pasta compartilhada chamada _myshare_ em [.filename]#/mnt/bsdboxshare# para a VM denominada _BSDBox_, execute : -[source,bash] +[source,shell] .... # vboxmanage sharedfolder add 'BSDBox' --name myshare --hostpath /mnt/bsdboxshare .... Observe que o nome da pasta compartilhada não deve conter espaços. Monte a pasta compartilhada de dentro do sistema convidado desta forma: -[source,bash] +[source,shell] .... # mount_vboxvfs -w myshare /mnt .... @@ -432,7 +432,7 @@ O VirtualBox(TM) é um pacote de virtualização completo e ativamente desenvolv O VirtualBox(TM) está disponível como um pacote ou port do FreeBSD em package:emulators/virtualbox-ose[]. O port pode ser instalado usando estes comandos: -[source,bash] +[source,shell] .... # cd /usr/ports/emulators/virtualbox-ose # make install clean @@ -442,7 +442,7 @@ Uma opção útil no menu de configuração do port é o conjunto de programas ` Algumas alterações de configuração são necessárias antes do VirtualBox(TM) ser iniciado pela primeira vez. O port instala um módulo de kernel em [.filename]#/boot/modules# o qual deve ser carregado no kernel em execução: -[source,bash] +[source,shell] .... # kldload vboxdrv .... @@ -463,14 +463,14 @@ vboxnet_enable="YES" O grupo `vboxusers` é criado durante a instalação do VirtualBox(TM). Todos os usuários que precisam acessar o VirtualBox(TM) deverão ser adicionados como membros desse grupo. O comando `pw` pode ser usado para adicionar novos membros: -[source,bash] +[source,shell] .... # pw groupmod vboxusers -m yourusername .... As permissões padrão para o [.filename]#/dev/vboxnetctl# são restritivas e precisam ser alteradas para redes em modo Bridged: -[source,bash] +[source,shell] .... # chown root:vboxusers /dev/vboxnetctl # chmod 0660 /dev/vboxnetctl @@ -486,7 +486,7 @@ perm vboxnetctl 0660 Para iniciar o VirtualBox(TM), digite a partir de uma sessão Xorg: -[source,bash] +[source,shell] .... % VirtualBox .... @@ -500,7 +500,7 @@ O VirtualBox(TM) pode ser configurado para passar dispositivos USB para o sistem Para que o VirtualBox(TM) esteja ciente dos dispositivos USB conectados à máquina, o usuário precisa ser um membro do grupo `operator`. -[source,bash] +[source,shell] .... # pw groupmod operator -m yourusername .... @@ -522,7 +522,7 @@ devfs_system_ruleset="system" Então reinicie o devfs: -[source,bash] +[source,shell] .... # service devfs restart .... @@ -541,7 +541,7 @@ O HAL precisa ser executado para que as funções de DVD/CD do VirtualBox(TM) fu hald_enable="YES" .... -[source,bash] +[source,shell] .... # service hald start .... @@ -555,7 +555,7 @@ perm xpt0 0660 perm pass* 0660 .... -[source,bash] +[source,shell] .... # service devfs restart .... @@ -572,14 +572,14 @@ O design do bhyve requer um processador que suporte tabelas de páginas estendid O primeiro passo para criar uma máquina virtual no bhyve é configurar o sistema host. Primeiro, carregue o módulo do kernel bhyve: -[source,bash] +[source,shell] .... # kldload vmm .... Em seguida, crie uma interface [.filename]#tap# para o dispositivo de rede na máquina virtual para anexar. Para que o dispositivo de rede participe da rede, crie também uma interface de bridge contendo a interface [.filename]#tap# e a interface física como membros. Neste exemplo, a interface física é _igb0_: -[source,bash] +[source,shell] .... # ifconfig tap0 create # sysctl net.link.tap.up_on_open=1 @@ -594,14 +594,14 @@ net.link.tap.up_on_open: 0 -> 1 Crie um arquivo para usar como o disco virtual da máquina convidada. Especifique o tamanho e o nome do disco virtual: -[source,bash] +[source,shell] .... # truncate -s 16G guest.img .... Baixe uma imagem de instalação do FreeBSD para instalar: -[source,bash] +[source,shell] .... # fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.3/FreeBSD-10.3-RELEASE-amd64-bootonly.iso FreeBSD-10.3-RELEASE-amd64-bootonly.iso 100% of 230 MB 570 kBps 06m17s @@ -609,7 +609,7 @@ FreeBSD-10.3-RELEASE-amd64-bootonly.iso 100% of 230 MB 570 kBps 06m17s O FreeBSD vem com um script de exemplo para executar uma máquina virtual com o bhyve. O script iniciará a máquina virtual e a executará em um loop, para que ela seja reiniciada automaticamente se houver falha. O script usa várias opções para controlar a configuração da máquina: `-c` controla o número de CPUs virtuais, `-m` limita a quantidade de memória disponível para o sistema operacional convidado, `-t` define qual dispositivo [.filename]#tap# usar, `-d` indica qual imagem de disco usar, `-i` indica ao bhyve para inicializar a partir da imagem CD em vez do disco, e `-I` define qual imagem de CD deve ser usada. O último parâmetro é o nome da máquina virtual, usada para rastrear as máquinas em execução. Este exemplo inicia a máquina virtual no modo de instalação: -[source,bash] +[source,shell] .... # sh /usr/shared/examples/bhyve/vmrun.sh -c 1 -m 1024M -t tap0 -d guest.img -i -I FreeBSD-10.3-RELEASE-amd64-bootonly.iso guestname .... @@ -618,7 +618,7 @@ A máquina virtual inicializará e iniciará o instalador. Depois de instalar um Reinicialize a máquina virtual. Enquanto a reinicialização da máquina virtual fará o bhyve finalizar, o script [.filename]#vmrun.sh# executa o `bhyve` em um loop e o reiniciará automaticamente. Quando isso acontecer, escolha a opção de reinicialização no menu do carregador de inicialização para escapar do loop. Agora o convidado pode ser iniciado a partir do disco virtual: -[source,bash] +[source,shell] .... # sh /usr/shared/examples/bhyve/vmrun.sh -c 4 -m 1024M -t tap0 -d guest.img guestname .... @@ -630,7 +630,7 @@ Para inicializar sistemas operacionais diferentes do FreeBSD, o port package:sys Em seguida, crie um arquivo para usar como o disco virtual da máquina convidada: -[source,bash] +[source,shell] .... # truncate -s 16G linux.img .... @@ -645,14 +645,14 @@ Iniciar uma máquina virtual com o bhyve é um processo de duas etapas. Primeiro Use o package:sysutils/grub2-bhyve[] para carregar o kernel Linux(TM) de uma imagem ISO: -[source,bash] +[source,shell] .... # grub-bhyve -m device.map -r cd0 -M 1024M linuxguest .... Isto irá iniciar o grub. Se o CD de instalação contiver um [.filename]#grub.cfg#, um menu será exibido. Caso contrário, os arquivos `vmlinuz` e `initrd` devem ser localizados e carregados manualmente: -[source,bash] +[source,shell] .... grub> ls (hd0) (cd0) (cd0,msdos1) (host) @@ -666,7 +666,7 @@ grub> boot Agora que o kernel Linux(TM) está carregado, o sistema convidado pode ser iniciado: -[source,bash] +[source,shell] .... # bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 -s 3:0,virtio-blk,./linux.img \ -s 4:0,ahci-cd,./somelinux.iso -l com1,stdio -c 4 -m 1024M linuxguest @@ -674,14 +674,14 @@ Agora que o kernel Linux(TM) está carregado, o sistema convidado pode ser inici O sistema inicializará e iniciará o instalador. Depois de instalar um sistema na máquina virtual, reinicialize a máquina virtual. Isso fará com que o bhyve seja encerrado. A instância da máquina virtual precisa ser destruída antes de poder ser iniciada novamente: -[source,bash] +[source,shell] .... # bhyvectl --destroy --vm=linuxguest .... Agora, o sistema convidado pode ser iniciado diretamente do disco virtual. Carregue o kernel: -[source,bash] +[source,shell] .... # grub-bhyve -m device.map -r hd0,msdos1 -M 1024M linuxguest grub> ls @@ -698,7 +698,7 @@ grub> boot Inicialize a máquina virtual: -[source,bash] +[source,shell] .... # bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 \ -s 3:0,virtio-blk,./linux.img -l com1,stdio -c 4 -m 1024M linuxguest @@ -706,7 +706,7 @@ Inicialize a máquina virtual: O Linux(TM) iniciará agora na máquina virtual e, eventualmente, apresentará o prompt de login. Faça o login e use a máquina virtual. Quando terminar, reinicialize a máquina virtual para sair do bhyve. Destrua a instância da máquina virtual: -[source,bash] +[source,shell] .... # bhyvectl --destroy --vm=linuxguest .... @@ -720,7 +720,7 @@ Para utilizar o suporte ao UEFI no bhyve, primeiro obtenha as imagens de firmwar Com o firmware no lugar, adicione os sinalizadores `-l bootrom,_/path/to/firmware_` à linha de comando do bhyve. A sintaxe real do bhyve pode se parecer com a seguinte: -[source,bash] +[source,shell] .... # bhyve -AHP -s 0:0,hostbridge -s 1:0,lpc \ -s 2:0,virtio-net,tap1 -s 3:0,virtio-blk,./disk.img \ @@ -731,7 +731,7 @@ guest O package:sysutils/bhyve-firmware[] também contém um firmware habilitado para CSM, para inicializar sistemas operacionais hóspedes sem suporte à UEFI no modo de BIOS legado: -[source,bash] +[source,shell] .... # bhyve -AHP -s 0:0,hostbridge -s 1:0,lpc \ -s 2:0,virtio-net,tap1 -s 3:0,virtio-blk,./disk.img \ @@ -749,7 +749,7 @@ O suporte para o framebuffer UEFI-GOP também pode ser ativado com os sinalizado O comando bhyve resultante ficaria assim: -[source,bash] +[source,shell] .... # bhyve -AHP -s 0:0,hostbridge -s 31:0,lpc \ -s 2:0,virtio-net,tap1 -s 3:0,virtio-blk,./disk.img \ @@ -767,14 +767,14 @@ Observe que, no modo de emulação do BIOS, o framebuffer deixará de receber at Se o ZFS estiver disponível na máquina host, o uso de volumes ZFS em vez de arquivos de imagem de disco pode fornecer benefícios significativos de desempenho para as VMs convidadas. Um volume ZFS pode ser criado por: -[source,bash] +[source,shell] .... # zfs create -V16G -o volmode=dev zroot/linuxdisk0 .... Ao iniciar a VM, especifique o volume ZFS como a unidade de disco: -[source,bash] +[source,shell] .... # bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 -s3:0,virtio-blk,/dev/zvol/zroot/linuxdisk0 \ -l com1,stdio -c 4 -m 1024M linuxguest @@ -785,7 +785,7 @@ Ao iniciar a VM, especifique o volume ZFS como a unidade de disco: É vantajoso executar o console do bhyve em uma ferramenta de gerenciamento de sessão, como o package:sysutils/tmux[] ou package:sysutils/screen[], para que possa desanexar e reanexar o console. Também é possível ter o console do bhyve como um dispositivo de modem nulo o qual pode ser acessado com o comando `cu`. Para fazer isso, carregue o módulo do kernel [.filename]#nmdm# e substitua `-l com1,stdio` with `-l com1,/dev/nmdm0A`. Os dispositivos [.filename]#/dev/nmdm# são criados automaticamente conforme necessário, onde cada um é um par, correspondente às duas extremidades do cabo de modem nulo ([.filename]#/dev/nmdm0A# e [.filename]#/dev/nmdm0B#). Veja man:nmdm[4] para maiores informações. -[source,bash] +[source,shell] .... # kldload nmdm # bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 -s 3:0,virtio-blk,./linux.img \ @@ -803,7 +803,7 @@ handbook login: Um nó de dispositivo é criado em [.filename]#/dev/vmm# para cada máquina virtual. Isso permite que o administrador veja facilmente uma lista das máquinas virtuais em execução: -[source,bash] +[source,shell] .... # ls -al /dev/vmm total 1 @@ -816,7 +816,7 @@ crw------- 1 root wheel 0x1a1 Mar 17 12:19 otherguest Uma máquina virtual especificada pode ser destruída usando `bhyvectl`: -[source,bash] +[source,shell] .... # bhyvectl --destroy --vm=guestname .... @@ -871,14 +871,14 @@ Os usuários do FreeBSD 11 devem instalar os pacotes package:emulators/xen-kerne Os arquivos de configuração devem ser editados para preparar o host para a integração do Dom0 após a instalação dos pacotes do Xen. Uma entrada para [.filename]#/etc/sysctl.conf# desabilita o limite de quantas páginas de memória podem ser conectadas. Caso contrário, as VMs do DomU com requisitos de memória mais altos não serão executadas. -[source,bash] +[source,shell] .... # echo 'vm.max_wired=-1' >> /etc/sysctl.conf .... Outra configuração relacionada à memória envolve a alteração do [.filename]#/etc/login.conf#, configurando a opção `memorylocked` para `unlimited`. Caso contrário, a criação de domínios DomU poderá falhar com erros `Cannot allocate memory`. Depois de fazer a mudança no [.filename]#/etc/login.conf#, execute o comando `cap_mkdb` para atualizar o banco de dados de recursos. Veja crossref:security[security-resourcelimits,Limites de Recursos] para detalhes. -[source,bash] +[source,shell] .... # sed -i '' -e 's/memorylocked=64K/memorylocked=unlimited/' /etc/login.conf # cap_mkdb /etc/login.conf @@ -886,7 +886,7 @@ Outra configuração relacionada à memória envolve a alteração do [.filename Adicione uma entrada para o console do Xen(TM) ao [.filename]#/etc/ttys#: -[source,bash] +[source,shell] .... # echo 'xc0 "/usr/libexec/getty Pc" xterm onifconsole secure' >> /etc/ttys .... @@ -895,7 +895,7 @@ A seleção de um kernel Xen(TM) no [.filename]#/boot/loader.conf# ativa o Dom0. O seguinte comando é usado para pacotes Xen 4.7: -[source,bash] +[source,shell] .... # sysrc -f /boot/loader.conf hw.pci.mcfg=0 # sysrc -f /boot/loader.conf if_tap_load="YES" @@ -905,7 +905,7 @@ O seguinte comando é usado para pacotes Xen 4.7: Para as versões Xen 4.11 e superiores, o seguinte comando deve ser usado: -[source,bash] +[source,shell] .... # sysrc -f /boot/loader.conf if_tap_load="YES" # sysrc -f /boot/loader.conf xen_kernel="/boot/xen" @@ -920,14 +920,14 @@ Os arquivos de log criados pelo Xen(TM) para as VMs do DomU são armazenados em Ative o serviço xencommons durante a inicialização do sistema: -[source,bash] +[source,shell] .... # sysrc xencommons_enable=yes .... Essas configurações são suficientes para iniciar um sistema habilitado para Dom0. No entanto, falta a funcionalidade de rede para as máquinas DomU. Para corrigir isso, defina uma interface em bridge com a NIC principal do sistema que as VMs DomU poderão usar para se conectar à rede. Substitua _em0_ pelo nome da interface de rede do host. -[source,bash] +[source,shell] .... # sysrc cloned_interfaces="bridge0" # sysrc ifconfig_bridge0="addm em0 SYNCDHCP" @@ -936,14 +936,14 @@ Essas configurações são suficientes para iniciar um sistema habilitado para D Reinicie o host para carregar o kernel Xen(TM) e inicie o Dom0. -[source,bash] +[source,shell] .... # reboot .... Após inicializar com sucesso o kernel Xen(TM) e efetuar login no sistema novamente, a ferramenta de gerenciamento do Xen(TM), `xl` é usada para mostrar informações sobre os domínios. -[source,bash] +[source,shell] .... # xl list Name ID Mem VCPUs State Time(s) @@ -957,21 +957,21 @@ A saída confirma que o Dom0 (chamado `Domain-0`) tem o ID `0` e está em execu Domínios desprivilegiados consistem em um arquivo de configuração e discos rígidos virtuais ou físicos. Os discos virtuais para armazenamento do DomU podem ser arquivos criados pelo man:truncate[1] ou volumes ZFS, conforme descrito em crossref:zfs[zfs-zfs-volume,Criando e Destruindo Volumes]. Neste exemplo, um volume de 20 GB é usado. Uma VM é criada com o volume ZFS, uma imagem ISO do FreeBSD, 1 GB de RAM e duas CPUs virtuais. O arquivo ISO de instalação é obtido com o man:fetch[1] e salvo localmente em um arquivo chamado [.filename]#freebsd.iso#. -[source,bash] +[source,shell] .... # fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-bootonly.iso -o freebsd.iso .... Um volume de 20 GB do ZFS chamado [.filename]#xendisk0# é criado para servir como espaço em disco para a VM. -[source,bash] +[source,shell] .... # zfs create -V20G -o volmode=dev zroot/xendisk0 .... A nova VM DomU convidada é definida em um arquivo. Algumas definições específicas, como nome, mapa de teclado e detalhes da conexão VNC, também são definidas. O seguinte [.filename]#freebsd.cfg# contém uma configuração mínima de DomU para este exemplo: -[source,bash] +[source,shell] .... # cat freebsd.cfg builder = "hvm" <.> @@ -1009,7 +1009,7 @@ Estas linhas são explicadas com mais detalhes: Após o arquivo ter sido criado com todas as opções necessárias, o DomU é criado passando-o como um parâmetro para o comando `xl create`. -[source,bash] +[source,shell] .... # xl create freebsd.cfg .... @@ -1021,7 +1021,7 @@ Cada vez que o Dom0 é reiniciado, o arquivo de configuração deve ser passado A saída de `xl list` confirma que o DomU foi criado. -[source,bash] +[source,shell] .... # xl list Name ID Mem VCPUs State Time(s) @@ -1031,7 +1031,7 @@ freebsd 1 1024 1 -b---- 663.9 Para iniciar a instalação do sistema operacional base, inicie o cliente VNC, direcionando-o para o endereço de rede principal do host ou para o endereço IP definido na linha `vnclisten` do [.filename]#freebsd.cfg#. Depois que o sistema operacional tiver sido instalado, desligue o DomU e desconecte o visualizador VNC. Edite o [.filename]#freebsd.cfg#, removendo a linha com a definição `cdrom` ou comentando-a inserindo um caractere `#` no início da linha. Para carregar esta nova configuração, é necessário remover o DomU antigo com `xl destroy`, passando o nome ou o id como parâmetro. Depois, recrie-o usando o [.filename]##freebsd.cfg## modificado. -[source,bash] +[source,shell] .... # xl destroy freebsd # xl create freebsd.cfg @@ -1057,7 +1057,7 @@ Para solucionar problemas de inicialização do host, você provavelmente precis O FreeBSD também deve ser inicializado no modo verbose para identificar quaisquer problemas. Para ativar a inicialização detalhada, execute este comando: -[source,bash] +[source,shell] .... # sysrc -f /boot/loader.conf boot_verbose="YES" .... @@ -1071,7 +1071,7 @@ Problemas também podem surgir ao criar convidados, as informações a seguir te A causa mais comum de falhas na criação de convidados é o comando `xl` cuspindo algum erro e saindo com um código de retorno diferente de 0. Se o erro fornecido não for suficiente para ajudar a identificar o problema, uma saída mais detalhada pode ser obtida do comando `xl` usando-se a opção `v` repetidamente. -[source,bash] +[source,shell] .... # xl -vvv create freebsd.cfg Parsing config from freebsd.cfg diff --git a/documentation/content/pt-br/books/handbook/x11/_index.adoc b/documentation/content/pt-br/books/handbook/x11/_index.adoc index 76ee1d1355..da059d5b02 100644 --- a/documentation/content/pt-br/books/handbook/x11/_index.adoc +++ b/documentation/content/pt-br/books/handbook/x11/_index.adoc @@ -107,14 +107,14 @@ No FreeBSD, o Xorg pode ser instalado como um pacote ou port. O pacote binário pode ser instalado rapidamente, mas com menos opções de personalização: -[source,bash] +[source,shell] .... # pkg install xorg .... Para compilar e instalar a partir da Coleção de Ports: -[source,bash] +[source,shell] .... # cd /usr/ports/x11/xorg # make install clean @@ -142,7 +142,7 @@ Placas de vídeo, monitores e dispositivos de entrada são detectados automatica ==== . Se o Xorg tiver sido usado neste computador antes, mova ou remova qualquer arquivo de configuração existente: + -[source,bash] +[source,shell] .... # mv /etc/X11/xorg.conf ~/xorg.conf.etc # mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetc @@ -150,14 +150,14 @@ Placas de vídeo, monitores e dispositivos de entrada são detectados automatica + . Adicione o usuário que executará o Xorg ao grupo `video` ou `wheel` para ativar a aceleração 3D quando disponível. Para adicionar o usuário _jru_ ao grupo que estiver disponível: + -[source,bash] +[source,shell] .... # pw groupmod video -m jru || pw groupmod wheel -m jru .... + . O gerenciador de janelas twm é incluído por padrão. Ele é chamado quando o Xorg se inicia: + -[source,bash] +[source,shell] .... % startx .... @@ -170,7 +170,7 @@ Placas de vídeo, monitores e dispositivos de entrada são detectados automatica O acesso ao [.filename]#/dev/dri# é necessário para permitir a aceleração 3D nas placas de vídeo. Geralmente é mais simples adicionar o usuário que estará executando o X no grupo `video` ou no `wheel`. Aqui, o man:pw[8] é usado para adicionar o usuário _slurms_ ao grupo `video`, ou ao grupo `wheel` se não houver nenhum grupo `video`: -[source,bash] +[source,shell] .... # pw groupmod video -m slurms || pw groupmod wheel -m slurms .... @@ -354,7 +354,7 @@ Outras resoluções suportadas pelo monitor podem ser escolhidas definindo a res Usando man:xrandr[1]:: Execute o man:xrandr[1] sem nenhum parâmetro para ver uma lista de saídas de vídeo e modos de monitor detectados: + -[source,bash] +[source,shell] .... % xrandr Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192 @@ -377,7 +377,7 @@ Isso mostra que a saída `DVI-0` está sendo usada para exibir uma resolução d + Qualquer um dos outros modos de exibição pode ser selecionado com man:xrandr[1]. Por exemplo, para mudar para 1280x1024 a 60 Hz: + -[source,bash] +[source,shell] .... % xrandr --mode 1280x1024 --rate 60 .... @@ -386,7 +386,7 @@ Uma tarefa comum é usar a saída de vídeo externa em um notebook para um proje + O tipo e a quantidade de conectores de saída variam entre os dispositivos, e o nome dado a cada saída varia de driver para driver. O que um driver chama de `HDMI-1`, outro pode chamar de `HDMI1`. Portanto, o primeiro passo é executar man:xrandr[1] para listar todas as saídas disponíveis: + -[source,bash] +[source,shell] .... % xrandr Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192 @@ -412,7 +412,7 @@ Quatro saídas foram encontradas: os conectores `LVDS1` e `VGA1`, `HDMI1` e `DP1 + O projetor foi conectado à saída `VGA1`. O man:xrandr[1] agora é usado para definir essa saída para a resolução nativa do projetor e adicionar o espaço adicional à direita da área de trabalho: + -[source,bash] +[source,shell] .... % xrandr --output VGA1 --auto --right-of LVDS1 .... @@ -571,14 +571,14 @@ Um arquivo de configuração pode ser gerado pelo Xorg baseado no hardware detec Gerando um arquivo [.filename]#xorg.conf#: -[source,bash] +[source,shell] .... # Xorg -configure .... O arquivo de configuração é salvo em [.filename]#/root/xorg.conf.new#. Faça as alterações desejadas e teste esse arquivo(usando `-retro` assim será exibido um fundo visível) com: -[source,bash] +[source,shell] .... # Xorg -retro -config /root/xorg.conf.new .... @@ -595,14 +595,14 @@ As fontes padrões que vem com o Xorg não são adequadas para muitas aplicaçõ Para instalar as coleções de fontes Type1 usando pacotes binários, execute os seguintes comandos: -[source,bash] +[source,shell] .... # pkg install urwfonts .... Como alternativa, para compilar a partir da coleção de Ports, execute os seguintes comandos: -[source,bash] +[source,shell] .... # cd /usr/ports/x11-fonts/urwfonts # make install clean @@ -617,7 +617,7 @@ FontPath "/usr/local/shared/fonts/urwfonts/" Alternativamente, na linha de comando de execução da sessão X: -[source,bash] +[source,shell] .... % xset fp+ /usr/local/shared/fonts/urwfonts % xset fp rehash @@ -637,14 +637,14 @@ Load "freetype" Agora crie um diretório para as fontes TrueType(TM) (por exemplo, [.filename]#/usr/local/shared/fonts/TrueType#) e copie todas as fontes TrueType(TM) para este diretório. Tenha em mente que as fontes TrueType(TM) não podem ser obtidas diretamente de um Apple(TM)Mac(TM); elas devem estar no formato UNIX(TM)/MS-DOS(TM)/Windows(TM) para uso pelo Xorg. Uma vez que os arquivos foram copiados para este diretório, use mkfontdir para criar um [.filename]#fonts.dir#, para que o renderizador de fontes do X saiba que esses novos arquivos foram instalados. O `mkfontdir` pode ser instalado como um pacote binário com o comando: -[source,bash] +[source,shell] .... # pkg install mkfontdir .... Em seguida, crie um índice de arquivos de fontes X em um diretório: -[source,bash] +[source,shell] .... # cd /usr/local/shared/fonts/TrueType # mkfontdir @@ -652,7 +652,7 @@ Em seguida, crie um índice de arquivos de fontes X em um diretório: Agora adicione o diretório TrueType(TM) ao caminho da fonte. Isso é exatamente o mesmo descrito em <<type1>>: -[source,bash] +[source,shell] .... % xset fp+ /usr/local/shared/fonts/TrueType % xset fp rehash @@ -687,7 +687,7 @@ Como dito anteriormente, todas as fontes em [.filename]#/usr/local/shared/fonts/ Depois de adicionar novas fontes e especialmente novos diretórios de fontes, reconstrua os caches de fontes: -[source,bash] +[source,shell] .... # fc-cache -f .... @@ -798,7 +798,7 @@ Esta seção demonstra como configurar o X Display Manager no FreeBSD. Alguns am Para instalar o XDM, use o pacote ou ports package:x11/xdm[]. Uma vez instalado, o XDM pode ser configurado para ser executado quando a máquina for inicializada editando esta entrada em [.filename]#/etc/ttys#: -[source,bash] +[source,shell] .... ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure .... @@ -844,7 +844,7 @@ Por padrão, somente usuários no mesmo sistema podem efetuar login usando o XDM Para configurar o XDM para escutar qualquer conexão remota, comente a linha `DisplayManager.requestPort` em [.filename]#/usr/local/etc/X11/xdm/xdm-config# colocando um `!` na frente dele: -[source,bash] +[source,shell] .... ! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with xdm @@ -865,14 +865,14 @@ O GNOME é um ambiente de área de trabalho amigável. Ele inclui um painel para Este ambiente de desktop pode ser instalado a partir de um pacote binario: -[source,bash] +[source,shell] .... # pkg install gnome3 .... Para instalar o GNOME a partir do ports, use o seguinte comando. O GNOME é um aplicativo grande e levará algum tempo para compilar, mesmo em um computador rápido. -[source,bash] +[source,shell] .... # cd /usr/ports/x11/gnome3 # make install clean @@ -911,14 +911,14 @@ O GDM será iniciado automaticamente quando o sistema for inicializado. Um segundo método para iniciar o GNOME é digitar `startx` na linha de comando depois de configurar o [.filename]#~/.xinitrc#. Se este arquivo já existir, substitua a linha que inicia o gerenciador de janelas atual por uma que inicie o [.filename]#/usr/local/bin/gnome-session#. Se este arquivo não existir, crie-o com este comando: -[source,bash] +[source,shell] .... % echo "exec /usr/local/bin/gnome-session" > ~/.xinitrc .... Um terceiro método é usar o XDM como o gerenciador de Display. Neste caso, crie um executável [.filename]#~/.xsession#: -[source,bash] +[source,shell] .... % echo "exec /usr/local/bin/gnome-session" > ~/.xsession .... @@ -930,14 +930,14 @@ O KDE é outro ambiente de trabalho fácil de usar. Essa área de trabalho forne Para instalar o pacote KDE, digite: -[source,bash] +[source,shell] .... # pkg install x11/kde5 .... Para instalar o KDE via ports, use o seguinte comando. A instalação do ports fornecerá um menu para selecionar quais componentes instalar. O KDE é um aplicativo grande e levará algum tempo para compilar, mesmo em um computador rápido. -[source,bash] +[source,shell] .... # cd /usr/ports/x11/kde5 # make install clean @@ -960,7 +960,7 @@ hald_enable="YES" Desde o KDE Plasma 5, o Gerenciador de Display do KDE, KDM, não é mais desenvolvido. Uma possível substituição é o SDDM. Para instalá-lo, digite: -[source,bash] +[source,shell] .... # pkg install x11/sddm .... @@ -981,7 +981,7 @@ exec ck-launch-session startplasma-x11 Um terceiro método para iniciar o KDE Plasma é através do XDM. Para fazer isso, crie um arquivo executável [.filename]#~/.xsession# da seguinte maneira: -[source,bash] +[source,shell] .... % echo "exec ck-launch-session startplasma-x11" > ~/.xsession .... @@ -995,14 +995,14 @@ O Xfce é um ambiente de desktop baseado no kit de ferramentas GTK+ usado pelo G Para instalar o pacote Xfce: -[source,bash] +[source,shell] .... # pkg install xfce .... Alternativamente , para compilar o port: -[source,bash] +[source,shell] .... # cd /usr/ports/x11-wm/xfce4 # make install clean @@ -1017,14 +1017,14 @@ dbus_enable="YES" Ao contrário do GNOME ou KDE, o Xfce não disponibiliza seu próprio gerenciador de login. Para iniciar o Xfce à partir da linha de comando digitando `startx`, mas primeiro adicione sua entrada ao [.filename]#~/.xinitrc#: -[source,bash] +[source,shell] .... % echo ". /usr/local/etc/xdg/xfce4/xinitrc" > ~/.xinitrc .... Um método alternativo é usar o XDM. Para configurar este método, crie um executável [.filename]#~/.xsession#: -[source,bash] +[source,shell] .... % echo ". /usr/local/etc/xdg/xfce4/xinitrc" > ~/.xsession .... @@ -1047,7 +1047,7 @@ Tendo determinado o driver correto para usar em sua placa gráfica, a instalaç Por exemplo, para instalar o driver mais recente: -[source,bash] +[source,shell] .... # pkg install x11/nvidia-driver .... @@ -1148,7 +1148,7 @@ Section "Module" A configuração acima pode ser feita automaticamente com o package:x11/nvidia-xconfig[] (executando como `root`): -[source,bash] +[source,shell] .... # nvidia-xconfig --add-argb-glx-visuals # nvidia-xconfig --composite @@ -1160,14 +1160,14 @@ A configuração acima pode ser feita automaticamente com o package:x11/nvidia-x Instalar o Compiz Fusion é tão simples quanto qualquer outro pacote: -[source,bash] +[source,shell] .... # pkg install x11-wm/compiz-fusion .... Quando a instalação estiver concluída, inicie o Desktop Gráfico e, em um terminal, digite os seguintes comandos (como usuário normal): -[source,bash] +[source,shell] .... % compiz --replace --sm-disable --ignore-desktop-hints ccp & % emerald --replace & @@ -1186,7 +1186,7 @@ emerald --replace & Salve isso no seu diretório home como, por exemplo, [.filename]#start-compiz# e torne-o executável: -[source,bash] +[source,shell] .... % chmod +x ~/start-compiz .... @@ -1195,7 +1195,7 @@ Em seguida, utilize a GUI para adicioná-lo a [.guimenuitem]#Startup Programs# ( Para selecionar realmente todos os efeitos desejados e suas configurações, execute (novamente como um usuário normal) o Compiz Config Settings Manager: -[source,bash] +[source,shell] .... % ccsm .... @@ -1244,7 +1244,7 @@ Você terá que reinicializar sua máquina para forçar o hald a ler este arquiv É possível fazer a mesma configuração a partir de um terminal X ou um script com esta linha de comando: -[source,bash] +[source,shell] .... % setxkbmap -model pc102 -layout fr .... @@ -1302,7 +1302,7 @@ Uma das ferramentas disponíveis para ajudá-lo durante o processo de solução Se tudo estiver bem, o arquivo de configuração precisa ser instalado em um local comum onde o man:Xorg[1] possa encontrá-lo. Isto é tipicamente [.filename]#/etc/X11/xorg.conf# ou [.filename]#/usr/local/etc/X11/xorg.conf#. -[source,bash] +[source,shell] .... # cp xorg.conf.new /etc/X11/xorg.conf .... @@ -1390,7 +1390,7 @@ Provavelmente está faltando alguma configuração em [.filename]#/etc/X11/xorg. Se você verificar o [.filename]#/var/log/Xorg.0.log#, você provavelmente encontrará mensagens de erro durante a inicialização do X. As mais comuns seriam: -[source,bash] +[source,shell] .... (EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X (EE) NVIDIA(0): log file that the GLX module has been loaded in your X diff --git a/documentation/content/pt-br/books/handbook/zfs/_index.adoc b/documentation/content/pt-br/books/handbook/zfs/_index.adoc index 96951fcc26..9bcbade6a1 100644 --- a/documentation/content/pt-br/books/handbook/zfs/_index.adoc +++ b/documentation/content/pt-br/books/handbook/zfs/_index.adoc @@ -74,7 +74,7 @@ zfs_enable="YES" Então inicie o serviço: -[source,bash] +[source,shell] .... # service zfs start .... @@ -86,14 +86,14 @@ Os exemplos nesta seção assumem três discos SCSI com os seguintes nomes de di Para criar um pool simples e não-redundante usando um único disco: -[source,bash] +[source,shell] .... # zpool create example /dev/da0 .... Para visualizar o novo pool, verifique a saída do comando `df`: -[source,bash] +[source,shell] .... # df Filesystem 1K-blocks Used Avail Capacity Mounted on @@ -105,7 +105,7 @@ example 17547136 0 17547136 0% /example Esta saída mostra que o pool `example` foi criado e montado e agora está acessível como um sistema de arquivos. Arquivos podem ser criados nele e os usuários podem navegar nele: -[source,bash] +[source,shell] .... # cd /example # ls @@ -119,7 +119,7 @@ drwxr-xr-x 21 root wheel 512 Aug 29 23:12 .. No entanto, esse pool não está aproveitando nenhuma feature do ZFS. Para criar um dataset neste pool com a compressão ativada: -[source,bash] +[source,shell] .... # zfs create example/compressed # zfs set compression=gzip example/compressed @@ -129,14 +129,14 @@ O dataset `example/compressed` é agora um sistema de arquivos ZFS compactado. T A compactação pode ser desativada com: -[source,bash] +[source,shell] .... # zfs set compression=off example/compressed .... Para desmontar um sistema de arquivos, use `zfs umount` e, em seguida, verifique com `df`: -[source,bash] +[source,shell] .... # zfs umount example/compressed # df @@ -149,7 +149,7 @@ example 17547008 0 17547008 0% /example Para remontar o sistema de arquivos para torná-lo acessível novamente, use `zfs mount` e verifique com o `df`: -[source,bash] +[source,shell] .... # zfs mount example/compressed # df @@ -163,7 +163,7 @@ example/compressed 17547008 0 17547008 0% /example/compressed O pool e o sistema de arquivos também podem ser observados visualizando a saída do comando `mount`: -[source,bash] +[source,shell] .... # mount /dev/ad0s1a on / (ufs, local) @@ -175,7 +175,7 @@ example/compressed on /example/compressed (zfs, local) Após a criação, os datasets do ZFS podem ser usados como qualquer sistema de arquivos. No entanto, muitos outros recursos estão disponíveis, e podem ser definidos por conjunto de dados. No exemplo abaixo, um novo sistema de arquivos chamado `data` é criado. Arquivos importantes serão armazenados nele, portanto, ele é configurado para manter duas cópias de cada bloco de dados: -[source,bash] +[source,shell] .... # zfs create example/data # zfs set copies=2 example/data @@ -183,7 +183,7 @@ Após a criação, os datasets do ZFS podem ser usados como qualquer sistema de Agora é possível ver o sistema de arquivos `data` e o espaço utilizado através do comando `df`: -[source,bash] +[source,shell] .... # df Filesystem 1K-blocks Used Avail Capacity Mounted on @@ -199,7 +199,7 @@ Observe que cada sistema de arquivos no pool tem a mesma quantidade de espaço d Para destruir os sistemas de arquivos e, em seguida, destruir o pool, se ele não for mais necessário: -[source,bash] +[source,shell] .... # zfs destroy example/compressed # zfs destroy example/data @@ -213,7 +213,7 @@ Discos falham. Um método para evitar perda de dados devido a falhas no disco é Este exemplo cria um pool RAID-Z, especificando os discos a serem adicionados ao pool: -[source,bash] +[source,shell] .... # zpool create storage raidz da0 da1 da2 .... @@ -225,14 +225,14 @@ A Sun(TM) recomenda que o número de dispositivos usados em uma configuração R O exemplo anterior criou o zpool `storage`. Este exemplo cria um novo sistema de arquivos chamado `home` neste pool: -[source,bash] +[source,shell] .... # zfs create storage/home .... A compressão e a criação de cópias extras de diretórios e arquivos podem ser ativadas: -[source,bash] +[source,shell] .... # zfs set copies=2 storage/home # zfs set compression=gzip storage/home @@ -240,7 +240,7 @@ A compressão e a criação de cópias extras de diretórios e arquivos podem se Para tornar este o novo diretório home para usuários, copie os dados de usuários para este diretório e crie os links simbólicos apropriados: -[source,bash] +[source,shell] .... # cp -rp /home/* /storage/home # rm -rf /home /usr/home @@ -252,7 +252,7 @@ Os dados dos usuários agora são armazenados no recém-criado diretório [.file Tente criar um snapshot do sistema de arquivos que possa ser revertido posteriormente: -[source,bash] +[source,shell] .... # zfs snapshot storage/home@08-30-08 .... @@ -261,35 +261,35 @@ Os snapshots só podem ser realizados de um sistema de arquivos completo, não d O caractere `@` é um delimitador entre o nome do sistema de arquivos ou o nome do volume. Se um diretório importante tiver sido excluído acidentalmente, o backup do sistema de arquivos poderá ser feito e, em seguida, revertido para um snapshot anterior, quando o diretório ainda existia: -[source,bash] +[source,shell] .... # zfs rollback storage/home@08-30-08 .... Para listar todos os snapshots disponíveis, execute `ls` no diretório [.filename]#.zfs/snapshot# no sistema de arquivos. Por exemplo, para ver o snapshot obtido anteriormente: -[source,bash] +[source,shell] .... # ls /storage/home/.zfs/snapshot .... É possível escrever um script para criar snapshots frequentes dos dados do usuário. No entanto, com o tempo, os snapshots podem consumir muito espaço em disco. O snapshot anterior pode ser removido usando o comando: -[source,bash] +[source,shell] .... # zfs destroy storage/home@08-30-08 .... Após o teste, [.filename]#/storage/home# pode ser o verdadeiro [.filename]#/home# usando este comando: -[source,bash] +[source,shell] .... # zfs set mountpoint=/home storage/home .... Execute o `df` e o `mount` para confirmar que o sistema agora trata o sistema de arquivos como o real [.filename]#/home#: -[source,bash] +[source,shell] .... # mount /dev/ad0s1a on / (ufs, local) @@ -318,21 +318,21 @@ daily_status_zfs_enable="YES" Todo software RAID tem um método de monitorar seu `status`. O status dos dispositivos RAID-Z pode ser visualizado com este comando: -[source,bash] +[source,shell] .... # zpool status -x .... Se todos os pools estiverem <<zfs-term-online,Online>> e tudo estiver normal, a mensagem mostrará: -[source,bash] +[source,shell] .... all pools are healthy .... Se houver um problema, talvez um disco que esteja no estado <<zfs-term-offline,Offline>>, o status do pool será semelhante a: -[source,bash] +[source,shell] .... pool: storage state: DEGRADED @@ -356,21 +356,21 @@ errors: No known data errors Isso indica que o dispositivo foi colocado off-line anteriormente pelo administrador com este comando: -[source,bash] +[source,shell] .... # zpool offline storage da1 .... Agora o sistema pode ser desligado para substituir o [.filename]#da1#. Quando o sistema estiver novamente online, o disco com falha poderá ser substituído no pool: -[source,bash] +[source,shell] .... # zpool replace storage da1 .... Agora, o status pode ser verificado novamente, desta vez sem `-x`, para que todos os pools sejam mostrados: -[source,bash] +[source,shell] .... # zpool status storage pool: storage @@ -403,14 +403,14 @@ Os checksums podem ser desabilitados, mas isto _não_ é recomendado! Os checksu A verificação de checksum é conhecida como _scrubbing_. Verifique a integridade dos dados do pool `storage` com este comando: -[source,bash] +[source,shell] .... # zpool scrub storage .... A duração de um scrub depende da quantidade de dados armazenados. Quantidades maiores de dados levarão proporcionalmente mais tempo para serem verificadas. Scrubs utilizam muito I/O, e apenas um scrub tem permissão para ser executado por vez. Após a conclusão do scrub, o status pode ser visualizado com `status`: -[source,bash] +[source,shell] .... # zpool status storage pool: storage @@ -444,7 +444,7 @@ A criação de um pool de armazenamento do ZFS (_zpool_) envolve a tomada de vá Crie um pool do tipo mirror simples: -[source,bash] +[source,shell] .... # zpool create mypool mirror /dev/ada1 /dev/ada2 # zpool status @@ -464,7 +464,7 @@ errors: No known data errors Vários vdevs podem ser criados de uma só vez. Especifique vários grupos de discos separados pela palavra-chave do tipo vdev, `mirror` neste exemplo: -[source,bash] +[source,shell] .... # zpool create mypool mirror /dev/ada1 /dev/ada2 mirror /dev/ada3 /dev/ada4 # zpool status @@ -489,7 +489,7 @@ Os pools também podem ser construídos usando partições em vez de discos inte Crie um pool <<zfs-term-vdev-raidz,RAID-Z2>> usando partições: -[source,bash] +[source,shell] .... # zpool create mypool raidz2 /dev/ada0p3 /dev/ada1p3 /dev/ada2p3 /dev/ada3p3 /dev/ada4p3 /dev/ada5p3 # zpool status @@ -522,7 +522,7 @@ Um pool criado com um único disco não tem redundância. Dados corrompidos pode Atualize o disco único (stripe) vdev _ada0p3_ para um mirror anexando _ada1p3_: -[source,bash] +[source,shell] .... # zpool status pool: mypool @@ -588,7 +588,7 @@ Ao anexar dispositivos adicionais a um pool de inicialização, lembre-se de atu Anexe um segundo grupo de mirror's ([.filename]#ada2p3# and [.filename]#ada3p3#) ao mirror existente: -[source,bash] +[source,shell] .... # zpool status pool: mypool @@ -630,7 +630,7 @@ Atualmente, os vdevs não podem ser removidos de um pool e os discos só podem s Remova um disco de um grupo de mirror's triplo: -[source,bash] +[source,shell] .... # zpool status pool: mypool @@ -667,7 +667,7 @@ errors: No known data errors O status do pool é importante. Se uma unidade ficar off-line ou for detectado um erro de leitura, gravação ou de checksum, a contagem de erros correspondente aumentará. A saída `status` mostra a configuração e o status de cada dispositivo no pool e o status de todo o pool. Ações que precisam ser tomadas e detalhes sobre o último <<zfs-zpool-scrub,`scrub`>> também são mostrados. -[source,bash] +[source,shell] .... # zpool status pool: mypool @@ -700,7 +700,7 @@ Há várias situações em que pode ser desejável substituir um disco por um di Substitua um dispositivo em funcionamento no pool: -[source,bash] +[source,shell] .... # zpool status pool: mypool @@ -772,7 +772,7 @@ Ao substituir um disco com falha, o nome do disco com falha é substituído pelo Substitua um disco com falha usando o `zpool replace`: -[source,bash] +[source,shell] .... # zpool status pool: mypool @@ -832,7 +832,7 @@ errors: No known data errors Recomenda-se que os pools sejam regularmente <<zfs-term-scrub,scrubbed>>, idealmente pelo menos uma vez por mês. A operação `scrub` requer muito disco e reduzirá o desempenho durante a execução. Evite períodos de alta demanda ao agendar o `scrub` ou use <<zfs-advanced-tuning-scrub_delay,`vfs.zfs.scrub_delay`>> para ajustar a prioridade relativa do `scrub` para evitar que ele interfira com outras cargas de trabalho. -[source,bash] +[source,shell] .... # zpool scrub mypool # zpool status @@ -865,7 +865,7 @@ Os checksums armazenados com os blocos de dados habilitam o sistema de arquivos O próximo exemplo demonstra esse comportamento de autocura. Um conjunto espelhado de discos [.filename]#/dev/ada0# e [.filename]#/dev/ada1# é criado. -[source,bash] +[source,shell] .... # zpool create healer mirror /dev/ada0 /dev/ada1 # zpool status healer @@ -888,7 +888,7 @@ healer 960M 92.5K 960M - - 0% 0% 1.00x ONLINE - Alguns dados importantes que devem ser protegidos de erros de dados usando o recurso de correção automática são copiados para o pool. É criado um checksum do pool para comparação posterior. -[source,bash] +[source,shell] .... # cp /some/important/data /healer # zfs list @@ -907,7 +907,7 @@ A corrupção de dados é simulada escrevendo dados aleatórios no início de um Esta é uma operação perigosa que pode destruir dados vitais. Ele é mostrado aqui apenas para fins demonstrativos e não deve ser tentado durante a operação normal de um pool de armazenamento. Nem este exemplo de corrupção intencional deve ser executado em qualquer disco com um sistema de arquivos diferente. Não use outros nomes de dispositivos de disco diferentes daqueles que fazem parte do pool. Certifique-se de que os backups apropriados do pool sejam criados antes de executar o comando! ==== -[source,bash] +[source,shell] .... # zpool export healer # dd if=/dev/random of=/dev/ada1 bs=1m count=200 @@ -919,7 +919,7 @@ Esta é uma operação perigosa que pode destruir dados vitais. Ele é mostrado O status do pool mostra que um dispositivo teve um erro. Observe que os aplicativos que leem dados do pool não receberam dados incorretos. O ZFS forneceu dados do dispositivo [.filename]#ada0# com os checksums corretos. O dispositivo com o checksum incorreto pode ser encontrado facilmente, pois a coluna `CKSUM` contém um valor diferente de zero. -[source,bash] +[source,shell] .... # zpool status healer pool: healer @@ -943,7 +943,7 @@ errors: No known data errors O erro foi detectado e tratado usando a redundância presente no disco de espelhamento [.filename]#ada0# não afetado. Uma comparação de checksum com o original irá revelar se o pool está consistente novamente. -[source,bash] +[source,shell] .... # sha1 /healer >> checksum.txt # cat checksum.txt @@ -953,7 +953,7 @@ SHA1 (/healer) = 2753eff56d77d9a536ece6694bf0a82740344d1f Os dois checksums que foram gerados antes e depois da adulteração intencional dos dados do conjunto ainda correspondem. Isso mostra como o ZFS é capaz de detectar e corrigir erros automaticamente quando os checksums são diferentes. Observe que isso só é possível quando há redundância suficiente presente no pool. Um pool que consiste em um único dispositivo não possui recursos de autocorreção. Essa também é a razão pela qual os cheksuma são tão importantes no ZFS e não devem ser desabilitados por nenhum motivo. Nenhum man:fsck[8] ou programa semelhante de verificação de consistência do sistema de arquivos é necessário para detectar e corrigir isso e o pool ainda estava disponível durante o problema. Uma operação de scrub agora é necessária para sobrescrever os dados corrompidos em [.filename]#ada1#. -[source,bash] +[source,shell] .... # zpool scrub healer # zpool status healer @@ -980,7 +980,7 @@ errors: No known data errors A operação scrub lê os dados do [.filename]#ada0# e reescreve todos os dados com um checksum incorreto no [.filename]#ada1#. Isso é indicado pela saída `(repairing)` do `zpool status`. Após a conclusão da operação, o status do conjunto é alterado para: -[source,bash] +[source,shell] .... # zpool status healer pool: healer @@ -1004,7 +1004,7 @@ errors: No known data errors Após a conclusão da operação scrub e todos os dados terem sido sincronizados de [.filename]#ada0# para [.filename]#ada1#, as mensagens de erro podem ser <<zfs-zpool-clear>> do status do pool executando `zpool clear`. -[source,bash] +[source,shell] .... # zpool clear healer # zpool status healer @@ -1038,7 +1038,7 @@ Os pools são _exportados_ antes de serem movidos para outro sistema. Todos os c Exportar um pool que não está em uso: -[source,bash] +[source,shell] .... # zpool export mypool .... @@ -1047,7 +1047,7 @@ Importar um pool automaticamente monta os conjuntos de dados. Este pode não ser Listar todos os pools disponíveis para importação: -[source,bash] +[source,shell] .... # zpool import pool: mypool @@ -1062,7 +1062,7 @@ Listar todos os pools disponíveis para importação: Importe o pool com um diretório raiz alternativo: -[source,bash] +[source,shell] .... # zpool import -o altroot=/mnt mypool # zfs list @@ -1078,7 +1078,7 @@ Após a atualização do FreeBSD, ou se um pool foi importado de um sistema usan Atualize um pool v28 para suportar `Feature Flags`: -[source,bash] +[source,shell] .... # zpool status pool: mypool @@ -1127,7 +1127,7 @@ Os recursos mais recentes do ZFS não estarão disponíveis até que o `zpool up Atualize um pool para suportar feature flags adicionais: -[source,bash] +[source,shell] .... # zpool status pool: mypool @@ -1185,14 +1185,14 @@ O boot code em sistemas que inicializam a partir de um pool deve ser atualizado Para inicialização legada usando o GPT, use o seguinte comando: -[source,bash] +[source,shell] .... # gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1 .... Para sistemas que usam o EFI para inicializar, execute o seguinte comando: -[source,bash] +[source,shell] .... # gpart bootcode -p /boot/boot1.efifat -i 1 ada1 .... @@ -1205,7 +1205,7 @@ Aplique o bootcode a todos os discos inicializáveis no pool. Veja man:gpart[8] Comandos que modificam o pool são registrados. As ações registradas incluem a criação de conjuntos de dados, a alteração de propriedades ou a substituição de um disco. Esse histórico é útil para revisar como um pool foi criado e qual usuário executou uma ação específica e quando. O histórico não é mantido em um arquivo de log, mas faz parte do próprio pool. O comando para revisar este histórico é apropriadamente chamado de `zpool history`: -[source,bash] +[source,shell] .... # zpool history History for 'tank': @@ -1219,7 +1219,7 @@ A saída mostra os comandos `zpool` e `zfs` que foram executados no pool juntame O `zpool history` pode mostrar ainda mais informações quando as opções `-i` ou `-l` são fornecidas. A opção `-i` exibe eventos iniciados pelo usuário, bem como eventos do ZFS registrados internamente. -[source,bash] +[source,shell] .... # zpool history -i History for 'tank': @@ -1234,7 +1234,7 @@ History for 'tank': Mais detalhes podem ser mostrados adicionando a opção `-l`. Os registros de histórico são mostrados em um formato longo, incluindo informações como o nome do usuário que emitiu o comando e o nome do host no qual a alteração foi feita. -[source,bash] +[source,shell] .... # zpool history -l History for 'tank': @@ -1253,7 +1253,7 @@ Ambas as opções para o `zpool history` podem ser combinadas para fornecer as i Um sistema de monitoramento integrado pode exibir estatísticas de I/O do pool em tempo real. Ele mostra a quantidade de espaço livre e usado no pool, quantas operações de leitura e gravação estão sendo executadas por segundo e quanto de largura de banda de I/O está sendo utilizada no momento. Por padrão, todos os pools no sistema são monitorados e exibidos. Um nome de pool pode ser fornecido para limitar o monitoramento apenas a esse pool. Um exemplo básico: -[source,bash] +[source,shell] .... # zpool iostat capacity operations bandwidth @@ -1266,7 +1266,7 @@ Para monitorar continuamente a atividade de I/O, um número pode ser especificad Estatísticas mais detalhadas de I/O podem ser exibidas com a opção `-v`. Cada dispositivo no pool é mostrado com uma linha de estatísticas. Isso é útil para ver quantas operações de leitura e gravação estão sendo executadas em cada dispositivo e pode ajudar a determinar se algum dispositivo individual está reduzindo a velocidade do pool. Este exemplo mostra um pool espelhado com dois dispositivos: -[source,bash] +[source,shell] .... # zpool iostat -v capacity operations bandwidth @@ -1296,7 +1296,7 @@ Ao contrário dos discos tradicionais e gerenciadores de volume, o espaço no ZF Crie um novo conjunto de dados e ative a <<zfs-term-compression-lz4,compactação LZ4>> nele: -[source,bash] +[source,shell] .... # zfs list NAME USED AVAIL REFER MOUNTPOINT @@ -1336,7 +1336,7 @@ A destruição de um conjunto de dados é muito mais rápida que a exclusão de Destrua o conjunto de dados criado anteriormente: -[source,bash] +[source,shell] .... # zfs list NAME USED AVAIL REFER MOUNTPOINT @@ -1381,7 +1381,7 @@ Um volume é um tipo especial de conjunto de dados. Em vez de ser montado como u Um volume pode ser formatado com qualquer sistema de arquivos ou usado sem um sistema de arquivos para armazenar dados brutos. Para o usuário, um volume parece ser um disco normal. Colocar sistemas de arquivos comuns nesses _zvols_ fornece recursos que os discos comuns ou sistemas de arquivos normalmente não possuem. Por exemplo, o uso da propriedade de compactação em um volume de 250 MB permite a criação de um sistema de arquivos FAT compactado. -[source,bash] +[source,shell] .... # zfs create -V 250m -o compression=on tank/fat32 # zfs list tank @@ -1405,7 +1405,7 @@ O nome de um conjunto de dados pode ser alterado com `zfs rename`. O pai de um c Renomeie um conjunto de dados e mova-o para um conjunto de dados pai diferente: -[source,bash] +[source,shell] .... # zfs list NAME USED AVAIL REFER MOUNTPOINT @@ -1444,7 +1444,7 @@ mypool/var/tmp 152K 93.2G 152K /var/tmp Os snapshots também podem ser renomeados dessa maneira. Devido à natureza dos snapshots, eles não podem ser renomeados para um conjunto de dados pai diferente. Para renomear um snapshot recursivo, especifique `-r` e todos os snapshots com o mesmo nome nos conjuntos de dados filho também serão renomeados. -[source,bash] +[source,shell] .... # zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT @@ -1462,7 +1462,7 @@ Cada conjunto de dados do ZFS possui várias propriedades que controlam seu comp Propriedades definidas pelo usuário também podem ser definidas. Eles se tornam parte da configuração do conjunto de dados e podem ser usados para fornecer informações adicionais sobre o conjunto de dados ou seu conteúdo. Para distinguir essas propriedades personalizadas daquelas fornecidas como parte do ZFS, dois pontos (`:`) são usados para criar um namespace personalizado para a propriedade. -[source,bash] +[source,shell] .... # zfs set custom:costcenter=1234 tank # zfs get custom:costcenter tank @@ -1472,7 +1472,7 @@ tank custom:costcenter 1234 local Para remover uma propriedade customizada, use o `zfs inherit` com `-r`. Se a propriedade personalizada não estiver definida em nenhum dos conjuntos de dados pai, ela será removida completamente (embora as alterações ainda sejam registradas no histórico do pool). -[source,bash] +[source,shell] .... # zfs inherit -r customizado : costcenter tanque # zfs customizado : costcenter tank @@ -1487,7 +1487,7 @@ tanque personalizado: costcenter - - Duas propriedades de conjunto de dados comumente usadas e úteis são as opções de compartilhamento NFS e SMB. Configurar estas define se e como os conjuntos de dados do ZFS podem ser compartilhados na rede. Atualmente, apenas o compartilhamento de configurações via NFS é suportado no FreeBSD. Para obter o status atual de um compartilhamento, insira: -[source,bash] +[source,shell] .... # zfs get sharenfs mypool/usr/home NAME PROPERTY VALUE SOURCE @@ -1499,14 +1499,14 @@ mypool/usr/home sharesmb off local Para ativar o compartilhamento de um conjunto de dados, insira: -[source,bash] +[source,shell] .... # zfs set sharenfs=on mypool/usr/home .... Também é possível definir opções adicionais para compartilhar conjuntos de dados por meio do NFS, como `-alldirs`, `-maproot` e `-network`. Para definir opções adicionais para um conjunto de dados compartilhado por meio do NFS, insira: -[source,bash] +[source,shell] .... # zfs set sharenfs="-alldirs,-maproot=root,-network=192.168.1.0/24" mypool/usr/home .... @@ -1525,7 +1525,7 @@ Os snapshots são criados com `zfs snapshot _dataset_@_snapshotname_`. Adicionar Crie um Snapshot recursivo de todo o pool: -[source,bash] +[source,shell] .... # zfs list -t all NAME USED AVAIL REFER MOUNTPOINT @@ -1568,7 +1568,7 @@ Os snapshots não são mostrados por uma operação normal do `zfs list`. Para l Os snapshots não são montados diretamente, portanto, nenhum caminho é mostrado na coluna `MOUNTPOINT`. Não há menção ao espaço disponível em disco na coluna `AVAIL`, já que os snapshots não podem ser gravados após serem criados. Compare o snapshot com o conjunto de dados original a partir do qual foi criado: -[source,bash] +[source,shell] .... # zfs list -rt all mypool/usr/home NAME USED AVAIL REFER MOUNTPOINT @@ -1578,7 +1578,7 @@ mypool/usr/home@my_recursive_snapshot 0 - 184K - A exibição do conjunto de dados e dos snapshots juntos revela como os snapshots funcionam no modo <<zfs-term-cow,COW>>. Eles salvam apenas as alterações (_deltas_) que foram feitas e não o conteúdo completo do sistema de arquivos novamente. Isso significa que os snapshots ocupam pouco espaço quando poucas alterações são feitas. O uso do espaço pode se tornar ainda mais aparente copiando um arquivo para o conjunto de dados e fazendo um segundo snapshots: -[source,bash] +[source,shell] .... # cp /etc/passwd /var/tmp # zfs snapshot mypool/var/tmp@after_cp @@ -1596,7 +1596,7 @@ O segundo snapshot contém apenas as alterações feitas no conjunto de dados ap O ZFS fornece um comando interno para comparar as diferenças de conteúdo entre dois snapshots. Isso é útil quando muitos snapshots foram gerados com o passar do tempo e o usuário deseja ver como o sistema de arquivos mudou ao longo do tempo. Por exemplo, o `zfs diff` permite que um usuário localize o ultimo snapshot que ainda contém um arquivo que foi acidentalmente excluído. Fazer isso para os dois snapshots criados na seção anterior produz essa saída: -[source,bash] +[source,shell] .... # zfs list -rt all mypool/var/tmp NAME USED AVAIL REFER MOUNTPOINT @@ -1633,7 +1633,7 @@ A comparação de dois snapshots é útil ao usar o recurso de replicação do Z Compare dois snapshots fornecendo o nome completo do conjunto de dados e o nome do snapshot de ambos os conjuntos de dados: -[source,bash] +[source,shell] .... # cp /var/tmp/passwd /var/tmp/passwd.copy # zfs snapshot mypool/var/tmp@diff_snapshot @@ -1655,7 +1655,7 @@ Quando pelo menos um snapshot estiver disponível, ele poderá ser revertido a q No primeiro exemplo, um snapshot é revertido por causa de uma operação descuidada com o comando `rm` que removeu muito mais dados do que o pretendido. -[source,bash] +[source,shell] .... # zfs list -rt all mypool/var/tmp NAME USED AVAIL REFER MOUNTPOINT @@ -1672,7 +1672,7 @@ vi.recover Neste ponto, o usuário percebeu que muitos arquivos foram excluídos e os quer de volta. O ZFS fornece uma maneira fácil de recuperá-los usando reversões, mas somente quando os snapshots de dados importantes são executados regularmente. Para recuperar os arquivos e recomeçar a partir do último snapshot, emita o comando: -[source,bash] +[source,shell] .... # zfs rollback mypool/var/tmp@diff_snapshot # ls /var/tmp @@ -1681,7 +1681,7 @@ passwd passwd.copy vi.recover A operação de reversão restaurou o conjunto de dados para o estado do último snapshot. Também é possível reverter para um snapshot que foi gerado muito antes e que possui outros snapshots criados após ele. Ao tentar fazer isso, o ZFS irá emitir este aviso: -[source,bash] +[source,shell] .... # zfs list -rt snapshot mypool/var/tmp AME USED AVAIL REFER MOUNTPOINT @@ -1697,7 +1697,7 @@ mypool/var/tmp@diff_snapshot Esse aviso significa que existem snapshots entre o estado atual do conjunto de dados e o snapshot para o qual o usuário deseja retroceder. Para concluir a reversão, esses snapshots devem ser excluídos. O ZFS não pode rastrear todas as alterações entre estados diferentes do conjunto de dados, porque os snapshots são somente de leitura. O ZFS não excluirá os snapshots afetados, a menos que o usuário especifique a opção `-r` para indicar que essa é a ação desejada. Se essa for a intenção e as consequências da perda de todos os snapshots intermediários forem compreendidas, o comando poderá ser emitido: -[source,bash] +[source,shell] .... # zfs rollback -r mypool/var/tmp@my_recursive_snapshot # zfs list -rt snapshot mypool/var/tmp @@ -1714,7 +1714,7 @@ A saída de `zfs list -t snapshot` confirma que os snapshots intermediários for Os snapshots são montados em um diretório oculto no conjunto de dados pai: [.filename]#.zfs/snapshots/snapshotname#. Por padrão, esses diretórios não serão exibidos mesmo quando um `ls -a` padrão for executado. Embora o diretório não seja exibido, ele está lá e pode ser acessado como qualquer diretório normal. A propriedade denominada `snapdir` controla se esses diretórios ocultos aparecem em uma listagem de diretórios. Definir a propriedade como `visible` permite que eles apareçam na saída do `ls` e de outros comandos que lidam com o conteúdo do diretório. -[source,bash] +[source,shell] .... # zfs get snapdir mypool/var/tmp NAME PROPERTY VALUE SOURCE @@ -1728,7 +1728,7 @@ mypool/var/tmp snapdir hidden default Arquivos individuais podem ser facilmente restaurados para um estado anterior, copiando-os do snapshot de volta para o conjunto de dados pai. A estrutura de diretórios abaixo de [.filename]#.zfs/snapshot# tem um diretório nomeado exatamente como os instantâneos criados anteriormente para facilitar sua identificação. No próximo exemplo, presume-se que um arquivo deve ser restaurado a partir do diretório [.filename]#.zfs# oculto, copiando-o do snapshot que continha a versão mais recente do arquivo: -[source,bash] +[source,shell] .... # rm /var/tmp/passwd # ls -a /var/tmp @@ -1742,7 +1742,7 @@ passwd vi.recover Quando o comando `ls .zfs/snapshot` foi emitido, a propriedade `snapdir` pode ter sido definida como oculta, mas ainda seria possível listar o conteúdo desse diretório. Cabe ao administrador decidir se esses diretórios serão exibidos. É possível exibi-los para determinados conjuntos de dados e impedi-los para outros. Copiar arquivos ou diretórios deste diretório [.filename]#.zfs/snapshot# oculto é bastante simples. Tentar o contrário, resulta neste erro: -[source,bash] +[source,shell] .... # cp /etc/rc.conf /var/tmp/.zfs/snapshot/after_cp/ cp: /var/tmp/.zfs/snapshot/after_cp/rc.conf: Read-only file system @@ -1761,7 +1761,7 @@ Um clone é uma cópia de um snapshot que é tratado mais como um conjunto de da Para demonstrar o recurso de clonagem, este conjunto de dados de exemplo é usado: -[source,bash] +[source,shell] .... # zfs list -rt all camino/home/joe NAME USED AVAIL REFER MOUNTPOINT @@ -1772,7 +1772,7 @@ camino/home/joe@backup 0K - 87K - Um uso típico de clones é experimentar um conjunto de dados específico, mantendo o snapshot em volta, para o caso de algo dar errado. Como os snapshots não podem ser alterados, um clone de leitura/gravação de um snapshot é criado. Depois que o resultado desejado é alcançado no clone, o clone pode ser promovido para se tornar um conjunto de dados e o sistema de arquivos antigo é removido. Isso não é estritamente necessário, pois o clone e o conjunto de dados podem coexistir sem problemas. -[source,bash] +[source,shell] .... # zfs clone camino/home/joe@backup camino/home/joenew # ls /usr/home/joe* @@ -1789,7 +1789,7 @@ usr/home/joenew 1.3G 31k 1.3G 0% /usr/home/joenew Depois que um clone é criado, ele é uma cópia exata do estado em que o conjunto de dados estava quando o snapshot foi criado. O clone agora pode ser alterado independentemente de seu conjunto de dados de origem. A única conexão entre os dois é o snapshot. O ZFS registra essa conexão na propriedade `origin`. Uma vez que a dependência entre o snapshot e o clone foi removida promovendo-se o clone usando `zfs promote`, a `origem` do clone é removida, pois agora ele é um conjunto de dados independente. Este exemplo demonstra isso: -[source,bash] +[source,shell] .... # zfs get origin camino/home/joenew NAME PROPERTY VALUE SOURCE @@ -1802,7 +1802,7 @@ camino/home/joenew origin - - Depois de fazer algumas alterações, como copiar o [.filename]#loader.conf# para o clone promovido, por exemplo, o diretório antigo torna-se obsoleto nesse caso. Em vez disso, o clone promovido pode substituí-lo. Isso pode ser conseguido por dois comandos consecutivos: `zfs destroy` no dataset antigo e `zfs rename` no clone para nomeá-lo como o conjunto de dados antigo (ele também poderia ter um nome totalmente diferente). -[source,bash] +[source,shell] .... # cp /boot/defaults/loader.conf /usr/home/joenew # zfs destroy -f camino/home/joe @@ -1823,7 +1823,7 @@ Manter os dados em um único pool e em um único local o expõe a riscos como ro Estes exemplos demonstram a replicação do ZFS com estes dois pools: -[source,bash] +[source,shell] .... # zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT @@ -1833,7 +1833,7 @@ mypool 984M 43.7M 940M - - 0% 4% 1.00x ONLINE - O pool chamado _mypool_ é o pool principal no qual os dados são gravados e lidos regularmente. Um segundo pool, _backup_ é usado como standby, caso o pool principal fique indisponível. Observe que esse failover não é feito automaticamente pelo ZFS, mas deve ser feito manualmente por um administrador do sistema, quando necessário. Um snapshot é usado para fornecer uma versão consistente do sistema de arquivos a ser replicado. Depois que um snapshot de _mypool_ tiver sido criado, ele poderá ser copiado para o pool _backup_. Apenas snapshots podem ser replicados. As alterações feitas desde o snapshot mais recente não serão incluídas. -[source,bash] +[source,shell] .... # zfs snapshot mypool@backup1 # zfs list -t snapshot @@ -1843,7 +1843,7 @@ mypool@backup1 0 - 43.6M - Agora que existe um snapshot, o `zfs send` pode ser usado para criar um fluxo representando o conteúdo do snapshot. Esse fluxo pode ser armazenado como um arquivo ou recebido por outro pool. O fluxo é gravado na saída padrão, mas deve ser redirecionado para um arquivo ou canal ou um erro será produzido: -[source,bash] +[source,shell] .... # zfs send mypool@backup1 Error: Stream can not be written to a terminal. @@ -1852,7 +1852,7 @@ You must redirect standard output. Para fazer backup de um conjunto de dados com o `zfs send`, redirecione para um arquivo localizado no pool de backup montado. Assegure-se de que o pool tenha espaço livre suficiente para acomodar o tamanho do snapshot que está sendo enviado, o que significa todos os dados contidos no snapshot, não apenas as mudanças do snapshot anterior. -[source,bash] +[source,shell] .... # zfs send mypool@backup1 > /backup/backup1 # zpool list @@ -1865,7 +1865,7 @@ O `zfs send` transferiu todos os dados do snapshot chamado _backup1_ para o pool Em vez de armazenar os backups como arquivos compactados, o ZFS pode recebê-los como um sistema de arquivos ativo, permitindo que os dados de backup sejam acessados diretamente. Para obter os dados reais contidos nesses fluxos, o `zfs receive` é usado para transformar os fluxos novamente em arquivos e diretórios. O exemplo a seguir combina o `zfs send` e o `zfs receive` usando um canal para copiar os dados de um pool para outro. Os dados podem ser usados diretamente no pool de recebimento após a conclusão da transferência. Um conjunto de dados só pode ser replicado para um conjunto de dados vazio. -[source,bash] +[source,shell] .... # zfs snapshot mypool@replica1 # zfs send -v mypool@replica1 | zfs receive backup/mypool @@ -1884,7 +1884,7 @@ mypool 984M 43.7M 940M - - 0% 4% 1.00x ONLINE - O `zfs send` também pode determinar a diferença entre dois snapshots e enviar apenas as diferenças entre os dois. Isso economiza espaço em disco e tempo de transferência. Por exemplo: -[source,bash] +[source,shell] .... # zfs snapshot mypool@replica2 # zfs list -t snapshot @@ -1899,7 +1899,7 @@ mypool 960M 50.2M 910M - - 0% 5% 1.00x ONLINE - Um segundo snapshot chamado _replica2_ foi criado. Este segundo snapshot contém apenas as alterações feitas no sistema de arquivos entre o snapshot atual e o anterior, _replica1_. O uso do `zfs send -i` e a indicação do par de snapshots gera um fluxo de réplica incremental contendo apenas os dados que foram alterados. Isso só será bem-sucedido se o snapshot inicial já existir no lado do recebimento. -[source,bash] +[source,shell] .... # zfs send -v -i mypool@replica1 mypool@replica2 | zfs receive /backup/mypool send from @replica1 to mypool@replica2 estimated size is 5.02M @@ -1942,14 +1942,14 @@ Essa configuração é necessária: * Normalmente, os privilégios do usuário `root` são necessários para enviar e receber fluxos. Isso requer o login no sistema de recebimento como `root`. No entanto, o login como `root` vem desabilitado por padrão por motivos de segurança. O sistema <<zfs-zfs-allow,ZFS Delegation>> pode ser usado para permitir que um usuário não `root` em cada sistema execute as respectivas operações de envio e recebimento. * No sistema de envio: + -[source,bash] +[source,shell] .... # zfs allow -u someuser send,snapshot mypool .... * Para montar o pool, o usuário não privilegiado deve ser o dono do diretório e os usuários regulares devem poder montar sistemas de arquivos. No sistema de recebimento: + -[source,bash] +[source,shell] .... # sysctl vfs.usermount=1 vfs.usermount: 0 -> 1 @@ -1961,7 +1961,7 @@ vfs.usermount: 0 -> 1 O usuário sem privilégios agora tem a capacidade de receber e montar conjuntos de dados, e o conjunto de dados _home_ pode ser replicado para o sistema remoto: -[source,bash] +[source,shell] .... % zfs snapshot -r mypool/home@monday % zfs send -R mypool/home@monday | ssh someuser@backuphost zfs recv -dvu recvpool/backup @@ -1978,21 +1978,21 @@ Os exemplos a seguir pressupõem que os usuários já existam no sistema. Antes Para impor uma cota de dataser de 10 GB para o [.filename]#storage/home/bob#: -[source,bash] +[source,shell] .... # zfs set quota=10G storage/home/bob .... Para impor uma cota de referência de 10 GB para [.filename]#storage/home/bob#: -[source,bash] +[source,shell] .... # zfs set refquota=10G storage/home/bob .... Para remover uma cota de 10 GB do [.filename]#storage/home/bob#: -[source,bash] +[source,shell] .... # zfs set quota=none storage/home/bob .... @@ -2006,14 +2006,14 @@ O formato geral é `userquota@_user_=_size_` e o nome do usuário deve estar em Por exemplo, para impor uma cota de usuário de 50 GB para o usuário chamado _joe_: -[source,bash] +[source,shell] .... # zfs set userquota@joe=50G .... Para remover qualquer cota: -[source,bash] +[source,shell] .... # zfs set userquota@joe=none .... @@ -2027,14 +2027,14 @@ O formato geral para definir uma cota de grupo é: `groupquota@_group_=_size_`. Para definir a cota do grupo _firstgroup_ para 50 GB, use: -[source,bash] +[source,shell] .... # zfs set groupquota@firstgroup=50G .... Para remover a cota do grupo _firstgroup_ ou para certificar-se de que uma não está definida, use: -[source,bash] +[source,shell] .... # zfs set groupquota@firstgroup=none .... @@ -2045,7 +2045,7 @@ Para exibir a quantidade de espaço utilizada por cada usuário em um sistema de Usuários com privilégios suficientes, e o `root`, podem listar a cota para [.filename]#storage/home/bob# usando: -[source,bash] +[source,shell] .... # zfs get quota storage/home/bob .... @@ -2057,14 +2057,14 @@ As <<zfs-term-reservation,reservas>> garantem uma quantidade mínima de espaço O formato geral da propriedade `reservation` é `reservation=_size_`, portanto, para definir uma reserva de 10 GB em [.filename]#storage/home/bob#, use: -[source,bash] +[source,shell] .... # zfs set reservation=10G storage/home/bob .... Para cancelar qualquer reserva: -[source,bash] +[source,shell] .... # zfs set reservation=none storage/home/bob .... @@ -2073,7 +2073,7 @@ O mesmo princípio pode ser aplicado à propriedade `refreservation` para defini Este comando mostra todas as reservas ou atualizações existentes no [.filename]#storage/home/bob#: -[source,bash] +[source,shell] .... # zfs get reservation storage/home/bob # zfs get refreservation storage/home/bob @@ -2088,7 +2088,7 @@ O ZFS oferece vários algoritmos de compactação diferentes, cada um com difere O administrador pode monitorar a eficácia da compactação usando várias propriedades do conjunto de dados. -[source,bash] +[source,shell] .... # zfs get used,compressratio,compression,logicalused mypool/compressed_dataset NAME PROPERTY VALUE SOURCE @@ -2111,14 +2111,14 @@ Quando ativado, a <<zfs-term-deduplication,deduplicação>> usa o checksum de ca Para ativar a deduplicação, defina a propriedade `dedup` no pool de destino: -[source,bash] +[source,shell] .... # zfs set dedup=on pool .... Somente novos dados sendo gravados no pool serão desduplicados. Os dados que já foram gravados no pool não serão desduplicados simplesmente ativando essa opção. Um pool com uma propriedade de desduplicação ativada recentemente será semelhante a este exemplo: -[source,bash] +[source,shell] .... # zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT @@ -2127,7 +2127,7 @@ pool 2.84G 2.19M 2.83G - - 0% 0% 1.00x ONLINE - A coluna `DEDUP` mostra a taxa real de deduplicação para o pool. Um valor de `1.00x` mostra que os dados ainda não foram desduplicados. No próximo exemplo, a árvore de ports é copiada três vezes em diretórios diferentes no pool desduplicado criado acima. -[source,bash] +[source,shell] .... # for d in dir1 dir2 dir3; do > mkdir $d && cp -R /usr/ports $d & @@ -2136,7 +2136,7 @@ A coluna `DEDUP` mostra a taxa real de deduplicação para o pool. Um valor de ` Dados redundantes são detectados e desduplicados: -[source,bash] +[source,shell] .... # zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT @@ -2147,7 +2147,7 @@ A coluna `DEDUP` mostra um fator de `3.00x`. Várias cópias dos dados da árvor A desduplicação nem sempre é benéfica, especialmente quando os dados em um pool não são redundantes. O ZFS pode mostrar uma possível economia de espaço ao simular a desduplicação em um pool existente: -[source,bash] +[source,shell] .... # zdb -S pool Simulated DDT histogram: diff --git a/documentation/content/pt-br/books/porters-handbook/makefiles/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/makefiles/chapter.adoc index 56fc585872..58ff21596d 100644 --- a/documentation/content/pt-br/books/porters-handbook/makefiles/chapter.adoc +++ b/documentation/content/pt-br/books/porters-handbook/makefiles/chapter.adoc @@ -85,7 +85,7 @@ Ao atualizar um port, é possível usar o man:pkg-version[8]`-t` para verificar ==== `pkg version -t` recebe duas versões como argumentos, responderá com `<`, `=` ou `>` se a primeira versão for menor, igual ou maior que a segunda versão, respectivamente. -[source,bash] +[source,shell] .... % pkg version -t 1.2 1.3 < <.> @@ -217,7 +217,7 @@ DISTVERSION= 1.2p4 Ambos irão gerar um `PORTVERSION` com valor `1.2.p4` que é menor do que 1.2. man:pkg-version[8] pode ser usado para verificar esse fato: -[source,bash] +[source,shell] .... % pkg version -t 1.2.p4 1.2 < @@ -239,7 +239,7 @@ PORTVERSION= 1.2p4 Neste caso, usar `DISTVERSION` não é possível porque geraria uma versão `1.2.p4` o que seria menor que `1.2` e não maior.man:pkg-version[8] irá constatar isso: -[source,bash] +[source,shell] .... % pkg version -t 1.2 1.2.p4 > <.> @@ -295,7 +295,7 @@ De tempos em tempos, um fornecedor de software ou um mantenedor de port do FreeB Os resultados das comparações de números de versão nem sempre são óbvios. `pkg version` (veja man:pkg-version[8]) pode ser usado para testar a comparação de duas sequências de números de versão. Por exemplo: -[source,bash] +[source,shell] .... % pkg version -t 0.031 0.29 > @@ -1021,7 +1021,7 @@ BIND9 usa um esquema de versão que não é compatível com as versões de ports A ordem na qual o framework do ports e o pkg ordenará as versões, é verificada usando o argumento `-t` do man:pkg-version[8]: -[source,bash] +[source,shell] .... % pkg version -t 9.9.9 9.9.9.p1 > <.> @@ -1438,7 +1438,7 @@ GH_TAGNAME= c472d66b Isso cria um esquema de controle de versão que é incrementado com o tempo e que ainda é menor do que a versão `0` (veja <<makefile-versions-ex-pkg-version>> para mais informações do man:pkg-version[8]): -[source,bash] +[source,shell] .... % pkg version -t g20140411 0 < @@ -1453,7 +1453,7 @@ Isso significa que não será necessário usar o `PORTEPOCH` caso o upstream dec ==== Se a versão atual do software usa uma tag Git, e o port precisa ser atualizado para uma versão mais recente e intermediária, sem uma tag, use man:git-describe[1] para descobrir a versão a ser utilizada: -[source,bash] +[source,shell] .... % git describe --tags f0038b1 v0.7.3-14-gf0038b1 @@ -1482,7 +1482,7 @@ USE_GITHUB= yes Isso cria um esquema de versionamento que é incrementado com o tempo (bem, em cima de commits), e não entra em conflito com a criação de uma versão `0.7.4`. (Veja <<makefile-versions-ex-pkg-version>> para detalhes do man:pkg-version[8]): -[source,bash] +[source,shell] .... % pkg version -t 0.7.3 0.7.3.14 < @@ -1494,7 +1494,7 @@ Isso cria um esquema de versionamento que é incrementado com o tempo (bem, em c ====== Se o commit solicitado é o mesmo que uma tag, uma descrição mais curta é mostrada por padrão. A versão mais longa é equivalente: -[source,bash] +[source,shell] .... % git describe --tags c66c71d v0.7.3 @@ -1630,7 +1630,7 @@ Usando package:finances/moneymanagerex[] como exemplo, seu repositório GitHub A única informação que falta nesse arquivo é a hash ou tag de commit para usar na versão. Esta informação é encontrada após a clonagem do repositório: -[source,bash] +[source,shell] .... % git clone --recurse-submodules https://github.com/moneymanagerex/moneymanagerex.git Cloning into 'moneymanagerex'... @@ -4549,7 +4549,7 @@ O conteúdo mais comum de uma dessas variáveis é o pacote base de outro ==== package:dns/bind99[] não pode ser instalado se package:dns/bind910[] está presente porque eles instalam os mesmos arquivos. Primeiro, reúna o pacote base para usar: -[source,bash] +[source,shell] .... % make -C dns/bind99 -V PKGBASE bind99 diff --git a/documentation/content/pt-br/books/porters-handbook/quick-porting/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/quick-porting/chapter.adoc index fbecc74195..dfa9772b1b 100644 --- a/documentation/content/pt-br/books/porters-handbook/quick-porting/chapter.adoc +++ b/documentation/content/pt-br/books/porters-handbook/quick-porting/chapter.adoc @@ -45,7 +45,7 @@ Estas etapas assumem que o software foi compilado de forma simples (out-of-the-b ==== Recomenda-se definir a variável `DEVELOPER` do man:make[1] em [.filename]#/etc/make.conf# antes de começar o trabalho com os ports. -[source,bash] +[source,shell] .... # echo DEVELOPER=yes >> /etc/make.conf .... @@ -248,7 +248,7 @@ Em seguida, crie um man:patch[1]. Assumindo que o port é chamado `oneko` e est ==== Adicione todos os arquivos com `svn add`. Utilize o `cd` e vá para a base da árvore de ports, para que os caminhos completos dos arquivos alterados sejam incluídos no diff, então gere o diff com `svn diff`. Por exemplo: -[source,bash] +[source,shell] .... % svn add . % cd ../.. @@ -283,7 +283,7 @@ Também é possível enviar ports usando um arquivo man:shar[1]. Usando o exempl ==== vá para o diretório acima, onde o diretório do port está localizado, e use `tar` para criar o arquivo shar: -[source,bash] +[source,shell] .... % cd .. % tar cf oneko.shar --format shar oneko diff --git a/documentation/content/pt-br/books/porters-handbook/security/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/security/chapter.adoc index f9415d48e7..28b6c991db 100644 --- a/documentation/content/pt-br/books/porters-handbook/security/chapter.adoc +++ b/documentation/content/pt-br/books/porters-handbook/security/chapter.adoc @@ -158,14 +158,14 @@ Como pré-requisito, instale uma nova versão do port package:security/vuxml[]. Primeiro, verifique se já existe uma entrada para esta vulnerabilidade. Se houvesse essa entrada, ela deveria corresponder com a versão anterior do pacote, `2013.58`: -[source,bash] +[source,shell] .... % pkg audit dropbear-2013.58 .... Se não houver nenhuma, adicione uma nova entrada para esta vulnerabilidade. -[source,bash] +[source,shell] .... % cd ${PORTSDIR}/security/vuxml % make newentry @@ -173,7 +173,7 @@ Se não houver nenhuma, adicione uma nova entrada para esta vulnerabilidade. Verifique sua sintaxe e formatação: -[source,bash] +[source,shell] .... % make validate .... @@ -185,7 +185,7 @@ Pelo menos um desses pacotes precisa ser instalado:package:textproc/libxml2[], p Verifique se a seção `<affected>` da entrada irá coincidir com os pacotes corretos: -[source,bash] +[source,shell] .... % pkg audit -f ${PORTSDIR}/security/vuxml/vuln.xml dropbear-2013.58 .... @@ -194,7 +194,7 @@ Certifique-se de que a entrada não produza correspondências incorretas. Agora, verifique se as versões corretas do pacote são correspondidas pela entrada: -[source,bash] +[source,shell] .... % pkg audit -f ${PORTSDIR}/security/vuxml/vuln.xml dropbear-2013.58 dropbear-2013.59 dropbear-2012.58 is vulnerable: diff --git a/documentation/content/pt-br/books/porters-handbook/slow-porting/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/slow-porting/chapter.adoc index 50241e59f8..04164f8c10 100644 --- a/documentation/content/pt-br/books/porters-handbook/slow-porting/chapter.adoc +++ b/documentation/content/pt-br/books/porters-handbook/slow-porting/chapter.adoc @@ -100,7 +100,7 @@ A menos que explicitamente declarado, os arquivos de patch, scripts e outros arq Na preparação do port, arquivos que forem adicionados ou alterados podem ser gravados com man:diff[1] para posterior inclusão em um man:patch[1]. Fazer isso com um arquivo típico envolve salvar uma cópia do arquivo original antes de fazer qualquer alteração usando um sufixo [.filename]#.orig#. -[source,bash] +[source,shell] .... % cp file file.orig .... @@ -139,14 +139,14 @@ Patches são salvos em arquivos nomeados como [.filename]#patch-*# onde _*_ indi Depois que o arquivo foi modificado, man:diff[1] é usado para registrar as diferenças entre a versão original e a modificada. `-u` faz com que o man:diff[1] produza diffs "unificados", a forma preferida. -[source,bash] +[source,shell] .... % diff -u file.orig file > patch-pathname-file .... Ao gerar patches para novos arquivos adicionados, `-N` é usado para dizer ao man:diff[1] para tratar o arquivo original inexistente como se existisse, mas estava vazio: -[source,bash] +[source,shell] .... % diff -u -N newfile.orig newfile > patch-pathname-newfile .... @@ -257,7 +257,7 @@ As vezes, existem muitos patches que são necessários para um recurso, neste ca Crie um subdiretório em [.filename]#${PATCHDIR}#, e mova os patches para ele. Por exemplo: -[source,bash] +[source,shell] .... % ls -l files/foo-patches -rw-r--r-- 1 root wheel 350 Jan 16 01:27 patch-Makefile.in diff --git a/documentation/content/pt-br/books/porters-handbook/special/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/special/chapter.adoc index 0707e5594e..665f0fc4ca 100644 --- a/documentation/content/pt-br/books/porters-handbook/special/chapter.adoc +++ b/documentation/content/pt-br/books/porters-handbook/special/chapter.adoc @@ -83,7 +83,7 @@ ${RLN} ${STAGEDIR}/var/cache/foo ${STAGEDIR}${PREFIX}/share/foo Irá gerar: -[source,bash] +[source,shell] .... % ls -lF ${STAGEDIR}${PREFIX}/lib lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 libfoo.so@ -> libfoo.so.42 @@ -529,7 +529,7 @@ GH_ACCOUNT= Aaronepower Gerar uma [.filename]#distinfo# inicial: -[source,bash] +[source,shell] .... % make makesum => Aaronepower-tokei-v7.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/. @@ -540,7 +540,7 @@ Aaronepower-tokei-v7.0.2_GH0.tar.gz 45 kB 239 kBps 00m00s Agora o arquivo de distribuição está pronto para uso e podemos ir em frente e extrair as dependências crate do pacote [.filename]#Cargo.lock#: -[source,bash] +[source,shell] .... % make cargo-crates CARGO_CRATES= aho-corasick-0.6.4 \ @@ -581,7 +581,7 @@ CARGO_CRATES= aho-corasick-0.6.4 \ O [.filename]#distinfo# precisa ser regenerado para conter todos os arquivos de distribuição dos crates: -[source,bash] +[source,shell] .... % make makesum => rust/crates/aho-corasick-0.6.4.tar.gz doesn't seem to exist in /usr/ports/distfiles/. @@ -654,7 +654,7 @@ PULSEAUDIO_VARS= CARGO_FEATURES+=pulseaudio_backend ==== Os crates têm suas próprias licenças. É importante saber o que elas são ao adicionar o bloco `LICENSE` para o port (ver<<licenses>>). O target auxiliar `cargo-crates-licenses` tentará listar todas as licenças de todos os crates definidos no `CARGO_CRATES`. -[source,bash] +[source,shell] .... % make cargo-crates-licenses aho-corasick-0.6.4 Unlicense/MIT @@ -736,7 +736,7 @@ GH_ACCOUNT= motemen Gerar uma [.filename]#distinfo# inicial: -[source,bash] +[source,shell] .... % make makesum ===> License MIT accepted by the user @@ -748,7 +748,7 @@ motemen-ghq-v0.12.5_GH0.tar.gz 32 kB 177 kBps 00s Agora o arquivo de distribuição está pronto para uso e podemos extrair as dependências necessárias de módulos Go. Esta etapa requer a instalação do package:ports-mgmt/modules2tuple[]: -[source,bash] +[source,shell] .... % make gomod-vendor [...] @@ -792,7 +792,7 @@ GH_TUPLE= Songmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitc O [.filename]#distinfo# precisa ser gerado novamente para conter todos os arquivos de distribuição: -[source,bash] +[source,shell] .... % make makesum => Songmu-gitconfig-v0.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/. @@ -859,7 +859,7 @@ USES= cabal Esse Makefile mínimo nos permite baixar o arquivo de distribuição: -[source,bash] +[source,shell] .... % make cabal-extract [...] @@ -872,7 +872,7 @@ Unpacking to ShellCheck-0.6.0/ Agora, temos o arquivo de descrição do pacote ShellCheck.cabal, que permite baixar todas as dependências do pacote, incluindo as transitivas: -[source,bash] +[source,shell] .... % make cabal-extract-deps [...] @@ -889,7 +889,7 @@ Downloading dlist-0.8.0.7 Como efeito colateral, as dependências do pacote também são compiladas, portanto, o comando pode levar algum tempo. Uma vez feito, uma lista de dependências necessárias pode ser gerada: -[source,bash] +[source,shell] .... % make make-use-cabal USE_CABAL=QuickCheck-2.12.6.1 \ @@ -900,7 +900,7 @@ integer-logarithms-1.0.3 \ Pacotes Haskell podem conter revisões, assim como nos ports do FreeBSD. As revisões podem afetar apenas os arquivos [.filename]#.cabal#, mas ainda é importante extraí-los. Para verificar os itens `USE_CABAL` quanto a atualizações de revisão disponíveis, execute o seguinte comando: -[source,bash] +[source,shell] .... % make make-use-cabal-revs USE_CABAL=QuickCheck-2.12.6.1_1 \ @@ -913,7 +913,7 @@ Observe os números de versão adicionais após o símbolo `_`. Coloque a lista Finalmente, o [.filename]#distinfo# precisa ser gerado novamente para conter todos os arquivos de distribuição: -[source,bash] +[source,shell] .... % make makesum => ShellCheck-0.6.0.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal. @@ -4219,7 +4219,7 @@ O port package:devel/rclint[] pode verificar a maioria destes itens, mas não su . Certifique-se de que não há um `KEYWORD: FreeBSD` presente. Isto não foi necessário nem desejável durante anos. Isto também é uma indicação de que o novo script foi copiado/colado de um script antigo, portanto, um cuidado extra deve ser dado à revisão. . Se o script usa uma linguagem interpretada como o `perl`, o `python` ou o `ruby`, certifique-se de que o `command_interpreter` está definido adequadamente, por exemplo, para o Perl, adicione `PERL=${PERL}` para a `SUB_LIST` e utilize `%%PERL%%`. De outra forma, + -[source,bash] +[source,shell] .... # service name stop .... diff --git a/documentation/content/pt-br/books/porters-handbook/testing/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/testing/chapter.adoc index c8855d05d5..6278151654 100644 --- a/documentation/content/pt-br/books/porters-handbook/testing/chapter.adoc +++ b/documentation/content/pt-br/books/porters-handbook/testing/chapter.adoc @@ -60,7 +60,7 @@ O programa package:ports-mgmt/porttools[] faz parte da Coleção de Ports. O `port` é o script front-end, que pode ajudar a simplificar o trabalho de teste. Sempre que um novo port ou uma atualização de um já existente precisar de teste, use `port test` para testar o port, incluindo a verificação <<testing-portlint,`portlint`>>. Este comando também detecta e lista todos os arquivos que não estão listados no [.filename]#pkg-plist#. Por exemplo: -[source,bash] +[source,shell] .... # port test /usr/ports/net/csup .... @@ -78,7 +78,7 @@ Evitar o uso do caminho [.filename]#/usr/local# codificado no fonte tornam o por Verifique se o aplicativo não está instalando arquivos em [.filename]#/usr/local# ao invés de `PREFIX`. Um teste rápido para esses caminhos codificados é: -[source,bash] +[source,shell] .... % make clean; make package PREFIX=/var/tmp/`make -V PORTNAME` .... @@ -87,7 +87,7 @@ Se alguma coisa for instalada fora do `PREFIX`, o processo de criação de pacot Além disso, vale a pena verificar o mesmo em relação ao suporte a diretórios stage (veja <<staging>>): -[source,bash] +[source,shell] .... % make stage && make check-plist && make stage-qa && make package .... @@ -141,14 +141,14 @@ Os exemplos nesta seção mostram um layout de arquivo padrão, como padrão no O Poudriere está disponível na árvore de ports em package:ports-mgmt/poudriere[]. Ele pode ser instalado usando o man:pkg[8] ou a partir do ports: -[source,bash] +[source,shell] .... # pkg install poudriere .... ou -[source,bash] +[source,shell] .... # make -C /usr/ports/ports-mgmt/poudriere install clean .... @@ -197,14 +197,14 @@ O servidor de onde as jails são instaladas e atualizadas ao usar o Subversion. Crie as jails de base que serão usadas pelo Poudriere para as compilações: -[source,bash] +[source,shell] .... # poudriere jail -c -j 113Ramd64 -v 11.3-RELEASE -a amd64 .... Baixe a versão `11.3-RELEASE` para `amd64` do servidor FTP dado por `FREEBSD_HOST` dentro do [.filename]#poudriere.conf#, crie o sistema de arquivos com zfs em `tank/poudriere/jails/113Ramd64`, monte-o em [.filename]#/poudriere/jails/113Ramd64# e extrai os tarballs `11.3-RELEASE` neste sistema de arquivos. -[source,bash] +[source,shell] .... # poudriere jail -c -j 11i386 -v stable/11 -a i386 -m svn+https .... @@ -216,7 +216,7 @@ Criado o `tank/poudriere/jaulas/11i386` monte-o em [.filename]#/poudriere/jails/ Se uma determinada revisão do Subversion é necessária, anexe ela à string de versão. Por exemplo: -[source,bash] +[source,shell] .... # poudriere jail -c -j 11i386 -v stable/11@123456 -a i386 -m svn+https .... @@ -232,7 +232,7 @@ Embora seja possível compilar uma versão mais nova do FreeBSD em uma versão m ==== Para criar uma jail Poudriere para o `13.0-CURRENT`: -[source,bash] +[source,shell] .... # poudriere jail -c -j 13amd64 -v head -a amd64 -m svn+https .... @@ -248,7 +248,7 @@ O protocolo padrão `svn` funciona normalmente, mas não é muito seguro. Usar ` Uma lista de jails atualmente conhecidas pelo Poudriere podem ser mostradas com `poudriere jail -l`: -[source,bash] +[source,shell] .... # poudriere jail -l JAILNAME VERSION ARCH METHOD @@ -261,7 +261,7 @@ JAILNAME VERSION ARCH METHOD Gerenciar atualizações é muito simples. O comando: -[source,bash] +[source,shell] .... # poudriere jail -u -j JAILNAME .... @@ -272,7 +272,7 @@ atualiza a jail especificada para a versão mais recente disponível. Para relea ==== Para jails que empregam um método `svn+_*_`, é útil adicionar `-J _NumberOfParallelBuildJobs_` para acelerar a compilação aumentando o número de trabalhos de compilação paralelos utilizados. Por exemplo, se a máquina de compilação tiver 6 CPUs, use: -[source,bash] +[source,shell] .... # poudriere jail -u -J 6 -j JAILNAME .... @@ -284,21 +284,21 @@ Para jails que empregam um método `svn+_*_`, é útil adicionar `-J _NumberOfPa Existem várias maneiras de usar árvores de ports no Poudriere. A maneira mais direta é o Poudriere criar uma árvore de ports padrão para si mesmo usando man:portsnap[8] (se estiver executando FreeBSD 12.1 ou 11.4) ou Subversion (se estiver executando FreeBSD-CURRENT): -[source,bash] +[source,shell] .... # poudriere ports -c -m portsnap .... ou -[source,bash] +[source,shell] .... # poudriere ports -c -m svn+https .... Estes comandos criam `tank/poudriere/ports/default`, monta-o em [.filename]#/poudriere/ports/default# e o povoa usando o man:portsnap[8] ou Subversion. Depois disso, ele é incluído na lista de árvores de ports conhecidas: -[source,bash] +[source,shell] .... # poudriere ports -l PORTSTREE METHOD TIMESTAMP PATH @@ -329,21 +329,21 @@ Dependendo do fluxo de trabalho, pode ser extremamente útil usar árvores de po * Para o Poudriere anterior à versão 3.1.20: + -[source,bash] +[source,shell] .... # poudriere ports -c -F -f none -M /work/ports -p development .... * Para o Poudriere versão 3.1.20 e posterior: + -[source,bash] +[source,shell] .... # poudriere ports -c -m null -M /work/ports -p development .... Isto será listado na tabela de árvores conhecidas: -[source,bash] +[source,shell] .... # poudriere ports -l PORTSTREE METHOD TIMESTAMP PATH @@ -360,7 +360,7 @@ O traço ou `null` na coluna `METHOD` significa que o Poudriere nunca irá atual Tão simples quanto com as jails descritas anteriormente: -[source,bash] +[source,shell] .... # poudriere ports -u -p PORTSTREE .... @@ -379,7 +379,7 @@ Depois que as jails e as árvores de ports foram configuradas, o resultado das m Por exemplo, modificações locais no port package:www/firefox[] localizado em [.filename]#/work/ports/www/firefox# pode ser testado na jail 11.3-RELEASE criada anteriormente: -[source,bash] +[source,shell] .... # poudriere testport -j 113Ramd64 -p development -o www/firefox .... @@ -392,14 +392,14 @@ O nome do diretório `113Ri386-development` é derivado dos argumentos para `-j` Por padrão, o Poudriere limpa as jails e deixa os arquivos de log nos diretórios mencionados acima. Para facilitar a investigação, as jails podem ser mantidas em execução após a compilação, adicionando a opção `-i` ao `testport`: -[source,bash] +[source,shell] .... # poudriere testport -j 113Ramd64 -p development -i -o www/firefox .... Depois que a compilação é concluída, e independentemente de ter sido bem-sucedida, um shell é fornecido dentro da jail. O shell é usado para investigações adicionais. O Poudriere pode ser dito para deixar a jail em execução após a conclusão da compilação com `-i`. O Poudriere mostrará o comando para ser executado quando a jail não for mais necessária. E então é possível fazer um man:jexec[8] para dentro dele: -[source,bash] +[source,shell] .... # poudriere testport -j 113Ramd64 -p development -I -o www/firefox [...] @@ -416,7 +416,7 @@ Depois que a compilação é concluída, e independentemente de ter sido bem-suc Uma parte integral da infraestrutura de compilação de ports do FreeBSD é a capacidade de ajustar os ports as preferências pessoais por meio de opções. Elas podem ser testadas com o Poudriere também. Adicionando a opção `-c`: -[source,bash] +[source,shell] .... # poudriere testport -c -o www/firefox .... @@ -435,7 +435,7 @@ Para todas as ações envolvendo builds, um então chamado _conjunto_ pode ser e Para usar sets, o Poudriere espera uma estrutura de diretórios existente semelhante a `PORT_DBDIR`, o padrão é [.filename]#/var/db/ports# no seu diretório de configuração. Este diretório é então man:nullfs[5]-montado nas jails onde os ports e suas dependências são compilados. Normalmente, um ponto de partida adequado pode ser obtido copiando de forma recursiva o `PORT_DBDIR` para [.filename]#/usr/local/etc/poudriere.d/jailname-portname-setname-options#. Isso é descrito em detalhes em man:poudriere[8]. Por exemplo, para testar o package:www/firefox[] em um conjunto específico chamado `devset`, adicione o parâmetro `-z devset` ao comando testport: -[source,bash] +[source,shell] .... # poudriere testport -j 113Ramd64 -p development -z devset -o www/firefox .... @@ -454,7 +454,7 @@ Desta lista, o Poudriereman:nullfs[5]-monta a _primeira árvore existente_ de di Depois que a estrutura de diretório para um conjunto é fornecida, as opções para um port específico podem ser alteradas. Por exemplo: -[source,bash] +[source,shell] .... # poudriere options -c www/firefox -z devset .... @@ -471,7 +471,7 @@ Poudriere é muito flexível na configuração das opções. Elas podem ser conf Semelhante ao uso de conjuntos (sets), o Poudriere também usará um [.filename]#make.conf# personalizado se for fornecido. Nenhum argumento de linha de comando especial é necessário. Em vez disso, o Poudriere procura por arquivos existentes que correspondam a um esquema de nomes derivado da linha de comando. Por exemplo: -[source,bash] +[source,shell] .... # poudriere testport -j 113Ramd64 -p development -z devset -o www/firefox .... @@ -511,14 +511,14 @@ Observe o uso de `+=` de modo que, se a variável já estiver definida no [.file Poudriere vem com um mecanismo embutido para remover distfiles desatualizados que não são mais usados por qualquer port de uma determinada árvore. O comando -[source,bash] +[source,shell] .... # poudriere distclean -p portstree .... irá escanear a pasta distfiles, `DISTFILES_CACHE` dentro do [.filename]#poudriere.conf#, contra a árvore de ports dada pelo argumento `-p _portstree_` e solicitar a remoção desses distfiles. Para pular o prompt e remover incondicionalmente todos os arquivos não utilizados, o argumento `-y` pode ser adicionado: -[source,bash] +[source,shell] .... # poudriere distclean -p portstree -y .... diff --git a/documentation/content/pt-br/books/porters-handbook/upgrading/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/upgrading/chapter.adoc index eed6848802..009af6ed4a 100644 --- a/documentation/content/pt-br/books/porters-handbook/upgrading/chapter.adoc +++ b/documentation/content/pt-br/books/porters-handbook/upgrading/chapter.adoc @@ -46,7 +46,7 @@ Se o mantenedor lhe pedir para fazer a atualização ou não houver mantenedor, Para criar um `diff` adequado para um único patch, copie o arquivo que precisa de patching para [.filename]#something.orig#, salve as alterações em [.filename]#something# e depois crie o patch: -[source,bash] +[source,shell] .... % diff -u something.orig something > something.diff .... @@ -83,7 +83,7 @@ Agora que tudo isso foi feito, leia sobre como manter-se atualizado <<keeping-up Quando possível, envie por favor um man:svn[1]diff. Eles são mais fáceis de manusear do que os diffs entre diretórios "novos e antigos". Nele é mais fácil de ver o que mudou e também é mais fácil de atualizar o diff no caso de algo ter sido modificado na Coleção de Ports desde que o diff foi gerado, ou no caso do committer pedir que algo seja corrigido. Além disso, um patch gerado com `svn diff` pode ser facilmente aplicado com `svn patch` e irá economizar algum tempo para o committer. -[source,bash] +[source,shell] .... % cd ~/my_wrkdir <.> % svn co https://svn.FreeBSD.org/ports/head/dns/pdnsd <.> @@ -95,7 +95,7 @@ Quando possível, envie por favor um man:svn[1]diff. Eles são mais fáceis de m Enquanto estiver no diretório de ports, faça as alterações necessárias. Se você adicionar, copiar, mover ou remover um arquivo, use o `svn` para registrar essas alterações: -[source,bash] +[source,shell] .... % svn add new_file % svn copy some_file file_copy @@ -105,7 +105,7 @@ Enquanto estiver no diretório de ports, faça as alterações necessárias. Se Certifique-se de verificar o port usando a lista de verificação <<porting-testing>> e <<porting-portlint>>. -[source,bash] +[source,shell] .... % svn status % svn update <.> @@ -134,7 +134,7 @@ E se o status `C` for exibido como resultado de um `svn update`, isso significa O último passo é fazer um man:diff[1] unificado das mudanças: -[source,bash] +[source,shell] .... % svn diff > ../`make -VPKGNAME`.diff .... @@ -168,14 +168,14 @@ YYYYMMDD: Quando incluir instruções exatas para o portmaster, portupgrade e/ou instruções ao pkg, por favor, certifique-se de escapar o shell escaping corretamente. Por exemplo, _não_ use: -[source,bash] +[source,shell] .... # pkg delete -g -f docbook-xml* docbook-sk* docbook[2345]??-* docbook-4* .... Como mostrado, o comando só irá funcionar com bourne shells. Em vez disso, use o formato abaixo, que funcionará com ambos bourne shell e c-shell: -[source,bash] +[source,shell] .... # pkg delete -g -f docbook-xml\* docbook-sk\* docbook\[2345\]\?\?-\* docbook-4\* .... @@ -209,7 +209,7 @@ Quaisquer alterações devem ser validadas com `Tools/scripts/MOVEDlint.awk`. Se estiver usando um diretório de ports diferente de [.filename]#/usr/ports#, use: -[source,bash] +[source,shell] .... % cd /home/user/ports % env PORTSDIR=$PWD Tools/scripts/MOVEDlint.awk |