Atualizando:
# aptitude safe-upgrade
# apt-get update
Instalando pacotes necessários:
# aptitude install binutils debootstrap # Opcional
Instalando o BIND 9:
# aptitude install bind9 bind9-doc dnsutils
Após a instalação, pare o serviço (caso você já tenha o BIND 9 instalado, pare o serviço também):
# /etc/init.d/bind9 stop
Ou:
# service bind9 stop
Edite o arquivo
/etc/default/bind9:
# vim /etc/default/bind9 # Usei o Vim, use seu editor de textos preferido
Adicione os parâmetros na linha
OPTIONS="-u bind", devendo ficar assim:
OPTIONS="-u bind -t /var/lib/bind -t /var/lib/named"
Salve e saia.
Abaixo, está a sequência toda de comandos e depois, uma modesta explicação:
# mkdir -p /var/lib/named/etc
# mkdir /var/lib/named/dev
# mkdir -p /var/lib/named/var/cache/bind
# mkdir -p /var/lib/named/var/run/bind/run
# mkdir -p /var/lib/named/usr/sbin
# mv /etc/bind /var/lib/named/etc
# ln -s /var/lib/named/etc/bind /etc/bind
# mv /usr/sbin/named /var/lib/named/usr/sbin
# ln -s /var/lib/named/usr/sbin/named /usr/sbin/named
# mv /etc/init.d/bind9 /var/lib/named
# ln -s /var/lib/named/bind9 /etc/init.d/bind9
# mknod -m 666 /var/lib/named/dev/null c 1 3
# mknod -m 666 /var/lib/named/dev/zero c 1 5
# mknod -m 666 /var/lib/named/dev/random c 1 8
# chown -R bind:bind /var/lib/named/var/*
# chown -R bind:bind /var/lib/named/etc/bind
# chown -R bind:bind /var/lib/named/usr/sbin/named
Inicie o BIND:
# /etc/init.d/bind9 start
Ou:
# service bind9 start
Deverá iniciar sem erros.
Poderemos acessar os arquivos de configurações em
/var/lib/named/etc/bind, ou no local padrão
/etc/bind, tanto faz.
Para entendermos as linhas de comandos, veremos umas explicações sobre os parâmetros.
1. A linha
OPTIONS em
/etc/default/bind9:
OPTIONS="-u bind -t /var/lib/bind -t /var/lib/named"
Onde:
- A opção "-u arquivo", é uma expressão condicional em Shell Script que verifica se o arquivo existe e se o bit SUID (Set-User-ID), está ativado.
- A opção "-t arquivo", é uma expressão condicional que verifica se o FD (File DescriptorDescritor do Arquivo) está aberto e refere-se a um terminal.
- Um Descritor de Arquivos em Linux, é um indicador utilizado para acessar um arquivo. Quando um processo precisa acessar um arquivo, ele faz isso através do descritor do arquivo, que é um número inteiro positivo, e o processo usa para referenciar um determinado arquivo aberto.
O shell define três descritores de arquivos muito importantes:
- A entrada padrão (stdin): é o descritor de arquivo de onde um aplicativo lerá a entrada de dados se não for informado outro descritor de arquivos específico. Está normalmente associada ao terminal de entrada, geralmente o teclado.
- A saída padrão (stdout): é o descritor onde será colocada a saída de qualquer aplicativo, se outro específico não for informado. Normalmente associada ao terminal de saída, o vídeo.
- A saída de erro padrão (stderr): é onde são escritos os erros decorrentes do processamento. Está separada da saída padrão para que os possíveis erros ou avisos não contaminem os resultados em si. Também está associada ao terminal de saída.
2. O comando "mkdir -p" (--parents) cria diretórios, se já não existirem, e ignora argumentos de diretórios que já existem. Por exemplo, se o diretório
/var existe, então "mkdir /var" vai provocar um erro, mas "mkdir -p /var" não vai provocar um erro, porém, irá ignorar os argumentos (permissões, donos, etc.) existentes no diretório.
3. O comando "mknod" cria discos candidatos, no caso, para os serviços do sistema operacional (
../dev/null, ../dev/random, ../dev/zero, etc). É usado para criar manualmente um arquivo especial de dispositivo dos tipos caractere ou bloco.
Os dispositivos de bloco são os que trabalham com armazenamento de dados, como unidades de disco rígido, CD-R/RW, disquete e etc, e utilizam buffer. Os dispositivos de caractere não trabalham com buffer, utilizando transferência direta.
Um arquivo especial é um triplo (booleano, inteiro, inteiro) armazenado no sistema de arquivos. O booleano escolhe entre um arquivo especial de caractere ou de bloco. Os dois inteiros são o maior e o menor número de dispositivo.
O argumento seguinte ao nome, especifica o tipo de arquivo a ser criado:
- p - Para um FIFO
- b - Para um arquivo especial de bloco (com buffer)
- c - Para um arquivo especial de caractere (sem buffer)
A opção "c" cria um arquivo especial de caractere sem buffer e os dois números inteiros são o maior e o menor número de dispositivo, respectivamente (c 1 3 e c 1 8). Caso fôssemos criar um dispositivo de bloco, colocaríamos a opção "b", mas não foi o caso.
Assim, um arquivo especial quase não ocupa lugar no disco, e somente é utilizado para comunicação com o sistema operacional, e não para a armazenagem de dados.
A opção "-m 666" funciona como "chmod", ou seja, com essa opção, o "mknod" cria o arquivo com as permissões 666.