O Linuxconf é um aplicativo avançado de administração para um sistema Linux. Ele centraliza tarefas como configuração do sistema e monitoração dos serviços existentes na máquina. Na verdade, o Linuxconf é um gerenciador de módulos, cada qual responsável por executar uma tarefa específica.
Tendo em vista a maneira como o Linuxconf foi projetado, para adicionar uma funcionalidade basta que alguém escreva um novo módulo para executar a tarefa. Com isto, consegue-se uma ferramenta que pode centralizar a configuração de todo o sistema.
O presente capítulo é destinado a este aplicativo, onde será descrito o seu ambiente, quais as principais configurações que podem ser feitas através dele, e como sua interface é organizada.
A maioria das interfaces de administração possui uma interface fixa, que não se adapta ao ambiente. Muitas vezes, o administrador pode desejar executar o aplicativo de configuração em um modo que não gaste tanta memória, para que esta possa ser utilizada para outras finalidades. O Linuxconf, entretanto, possui várias interfaces, dependendo da aplicação e do gosto do administrador:
Interface indispensável, pois pode ser utilizada a qualquer momento, seja via console ou via acesso remoto (telnet ou ssh). Esta interface elimina a necessidade de manter instalado um servidor gráfico X apenas para configurar a máquina. Esta interface é acionada ao se digitar linuxconf em um terminal, caso esteja em modo gráfico, basta abrir um terminal e digitar linuxconf --text.
A possibilidade de configurar uma máquina através de uma interface web é cômoda, pois basta ter acesso a um navegador. Com isto, é possível configurar uma máquina através de praticamente qualquer plataforma de hardware e software, bastando utilizar um navegador.
A interface web pode ser acessada através da URL http://sua_maquina:98/, mas para isto você deve primeiramente configurar o Linuxconf para que ele aceite conexões via rede.
Interfaces amigáveis para usuários que preferem configurar o sistema através de uma interface gráfica, tendo à sua disposição janelas, caixas de diálogo e botões. Estas interfaces devem ser executadas em um servidor gráfico X, como o XFree86 (servidor gráfico padrão do Linux). Geralmente, as interfaces gráficas contidas nas distribuições que suportam o Linuxconf contêm menus de acesso para o aplicativo. Para executar esta interface, basta abrir um terminal gráfico e executar o comando linuxconf.
Nota: É necessário ter o pacote gnome-linuxconf instalado para ter acesso às interfaces gráficas; durante o guia, será utilizada a interface gráfica de árvore de menus (treemenu), e se você desejar desabilitá-la, vá em Controle -> Gerenciamento do Linuxconf -> Módulos, no Linuxconf.
Alguns módulos do Linuxconf podem ser utilizados via linha de comando, o que, entre outras possibilidades, permite a sua utilização em scripts. Se você quiser utilizar essa interface, poderá iniciá-la através de dois comandos básicos: linuxconf --status exibe o relatório do que precisa ser feito para sincronizar a configuração do sistema, e o comando linuxconf --update efetua as alterações. Você pode executar o comando linuxconf --help para ver mais detalhes.
Você poderá utilizar qualquer uma destas interfaces, dependendo apenas da sua necessidade ou do que há disponível na máquina que está sendo administrada.
Como será utilizada a interface gráfica do Linuxconf para demonstrá-lo, ele pode ser executado a qualquer momento através da linha de comando de um terminal (digitando linuxconf na linha de comando) ou pode-se clicar no ícone/menu do ambiente gráfico, sempre como superusuário. No KDE, você pode acessá-lo através do menu K, localizado no painel.
A configuração padrão da maioria das distribuições permite que apenas o superusuário acesse o Linuxconf. Esta política foi escolhida por questões de segurança. Para que outros usuários possam executá-lo é necessário que o programa tenha o bit suid habilitado. Para isso, execute o seguinte comando como superusuário:
# chmod +s /bin/linuxconf |
Após ser iniciado, o Linuxconf verifica uma série de configurações, como por exemplo se a variável de ambiente DISPLAY está configurada. Caso todas as configurações estejam corretas, ele será iniciado, conforme mostra a Figura 2-1.
Como pode ser observado, o Linuxconf possui quatro abas: Configuração, Controle, Estado e Tarefas. A primeira trata de configurações relacionadas basicamente a uma rede ou servidor. A aba Controle trata basicamente de padrões e do gerenciamento do próprio Linuxconf; a aba Estado permite a visualização de logs e informações gerais do sistema e a aba Tarefas possui uma série de diálogos que podem ser úteis em algumas configurações mais complexas.
Além destas abas, uma tela de status é mostrada, indicando o comportamento da máquina tanto em relação ao software (por exemplo, arquivos e número de usuários) quanto ao hardware (por exemplo, memória e swap utilizados). Se arquivos foram atualizados, surgirá também uma tela na parte inferior do Linuxconf, mostrando o horário e os arquivos atualizados, além das ações feitas.
Outra parte importante que deve ser lembrada durante a utilização do Linuxconf é o botão de ajuda. A maioria das telas contém este botão, que possui informações úteis e interessantes para a utilização do Linuxconf e para a configuração do sistema em geral. Porém, como o Linuxconf é um projeto em andamento, algumas telas de ajuda ainda não foram traduzidas para a língua portuguesa, e outras não foram nem mesmo escritas. Portanto, pode aparecer alguma tela de ajuda em inglês, ou alguma mensagem dizendo que o arquivo de ajuda não existe.
O Linuxconf oferece o ambiente ideal para a atuação de um administrador.
Na aba Configuração são fornecidas opções para a configuração de uma rede de modo geral. A principal opção nesta seção é a opção Rede. Através dela é possível configurar uma máquina na rede, um servidor de rede (para os mais diversos fins), um firewall e pode-se buscar informações sobre a rede e também de outras redes. Vejamos com detalhes cada uma das abas:
Aqui é possível configurar uma máquina cliente que será incluída na rede. Para tanto, deve-se configurar o nome da máquina, seu endereço IP e qual o servidor DNS que irá "resolver"[1] sua máquina, que são as configurações básicas. Além disso, são configuradas opções de conexão com a Internet (ADSL, modem - protocolo PPP), com outras redes (roteamento com outras redes, protocolo IPX) ou com a rede interna (cliente LDAP, serviço NIS[2], servidor de e-mail utilizando o fetchmail).
São fornecidas opções para a configuração de um servidor, para os mais diversos objetivos. É possível configurar, entre outros serviços:
Servidor de Arquivos de Rede (NFS);
Servidor Web (Apache);
Servidor de nomes de domínio (DNS);
Servidor de e-mail (Postfix);
Servidor SSH (openssh);
Servidor de Alta Disponibilidade;
Servidor SAMBA;
Servidor de Serviços Internet (por exemplo, Telnet e FTP);
Servidor de Autenticação de usuários (Radius e Portslave);
Servidor Proxy (Squid);
Esta aba fornece praticamente todas as opções para que se construa qualquer tipo de servidor que se deseje. É possível configurar uma rede TCP/IP a partir do zero.
Essas configurações determinam redes com particularidades. Pode ser montada uma rede com boot remoto, onde um servidor com disco rígido serve outras máquinas que não possuem tal dispositivo. Através destas opções pode ser também montado um servidor que utiliza o protocolo RARP (que determina o endereço IP a partir de um endereço físico da rede) e um servidor DHCP/BOOTP, para a configuração de IPs dinamicamente.
Opções para a configuração de um firewall, muito importante para a segurança de uma rede.
Opção utilizada para configurações adicionais à rede, como um gerador de gráficos para múltiplas rotas (MRTG) e a configuração de acesso ao Linuxconf via rede, além da inclusão de informações sobre outras máquinas ou outras redes.
Praticamente uma rede completa pode ser configurada através da opção Rede, incluindo a configuração TCP/IP básica, roteamento, localização do DNS e configuração do ambiente do servidor.
A maioria das subseções da aba Configuração são tratadas durante o guia (Usuários, Sistema de Arquivos, Periféricos e Inicialização). Elas tratam de configurações de um modo geral, tanto de cliente como servidor, de rede ou apenas de uma máquina.
Além da opção Rede, pode-se utilizar uma espécie de "ajudante" ou wizard, para auxiliar na configuração de uma rede. Esta opção está localizada no menu Tarefas -> Ajudantes Amigáveis -> Configuração básica de rede.
A aba Controle define o comportamento do Linuxconf em relação à máquina e em relação a outros aplicativos. Ela também fornece opções de ativação, ou seja, controla atividade de serviços e configurações feitos na aba Configuração. Esta opção é subdividida nas seguintes seções:
Controla execução de tarefas, como inicialização de serviços, montagem de sistema de arquivos e controle de conexões de serviços. Não permite tais configurações, apenas ativa/desativa as mesmas.
Permite o gerenciamento do Linuxconf em relação a propriedades, permissões, arquivos de configuração e módulos. Esta opção personaliza o Linuxconf.
Configura a data e o horário de uma máquina cliente.
Permite a instalação ou atualização de pacotes RPM individualmente ou por grupo. Pode-se também fazer pesquisas e ver o estado dos pacotes.
A aba Estado permite a visualização do estado do sistema, estado e detalhes sobre o hardware e descrição de registros referentes ao sistema e à inicialização de aplicativos.
Por fim, a aba Tarefas fornece assistentes ou wizards, que auxiliam em três tarefas importantes: Configuração básica de rede, Conectando a um PDC e Configuração dialin e dialout (modems).
Nota: A barra de menus, na parte superior da janela do Linuxconf, contém itens que podem auxiliar consultas e tarefas. De qualquer forma, as ações fornecidas pela barra de menus podem ser feitas em outras partes do Linuxconf.
Uma das primeiras características a se conhecer do Linuxconf é que muitas das configurações realizadas através dele somente terão efeito quando explicitamente efetivadas. Existem várias maneiras para efetivar estas mudanças. Uma delas é saindo do Linuxconf. Ao sair do programa, após ter efetuado alguma modificação em configurações.
Nota: As telas e os procedimentos descritos neste capítulo são baseados na interface gráfica do Linuxconf. A diferença de operação entre uma interface e outra é mínima, portanto você não terá problemas em utilizar quaisquer das outras interfaces, se desejar.
A janela apresenta um relatório do que será executado, no caso de você desejar que as configurações sejam feitas. Se você desistir de sair do programa, basta selecionar a opção Volta ao linuxconf, o que fará com que você volte à tela principal do Linuxconf. A opção Não faça nada permite que você saia do programa sem efetuar as alterações, ao contrário da opção Faça isso, através da qual você sai do programa efetivando todas as alterações necessárias.
Uma outra maneira de ativar as mudanças na configuração do sistema é através da opçãoControle -> Painel de Controle -> Ativar a configuração.
O Linuxconf é composto por vários módulos, cada um com uma função específica. É possível desativar módulos desnecessários ou ativar os existentes para utilização. Acessando o seguinte menu Controle -> Gerenciamento do Linuxconf -> Módulos você terá acesso à lista de módulos (Figura 2-2).
Esta lista mostra os módulos existentes, sua descrição e uma caixa de verificação (checkbox), que informa se o módulo está ativo. Para confirmar qualquer alteração nesta tela deve-se clicar no botão Aceitar.
O Linuxconf mantém uma base de dados com permissões e propriedades de arquivos e diretórios importantes do sistema. Estas características podem ser encontradas no menu Controle-> Gerenciamento do Linuxconf -> Permissões e propriedades.
A primeira tela pede por um prefixo, podendo ser um diretório que contém o arquivo desejado ou o caminho até o arquivo. Após isto, será mostrada uma lista contendo os resultados. Basta escolher o arquivo que se deseja modificar, e será mostrada a tela de edição. Você pode modificar as permissões de leitura, escrita e execução para o usuário (dono do arquivo), para o grupo ao qual o arquivo pertence, ou as permissões para os outros usuários. Além disso, pode também ajustar bits adicionais (Setuid, por exemplo); caso tenha dúvidas sobre estas configurações, verifique o capítulo destinado a arquivos e diretórios, que explica melhor o conceito de permissões.
Por exemplo, se você escolher modificar a permissão do arquivo /etc/passwd para 664 (inclui o modo escrita para o grupo), onde 644 é o modo padrão, ao ativar as configurações o Linuxconf irá configurá-lo para este modo. Este exemplo está ilustrado na Figura 2-3.
Ao finalizar o Linuxconf, será perguntado se esta modificação no modo do arquivo é desejada.
Nota: Estes são arquivos importantes do sistema. Não mexa nestas permissões, a menos que tenha certeza do que esteja fazendo.
O Linuxconf gerencia, testa, gera e utiliza vários arquivos de configuração, através da opção Controle -> Gerenciamento do Linuxconf -> Arquivos de configuração (Figura 2-4).
Como você pode observar, esta janela contém três colunas: Caminho, Estado e Subsistema. O Caminho define a localização do arquivo gerenciado. Este caminho pode ser modificado, mas isto não é recomendado.
A coluna Estado contém alguns identificadores, os quais podem ter os seguintes valores:
(em branco): indica que o arquivo é apenas lido pelo Linuxconf. Isso pode significar duas coisas: ou é um arquivo de referência usado pelo Linuxconf ou ele ainda não sabe como gerenciá-lo, mas utiliza seu conteúdo.
E: indica que o arquivo será sempre apagado pelo Linuxconf na inicialização.
G: indica que o arquivo é gerado pelo Linuxconf. Neste caso, o Linuxconf utiliza outros arquivos para guardar a configuração relacionada a este serviço. Em geral significa que estes arquivos não devem ser alterados manualmente, pois o Linuxconf sobrescreverá estas alterações. Uma exceção a este caso é quando o arquivo também é marcado com M, o que é incomum.
M: indica que o arquivo é completamente gerenciado pelo Linuxconf. Isto significa que o Linuxconf sabe como processá-lo e reescrevê-lo apropriadamente. Também significa que você pode editar o arquivo diretamente, sem que o Linuxconf perca a habilidade de gerenciá-lo. O arquivo /etc/resolv.conf é um exemplo.
O: indica que o arquivo é opcional em um sistema Linux.
P: indica que o Linuxconf sabe muito pouco do arquivo em questão. Ele apenas testa sua existência e sua data de modificação. Baseado nisto, o Linuxconf decide se um serviço é necessário ou se um serviço precisa ser reinicializado ou sinalizado.
V: o Linuxconf utiliza arquivos virtuais especiais, os quais geralmente são partes de um arquivo de configuração real.
*: indica que a rota do arquivo de configuração foi alterada, deixando de ter o valor original conhecido pelo Linuxconf.
A coluna Subsistema apenas apresenta uma divisão interna do Linuxconf, que informa a que parte do sistema pertence o arquivo.
A única configuração que pode ser feita nesta janela é a alteração do caminho do arquivo, clicando-se sobre o nome dele; isto não é recomendado, a menos que você tenha certeza do que está fazendo.
O Linuxconf utiliza vários comandos e programas do sistema para realizar diversas tarefas. Saiba quais são eles acessando Controle->Gerenciamento do Linuxconf->Comandos e daemons (Figura 2-5). Além de visualizá-los, você pode fazer alterações e até mesmo torná-los inativos, como será mostrado a seguir.
Como você pode observar, a janela ilustrada na Figura 2-5 tem três colunas:
Nome: informa o nome do comando.
Caminho: informa a localização do comando que está sendo utilizado.
Mód.: informa se a configuração original do Linuxconf foi modificada.
Esta característica é bastante útil, pois permite que você personalize algumas funções do Linuxconf de maneira simples. Por exemplo, se você precisa adicionar usuários na base de dados do sistema e ainda numa base de dados SQL, basta substituir o comando originalmente utilizado pelo Linuxconf por um script ou programa especialmente criado para isto.
Ao selecionar um dos comandos da lista será exibida uma janela que permitirá a você:
Desabilitar o comando, desmarcando a opção o linuxconf pode operá-lo.
Modificar o comando que será executado, alterando Caminho do comando.
Adicionar, remover ou modificar os argumentos utilizados na execução do comando.
Se você desativar um comando, desmarcando a opção o linuxconf pode operá-lo, o Linuxconf estará impedido de efetuar qualquer tarefa que dependa deste comando.
Atenção |
Estes procedimentos são válidos para quaisquer dos comandos utilizados pelo Linuxconf. Portanto, tome cuidado ao modificá-los. |
O shellmod é um módulo do Linuxconf que permite escrever com facilidade outros módulos para o Linuxconf e aplicações, utilizando o interpretador de comandos sh.
Normalmente, os módulos do Linuxconf são feitos em C++ e podem oferecer mais recursos, porém scripts oferecem um solução boa e eficiente para personalizar instalações. Um novo módulo do Linuxconf pode ser desenvolvido com uma aparência amigável para os usuários e clientes, conforme a escolha.
Um script pode ser usado isoladamente ou com o Linuxconf. Pode ser usado das duas maneiras. Para executar um script feito no shellmod, digite o comando:
# shellmod caminho_do_script [argumentos] |
ou coloque na primeira linha no arquivo:
#!/usr/bin/shellmod |
Torne o arquivo executável:
# chmod u+x caminho_do_script |
e você poderá utilizá-lo como qualquer outro aplicativo.
Para um script ser utilizado como um módulo do Linuxconf, ele deve ser registrado neste. O módulo shellmod registra o seu menu de configuração em Controle-> Gerenciamento do Linuxconf -> Gerenciamento dos módulos do shell. Através deste menu você pode criar um módulo, editá-lo e fazer a configuração do shellmod. Após estas configurações, o script se tornará visível na próxima vez que você executar o Linuxconf.
[1] |
Processo que identifica o endereço IP através do nome da máquina. |
[2] |
Network Information System ou Sistema de Informação de Rede. |