Revista Do Linux
EDIÇÃO DO MÊS
 Hardware
 Comandos Avançados
 Tecnologia

 Capa
 Entrevista
 CD
 Corporativo
 Sistema
 Evento
 Segurança
 Internet
 Programação

 

Todos os segredos estão no /etc...
Nossa jornada no /etc continua. Neste segundo artigo, veremos as diferenças entre as distribuições e o que isso implica

Como vimos no artigo da edição anterior, apesar de existir um padrão para a hierarquia de diretórios em sistemas Unix, as distribuições Linux são diferentes entre si. Se mesmo com um padrão fica difícil controlar as diferenças, as brechas deixadas por omissões ou interpretações discutíveis no File Hierarchy System (FHS) tornam esse controle impossível. Uma pena! Resta-nos esperar ou, melhor ainda, colaborar para que esses esforços de padronização sejam levados a cabo.

A árvore do conhecimento

Lemos no livro do Gênesis, capítulo 3, versículo 22: "Então disse o Senhor Deus: Eis que o homem se tornou como um de nós, conhecedor do bem e do mal (...)". O Criador proferiu essas palavras logo após Adão ter comido o fruto da árvore do conhecimento do bem e do mal. O leitor pode não compartilhar da mesma fé, mas esse trecho da Bíblia deixa patente que, em qualquer cultura, o conhecimento torna os homens tão poderosos que as próprias divindades os reconhecem como seus semelhantes.

Falar em árvore do conhecimento aqui é bem oportuno, uma vez que tudo o que o administrador de sistemas Linux (e Unix em geral) precisa saber está na árvore de diretórios abaixo do /etc. Desde a configuração de um joguinho em modo texto (procure pelos BSD Games, devem estar em /usr/games ou /usr/share/games) até as principais configurações de inicialização e operação do sistema estão no /etc. Aplicativos e serviços como o Apache, MySQL, NFS, DNS, Samba e Mutt, entre muitos, procuram por seus arquivos de configuração no /etc. Portanto, saber o que está no /etc dá ao administrador um poder de fogo muito grande e, de quebra, um currículo bem mais interessante!

Examinando as estruturas e hierarquias de diretórios de cada uma das grandes famílias de distribuições, podemos ver as principais diferenças no tocante ao /etc. Essas diferenças influem muito quando estamos escrevendo scripts que dependem de algum arquivo dentro da árvore do /etc. Podemos classificar a hierarquia e as estruturas de diretórios do /etc em dois grandes grupos: os que seguem o modelo Unix System V, criado pela AT&T/Bell Labs e considerado por muitos o formato "verdadeiro"; e o modelo BSD, criado pela Universidade de Berkeley para o Unix que foi desenvolvido lá. O BSD, segundo seus defensores, é menos "cheio de frescuras", e por isso amado no ambiente acadêmico.

Algumas das grandes distribuições que seguem o padrão do Unix System V são RedHat, Mandrake, Conectiva, Caldera e TurboLinux. Observem o estilo característico no qual estão acondicionados os arquivos de inicialização de runlevel (rcN.d) e de inicialização de serviços (init.d). Todos esses arquivos estão acondicionados em diretórios abaixo de /etc/rc.d.

O script de inicialização chama-se rc.sysinit e está localizado em /etc/rc.d. É fácil reconhecer uma distribuição dessas, basta procurar pelo arquivo rc.sysinit ou pelo caminho /etc/rc.d/init.d.

Deve-se prestar especial atenção no Caldera Open Linux. Tudo no /etc dele segue o padrão System V, entretanto, os arquivos de inicialização chamados pelo inittab são diferentes. Em vez do rc.sysinit, temos o /sbin/booterd, /etc/rc.d/rc.modules, /etc/rc.d /rc.serial e /etc/rc.d/rc.boot.

Por outro lado, as grandes distribuições que se baseiam no modelo BSD, como Debian e Slackware, têm uma estrutura um pouco diferente. Os arquivos de inicialização de runlevel não estão no /etc/rc.d, mas sim diretamente no /etc. O diretório init.d também está diretamente no /etc. O script de inicialização chama-se rcS e está em /etc/init.d. Para reconhecer um sistema desses, basta ver se existe o arquivo rcS.

A SuSE merece atenção especial. Ela é tão diferente das outras distros que, não fosse o kernel, mal poderia ser chamada de Linux (mesmo sendo a preferida de Linus Torvalds). Não estamos dizendo que a distribuição SuSE é ruim, apenas que é a mais distante do padrão seguido por outras distribuições. A SuSE teve razões para fazer isso, provavelmente por uma interpretação diferente do que diz o FHS.

Toda a árvore de inicialização (rc.d e init.d) não está no/etc, mas sim no /sbin. Isso porque o /etc é lugar de arquivos de configuração e os diretórios rc.d e init.d contêm scripts e não arquivos de configuração. Pode-se argumentar que isso é mais coerente e que o FHS é omisso no tocante ao conteúdo do /etc. Mesmo sendo verdade, o FHS é rígido quanto ao conteúdo do /sbin, portanto rc.d e init.d não poderiam, em teoria, estar ali. Deixamos ao leitor o ônus de decidir quem tem razão...

Podemos notar a confusão gerada por uma aparentemente insignificante omissão em uma norma. Esperamos que o FHS 2.3 resolva esse problema.

Para agradar a gregos e troianos, algumas distribuições fazem uso de links simbólicos sem piedade. O Conectiva Linux 6.0, por exemplo, utiliza a estrutura System V, mas possui symlinks para simular a estrutura BSD. Uma idéia que me agradou muito.

Para saber como está arranjada a árvore de diretórios em seu Linux, digite na linha de comando:



# tree /etc 

e compare a sua árvore com as outras mostradas neste artigo, principalmente com a árvore oficial do FHS descrita na edição passada. Se seu sistema não possuir o comando tree, procure-o em seus CDs de instalação ou na Internet (sugiro o Freshmeat, www.freshmeat.net).

Na próxima edição veremos os arquivos do /etc que controlam as tarefas agendadas do sistema e os sistemas de arquivos que podem ser montados.

Para saber mais

The Linux Standard Base
www.linuxbase.org

Unix File System Standard (Filesystem Hierarchy Standard)
www.pathname.com/fhs

Guia Foca GNU/Linux de Gleydson Mazioli da Silva
www.metainfo.org/focalinux

Principais hierarquias do ETC
www.RevistaDoLinux.com.br/artigos/


A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux