Prévia do material em texto
Prefácio Entendendo o Conectiva Linux Anterior Próxima Prefácio A capacidade de transmitir uma informação para qualquer pessoa em qualquer lugar e a qualquer momento é uma das maiores conquistas da humanidade, em todos os tempos. Todas as inovações tecnológicas têm buscado facilitar a capacidade de comunicação, seja reduzindo o tamanho dos equipamentos utilizados, seja adaptando-os às hostilidades ambientais ou ainda, através da criação de novos métodos, como a telefonia móvel e os computadores portáteis. Assimilamos essas novidades rapidamente e acostumamo-nos com elas a tal ponto de não mais conseguirmos imaginar como seria o mundo atual sem essas inovações. Esse livro tem por objetivo trazer um pouco mais de luz à tarefa de administrar um servidor Internet/ Intranet para que essa acessibilidade seja garantida. Os autores têm ampla experiência na área e com os serviços sobre os quais se dispõem a tratar neste livro, trabalhando com Linux em seu cotidiano, podendo trazer uma linguagem mais adaptada ao público e às condições nacionais. A idéia de escrever em capítulos curtos e separar o livro por partes, de acordo com o que é apresentado, procura trazer uma maior dinâmica à leitura e facilitar a busca por informações específicas. O Capítulo 1 descreve alguns conceitos que servem como base para a leitura do livro. São conceitos muitas vezes desconhecidos ou confundidos, mas que são importantes para uma melhor compreensão do mundo Linux. O aplicativo que será descrito no Capítulo 2 é o Linuxconf, o configurador geral do sistema. Sua estrutura e opções serão detalhadas neste capítulo. O Capítulo 3 explica toda a estrutura de usuários e grupos encontrados em um sistema, suas importâncias e de que forma é possível trabalhar com eles. Gerenciar usuários, acrescentá-los ao sistema, organizá-los e até fazer a recuperação de antigos usuários do sistema, serão tópicos abordados neste capítulo. No Capítulo 4 serão descritos conceitos fundamentais de arquivos, diretórios e dispositivos. Dono e grupo dos arquivos, permissões, métodos de alteração, como proteger o sistema usando estes recursos e a automatização de processos executados em sistemas de arquivos serão assuntos estudados neste capítulo. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/prefacio.html (1 of 2)28/09/2004 19:52:18 Prefácio Um conceito importante que um administrador deve conhecer é o conceito de serviço. No Capítulo 5 pode-se encontrar uma boa definição de serviço, como inicializar e parar serviços e quais são os principais serviços existentes em um sistema Linux. A interação entre o software e o hardware deve ser perfeita para que um sistema funcione. O Capítulo 6 fornece uma descrição de como os dispositivos são tratados no Linux e como a interação hardware/ software é feita, e o Capítulo 7 mostra com clareza um dos principais problemas enfrentados por administradores de sistemas Linux: a configuração de dispositivos. O Capítulo 8 trata de um dos temas mais importantes de um sistema Linux: o XFree86. Você poderá ter uma definição mais exata de qual a sua função e quais suas principais características e opções. O Linux é um sistema baseado em pacotes. O Capítulo 9 mostra como gerenciar estes pacotes, instalar novos, removê-los e fazer pesquisas. Todo o sistema de inicialização será relatado no Capítulo 10. Arquivos fundamentais para o processo, alterações nestes arquivos e como trabalhar com os diferentes níveis de inicialização serão explicados neste capítulo. O próximo capítulo (Capítulo 11) trata do processo de recuperação do sistema, mostrando como é possível localizar e corrigir possíveis erros do sistema. O centro de um sistema Linux é o chamado kernel. No Capítulo 12 ele é discutido com detalhes teóricos tais como sua atualização, seu módulos, enfim, conceitos importantes para o seu entendimento. No Capítulo 13 serão mostrados alguns costumes adotados por bons administradores de sistema, ações que ajudam a evitar falhas na segurança, perdas de dados ou desorganização das estruturas de arquivos, usuários e grupos. Esperamos que a informação deste guia possa esclarecer muitas de suas dúvidas e também possa ajudá- lo a participar da revolução que a informática viabiliza no dia-a-dia. Anterior Principal Próxima Entendendo o Conectiva Linux Básico file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/prefacio.html (2 of 2)28/09/2004 19:52:18 Básico Entendendo o Conectiva Linux Anterior Próxima Capítulo 1. Básico Índice Definindo o Linux O surgimento do Linux Distribuições Linux Visão geral do sistema operacional Linux Neste capítulo será feito um estudo sobre o Linux e suas principais características. Definindo o Linux De maneira simples pode-se dizer que o Linux é um sistema operacional multiusuário, multitarefa e multiprocessado, de livre distribuição, baseado no sistema operacional UNIX - o nome Linux vem do nome de seu criador, o finlandês Linus Torvalds. Mas o que tudo isso quer dizer? Ser multiusuário significa que é possível várias pessoas utilizarem o mesmo computador ao mesmo tempo, através de conexões remotas ou de terminais. Esse conceito é particularmente importante, pois, mesmo que apenas uma pessoa utilize o computador os vários processos (programas) que estão rodando nele podem pertencer a usuários diferentes, com permissões diferentes. Multitarefa significa que o Linux é capaz de executar diversos programas ou serviços ao mesmo tempo, ou seja, é possível rodar simultaneamente um servidor web, um servidor de e-mail e um banco de dados. E tudo isso de maneira eficiente e transparente ao usuário. Multiprocessado se refere ao fato de que o Linux pode ser instalado em máquinas com mais de um processador e é capaz de utilizar de maneira inteligente esses vários processadores, de maneira o obter a melhor desempenho possível. E por fim, livre distribuição significa que o Linux pode ser copiado e distribuído sem que se tenha que comprar licenças ou pagar por isso. Além do mais, os códigos-fontes do sistema estão ao alcance de quem quiser vê-los e modificá-los. Além disso, o Linux possui capacidades avançadas de rede. Uma vez que o desenvolvimento do Linux se deu através da colaboração pela Internet, o suporte a rede entrou em um estágio bastante cedo do file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/basico.html (1 of 6)28/09/2004 19:52:22 Básico desenvolvimento do Linux. O Linux tem sido usado por centenas de laboratórios de informática de universidades e empresas, além de um grande número de entusiastas que auxiliam a melhorar o sistema. Todas essas pessoas procuram um servidor confiável e com bom desempenho de rede nas mais diversas situações. O Linux suporta os mais diversos protocolos utilizados na Internet, como E-mail, News, Gopher, Telnet, WWW, FTP, Talk, POP, NTP, IRC, NFS, DNS, NIS, SNMP, Kerberos, WAIS e muitos outros. O Linux pode operar como um cliente ou como servidor de qualquer um dos protocolos citados acima. O Linux pode se integrar facilmente à sua rede local, não importando a combinação de sistemas que já estejam sendo utilizados, pois ele é capaz de usar os protocolos de comunicação nativos do Macintosh®, DOS®, Windows®, Windows NT®, Novell® e OS/2®, entre outros. O surgimento do Linux O Linux foi criado por um jovem estudante de Ciência da Computação da Universidade de Helsinque, na Finlândia, chamado Linus Torvalds. O Linux foi inicialmente concebido como uma alternativa aos caros sistemas UNIX da época. A primeira versão pública do kernel do Linux (a versão 0.02) foi distribuída em 1991 pela Internet, juntamente com o seu código-fonte. A idéia de lançar o Linux seguindo a licença GPL[1], um tipo de licença que garante que um software possa ser distribuído e copiado livremente, juntamente com o seu código-fonte, se mostrou bastante acertada, e uma verdadeira legião de programadorescomeçou a contribuir através da Internet para o desenvolvimento do sistema. Linus Torvalds criou apenas o kernel do sistema. Muitos dos aplicativos que acompanham o kernel, como compiladores e editores de texto, foram criados pela GNU[2]; por isso, é comum se referir ao sistema como GNU/Linux. Embora o mais correto seja utilizar o termo Linux para se referir apenas ao kernel, será adotado ao longo desse livro, o termo Linux para identificar o sistema como um todo. Software Livre, freeware, shareware e software Comercial Vamos aqui abrir um parênteses para uma pequena explicação do que vem a ser cada um dos termos citados. O termo software livre, algumas vezes também chamado de livre distribuição, é usado para designar o software que pode ser livremente copiado e que possui código fonte disponível para quem quiser vê-lo e alterá-lo. Existem várias tipos de licença de software livre, sendo a mais comum delas a já citada GPL (para saber mais sobre ela consulte o site da GNU ). file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/basico.html (2 of 6)28/09/2004 19:52:22 Básico Freeware é o software que é gratuito apenas, ou seja, embora não se pague nada para usá-lo, não se tem acesso ao código-fonte e não se pode alterá-lo de acordo com as necessidades. Shareware é uma modalidade de distribuição e comercialização de software, onde o software pode ser livremente copiado, mas ele funciona em um modo "demonstração" por determinado período de tempo. O usuário deve então, após esse período de tempo, comprar o software e ao fazer isso adquirir uma chave (normalmente um número serial) que desbloqueia as funções não disponíveis no modo demonstração. O software comercial é aquele produzido e comercializado por uma determinada empresa, pelo qual o usuário deve adquirir uma licença de uso, e normalmente tem o seu código-fonte não disponível. Distribuições Linux Como será mostrado adiante, o Linux pode ser composto por um grande número de programas; logo, surgiu a necessidade de se agrupar esses programas de forma coerente e funcional, e de criar mecanismos que permitissem o gerenciamento deles; é aí que entra o conceito de distribuições Linux. Uma distribuição Linux é o conjunto dos vários programas que compõem o Linux, o kernel e, com freqüência, um sistema gerenciador de programas e um instalador. As distribuições Linux podem ser tão pequenas a ponto de caber em apenas alguns disquetes ou grandes e completas a ponto de utilizar vários CDs. A distribuição Conectiva Linux é a primeira distribuição em português e totalmente voltada para o mercado latino-americano, contando também com versões em espanhol e inglês. Além do mais, é função de uma distribuição reunir os programas criados por programadores dos mais diversos lugares do mundo, compilá-los e testá-los. Visão geral do sistema operacional Linux O sistema operacional Linux é composto pelo kernel, aplicações de sistema e aplicações de usuário. O kernel do Linux Embora o kernel seja uma parte importante do Linux, ele sozinho não constitui o sistema GNU/Linux. O kernel é o "núcleo" do sistema e é responsável pelas funções de mais baixo nível, como o gerenciamento de memória, gerenciamento de processos e da CPU. O kernel também é o responsável pelo suporte aos sistemas de arquivos, dispositivos e periféricos conectados ao computador, como placas SCSI, placas de rede, de som, portas seriais, etc. Chamamos de Linux o conjunto do kernel e demais programas, como shells, compiladores, bibliotecas de funções, etc. Algum cuidado deve ser tomado ao se verificar que versão de Linux está sendo utilizada, porque o kernel possui um número de versão e a sua distribuição pode possuir outro. O número que identifica a versão da distribuição é decidido pela empresa responsável pela versão, de acordo com padrões próprios. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/basico.html (3 of 6)28/09/2004 19:52:22 Básico Já o kernel possui um número de versão composto por 3 partes: um número maior, um número menor e um número de release, e este número é dado pelo grupo de programadores que cuidam do desenvolvimento do kernel. O número de série de seu kernel pode ser facilmente identificado digitando- se no prompt o comando uname -r, como no exemplo abaixo: # uname -r 2.4.21-14cl No exemplo acima, este kernel possui o número maior 2, o menor 4 também e é a vigésima primeira release da série 2.4. Em alguns casos é adicionado também um número que identifica uma compilação feita por uma determinada distribuição (14cl no exemplo, ou seja 14ª compilação da distribuição Conectiva Linux). O número menor é particularmente importante, pois números pares identificam versões de kernel testadas e consideradas estáveis, enquanto que números ímpares identificam versões de desenvolvimento, onde novos recursos estão sendo testados. O kernel do Linux pode ser compilado[3] para se adequar melhor ao tipo de máquina e ao tipo de tarefa que essa máquina vai executar. Por exemplo, se o servidor precisa se comunicar com outras máquinas usando o protocolo IPX, o administrador poderá compilar o kernel com suporte a esse protocolo, ou, se não houver necessidade de usar um determinado tipo de placa de rede, é possível compilar o kernel sem suporte a essa placa, resultando assim em um kernel de menor tamanho. O kernel do Conectiva Linux foi compilado para atender os mais diversos tipos de necessidades e de máquinas, além do mais, é possível incluir novos recursos sem a necessidade de compilar novamente o kernel, através do uso de módulos (veja mais no Capítulo 12). O processo de compilação de um kernel não é muito simples e é recomendado apenas a administradores de sistemas mais experientes. Para saber como se compila um kernel consulte o documento Como fazer kernel . Aplicações do Sistema O kernel faz muito pouco sozinho, uma vez que ele só provê os recursos que são necessários para que outros programas sejam executados. Logo, é necessária a utilização de outros programas para implementar os vários serviços necessários ao sistema operacional. Do "ponto de vista" do kernel, as aplicações do sistema, bem como qualquer outro programa, rodam no que é chamado "modo usuário", logo, a diferença entre aplicações de sistema e aplicações do usuário se dá pelo propósito de cada aplicação. Aplicações do sistema são necessárias para fazer o sistema funcionar, enquanto as aplicações do usuário são todos programas utilizados pelo usuário para realizar uma determinada tarefa (como um processador de texto, por exemplo). Entre as aplicações de sistema podemos citar o init, o getty e o syslog. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/basico.html (4 of 6)28/09/2004 19:52:22 Básico O init é o primeiro processo lançado após o carregamento do kernel na memória, e é ele o responsável por continuar o processo de boot lançando os outros programas. É o init o responsável, também, por garantir que o getty esteja sendo executado (para que os usuários possam entrar no sistema) e por adotar processos órfãos (processos filhos no qual o pai morreu), pois no Linux todos os processos devem estar em uma mesma árvore, e possuírem um pai (excluindo o processo init, que não tem pai). O getty provê o serviço responsável pelo login dos usuários em terminais textos (virtuais ou não). É ele que lê o nome do usuário e a senha e chama o programa login[4] para validá-los; caso estejam corretos é lançado um shell, caso contrário o processo todo é reiniciado. O syslog é responsável por capturar as mensagens de erro geradas pelo kernel ou por outras aplicações de sistema, e por mostrá-las posteriormente quando o administrador do sistema solicitá-las. Aplicações do usuário As aplicações do usuário são todas aquelas utilizadas pelo usuário para executar uma determinada tarefa. Editores de texto, editores de imagens, navegadores eleitores de e-mail se encaixam nessa categoria. O ambiente gráfico No Linux a responsabilidade pelo ambiente gráfico não é do kernel e sim de um programa especial, o XFree86. No entanto, o XFree86 provê apenas as funções de desenho de elementos gráficos e interação com a placa de vídeo. A interação final do usuário com a interface gráfica se dá através de programas gerenciadores de janelas, como o KDE, o WindowMaker e o GNOME, e são eles os responsáveis pela "aparência" do seu Linux. A separação do ambiente gráfico do resto do sistema apresenta muitas vantagens. Como o ambiente gráfico consome recursos do sistema, é possível desativá-lo, principalmente em servidores, resultando assim em um melhor desempenho de outras aplicações, uma vez que o tanto de tempo de CPU que seria utilizado para o XFree86 pode ser utilizado para essas aplicações. Além do mais, o desenvolvimento do ambiente gráfico pode ocorrer de maneira independente ao do kernel. O Linux também pode funcionar em modo texto. Nesse caso a interação com o usuário se dá por meio de um shell, como o Bash, que é capaz de interpretar e executar comandos digitados pelo usuário. Notas [1] General Public License - Licença Pública Geral. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/basico.html (5 of 6)28/09/2004 19:52:22 Básico [2] GNU é uma sigla recursiva que significa Gnu is Not Unix; é uma organização dedicada à criação de software livre. [3] Compilação é o processo de transformação de um código-fonte em um programa executável. [4] O kernel não se envolve no processo de login. Tudo é feito por outros programas. Anterior Principal Próxima Prefácio Linuxconf file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/basico.html (6 of 6)28/09/2004 19:52:22 Linuxconf Entendendo o Conectiva Linux Anterior Próxima Capítulo 2. Linuxconf Índice Interface do Linuxconf Iniciando o Linuxconf Ambiente do Linuxconf Efetivando as Configurações Ativando ou Desativando Módulos Permissão e Propriedade de Arquivos Arquivos de Configuração Comandos e Programas Residentes Escrevendo Módulos - Shellmod 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. Interface do Linuxconf 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 texto 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 file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (1 of 14)28/09/2004 19:52:26 Linuxconf terminal, caso esteja em modo gráfico, basta abrir um terminal e digitar linuxconf --text. Interface web 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 gráficas 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. Interface de linha de comando 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. Iniciando o Linuxconf 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. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (2 of 14)28/09/2004 19:52:26 Linuxconf 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. Figura 2-1. Interface Inicial do Linuxconf Como pode ser observado, o Linuxconf possui quatro abas: Configuração, Controle, Estado e Tarefas. A primeira trata de configurações relacionadas file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (3 of 14)28/09/2004 19:52:26 Linuxconf 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. Amaioria 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. Ambiente do Linuxconf 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: Tarefas de cliente 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). Tarefas de servidor São fornecidas opções para a configuração de um servidor, para os mais diversos objetivos. É possível configurar, entre outros serviços: m Servidor de Arquivos de Rede (NFS); m Servidor Web (Apache); m Servidor de nomes de domínio (DNS); file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (4 of 14)28/09/2004 19:52:26 Linuxconf m Servidor de e-mail (Postfix); m Servidor SSH (openssh); m Servidor de Alta Disponibilidade; m Servidor SAMBA; m Servidor de Serviços Internet (por exemplo, Telnet e FTP); m Servidor de Autenticação de usuários (Radius e Portslave); m 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. Serviços de inicialização 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. Firewall Opções para a configuração de um firewall, muito importante para a segurança de uma rede. Diversos 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 file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (5 of 14)28/09/2004 19:52:26 Linuxconf 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: Painel de Controle 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. Gerenciamento do Linuxconf 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. Data & Horário Configura a data e o horário de uma máquina cliente. Gerenciamento de pacotes RPM 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. Efetivando as Configurações file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (6 of 14)28/09/2004 19:52:26 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. Ativando ou Desativando Módulos 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). file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (7 of 14)28/09/2004 19:52:26 Linuxconf Figura 2-2. Lista de Módulos do Linuxconf 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. Permissão e Propriedade de Arquivos 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 file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (8 of 14)28/09/2004 19:52:26 Linuxconf 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. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (9 of 14)28/09/2004 19:52:26 Linuxconf Figura 2-3. Modificando Permissões Pelo Linuxconf 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. Arquivos de Configuração 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). file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (10 of 14)28/09/2004 19:52:26 Linuxconf Figura 2-4. Lista dos Arquivos de Configuração 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. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (11 of 14)28/09/2004 19:52:26 Linuxconf 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. Comandos e Programas Residentes 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. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (12 of 14)28/09/2004 19:52:26 Linuxconf Figura 2-5. Listagem de Comandos e Programas Residentes 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ê: l Desabilitar o comando, desmarcando a opção o linuxconf pode operá-lo. l Modificar o comando que será executado, alterando Caminho do comando. l 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. Escrevendo Módulos - Shellmod 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 file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (13 of 14)28/09/2004 19:52:26 Linuxconf 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. Notas [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. Anterior Principal Próxima Básico Contas e Grupos file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/linuxconf.html (14 of 14)28/09/2004 19:52:26 Contas e Grupos Entendendo o Conectiva Linux Anterior Próxima Capítulo 3. Contas e Grupos Índice O Que São Usuários e Grupos Usuários e Grupos Preexistentes Criação e Manutenção de Usuários Criação e Manutenção de Grupos Os conceitos de conta de usuário e grupo são fundamentais para entender e implementar um servidor. Este capítulo fornecerá uma descrição geral destes conceitos e de como eles podem ser tratados no Conectiva Linux. O Que São Usuários e Grupos Uma conta de usuário é um conjunto de nome de acesso[1] mais uma senha que possibilitamque o usuário acesse a sua área do sistema. Sendo assim, uma mesma pessoa pode possuir várias contas, basta que sejam criadas com nomes de acesso diferentes. Basicamente, existem dois tipos de contas: a conta do usuário comum, que utiliza o sistema e suas ferramentas, e a conta de superusuário ou conta de root, onde é possível realizar as configurações do sistema. A senha de root é muito importante, pois algumas configurações só são possíveis tendo a mesma em mãos. Por não possuir restrições de segurança, a conta de root só deve ser usada para manutenções no sistema e de preferência o menor tempo possível. Para evitar permissões desnecessárias no sistema deve-se usar uma conta normal de usuário em operações comuns. Se um arquivo for executado pelo usuário root e este contiver comandos ou códigos que causem danos ao sistema, estes danos poderão ser irreparáveis. Um grupo é basicamente um conjunto de usuários. Geralmente ele é criado quando se deseja que usuários tenham permissão restrita a arquivos em comum. Isso é útil para garantir privacidade e segurança dos dados. Mais detalhes sobre grupos serão explicados ao longo do capítulo. O arquivo /etc/passwd fornece muitas informações. Veja o exemplo abaixo. Cada linha no arquivo irá mostrar um usuário: Exemplo 3-1. Usuários no Arquivo /etc/passwd usuario:x:1001:100:Usuario:/home/usuario:/bin/bash file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/grupos.html (1 of 8)28/09/2004 19:52:51 Contas e Grupos Podemos notar que esta linha está dividida em campos, onde cada um é separado por um : (dois pontos). Cada um deles está explicado a seguir: usuario: login do usuário, ou seja, o nome de acesso para a conta do usuário no sistema. Note que alguns caracteres não são aceitos, como o * e $, pois são caracteres especiais. Observe também que as letras maiúscula e minúscula são tratadas de modo diferente, e portanto usuario é um usuário e Usuario será outro. x: o sinal "x" indica que a senha do usuário está criptografada no arquivo /etc/shadow, se este arquivo estiver ativo. Se estivesse com o sinal de "*", a conta estaria desabilitada, e se estivesse sem nada (::), a conta não teria senha. 1001: UID (User Identification), que indica o número de identificação do usuário. 100: GID (Group Identification), que indica o número de identificação do grupo do usuário. Usuario: comentários do usuário como nome e telefone. /home/usuario: indica o diretório de trabalho do usuário (ou diretório home). /bin/bash: shell do usuário, ou seja, o programa que irá interpretar os comandos que o usuário executar. Usuários e Grupos Preexistentes Durante a instalação do Conectiva Linux é interessante observar que alguns grupos e usuários são criados como padrão do sistema. Uma das primeiras contas existentes no Linux é a conta de superusuário, cujo nome de acesso é root e a senha é digitada durante a instalação. A maioria das distribuições permite também que outros usuários comuns sejam criados durante o seu processo de instalação. O arquivo em que você pode ver todos os usuários é o /etc/passwd. Portanto, todos os usuários que não foram criados por você durante ou depois a instalação são aqueles usuários que são criados automaticamente pelo sistema. Do mesmo modo, os grupos preexistentes estão no arquivo /etc/group. Como você pode notar, a maioria dos grupos que estão presentes neste arquivo servem para o controle do sistema, e somente o superusuário pode modificar suas permissões e incluir/retirar usuários destes grupos. Criação e Manutenção de Usuários Existem várias formas de criar e manter usuários em um sistema. Primeiramente, será mostrado como tratar de usuários e em seguida como manipular grupos. É importante lembrar sempre de que, para executar estas atividades, você deve estar acessando o sistema como superusuário. Será mostrado como executar estas atividades através do aplicativo Linuxconf. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/grupos.html (2 of 8)28/09/2004 19:52:51 Contas e Grupos Para visualizar os usuários do sistema, acesse o menu Configuração -> Usuários -> Normal -> Contas de usuários do Linuxconf. Os detalhes mais gerais podem ser vistos nesta primeira tela, e para verificar mais detalhes ou editar uma conta, basta clicar sobre o nome do usuário. Se você deseja adicionar uma conta, clique em Adicionar. Em ambos os casos será mostrada uma tela conforme a Figura 3-1. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/grupos.html (3 of 8)28/09/2004 19:52:51 Contas e Grupos Figura 3-1. Editando ou Adicionando Usuários Esta tela (aba Informações Básicas) é de preenchimento obrigatório, sendo que alguns campos já vem predefinidos; as outras abas são opcionais. Lembre-se que para preencher a opção Grupos Suplementares, o grupo já deve estar cadastrado no sistema. Após isto, clique no botão Aceitar e inclua a senha do usuário na janela que surgir, confirmando-a em seguida. Se desejar mudar a senha de um usuário já existente, selecione o usuário e clique no botão Senha. Dica: Para fazer com que um usuário tenha poderes de superusuário, edite a conta e selecione a aba Privilégios. Pode-se, por exemplo, fazer com que o usuário (comum) possa usar o Linuxconf. Portanto, tenha muito cuidado com esta opção. Lembre-se também de que o bit SUID deve estar habilitado. O Linuxconf é interessante porque você pode incluir outras informações sobre os usuários, além de poder criar contas especiais, como por exemplo contas POP (e-mail), e alterar padrões definidos para contas de usuários, como por exemplo os shells dos usuários. Uma forma alternativa de incluir usuários em um sistema é através da linha de comando. Para criar uma nova conta de usuário, o comando é o useradd. Portanto, para criar uma conta com o nome de acesso usuario como no exemplo, basta digitar o comando (como superusuário): # useradd usuario E para criar uma senha, basta utilizar o comando passwd. A senha pode conter qualquer caractere e é desejável que ela tenha no mínimo 6 caracteres. # passwd usuario Changing password for user usuario New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully Com isto, a nova conta estará criada. Uma linha será incluída no arquivo /etc/passwd com os dados do novo usuário, incluindo o seu diretório de trabalho (/home/usuario), sendo colocado o /bin/bash como o interpretador de comandos padrão, entre outros dados. Do mesmo modo, para remover contas de usuários basta digitar o comando: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/grupos.html (4 of 8)28/09/2004 19:52:51 Contas e Grupos # userdel -r usuario Todos os dados do usuário serão apagados do arquivo /etc/passwd, inclusive o diretório de trabalho do usuário. Criação e Manutenção de Grupos Do mesmo modo que acontece para usuários, a criação e manutenção de grupos é muito simples de se executar. Para criar um grupo dirija-se ao menu Configuração -> Usuários -> Normal -> Definições de grupos. Similarmente aos usuários, serão mostrados os grupos pertencentes ao sistema. Para criar um grupo clique em Adicionar e para editar um grupo clique sobre ele. Nos dois casos será mostrada uma tela como a Figura 3-2. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/grupos.html (5 of 8)28/09/2004 19:52:51 Contas e Grupos Figura 3-2. Editando ou Adicionando Grupos A opção ID do grupo não precisa ser preenchida, pois o sistema fornece automaticamente este número. Os usuários do grupo devem ser colocados no campo Membros alternativos (opc.), separados por um espaço em branco. As informações sobre os grupos são guardadas no arquivo /etc/group. É importante frisar que durante a criação de um usuário, paralelamente um grupo com o mesmo nome do usuário estará sendo criado. Por exemplo, ao criaro usuário usuario, você poderá observar no arquivo /etc/group que uma linha foi criada (Exemplo 3-2): Exemplo 3-2. Trecho do Arquivo /etc/group file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/grupos.html (6 of 8)28/09/2004 19:52:51 Contas e Grupos ... usuario:x:503: Os grupos dos usuários comuns (onde o próprio usuário é o dono principal) contém números de identificação acima de 500; isto é um padrão para o Conectiva Linux. Os dados escritos neste arquivo são semelhantes aos descritos no Exemplo 3-1, modificando apenas os dados dos usuários para os dados dos grupos. Deve-se tomar cuidado com as permissões. Ao se criar um grupo, deve-se ter certeza de que todos os arquivos estão com as permissões corretas e todos os usuários estão com as permissões corretas de leitura, escrita e execução. Através do modo texto o comando groupadd cria um novo grupo. Para remover um grupo basta executar o comando groupdel. Existem dois modos de incluir usuários em um grupo pelo modo texto: através do comando usermod ou diretamente no arquivo /etc/group. Para incluir usuários em um grupo editando diretamente o arquivo: superteste:x:504:usuario1,usuario2 Note, portanto, que os usuários usuario1 e usuario2 foram incluídos no grupo superteste. Para incluir mais usuários basta incluir uma vírgula no fim da linha e o nome do usuário a seguir. Agora o mesmo exemplo, utilizando o comando usermod: # usermod -G superteste usuario1 # usermod -G superteste usuario2 O comando usermod[2] inclui apenas um usuário por comando. É possível colocar vários grupos, mas deve-se tomar cuidado pois isto apaga a configuração anterior. Este tema é muito extenso e possui inúmeros detalhes e configurações. Para mais informações, consulte as páginas de manual [3] dos comandos citados, além da página de manual do comando gpasswd. Notas [1] Login. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/grupos.html (7 of 8)28/09/2004 19:52:51 Contas e Grupos [2] User Modification. [3] man pages. Anterior Principal Próxima Linuxconf Arquivos e Diretórios file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/grupos.html (8 of 8)28/09/2004 19:52:51 Arquivos e Diretórios Entendendo o Conectiva Linux Anterior Próxima Capítulo 4. Arquivos e Diretórios Índice Sistema de Arquivos Diretórios e Arquivos Importantes Permissões de Arquivos Em um sistema Linux, temos uma estrutura de diretórios diferente de outros sistemas operacionais. Os arquivos ali dispostos, a princípio, parecem estar jogados aleatoriamente nos diversos diretórios existentes. Mas, felizmente, há uma certa ordem e uma lógica, fazendo com que cada diretório do sistema tenha uma finalidade específica. O principal objetivo deste capítulo é mostrar que os arquivos e diretórios em um sistema Linux estão organizados de forma que cada um tem uma função específica e o conjunto torna o sistema confiável, integrado e seguro. Sistema de Arquivos Sistema de arquivos é a forma que o sistema operacional usa para representar determinada informação em um espaço de armazenagem. É o método de identificar e indexar as informações que estão armazenadas em qualquer mídia: disquetes, discos rígidos, drives em memória, CDs, etc. Quando se prepara um disco para o trabalho através do processo de formatação física, criam-se os meios magnéticos necessários para armazenar os dados. Este processo faz uma preparação do dispositivo de armazenagem para que ele possa receber um sistema de arquivos e futuramente os dados do usuário. Um sistema de arquivos, portanto, é necessário para manter padrões, para controlar o tamanho das partições, permissões de arquivos, tamanho dos arquivos e sua organização, entre muitas outras funções. Será visto primeiramente quais os principais tipos de sistemas de arquivos que existem e que são criados em um processo de formatação: l ext: sistema de arquivos estendido (extended filesystem). É o sistema de arquivos mais utilizado no Linux. Ele fornece padrões para arquivos regulares, diretórios, arquivos de dispositivos e links simbólicos, entre outras características avançadas. Desenvolvedores trabalham para ampliar a capacidade deste sistema de arquivos para o suporte a controle de acesso conforme o padrão POSIX e compressão de arquivos on the fly (o arquivo é descompactado no momento em que é acessado). Suas principais ramificações são os sistemas ext2 e ext3. l vfat: este é o sistema de arquivos (volume FAT) dos sistemas Windows®9x e Windows NT®. l nfs: sistema de arquivos de rede, utilizado para acessar diretórios de máquinas remotas, que permite o compartilhamento de dados na rede. l reiserfs: sistema de arquivos com suporte a características mais avançadas, como por exemplo melhor performance para diretórios muito grandes e suporte a transações (journalling). l iso9660: sistema de arquivos do CD-ROM. l hpfs: sistema de arquivos do OS/2®. Existem muitos outros tipos de sistemas de arquivos, dependendo da sua aplicação e de que sistema você precisará. Examine as páginas de manual do fstab e do mount para mais detalhes sobre os vários tipos de sistema de arquivos. Juntamente com o conceito de sistema de arquivos existe o conceito de partição. Particionar um dispositivo é dividi-lo de forma que cada uma das suas partes, denominadas partições, possam receber um tipo de sistema de arquivo e estejam preparadas para receber as informações. Sistema de arquivos e partições são normalmente confundidos, quando na verdade são conceitos totalmente diferentes. As partições são áreas de armazenamento, criadas durante o processo de particionamento, sendo que cada partição funciona como se fosse um disco rígido (ou dispositivo utilizado). Para se utilizar uma partição, entretanto, deve-se criar um sistema de arquivos, ou seja, um sistema que organize e controle os arquivos e file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/arq.dir.html (1 of 12)28/09/2004 19:52:57 Arquivos e Diretórios diretórios desta partição. Uma partição só pode ter apenas um sistema de arquivo. Apesar da diferença, muitas vezes os termos são utilizados de modo similar. Não é uma linguagem totalmente errada, pois é muito utilizada diariamente, mas deve-se ter em mente a diferença entre os termos. O sistema de arquivos mais importante em um sistema Linux é o sistema de arquivos raiz. Ele geralmente está montado no diretório "/", também chamado de diretório raiz. Um sistema de arquivos raiz deve conter o necessário para suportar um sistema Linux completo, e para tanto deve incluir alguns requisitos básicos: l A estrutura básica do sistema de arquivos, geralmente agrupando os diretórios em árvores e obedecendo a alguns padrões. l Conjunto mínimo de diretórios: /dev, /proc e /bin, entre outros. l Conjunto básico de utilitários e comandos: ls, cp, mv. l Conjunto mínimo de arquivos de configuração: rc, inittab, fstab. l Arquivos de dispositivo: /dev/hd*, /dev/tty*, /dev/fd0. l Bibliotecas que disponibilizem as funções básicas necessárias aos utilitários. A estrutura dos sistemas de arquivos do Linux prevê um agrupamento que permite maior organização de dados, o que aumenta a funcionalidade do sistema. Os comandos estão todos em uma determinada área, todos os arquivos de dados em uma outra, documentação em uma terceira, e assim por diante. Além disso, o diretório raiz geralmente não contém nenhum arquivo, exceto, em algumas distribuições, pela imagem de inicialização do sistema. Todos os outros arquivos estão em subdiretórios do raiz. Após esta primeira apresentação, passamos agora a mostrar como é formado o diretório raiz de um sistema Linux. Veja a estrutura básica de diretórios abaixo: /bin /dev /home /proc /usr /boot /etc /lib /var /sbin l O diretório raiz, representado pela "/", é específico de cada máquina. Podeficar tanto em um disco físico quanto na memória da máquina ou em uma unidade de rede. É o diretório principal, que contém todos os arquivos e diretórios do sistema. l O diretório /bin é o diretório que contém o mínimo necessário para a inicialização do sistema. Serão necessárias ferramentas que se encontram em outros diretórios para que a máquina fique operacional. A maioria dos programas possui o seu arquivo executável neste diretório. l /dev é o local onde ficam armazenadas as referências aos dispositivos presentes na máquina, para o controle destes dispositivos. Esse diretório contém apontadores para, por exemplo, o drive de disquetes, os discos da máquina, terminais virtuais, portas de acesso seriais e paralelas, etc. Os controladores são automaticamente criados durante a instalação do sistema e posteriormente podem ser criados através do comando MAKEDEV. l O diretório /home contém os diretórios pessoais dos usuários e suas configurações. l O diretório /proc fornece informações sobre o kernel e sobre os processos que estão rodando no momento, além de informações sobre a utilização de alguns dispositivos. Alguns parâmetros do kernel podem ser alterados diretamente nesses arquivos, fazendo com que as modificações passem a valer imediatamente. Esse diretório não ocupa espaço nenhum em disco e as informações ali presentes são geradas apenas quando solicitadas. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/arq.dir.html (2 of 12)28/09/2004 19:52:57 Arquivos e Diretórios l O diretório /usr contém comandos, bibliotecas, programas, páginas de manual e outros arquivos que não mudam mas que se fazem necessários para a operação normal do sistema. Como são estáticos, é interessante compartilhar esses arquivos pela rede, o que resulta numa grande economia de espaço em disco utilizado. l O diretório /boot contém informações para o gerenciador de inicialização do sistema. É aqui que normalmente ficam as informações para o carregador do sistema operacional e também a imagem para a pré-carga do sistema (initrd). l /etc é um dos mais importantes diretórios da máquina. Nele ficam a maioria dos arquivos de configuração e manipulação dos serviços essenciais ao sistema, a maioria dos arquivos de configuração de acesso a rede e de comunicação, arquivos de configuração do Sistema de Janelas X[1], arquivos de configuração do idioma do sistema, de atualizações, enfim, de muitas funcionalidades da máquina. l /lib é o diretório onde ficam as bibliotecas básicas do sistema. Elas são compartilhadas por diversos programas, principalmente os que se encontram no diretório raiz. l O diretório /var contém arquivos que possuem dados variáveis. Neste diretório estão arquivos e diretórios de spool, arquivos de log, arquivos de configuração de correio eletrônico e de news, entre outros. O diretório /var também guarda arquivos que precisam de uma freqüente atualização, como os arquivos de conteúdo do servidor Apache ou do servidor de FTP. l /sbin contém ferramentas de uso do superusuário e que geralmente são usadas por serviços básicos da máquina. Ficam nesse diretório programas como os responsáveis pela carga de módulos do kernel, ativação e interrupção das interfaces de rede, manutenção dos sistemas de arquivos e de outras atividades. Existem, além destes, alguns diretórios que também são importantes para a complementação da funcionalidade do sistema, e estão presentes em praticamente todos os sistemas Linux, apesar de não serem estritamente obrigatórios. São eles: l O diretório /mnt é o diretório utilizado para o acesso a dispositivos de mídia, como disquetes e CD-ROM. Ele é utilizado como ponto de montagem para a maioria destes dispositivos. l O diretório /tmp serve como repositório para arquivos temporários, sendo utilizado para programas que são executados após a ativação do sistema, ou seja, este diretório serve como espaço extra para vários programas e aplicações. l Alguns programas são projetados para serem instalados sob o diretório /opt. Ele pode ser útil por questões de espaço. Apesar das diferentes partes acima serem chamadas de diretórios, não há obrigatoriedade que elas estejam separadas. Elas podem estar facilmente no mesmo sistema de arquivos em uma pequena máquina utilizada por um único usuário que deseje mantê-las de uma forma mais simplificada. Alguns destes diretórios podem ser montados em suas próprias partições. Suponha que, por questões de espaço ou segurança, é desejável que o diretório dos usuários esteja em uma outra partição. Então, é criada uma outra partição que será montada no diretório /home e que terá, por exemplo, o mesmo sistema de arquivos utilizado pelo sistema de arquivos raiz. Essa separação em um sistema de arquivos à parte é interessante pois facilita determinadas tarefas administrativas, como gerenciamento da quantidade de espaço que cada usuário pode utilizar e a manutenção de cópias de segurança[2]. Portanto, a árvore de diretórios pode estar dividida ainda em diferentes sistemas de arquivos, dependendo do tamanho de cada disco e de quanto espaço será alocado para cada finalidade. Sistema de Arquivos ext3 O Conectiva Linux pode ser instalado sobre um sistema de arquivos ext3. Esse sistema é semelhante ao ext2, porém utiliza o sistema de journalling de dados. O journalling divide a fase de escrita dos dados em duas partes: Agendamento e Escrita. Essa estrutura permite que, em caso de desligamento acidental do sistema, não seja necessário executar um fsck no disco (o que pode demorar muito tempo dependendo do tamanho do seu sistema de arquivos). Caso ocorra uma interrupção inesperada do sistema, como por exemplo uma queda de luz durante a fase de "agendamento", o arquivo não é atualizado, continuando intacto. Caso esse problema ocorra durante a fase de escrita, o sistema possui a agenda (journal) na qual estão os dados necessários para fazer as alterações no arquivo. O fato do sistema escrever várias vezes a mesma alteração em arquivos, não torna a operação lenta, pois ele também otimiza o movimento das file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/arq.dir.html (3 of 12)28/09/2004 19:52:57 Arquivos e Diretórios cabeças do disco rígido. O usuário que já possui o Conectiva Linux e o sistema de arquivos ext2 instalado pode facilmente convertê-lo para o ext3. Para fazê-lo, proceda da seguinte maneira: Converta o sistema de arquivos de ext2 para ext3 utilizando o comando tune2fs: # tune2fs -j /dev/hdxx Deve-se também alterar o sistema de arquivos no arquivo /etc/fstab. Para isso, altere a linha: /dev/hdxx / ext2 defaults 0 0 para /dev/hdxx / ext3 defaults 1 1 Depois de ter alterado o arquivo /etc/fstab, execute o comando mkinitrd como mostrado abaixo: # mkinitrd /boot/initrd-versao_do_kernel.img versao_do_kernel O arquivo de configuração do gerenciador de inicialização deve ser alterado para que utilize o initrd criado. No caso do grub, o arquivo de configuração fica em /boot/grub/menu.lst. Abaixo da linha que indica o kernel a ser utilizado durante a inicialização, acrescente a seguinte linha: initrd = (hdx,x)/boot/initrd-versao_do_kernel.img Deixe, por enquanto, a entrada com o sistema ext2 intacta, para que no caso de ocorrer algum problema, você poderá retornar e fazer os reparos necessários. Depois de ter realizado todos os passos descritos acima, reinicie a máquina para que o sistema reconheça o ext3. Trabalhando com Sistema de Arquivos Durante o processo de instalação de um sistema Linux um sistema de arquivos é escolhido para cada partição especificada. Se for necessária alguma mudança ou atualização, será possível executá-la pelo menu Configuração -> Sistema de arquivos -> Acessar dispositivos locais do Linuxconf. Veja a Figura 4-1, que mostra como configurar um sistema de arquivos para partições locais, ou seja, da máquina.Clicando sobre os pontos de montagem é possível editá-los. Você pode observar onde a partição está localizada, qual seu tipo e o seu ponto de montagem na aba Base. Deve-se tomar muito cuidado ao fazer modificações, pois elas poderão modificar totalmente o sistema. A aba Opções também traz informações importantes como, por exemplo, se a partição pode ser montável por usuários, se possui suporte a dispositivos especiais e se o dono do dispositivo pode montá-la. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/arq.dir.html (4 of 12)28/09/2004 19:52:57 Arquivos e Diretórios Figura 4-1. Configurando Sistemas de Arquivos Locais Para configurar sistemas de arquivos de rede, como por exemplo nfs, dirija-se ao menu Configuração->Sistema de arquivos->Acessar volumes NFS; o procedimento a ser seguido é o mesmo utilizado para dispositivos locais, bastando ter as informações sobre a rede e os pontos de montagem. Sistema de Quotas Um sistema de arquivos também pode trabalhar com quotas. Um sistema de quotas define limites de uso do disco para usuários e seus programas. Os usuários são forçados a permanecer sob seu limite de consumo de disco, tirando deles a habilidade de consumir de forma ilimitada o espaço em disco do sistema. A quota é gerenciada seguindo uma base por usuário e por sistema de arquivo. Se existe mais de um sistema de arquivo onde um usuário pode criar arquivo, então a quota tem de ser estabelecida para cada sistema de arquivo separadamente. É possível configurar o sistema de quotas através do Linuxconf pelo menu Configuração ->Sistema de arquivos->Acessar dispositivos locais. Selecione o dispositivo no qual se deseja aplicar o sistema de quotas (por exemplo, o dispositivo do disco rígido ou /dev/hda*) e na tela de edição habilite a opção Opções->Ativar quota por usuário. Ativado o sistema de quota, basta apenas configurá-lo em Configuração->Sistema de arquivos->Define quota padrão. Observe a Figura 4-2 que exibe esta tela. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/arq.dir.html (5 of 12)28/09/2004 19:52:57 Arquivos e Diretórios Figura 4-2. Configurando o Sistema de Quotas Os limites de espaço para software, hardware e para arquivos devem ser preenchidos em bytes. Após a finalização da configuração, o Linuxconf pede algumas confirmações durante a sua finalização. Basta confirmar e finalizar o Linuxconf. A configuração de quotas para grupos está na mesma tela (aba Grupo Padrão) e segue o mesmo padrão. Nota: As opções do tipo Período Extra na configuração da quota são interessantes, pois permitem a configuração de um período para que o usuário possa fazer modificações (remover arquivos, por exemplo), antes que sua área fique inacessível. Diretórios e Arquivos Importantes Cada diretório apresenta uma estrutura particular e alguns arquivos-chave para a configuração do sistema. Devemos lembrar aqui que um dispositivo físico é tratado no Linux como um arquivo e se encontra no diretório /dev. No início de cada arquivo, geralmente encontra-se um comentário, explicando a que se destina o arquivo e quais dados devem ser incluídos para configurá-lo. Muitos arquivos, porém, apenas apontam para outros arquivos, e estão ligados através dos chamados links. Existem dois tipos de links: o hard link é exatamente o nome de um arquivo (sendo que um mesmo arquivo pode ter vários nomes); ele só será removido do disco rígido quando o último nome for removido. Já o soft link (ou link simbólico) é um pequeno arquivo especial, que contém um apontador para onde o arquivo real está localizado, ou seja, o link aponta para um outro arquivo, que pode ser inclusive de um outro tipo de sistema de arquivo. Para criar um link simbólico basta digitar, como superusuário: # ln -s [arquivo_original] [link_para_arquivo] file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/arq.dir.html (6 of 12)28/09/2004 19:52:57 Arquivos e Diretórios Para criar um link direto, basta retirar o parâmetro -s da linha anterior. Após a descrição destes conceitos importantes, segue primeiramente uma lista com alguns diretórios importantes, e logo após alguns arquivos destes diretórios. Estes diretórios podem mudar de uma distribuição Linux para outra, mas basicamente seguem a estrutura abaixo. l Diretório /etc m init.d: diretório que contém scripts para a inicialização de serviços da máquina, que na verdade é um link simbólico para o diretório /etc/rc.d/init.d. m exports: arquivo que serve para controlar o acesso a sistema de arquivos que estão sendo exportados para clientes NFS. m X11: configurações relacionadas ao sistema de janelas X, como por exemplo configuração do teclado e comportamento de alguns programas no ambiente gráfico. m crontab: arquivo de configuração do cron, que é o servidor utilizado para executar serviços agendados. m passwd: contém informações sobre os usuários da máquina. Nesse arquivo ficam armazenados o nome do usuário, seu nome real, diretório pessoal, interpretador de comandos a ser usado e outras informações específicas do usuário. m group: parecido com o arquivo passwd, porém, trabalha com grupos de usuários ao invés de usuários individuais. m fstab: contém uma lista com os sistemas de arquivos e opções padrão para a montagem de sistema de arquivos. m mtab: contém a relação dos sistemas de arquivos atualmente montados, juntamente com opções de montagem e o estado em que se encontram. m inittab: arquivo de configuração dos níveis de execução (runlevel) do sistema. m printcap: contém as configuração para as impressoras ligadas ao sistema ou à rede. Nesses arquivos são configurados filtros e alguns outros recursos administrativos relativos a impressoras. m securetty: contém a relação de terminais considerados seguros. O superusuário só poderá acessar a máquina a partir desses terminais. Geralmente são listados apenas terminais acessíveis localmente. m modules.conf: arquivo de configuração dos módulos do kernel, composto por várias diretivas que adicionam, direcionam e carregam os módulos. m rc.local: este arquivo é um link simbólico para /etc/rc.d/rc.local. Ele é um script, tendo como principal função atualizar arquivos de mensagens de inicialização do sistema e do idioma, entre outros arquivos (verifica arquivos como o /etc/ issue e o /etc/motd). Ele será executado depois de todos os scripts de inicialização. m rc.sysinit: executado no momento da inicialização do sistema, ele configura todas as informações necessárias para a utilização do sistema, como: detalhes de rede, parâmetros do kernel e mapa de teclado, entre outras. m shells: lista dos interpretadores de comando válidos. Alguns servidores e comandos restringem o acesso do usuário aos interpretadores de comando relacionados nesse arquivo. l Diretório /usr m X11R6: é um diretório contendo arquivos do sistema de janelas X. Esse diretório contém diversos outros arquivos pelos quais se espalham os arquivos do X. m bin: contém praticamente todos os comandos de usuários. Alguns outros podem ficar no diretório /bin ou, com menos freqüência, no diretório /usr/local/bin. m sbin: possui os comandos de administração do sistema que não necessitam estar no diretório raiz e que são exclusivos do superusuário. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/arq.dir.html (7 of 12)28/09/2004 19:52:57 Arquivos e Diretórios m local: é usado para armazenar os programas instalados localmente e que não se encontravam empacotados com o RPM. m share/doc: neste diretório se encontra a maioria da documentação disponível da distribuição, como páginas de manual (manpages) e arquivos Como Fazer (HOWTOs), entre outros. l Diretório /var m lock: contém arquivos de bloqueio. Muitos programas seguem uma convenção criando arquivos de bloqueionesse diretório para sinalizar que estão usando um dispositivo específico (como o modem, por exemplo) ou um arquivo especial. Quando outros programas detectam a presença desse bloqueio, eles não usam o mesmo dispositivo ou arquivo. m log: possui os arquivos de registro e/ou históricos de programas. Os arquivos desse diretório tendem a crescer indefinidamente; isso faz com que se torne necessária uma limpeza periódica nesse diretório. No Conectiva Linux o aplicativo logrotate faz esse serviço automaticamente de acordo com configurações preestabelecidas ou configurações definidas pelo administrador. m spool: armazena as diversas filas de tarefas como e-mail, notícias, impressão, etc. Cada fila fica armazenada em seu próprio diretório. l Diretório /proc m cpuinfo: apresenta informações sobre o(s) processador(es), tais como fabricante, modelo e registradores, entre outras. m devices: mostra uma relação dos dispositivos atualmente configurados no kernel do sistema operacional. m interrupts: relaciona as interrupções em uso e outras informações a respeito dessas como, por exemplo, a quantidade de vezes que foram acessadas. m meminfo: arquivo com informações sobre compartilhamento e o uso de memória. Permissões de Arquivos Permissão é um conceito importantíssimo, principalmente para garantir a segurança do sistema contra acessos indevidos a arquivos importantes. Será mostrado nesta seção como são definidas as permissões em um sistema Linux. Todo arquivo do sistema pertence a um dono e a um grupo, podendo pertencer somente a um usuário ou fazer parte de um grupo de vários usuários. Estes dois parâmetros (dono do arquivo e grupo ao qual o arquivo pertence) é que determinam as permissões do arquivo, por quem o arquivo foi criado, que permissões foram dadas pelo dono, quem poderá acessá-lo e a forma de acesso de que irão dispor todos aqueles que fizerem operações com o arquivo, entre outros. Vamos descrever brevemente como interpretar estas informações. No Linux a implementação de permissões é feita para três grupos de usuários. São esses grupos: o dono do arquivo[3], o grupo de trabalho ao qual o arquivo pertence e, finalmente, os demais usuários que não se encaixam nos dois grupos anteriores. Esses dados podem ser visualizados através do comando ls -l e modificado através dos comandos chown, que muda o dono do arquivo e também o seu grupo; o comando chgrp é usado para mudar apenas o grupo do arquivo[4]. Como os dados são tratados como arquivos, mesmo que sejam apenas indicadores para dispositivos (por exemplo, /dev/mouse), as permissões fazem com que se possa proibir determinado usuário ou grupo de usuários de acessar algum recurso específico da máquina, como por exemplo recursos de áudio ou o acesso a um drive de disquetes. No entanto, o superusuário pode acessar qualquer arquivo ou dispositivo, independente de suas permissões. Quando um arquivo é criado, ele recebe certos valores de propriedade, como o UID do dono (normalmente o criador do arquivo), o valor de propriedade do grupo GID (geralmente o grupo a que o dono pertence quando o arquivo é criado) e outros valores de permissão de acesso, derivados dos valores associados ao valor umask do dono, no momento da criação. Estes valores umask são definidos geralmente no arquivo /etc/ profile com os seguintes valores: l Para o superusuário: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/arq.dir.html (8 of 12)28/09/2004 19:52:57 Arquivos e Diretórios # umask 022 l Para os demais usuários do sistema: # umask 002 A umask funciona retirando permissões, ou seja, a permissão padrão do sistema seria 666, mas com um valor de 022, no caso do superusuário, teríamos 644 (666-022=644), o que significa que quando um arquivo for criado pelo superusuário ele vai ter suas permissões inicias em -rw-r-r--, permitindo escrita e leitura para o dono do arquivo e somente leitura ao grupo ao qual ele pertence e para os demais usuários do sistema. Já no caso dos usuários comuns do sistema, todo arquivo iniciará sua vida com permissões 664 (666-002=664), o que significa leitura e escrita para o dono e para o grupo (no formato absoluto será -rw-rw-r--) e aos outros usuários do sistema permite apenas leitura. Pode-se verificar, através do exemplo abaixo, que existem vários dados importantes utilizados para identificar as características de um arquivo. Veja o Exemplo 4-1: Exemplo 4-1. Informações Sobre um Arquivo $ ls -l teste -rw-rw-r-- 1 aluno projeto 71815 Mar 7 15:52 teste O primeiro bit do campo -rw-rw-r-- determina o seu tipo, pois tudo em um sistema Linux é tratado como se fosse arquivo, incluindo os diretórios, links e dispositivos do sistema. Os principais tipos e seus significados são: -: atributo de arquivo. d: quando se trata de um diretório. l: o arquivo é um link simbólico. b: dispositivos de bloco. c: dispositivos de caractere. s: trata-se de um socket, atribuído para arquivos de comunicação e memória. t: sticky bit. Sticky bit é um bit utilizado tanto para arquivos como para diretórios no Linux. Se for habilitado para um arquivo executável, enviará uma mensagem para que o kernel mantenha o código carregado em uma área de troca[5], mesmo depois de terminada a execução do arquivo. Isto causa uma melhora de desempenho, pois caso o arquivo venha ser executado novamente, ele já estará na área de troca. Se o sticky bit for habilitado em um diretório, um usuário não terá privilégios para renomear ou apagar arquivos de outros usuários neste diretório, somente terá acesso aos seus próprios documentos. Porém, se as permissões forem modificadas, o usuário poderá ter acesso aos documentos de outros usuários também. O restante do campo indica as permissões para cada grupo. Os tipos de permissões para arquivos são: r: leitura (copiar, imprimir, visualizar). w: escrita (mover, apagar, modificar). x: execução (programas, scripts, diretórios). -: sem permissão. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/arq.dir.html (9 of 12)28/09/2004 19:52:57 Arquivos e Diretórios E para os diretórios: r: permite que você liste o conteúdo do diretório. w: permite que você crie, altere a apague arquivos no diretório. x: permite que você efetue buscas no diretório. -: sem permissões para o diretório. Estas permissões podem ser aplicadas para: u: o dono do arquivo (user). g: um grupo de usuários ao qual o arquivo pertence (group). o: todos os usuários que não estão incluídos em nenhuma das duas categorias anteriores (others ou outros). a: todas as permissões ao mesmo tempo (u+g+o). O campo com o número 1 pode ter dois significados. Se for um arquivo, este número indica quantos hard links estão sendo apontados para ele, e neste caso, existe apenas um só: o arquivo apontando para ele mesmo. Se for um diretório, indica quantos subdiretórios existem (incluindo o . e o ..). A seguir, os campos aluno e projeto mostram o nome do usuário e do grupo no qual o arquivo se encontra. Caso o usuário dono do arquivo ou o seu grupo não estejam adicionados ao sistema, serão visualizados os números de UID (User Identification) e GID (Group Identification) do arquivo. Os últimos campos indicam o tamanho do arquivo, a data e o horário em que ele foi pela última vez modificado e, por fim, o nome do arquivo. O dono do arquivo tem total controle sobre todos os seus parâmetros a qualquer hora; se um usuário não for o dono do arquivo mas pertencer ao grupo, poderá acessá-lo, mas não poderá restringir ou permitir acessos ao arquivo. Se o usuário tem permissões de escrita no diretório e tentar apagar um arquivo que não tenha permissão de escrita, o sistema perguntará se ele confirma a exclusão do arquivo apesar do modo leitura. Caso tenha permissões de escrita no arquivo, o arquivo será apagado por padrão sem mostrar nenhuma mensagem de erro. Por outro lado, mesmo que se tenha permissões de escrita em umarquivo mas não se tenha permissões de escrita em um diretório, a exclusão do arquivo será negada. Isto mostra que é levada mais em consideração a permissão de acesso do diretório do que as permissões dos arquivos e subdiretórios que ele contém. Esta característica é muitas vezes ignorada por muitas pessoas e expõe o sistema a riscos de segurança. Imagine o problema em que algum usuário que não tenha permissão de escrita em um arquivo mas que a tenha no diretório pode causar em um sistema mal administrado. Para modificar permissões em grupos e arquivos utiliza-se os comandos chown e chgrp. Observe o Exemplo 4-2: Exemplo 4-2. Mudando o Dono e o Grupo de um Arquivo $ l arquivo -rw-rw-r-- dono grupo arquivo $ chown prop arquivo $ l arquivo file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/arq.dir.html (10 of 12)28/09/2004 19:52:57 Arquivos e Diretórios -rw-rw-r-- prop grupo arquivo $ chgrp users arquivo $ l arquivo -rw-rw-r-- prop users arquivo $ chown dono.grupo arquivo $ l arquivo -rw-rw-r-- dono grupo arquivo O exemplo anterior é apenas fictício, mas observe a seqüência em que os comandos foram aplicados até restaurar o arquivo ao seu estado original. As mudanças aplicadas em diretórios também podem ser feitas recursivamente, ou seja, alterando todos os arquivos e diretórios contidos no diretório. Para isso, basta usar os comandos chown e chgrp com o parâmetro -R. Além destas permissões, existe uma permissão especial que permite que usuários possam executar arquivos de outros donos, com as permissões destes últimos. É o chamado o suid bit[6]. Veja o Exemplo 4-3, que mostra um exemplo de como o suid bit pode ser utilizado: Exemplo 4-3. Utilizando o SUID # chmod a+s teste.sh Com esta linha de comando, o arquivo teste.sh pode ser executado por qualquer usuário (parâmetro a - all), utilizando as permissões do dono do arquivo. Nota: Além da identificação do usuário para a execução de um arquivo, esta identificação pode ser configurada também para um grupo de usuários (SGID). Veja a página de manual do comando chmod para mais detalhes (man chmod). Note, portanto, que o sistema Linux representa praticamente tudo na forma de arquivos, o que agiliza a localização e a manutenção de problemas, além de manter um padrão entre todas as distribuições Linux. Notas [1] X Window System. [2] Backups. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/arq.dir.html (11 of 12)28/09/2004 19:52:57 Arquivos e Diretórios [3] Conhecido como owner. [4] Verifique as páginas de manual para mais detalhes. [5] Swap. [6] Set User Identification Bit. Anterior Principal Próxima Contas e Grupos Serviços Essenciais file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/arq.dir.html (12 of 12)28/09/2004 19:52:57 Serviços Essenciais Entendendo o Conectiva Linux Anterior Próxima Capítulo 5. Serviços Essenciais Índice Entendendo os Serviços Exemplos de Serviços Serviço é um programa ou conjunto de programas que devem ser executados para iniciar uma atividade em um servidor, geralmente envolvendo vários usuários. Existem alguns serviços que são considerados essenciais em um sistema Linux. Isto porque, sem eles, o sistema perderia um pouco da sua flexibilidade. Por exemplo, sem um serviço para captar e registrar as mensagens geradas pelos vários outros programas em funcionamento haveria mais dificuldades em detectar problemas no sistema. Este capítulo irá descrever o que são serviços, como executá-los, e também irá mostrar alguns exemplos de serviços no Conectiva Linux. Entendendo os Serviços Um serviço geralmente é controlado por um arquivo contendo um script que, ao ser executado, irá iniciar um ou mais processos em um servidor. No Conectiva Linux estes serviços estão localizados no diretório /etc/init.d. Deve-se ressaltar também que quase todos os serviços estão interligados. Se você deseja acionar um serviço de rede, como por exemplo um servidor de IRC, você precisará acionar o serviço de rede propriamente dito (network). Além disso, para ser incluído no diretório de serviços, deve-se instalar os pacotes necessários para que o serviço possa ser executado sem problemas. Acionando e Parando Serviços file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/cap-servicos-linux.html (1 of 12)28/09/2004 19:53:02 Serviços Essenciais Figura 5-1. Lista de Serviços Após a instalação e configuração dos serviços você poderá executar várias funções sobre eles. As três ações mais importantes são estas: acionar, interromper ou verificar o estado de um serviço. Pode-se executar essas ações através do Linuxconf em Controle->Painel de Controle- >Controle de atividade dos serviços. Para buscar informações sobre um serviço basta clicar sobre o mesmo. Veja o exemplo na Figura 5-1, que mostra a lista de serviços. Ao clicar sobre um serviço, são mostradas informações como estado do serviço, o nome do pacote (ou pacotes) necessários para executar este serviço e sua(s) versão (versões). Informações mais detalhadas sobre o pacote podem ser obtidas através do botão Informações do pacote. Para iniciar o serviço basta clicar no botão Iniciar e similarmente o botão Parar para terminar o serviço. Execute cada uma destas operações e em seguida veja realmente se a ação foi executada através do botão Status. Existem dois modos de inicialização do serviço: automático ou manual. Marcando a opção Automático, o serviço será inicializado automaticamente quando a máquina for reinicializada. Caso contrário, ele deverá ser inicializado manualmente. Além disso, você pode determinar em que nível de execução um serviço irá ser executado; para isso, dirija-se à aba Níveis de Execução. Os níveis mais utilizados são 2, 3 e 5, utilizados para multiusuários, rede e modo gráfico. Nunca utilize o nível 6, pois o serviço irá tentar iniciar quando a máquina estiver sendo desligada, o que não é muito útil. Após as configurações feitas, clique no botão Aceitar. Nota: Lembre-se de que sempre após a configuração ou a mudança de algum serviço, este deve ser reinicializado. Para iniciar um serviço manualmente você deve utilizar a conta de superusuário e utilizar o comando service. Para inicializar o serviço, após o service basta digitar o nome do serviço seguido do parâmetro start. Com o parâmetro status verifica-se o estado do serviço. Veja Exemplo 5-1, que mostra como iniciar o serviço que inicializa o servidor de correio postfix: Exemplo 5-1. Exemplo de Inicialização Manual de um Serviço file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/cap-servicos-linux.html (2 of 12)28/09/2004 19:53:02 Serviços Essenciais # service postfix status master está parado # service postfix start Iniciando os serviços postfix: [ OK ] Ao digitar o parâmetro start, o script irá ativar as configurações necessárias para que o servidor de correio inicialize. Caso ocorra algum erro, será enviada uma mensagem. Um exemplo de erro que pode ocorrer está descrito abaixo: $ service postfix start Iniciando os serviços postfix: postalias: fatal: \ open /etc/postfix/aliases.db: Permission denied postmap: fatal: open database /etc/postfix/access.db: Permission denied postmap: fatal: open database /etc/postfix/canonical.db: Permission denied ... [FALHOU] touch: creating `/var/lock/subsys/postfix': Permissão negada Neste exemplo, um usuário comum está tentando iniciar o postfix, o que não é permitido, pois somente o superusuário pode executar esta atividade. Para interromper um serviço basta digitar o parâmetro stop. Exemplos de Serviços Nesta seção serão mostrados alguns serviços utilizados em um sistema, tanto em um servidor como em uma máquina cliente. Para verificar os outros serviços existentes, dirija-seao diretório /etc/init.d. crond O crond é um servidor que permite a execução periódica de tarefas, sem assistência do administrador. É possível utilizar o crond para executar várias tarefas, como por exemplo: l Limpar diretórios de arquivos temporários como o /tmp e o /var/tmp. l Rotacionar arquivos de registro para evitar que se tornem muito extensos. l Verificar o funcionamento de outros serviços. O agendamento de tarefas pode ser feito através do Linuxconf. Para isso, clique no botão Adicionar localizado em Controle -> Painel de Controle -> Configurar atividades agendadas do superusuário para incluir agendamentos do superusuário. Veja a Figura 5-2, que mostra um exemplo de tarefa agendada. Esta entrada irá executar um envio de e-mail para <usuario@provedor.com>, indicando o assunto Lembrete e com o texto do e-mail sendo "spam é crime!". Esta tarefa será executada todos os dias do mês, todos os meses do ano (indicados com o "*"), porém apenas aos domingos, segundas e terças-feiras (indicado no campo 0-2), sendo que nesses dias um e-mail será enviado de três em três horas (*/3) para a conta indicada. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/cap-servicos-linux.html (3 of 12)28/09/2004 19:53:02 Serviços Essenciais Figura 5-2. Agendamento de uma Tarefa Assim como funciona para o superusuário, também para usuários comuns você pode fazer este agendamento em Configuração -> Usuários -> Normal -> Contas de usuários, clicando sobre o usuário, e em seguida, no botão Tarefas. O processo de preenchimento é igual ao processo utilizado para o superusuário. Se o serviço crond estiver parado, basta reinicializá-lo através do Linuxconf. Se ele já estiver sendo executado, não é necessário reinicializá-lo, pois a tarefa será agendada automaticamente. O agendamento das tarefas pode ser feito também através da linha de comando. Cada usuário do sistema pode executar o seu agendamento separadamente através do comando crontab. Caso exista o arquivo /etc/cron.deny, os usuários listados neste arquivo não poderão usar o comando crontab. Caso exista o arquivo /etc/cron.allow, somente os usuários listados neste arquivo terão acesso ao comando crontab. A configuração do servidor crond também pode ser feita, somente pelo superusuário, através do arquivo /etc/crontab. Para agendar uma tarefa, pode-se especificar o minuto, a hora, o dia do mês, o mês e o dia da semana. Tabela 5-1. Campos do Arquivo /etc/crontab Campo Valores permitidos minuto 0-59 hora 0-59 dia do mês 1-31 file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/cap-servicos-linux.html (4 of 12)28/09/2004 19:53:02 Serviços Essenciais mês 1-12 (ou os nomes - em inglês) dia da semana 0-7 (0 e 7 sendo domingo, ou nomes - em inglês) O campo pode conter um asterisco, o que significa que todos os períodos serão marcados, sejam eles horários, dias ou meses. Pode-se utilizar intervalos de números, que são indicados por dois números separados por um hífen. Por exemplo, 8-10 em uma entrada horas especifica execução às 8, às 9 e às 10 horas. É possível utilizar listas, que são representadas por números (ou intervalos) separados por vírgulas, como nos seguintes exemplos: 1,2,5,6; 12-17, 21,23. Um /número imediatamente após um intervalo especifica um passo no valor do número através do intervalo. Por exemplo, 0-23/2 pode ser usado no campo das horas para especificar que o comando deve ser executado a cada duas horas (0,2,4,6,8,10,12,14,16,18,20,22). Estes intervalos também são permitidos depois de um asterisco. Logo, se você simplesmente desejar que uma ação ocorra a cada duas horas use */2. O último campo serve para especificar o comando a ser executado. Este comando será executado pelo /bin/sh ou pelo shell especificado na variável SHELL do arquivo /etc/crontab. Portanto, o formato de uma linha de comando no arquivo /etc/crontab segue basicamente a seguinte estrutura: min hora dia_mês mês dia_semana comando ou seja, são seis campos, que poderão ser preenchidos de acordo com o que foi descrito anteriormente. Veja o Exemplo 5-2 que mostra um exemplo do arquivo cron. Exemplo 5-2. Exemplo de Arquivo cron # usa /bin/sh para executar comandos, independentemente # do que o /etc/passwd diz. SHELL=/bin/sh # envia (por e-mail) toda saída para o usuário indicado, # independentemente de quem é o dono do crontab. MAILTO=joao # executa às 0h05, todo dia. 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # executa às 14h15 no dia primeiro de cada mês - a # saída é enviada para joao 15 14 1 * * $HOME/bin/monthly # executa às 22h00 em dias de semana. 0 22 * * 1-5 mail -s "São 22 horas" joao 23 */2 * * * echo "executa a 0h23, 2h23, ... todo dia" 5 4 * * sun echo "executa às 4h05 todo domingo" Se o servidor crond já estiver sendo executado, não será necessário reinicializá-lo, pois ele irá executar as tarefas agendadas automaticamente. Se ele não estiver sendo executado, pode-se executar o serviço para inicializar o servidor: # service crond start Iniciando cron: [ OK ] Nota: Para que usuários comuns agendem suas tarefas, o arquivo de cron pode ser criado através do comando crontab -e, que abrirá um editor de textos para a montagem das opções. O formato para este arquivo é igual ao formato do arquivo do superusuário (campos de horas, ação, etc.). file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/cap-servicos-linux.html (5 of 12)28/09/2004 19:53:02 Serviços Essenciais Para mais detalhes sobre comandos verifique as páginas de manual do cron (man crontab e man cron). atd O atd é um servidor que executa comandos especificados em um determinado horário fornecido. Ele é muito similar ao crond, mas está limitado a uma única execução: o comando é executado em horário e datas fornecidas, mas não repetidas vezes como o cron. Para agendar tarefas para o atd, utilizamos o comando at, o qual aceita várias opções de agendamento. O superusuário pode usar este comando em qualquer caso. Para os outros usuários, a permissão para usar o comando at é determinada pelos arquivos /etc/at.allow e /etc/at. deny. Exemplo 5-3. Tarefa Agendada pelo at #!/bin/sh # Este script-exemplo irá baixar o código-fonte # do kernel ncftp ftp.br.kernel.org cd /pub/linux/kernel/v2.5 bin get linux-2.5.20.tar.bz2 bye Suponha então que este script seja salvo em um arquivo chamado baixar-kernel, com permissões de execução. Primeiramente, deve-se inicializar o serviço atd: # service atd start Iniciando o servidor at: [ OK ] Após inicializado, o servidor estará pronto para receber uma tarefa para ser agendada através do comando at. Por exemplo, para agendar a execução do script acima para às 4 horas da madrugada, deve-se fazer da seguinte maneira: # at -f baixar-kernel 4:00 warning: commands will be executed using /bin/sh job 1 at 2003-03-17 04:00 O parâmetro -f faz com que o comando obtenha as informações do arquivo indicado (baixar-kernel). É claro que além de executar o servidor, você deverá também estar conectado à Internet neste horário, mas se você usar scripts de conexão, será extremamente simples adicionar no baixar-kernel o comando para efetuar a conexão antes de tentar conectar ao site FTP. Mais detalhes sobre o servidor e o comando poderão ser obtidos nas páginas de manual (man at e man atd). syslog O kernel e muitos programas do sistema produzem avisos, mensagens de erros e outros alertas. É importante que estas mensagens sejam armazenadas para que possam ser lidas a qualquer momento. O serviço responsável pelo arquivamento destas mensagens é o syslog. Ele pode ser configurado para gravar as mensagens em diferentes arquivos, de acordo com o nível de importância ou origem. O syslogd é o servidor responsável por estas tarefas e sua configuração pode ser feita através do Linuxconf, ou através da configuração do arquivo. Os detalhes de suaconfiguração serão vistos em um capítulo posterior. network file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/cap-servicos-linux.html (6 of 12)28/09/2004 19:53:02 Serviços Essenciais Configurar uma rede não é algo trivial. É uma atividade que exige planejamento e estruturas física e lógica adequadas. Além deste planejamento, existem várias configurações tanto de hardware como de software que devem ser feitas para que as interfaces de rede executem suas funções sem problemas. O serviço network auxilia a manutenção da rede, gerenciando todas as interfaces de rede configuradas para serem habilitadas durante a inicialização. Ele gerencia a manutenção das interfaces de uma máquina para rede. O pacote utilizado por este serviço é o initscripts. Ele contém scripts usados durante a inicialização do sistema para mudar níveis de execução (run levels) e desligar o sistema corretamente. O pacote contém principalmente scripts que ativam/desativam as interfaces de rede que a máquina possui. Para iniciar a rede basta utilizar o Linuxconf. portmap Portmap é um serviço que basicamente converte programas RPC[1] para o protocolo DARPA[2]. Quando um servidor RPC é inicializado ele envia através do portmap qual a porta que está "ouvindo" e quais os programas para os quais ele está preparado para servir. Quando uma máquina cliente deseja fazer uma chamada RPC, ela primeiramente irá contatar o portmap do servidor para determinar o número da porta pela qual os pacotes RPC devem ser enviados. Portanto, o portmap deve estar sendo executado a fim de receber chamadas RPC e deve ser inicializado antes dos servidores RPC serem invocados. O portmap é utilizado por alguns serviços que necessitam de gerenciamento das conexões RPC, como por exemplo o NFS e NIS. É aconselhável deixar o portmap ser automaticamente executado, pois muitos serviços e programas precisam obrigatoriamente dele. Para executar o portmap basta ir até o Linuxconf e inicializá-lo, ou através do comando service: # service portmap start inet O inet executa o inetd[3], que tem por objetivo inicializar vários programas incluindo telnet, ftp, rsh e rlogin. A desabilitação do inet pára todos os serviços dos quais ele toma conta. A configuração do inetd pode ser feita através do menu Configuração -> Rede -> Tarefas de Servidor -> Serviços internet no Linuxconf. Veja a Figura 5-3 que mostra esta tela. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/cap-servicos-linux.html (7 of 12)28/09/2004 19:53:02 Serviços Essenciais Figura 5-3. Configuração do inet A configuração dos serviços deve ser feita através do menu Serviços de rede para internet. Você pode fazer uma busca pelo serviço que deseja, ou exibir a lista completa dos serviços. Após a tela de busca, surge uma tela com os serviços; clique sobre um serviço para editá-lo, ou clique em Adicionar para criar um novo serviço Internet. Você deve preencher o quadro com o nome do serviço, a porta disponível para este serviço, qual o protocolo que ele utiliza (observe a lista disponível) e opcionalmente, apelidos e comentários para o serviço. Observe a Figura 5-4 que mostra a configuração do serviço telnet. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/cap-servicos-linux.html (8 of 12)28/09/2004 19:53:02 Serviços Essenciais Figura 5-4. Configuração do Telnet Após esta primeira configuração, deve-se configurar alguns detalhes adicionais e tornar ativo o serviço. Para isso, retorne à tela mostrada na Figura 5-3 e selecione a opção Base de dados dos servidores. Esta opção busca todos os serviços disponíveis no sistema e mostra detalhes da configuração e do estado dos serviços. Para a inicialização de um serviço clique sobre ele e selecione a opção Ativo para o estado do serviço. Nesta tela você poderá selecionar usuários e grupos sob os quais o serviço em questão será executado, poderá verificar o nome do pacote e sua versão para o serviço indicado, se é possível a existência de processos simultâneos, ou seja, se é permitido que mais de um servidor funcione ao mesmo tempo (Processos concorrentes) e outras opções. Após feita a configuração clique em Aceitar. Para efetuar as configurações, basta sair do Linuxconf que ele irá reinicializar o inetd ou dirigir-se à opção de inicialização de serviços (veja a seção Acionando e Parando Serviços). O arquivo de configuração do inetd está localizado em /etc/inetd.conf. Ele armazena todos os dados importantes para o serviço, sendo que os serviços inativos ou comentários são começados por um #. O Exemplo 5-4 mostra um trecho do arquivo /etc/inetd.conf. Exemplo 5-4. Trecho do Arquivo /etc/inetd.conf # These are standard services. #ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd Atenção file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/cap-servicos-linux.html (9 of 12)28/09/2004 19:53:02 Serviços Essenciais Tenha muito cuidado ao habilitar serviços. Lembre-se de que estas portas ficarão abertas para conexões, e se não estiverem corretamente configuradas podem gerar problemas de segurança. Podemos ver pelo exemplo que o serviço ftp está desabilitado. A sintaxe do arquivo segue a seguinte ordem: nome_serv socket protoc flag usuario cam_serv args nome_serv: nome de um serviço; deve estar listado em /etc/services, que é a fonte de consulta para o inetd. socket: tipo de socket, ou seja, que tipo de pacote está sendo enviado. Os mais comuns são os tipos stream e o dgram, que são os dados comuns e os datagramas. protoc: protocolo utilizado pelo serviço. O inet irá pesquisar no arquivo /etc/protocols para verificar se o protocolo é válido. flag: são dois sinais (nowait/wait), utilizados somente em sockets do tipo datagrama, que servem para diferenciar servidores de multiprocessamento ou de processamento único, respectivamente. usuario: indica o usuário que o servidor utiliza para ser executado. Pode ser incluído um grupo, utilizando a forma usuario.grupo como padrão. cam_serv: mostra o caminho do programa que será executado pelo inetd quando o serviço especificado for requisitado. args: são argumentos utilizados para um serviço. Muitos serviços estão marcados com o argumento internal, indicando que o serviço é fornecido internamente ao sistema. A maioria dos serviços está pré-configurada no arquivo /etc/inetd.conf, bastando descomentar (retirar a #) a linha do serviço para que ele fique habilitado. Após a configuração do arquivo, basta reinicializar o servidor inetd: # service inet stop Interrompendo os serviços INET: [ OK ] # service inet start Iniciando os serviços INET: [ OK ] Para mais informações sobre a configuração do arquivo /etc/inetd.conf, veja as páginas de manual (man inetd.conf e man inet). xinet Quando instala-se o Conectiva Linux, por padrão, o superserver instalado é o xinet. Nota: O inet ainda continua na distribuição, e pode ser encontrado em um dos CDs do Conectiva Linux. O xinet é uma alternativa segura e eficiente para o inet e possui vários recursos que o inet não implementa. Entre outros, podemos citar: l Controle de acesso baseado em destino e hora; l Redirecionamentos; l Grande capacidade de logs; l Ligar serviços a interfaces específicas; l Limitar o número de máquinas simultâneas em um determinado serviço. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/cap-servicos-linux.html (10 of 12)28/09/2004 19:53:02 Serviços Essenciais Toda a configuração do xinet é feita através de um único arquivo, o /etc/xinetd.conf. Este é um pequeno exemplo de algumas configurações que poderão ser utilizadas pelo arquivo /etc/xinetd.conf, sendo que as configurações inseridas dentro da sessão defaults serão aplicadas para todos os outros serviços configurados.defaults { instances = 25 per_source = 10 log_type = SYSLOG authpriv log_on_success = HOST PID USERID log_on_failure = HOST RECORD USERID } instances: Esta opção controla o número de conexões simultâneas em um serviço e sua configuração pode acabar evitando um ataque do tipo DoS (Denial of Service) em seu servidor. per_source: Controla o número máximo de conexões originadas de uma mesma máquina. log_type: Indica como o xinetd irá logar (registrar) as requisições. log_on_success: Informa ao xinetd quais informações ele deverá capturar do usuário que conseguir logar. log_on_failure: Indica quais informações deverão ser capturadas dos usuários que não conseguirem logar. Caso o usuário queira configurar o serviço de telnet, ele poderá fazê-lo da seguinte maneira: service telnet { flags = REUSE log_type = FILE /var/log/telnet.log socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/in.telnetd bind = 200.1.1.20 redirect = 192.168.1.111 23 only_from = 192.168.1.0/24 } onde: flags: Recebe as opções passadas em linha de comando para o daemon. socket_type: Especifica o tipo de socket usado, como: dgram, stream ou raw. protocol: Indica o protocolo usado pelo serviço. wait: Diz ao xinetd se ele deve chamar o serviço sobre demanda ou não. user: Usuário que executará o serviço. server: Localização do daemon do serviço. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/cap-servicos-linux.html (11 of 12)28/09/2004 19:53:02 Serviços Essenciais bind: O IP ou host especificado aqui será origem quando um serviço for redirecionado com o uso da opção redirect. redirect: Host ou IP da máquina que receberá a requisição do serviço. only_from: Limita os endereços de IP que terão acesso a determinado serviço. Para mais informações sobre a configuração do xinetd.conf e um arquivo exemplo, consulte a página de manual do arquivo executando o comando: # man xinetd.conf Notas [1] Tipo de protocolo que permite a um programa de um computador executar uma aplicação do servidor. [2] Defense Advanced Research Projects Agency ou Agência de Projetos de Pesquisa Avançada de Defesa. [3] Internet superserver daemon ou Servidor de Serviços Internet. Anterior Principal Próxima Arquivos e Diretórios Dispositivos file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/cap-servicos-linux.html (12 of 12)28/09/2004 19:53:02 Dispositivos Entendendo o Conectiva Linux Anterior Próxima Capítulo 6. Dispositivos O Linux suporta uma grande quantidade de periféricos, como impressoras, placas de rede, de vídeo, modems, unidades de fita, etc. Este capítulo apresentará como o Linux trata alguns destes dispositivos, focando principalmente os dispositivos de armazenamento, como discos rígidos e CD-ROM. Arquivos de Dispositivos O Linux é um sistema orientado a arquivos; mesmo os periféricos são tratados como um tipo especial de arquivo. Assim, se um determinado programa precisar ler uma informação da porta serial, por exemplo, basta que ele abra o arquivo /dev/ttyS0 para leitura, que é um arquivo especial que, quando acessado, lê o conteúdo do dispositivo em questão. Podemos dizer que os arquivos de dispositivos são o nome pelo qual um determinado dispositivo é conhecido pelo sistema. O sistema distingue dois tipos de dispositivos: os dispositivos de bloco e os dispositivos de caractere. No primeiro tipo estão os dispositivos que suportam acesso aleatório, como os discos rígidos, e no segundo tipo os que possuem acesso seqüencial, como uma porta serial. Ao se executar o comando ls -l, os arquivos de dispositivos apresentam na primeira coluna dos atributos de arquivo o caractere "b" indicando um dispositivo de bloco ou um caractere "c", indicando que é um dispositivo de caractere. O Conectiva Linux cria automaticamente arquivos de dispositivos para o acesso a diversos tipos de dispositivos no diretório /dev, mas em alguns casos especiais pode ser necessário que o administrador precise criar manualmente um arquivo desse tipo. A criação de arquivos de dispositivo pode ser feita com o comando MAKEDEV. Esse comando deve ser utilizado com um certo cuidado. Consulte a documentação dele e do dispositivo que exige a criação de um novo arquivo de dispositivo para saber como proceder. O diretório /dev É no diretório /dev que o Linux cria os arquivos de dispositivos. Neste diretório o sistema cria os arquivos necessários ao acesso a diversos tipos de dispositivos. Alguns dispositivos,no entanto, são acessados de maneira um pouco diferente, como os dispositivos de comunicação, que não possuem um arquivo de dispositivo correspondente neste diretório. Dentro deste diretório vale destacar os seguintes arquivos: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/dispositivos.html (1 of 9)28/09/2004 19:53:08 Dispositivos hdaX Onde X é um número. Esse arquivo se refere ao disco master da IDE primária. O número determina qual a partição, assim hda1 representa a primeira partição primária, e hda5 a primeira partição estendida[1]. hdbX onde X é um número. Esse arquivo se refere ao disco slave da IDE primária. hdcX Onde X é um número. Refere-se ao disco master da IDE secundária. hddX Onde X é um número. Refere-se ao disco slave da IDE secundária. sdaX Refere-se ao primeiro disco SCSI encontrado, o segundo é o sdbX, o terceiro sdcX e assim por diante, não importando em que controladora eles estão. X é a partição deste disco. sdX Onde X é um número de 0 a 7. Arquivos de dispositivos de CD-ROM do tipo SCSI. stX Onde X é um número. Arquivos de dispositivos para drives de fita SCSI rebobináveis. Os drives não rebobináveis são acessados através dos arquivos de dispositivos nstX. fd0 Refere-se ao primeiro drive de disquete. É possível também acessar o disquete através dos arquivos fd0xxx onde xxx é a capacidade do disquete, como por exemplo fd0H1440 (alta densidade 1.4Mb). fd1 Arquivo de dispositivo do segundo disquete. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/dispositivos.html (2 of 9)28/09/2004 19:53:08 Dispositivos ttySX Onde X é um número. Arquivo de dispositivos das portas seriais. O número indica qual é a porta serial, assim, ttyS0 é a "COM1", ttyS1 é a "COM2", etc. psaux Arquivo de dispositivo da porta PS/2. lpX Onde X é um número. Arquivo de dispositivo das portas paralelas. Se o computador só possui uma porta paralela ela não será necessariamente a lp0, uma vez que esse número depende do endereço de I/O da porta. usb/ (diretório) Dentro do diretório usb/ estão os arquivos de dispositivo para periféricos do tipo USB, como por exemplo os arquivos usbmouseX para mouses e usblpX para impressoras (X é um número). No diretório /dev você poderá encontrar também os arquivos mouse, modem e cdrom, que são links simbólicos para a porta serial apropriada nos dois primeiros casos, e para a posição do CD-ROM na controladora IDE. O Diretório /proc O diretório /proc é um diretório criado pelo kernel na memória do computador apenas, e contém informações sobre diversos aspectos do sistema, incluindo detalhes sobre os dispositivos detectados. Alguns dispositivos que são tratados de maneira especial possuem seus arquivos de dispositivo dentro deste diretório, como, por exemplo, placas de rede. O administrador poderá consultar os arquivos deste diretório para obter mais informações sobre o sistema. Pode-se utilizar o comando cat para listar o conteúdo dos arquivos neste diretório; entre eles vale destacar os seguintes arquivos: cpuinfo Apresenta informações sobre a CPU, como velocidade, fabricante e tamanho da memória cache interna. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/dispositivos.html(3 of 9)28/09/2004 19:53:08 Dispositivos interrrupts Contém informações sobre quais interrupções (IRQ) estão sendo utilizadas e por qual dispositivo. ioports Mostra os endereços de E/S que estão sendo utilizados e os dispositivos que estão utilizando esses endereços. meminfo Informações sobre a quantidade de memória total, sua utilização, quantidade de memória de troca (swap), etc. partitions Esse arquivo contém informações sobre como está particionado cada disco do sistema, informando também o tamanho de cada partição. Para uma descrição mais detalhada sobre cada disco, consulte os arquivos dentro do diretório /proc/ide para discos IDE ou do diretório / proc/scsi para discos SCSI. net/dev Esse arquivo lista os dispositivos de rede. Observe que pode não haver uma correspondência entre os dispositivos listados e dispositivos "físicos" como placas de rede. O dispositivo lo representa a interface de loopback[2] e não uma placa de rede. Uma outra forma de se obter rapidamente uma lista de periféricos do sistema é utilizando o comando lspci, que consulta as informações do diretório /proc e as apresenta de maneira resumida. # lspci 00:00.0 Host bridge: Silicon Integrated Systems [SiS] 530 Host 00:00.1 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] 00:01.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513 00:01.1 Class ff00: Silicon Integrated Systems [SiS] ACPI 00:02.0 PCI bridge: Silicon Integrated Systems [SiS] 5591/5592 AGP 00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL- 8139 01:00.0 VGA compatible controller: Silicon Integrated Systems file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/dispositivos.html (4 of 9)28/09/2004 19:53:08 Dispositivos A listagem apresentada não mostra os discos do sistema, mas lista a interface IDE, além da placa de vídeo e da placa de rede. Dispositivos de Armazenamento O Linux adota um sistema diferenciado de nomenclatura dos dispositivos de armazenamento. Assim, não existe para o sistema o disco "c:" ou disco "d:"; em vez disso utiliza o conceito de arquivos de dispositivos e pontos de montagem. Como já foi visto no Capítulo 4, o Linux organiza todos os seus arquivos e diretórios em uma "árvore" onde a raiz é o diretório /, logo, os novos dispositivos precisam ser encaixados em algum ponto abaixo do diretório raiz. Usualmente, dispositivos adicionais de armazenamento são "montados" no diretório /mnt; o conteúdo de um CD-ROM, por exemplo, poderia ser acessado através do diretório /mnt/cdrom. Essa abordagem permite uma grande flexibilidade na organização e expansão do sistema, e se, por exemplo, um novo disco precisa ser adicionado, o administrador não enfrentará nenhum problema com discos "trocando de letra", como veremos mais adiante. Usualmente, para se utilizar um novo dispositivo de armazenamento, quatro passos devem ser tomados: 1. Inserir no kernel o módulo com suporte ao dispositivo desejado. Isso é necessário apenas para alguns dispositivos como discos ZIP/JAZZ e unidades de fita, pois discos IDE, CD-ROM IDE e disquetes são suportados nativamente pelo kernel. Discos SCSI podem exigir a inserção de módulos correspondentes à placa controladora. 2. Particionamento quando for necessário. 3. Criação do sistema de arquivos (formatação), também quando for necessário. 4. Montar o dispositivo no seu ponto de montagem apropriado. Este passo é sempre necessário para que se possa utilizar determinado dispositivo. O primeiro passo é específico para cada tipo de dispositivo, mas, para dispositivos IDE e disquetes ele não é necessário; logo falaremos dos casos especiais nas seções relativas a esses dispositivos que requerem esse passo. Particionamento Além de organizar melhor e permitir a utilização de mais de um tipo de sistema operacional no mesmo disco, existem razões adicionais para se utilizar mais de uma partição no Linux, sendo a principal delas a segurança. No Linux, é possível montar as partições com opções que melhoram a segurança do sistema, impedindo certas ações em determinadas partições. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/dispositivos.html (5 of 9)28/09/2004 19:53:08 Dispositivos Para se particionar um disco no Linux é utilizado o fdisk, que apesar do nome não é o mesmo utilizado em sistemas MS-DOS®, ou ainda o cfdisk que é de mais fácil utilização. Para particionar um disco abra um terminal e digite: # cfdisk /dev/dispositivo Observe que dispositivo deve ser substituído pelo arquivo de dispositivo apropriado. A utilização do cfdisk é bastante intuitiva. Selecione um espaço livre, e depois Nova, para criar uma nova partição. Informe se deve ser criada uma partição primária ou lógica, lembrando-se de que podem haver no máximo quatro partições primárias, e após isso, informe o tamanho desejado para essa partição. Depois de criada a partição, selecione-a e utilize a opção Tipo para informar que tipo de sistema de arquivos será utilizado nesta partição. Se a partição em questão for uma partição padrão do Linux, ou seja, no formato ext2, entre com o valor "83". Para que o cfdisk grave no disco as alterações efetuadas escolha a opção Gravar, caso contrário as modificações não serão feitas, e as partições não serão criadas. Formatação e criação de sistemas de arquivos Em alguns sistemas operacionais a formatação e a criação do sistema de arquivos são feitas na mesma operação, o que não acontece no Linux. A formatação, o processo de organização do meio magnético da mídia, não é necessária em todos os dispositivos de armazenamento. Usualmente é necessária em disquetes apenas, uma vez que os discos rígidos já vêm de fábrica formatados, necessitando apenas serem particionados e criados os sistemas de arquivos. A forma mais simples de se formatar um disquete é abrir um terminal e usar o comando fdformat, como no exemplo a seguir: # fdformat /dev/fd0H1440 Atente para a utilização do arquivo de dispositivo /dev/fd0H1440 em vez de simplesmente /dev/ fd0, pois assim informamos automaticamente ao comando fdformat que tipo de disquete e qual a capacidade iremos formatar. Para tornar o disco, ou disquete, apto para uso, é necessário criar um sistema de arquivos nele. No Linux isso é feito utilizando-se o comando mkfs. O comando pode ser utilizado para criar diferentes tipos de file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/dispositivos.html (6 of 9)28/09/2004 19:53:08 Dispositivos sistemas de arquivos e pode verificar a existência de blocos ruins na mídia. O comando abaixo poderia ser utilizado para criar um sistema de arquivos do tipo EXT2 na primeira partição do disco rígido master da IDE secundária: # mkfs -t ext2 -c /dev/hdc1 O parâmetro -t informa que tipo de sistema de arquivos deve ser criado e o parâmetro -c informa ao mkfs que ele deve verificar se o dispositivo apresenta blocos defeituosos. Para se criar um disquete que pode ser lido pelo Linux e pelo Windows® será necessário criar um sistema de arquivos do tipo msdos, e isto pode ser feito com o comando: # mkfs -t msdos /dev/fd0 Montando um dispositivo O passo final para se utilizar um dispositivo de armazenamento é montá-lo. Esse processo vai inserir o dispositivo na árvore de diretórios já existente, garantindo que o seu conteúdo possa ser acessado através de um diretório, que é o seu ponto de montagem. Para cada dispositivo a ser montado é necessário um diretório vazio, que servirá de ponto de montagem [3]. Normalmente dispositivos como CD-ROM e disquete são montados nos diretórios /mnt/cdrom e /mnt/floppy, mas isso é apenas uma convenção. Como um dispositivo pode ser montado em praticamente qualquer ponto da árvore de diretórios, a adição de um novo dispositivo ou a troca de um já existente pode ocorrer sem que grandes mudanças ocorram no sistema. Suponha um sistema onde a área home dos usuários se localize no disco /dev/hda1,mas o número de usuários cresceu e um novo disco com maior capacidade foi comprado. O administrador precisa simplesmente copiar a área home para esse novo disco e depois montá-lo no diretório /home. Para adicionar um novo dispositivo no sistema basta abrir o Linuxconf, acessar a opção Configuração - > Sistema de arquivos -> Acessar dispositivos locais e clicar no botão Adicionar. Esta configuração foi vista no capítulo sobre arquivos e diretórios; retorne e verifique como fazer esta configuração. Uma vez configurado, o administrador poderá montar ou desmontar o dispositivo acessando a opção Controle -> Painel de Controle -> Montar / Desmontar sistemas de arquivos -> Controlar dispositivos locais configurados do Linuxconf. Clicando sobre o dispositivo na lista apresentada, o Linuxconf pedirá a confirmação para montar o dispositivo, se ele estiver desmontado, ou desmontar o dispositivo caso ele já esteja montado. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/dispositivos.html (7 of 9)28/09/2004 19:53:08 Dispositivos O processo de montagem de um dispositivo pode ser feito também com o comando mount, ou seja, sem utilizar o Linuxconf. Para montar um dispositivo abra um terminal e digite: # mount /dev/dispositivo /ponto_de_montagem Caso o sistema de arquivos do dispositivo não seja do tipo ext2, será necessário utilizar a opção -t, informando o tipo de sistema de arquivos. Utilize iso9660 para CD-ROM e vfat para partições criadas pelo Windows®. Para desmontar um dispositivo utilize o comando umount seguido ou do ponto de montagem ou do arquivo de dispositivo, como nos exemplos abaixo: # umount /dev/hdb Desmonta o dispositivo /dev/hdb # umount /mnt/floppy Desmonta o disquete, caso esteja configurado aqui O administrador deverá atentar para o fato de que o sistema não deixará um dispositivo ser desmontado caso ele esteja em uso. Caso se deseje montar um dispositivo automaticamente sempre que o sistema for iniciado, será necessário editar o arquivo /etc/fstab. O Linuxconf edita automaticamente este arquivo, mas você poderá editá-lo manualmente, se assim o desejar. Cada linha deste arquivo contém um único dispositivo ou partição e possui seis campos. O primeiro informa o arquivo de dispositivo, o segundo informa o ponto de montagem e o terceiro o sistema de arquivos. O quarto campo descreve as opções de montagem associadas com o sistema de arquivos. O quinto campo informa ao comando dump se o sistema de arquivo deve ser copiado e finalmente o último campo informa a ordem em que fsck irá verificar os sistemas de arquivos. Utilize o valor 0 para que o sistema de arquivos não seja verificado (como CD-ROM), 1 para o sistema de arquivos raiz e 2 para os demais. Notas [1] CD-ROMs não possuem partições, e assim, um CD-ROM é referenciado simplesmente como hdX, onde X é a letra correspondente à sua posição na IDE. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/dispositivos.html (8 of 9)28/09/2004 19:53:08 Dispositivos [2] Uma interface virtual ligada ao IP 127.0.0.1, ou seja, a própria máquina. [3] Se o diretório não estiver vazio o seu conteúdo original ficará inacessível ao ser montado o novo dispositivo. Anterior Principal Próxima Serviços Essenciais Configuração do Sistema file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/dispositivos.html (9 of 9)28/09/2004 19:53:08 Configuração do Sistema Entendendo o Conectiva Linux Anterior Próxima Capítulo 7. Configuração do Sistema Índice Teclado Mouse Impressora Modem Rede ADSL ZIP DRIVE Neste capítulo serão vistos os passos básicos para a configuração dos principais periféricos do sistema. Para a configuração dos periféricos será usado o Linuxconf, ferramenta de configuração padrão do Conectiva Linux. A cada dispositivo serão indicados os módulos do Linuxconf apropriados. Caso determinada opção não esteja disponível no Linuxconf muito provavelmente o módulo correspondente não está instalado. A configuração de placas de vídeo e monitores será vista no Capítulo 8. Teclado Para configurar o teclado primeiro instale os módulos de configuração dele, caso eles ainda não tenham sido instalados. Os módulos são os seguintes: linuxconf-kbdconf e linuxconf-Xkbdconf. O primeiro é usado na configuração do teclado no console do sistema e o segundo para a configuração do teclado no ambiente gráfico. Adicionalmente o teclado no ambiente gráfico pode ser configurado através do xf86cfg; veja mais no Capítulo 8. A configuração do teclado para o modo texto é bastante similar à configuração para o modo gráfico, portanto será mostrado apenas como configurá-lo para o modo gráfico. No Linuxconf, vá para Configuração -> Periféricos -> Configuração X (gráfica) do teclado; na janela que aparece selecione o teclado, como mostrado na Figura 7-1. Se o seu teclado possui a tecla de cedilha provavelmente ele é um teclado do tipo ABNT2; selecione então a opção "brazilian ABNT2" em Modelo e "ABNT2 Brasil" em Layout, caso contrário ele deve ser um teclado norte-americano com acentos; selecione então "Generic 105-key (intl) PC" em Modelo e "U.S. inglês com acentos" em Layout. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (1 of 18)28/09/2004 19:53:11 Configuração do Sistema Caso a configuração selecionada para o teclado seja compatível com a configuração para o console, confirme na janela que surgir. O teclado para o ambiente texto pode ser configurado de maneira diferente da maneira do ambiente gráfico; caso haja necessidade simplesmente recuse e configure o teclado para o ambiente texto separadamente através da opção Configuração -> Periféricos -> kbdconf. Figura 7-1. Seleção do teclado Mouse Para configurar o mouse primeiro instale o módulo de configuração do mouse, caso ele ainda não tenham sido instalado. O módulo a instalar é o linuxconf-mouseconf. No Linuxconf, vá para Configuração -> Periféricos -> Configuração do mouse. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (2 of 18)28/09/2004 19:53:11 Configuração do Sistema Figura 7-2. Seleção do mouse Na janela que surge, primeiro se seleciona o tipo de mouse em uso entre as opções disponíveis no botão Selecione mouse.... Caso esteja trabalhando com um mouse com três botões desative a opção Emular três botões. A seguir selecione a porta utilizada pelo dispositivo e finalmente faça um teste com o mouse selecionando Testar agora. Também é possível fazer uma detecção automática, selecionando Detectar mouse. Finalmente selecione Aceitar para terminar a configuração. Impressora A configuração da impressora no Conectiva Linux pode ser feita tanto utilizando o Centro de Controle do KDE, como pelo Linuxconf, sendo que as duas ferramentas serão mostradas, primeiramente através do KDE. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (3 of 18)28/09/2004 19:53:11 Configuração do Sistema Vá pelo menu K e clique no seguinte menu: Todos os Programas -> menu do KDE -> Preferências -> Periféricos -> Impressoras, ou pelo Centro de Controle, em Periféricos -> Impressoras, que abre apenas o módulo do gerenciador de impressão. Veja a janela que surge na Figura 7-3, ao abrir somente o módulo de impressão (a janela através do Centro de Controle é bastante similar). Figura 7-3. Configuração da Impressora Nota: Se houver uma pequena demora ao iniciar esta tela, aguarde um momento: o CUPS precisa indexar o seu banco de dados de drives. A primeira vez pode demorar cerca de 10 minutos. Podemos observar que existem várias áreas distintas no painel direito do Centro de Controle: a parte superior contém a barra de menu das impressoras, que permite executar as principais operações sobre as impressoras. Na parte central da janela, podemos observar asseguintes abas: Informação, Trabalhos, Propriedades e Instâncias, além de uma caixa de seleção com o sistema de impressão atualmente utilizado. Nestas abas são mostradas informações sobre a impressora selecionada. E por fim, no lado esquerdo da janela, estão contidas as impressoras disponíveis, e também algumas ações, para o envio de arquivos a outros meios, como o FAX e envio para arquivo (PDF e PS). file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (4 of 18)28/09/2004 19:53:11 Configuração do Sistema Procederemos agora com a configuração da impressora local. Para iniciar a configuração da impressora, clique no primeiro botão da barra de menus (Adicionar -> Adicionar impressora/classe). A seguir surgirá uma tela de introdução do Assistente de Impressão. Clique em Próximo para prosseguir. Surgirá a janela mostrada na Figura 7-4. Figura 7-4. Seleção do tipo de impressora Como estamos configurando uma impressora local, clique em Impressora local (paralela, serial, USB); caso seja outro tipo de impressora (remota, Windows®, etc), selecione o tipo adequado (veja a Tabela 7-1). Clique no botão Próximo. A seguir, selecione a porta onde está conectada a sua impressora e clique no botão Próximo. Chegamos no ponto onde deve ser selecionado o modelo de sua impressora. Aguarde a reconstrução do banco de drivers e em seguida, selecione na caixa da esquerda o Fabricante e na caixa da direita, o modelo da sua impressora file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (5 of 18)28/09/2004 19:53:11 Configuração do Sistema (Figura 7-5). Caso sua impressora não conste da lista de impressoras, clique sobre a caixa de seleção Impressora genérica (nenhum driver necessário) ou então, caso sua impressora suporte a linguagem postscript, selecione Impressora postscript. Clique no botão Próximo. Figura 7-5. Escolha do Modelo e Fabricante da Impressora Após a configuração do modelo, surgirá uma janela com dois botões: Testar, que irá imprimir uma página de testes na impressora, e o botão Configurações, que permite configurar detalhes da impressora, como resolução da saída, tamanho do papel e origem do papel, entre outras configurações. A tela mostrada na Figura 7-6 exibe um exemplo destas configurações: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (6 of 18)28/09/2004 19:53:11 Configuração do Sistema Figura 7-6. Configurações de Impressão e Papel Após ter configurado os detalhes da impressora, clique no botão OK e a seguir em Próximo. Surgirá então uma janela perguntando qual o banner de início e de finalização da impressão. Basta clicar em Próximo para não utilizar banners[1]. A janela que segue permite configurar quotas para a impressora, ou seja, permite limitar a quantidade do volume de dados impressos durante um período especificado. Clique no botão Próximo. Na próxima janela, é possível configurar quais usuários terão acesso à impressão e quais não terão acesso. Basta incluir o nome do usuário na caixa de texto e clicar no botão Adicionar ou Remover. Clique no botão Próximo. A próxima janela está mostrada na Figura 7-7. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (7 of 18)28/09/2004 19:53:11 Configuração do Sistema Figura 7-7. Seleção do Nome e Local da Impressora Após indicado o nome da impressora, por exemplo, Impressora01 e o local, surgirá uma última janela, informando todos os dados previamente escolhidos. Basta clicar no botão Finalizar, para terminar a instalação da impressora. O próximo passo é definir a impressora recém-criada como sendo a padrão. Para isso, clique com o botão direito do mouse sobre o nome da impressora recém-criada na parte esquerda da tela e, em seguida, selecione o item Definir como padrão local; em seguida, faça o mesmo processo, mas agora selecionando Definir como padrão do usuário, sendo que esta última opção define a impressora como padrão para o usuário ativo, e a opção anterior define a impressora como padrão para a máquina local. A impressora pelo KDE já está configurada; o texto a seguir mostra a configuração da impressora pelo Linuxconf. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (8 of 18)28/09/2004 19:53:11 Configuração do Sistema Para configurar a impressora pelo Linuxconf, primeiro deve-se instalar os módulos de configuração, caso estes ainda não tenham sido instalados. Verifique se os pacotes linuxconf-printer, rhs-printfilters e LPRng. É importante salientar que a configuração pelo Linuxconf usa somente o gerenciador de impressão LPD, e portanto, é mais antiga. No Linuxconf, vá para Configuração -> Periféricos -> Impressora -> Adicionar/Editar Impressora -> Adicionar. Veja a Figura 7-8. Figura 7-8. Configuração da Impressora pelo Linuxconf Selecione um novo nome e um diretório para a fila de impressão ou deixe os valores padrão. A seguir, selecione o tipo de impressora que irá utilizar; as opções possíveis são listadas a seguir: Tabela 7-1. Tipos de impressoras file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (9 of 18)28/09/2004 19:53:11 Configuração do Sistema Tipo de Impressora Descrição Impressora Local A impressora está localizada no próprio computador Fila Remota A impressora está localizada em outro computador usando Linux Impressora SMB/Windows A impressora está conectada em um computador usando Windows® Impressora Netware (NCP) A impressora está conectada a um computador usando Novell® Após ter clicado em Aceitar e o sistema terá voltado para a janela anterior; deve-se selecionar a impressora recém-criada na lista de impressoras com um duplo-clique do mouse. Na nova janela que se abre selecione Selecionar filtro, e nesta janela pode-se escolher o modelo da impressora. Selecionado o modelo, pode-se fazer alguns ajustes finos, como resolução da impressão, tamanho da folha, entre outros; após terminar estas configurações, basta selecionar Aceitar. Não esqueça de reiniciar o serviço lpd, pelo Linuxconf ou via linha de comando. Modem Para configurar o modem instale primeiro o módulo de configuração do modem caso este ainda não esteja instalado. O módulo a instalar se chama: linuxconf-modemconf. No Linuxconf, vá para Configuração -> Periféricos -> Modem. Selecione uma porta para o seu modem, caso não saiba qual porta configurar selecione Detect e o programa tentará detectar a localização do modem. Esse procedimento apenas cria um link simbólico da porta serial do seu modem para o arquivo de dispositivo /dev/modem. Assim, ao configurar o seu programa de discagem (como por exemplo o Kppp) você poderá indicar simplesmente que o modem se encontra em /dev/modem. Atenção Os modems do tipo "Winmodem" precisam de um passo a mais. É necessário inserir o módulo que corresponde a ele no kernel antes de usar o Linuxconf para configurá-lo. Você poderá saber mais sobre winmodems e o seu suporte pelo linux no site Linmodems.Org . file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (10 of 18)28/09/2004 19:53:11 Configuração do Sistema Figura 7-9. Seleção do modem Rede Os passos básicos para a configuração da rede são mostrados a seguir, utilizando para tal a ferramenta Linuxconf. No Linuxconf, vá para Configuração -> Rede -> Tarefas de cliente-> Nome da máquina e dispositivos IP de rede. Nesta tela Figura 7-10 deve-se digitar o nome da máquina seguido do nome de domínio, separados por ponto. A seguir, selecione a opção Adaptador 1. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (11 of 18)28/09/2004 19:53:11 Configuração do Sistema Figura 7-10. Seleção do nome da máquina Nestajanela, serão configurados os seguintes itens: Ativo Ativa ou desativa o dispositivo. Modo de Configuração O dispositivo pode ser configurado manualmente, pode ter o seu IP definido através de um servidor DHCP ou pode ainda ser configurado durante um Boot Remoto. As duas últimas opções se aplicam principalmente a estações de trabalho, e não a um sistema servidor, no qual deverá ser utilizada a configuração manual. Apelido Este item é opcional; o apelido é um nome utilizado para se referir à máquina em questão; sem a necessidade de se utilizar o nome "completo" dela, ou seja, file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (12 of 18)28/09/2004 19:53:11 Configuração do Sistema kepler.minhaorganizacao, por exemplo. Figura 7-11. Configuração do adaptador de rede Endereço IP Deve-se inserir aqui o endereço IP da máquina. Máscara Inserir nesse item a máscara de rede. Dispositivo de rede O sistema pode ter mais de um dispositivo de rede, seja ele uma placa de rede, uma conexão via cabo serial, ou um adaptador Token Ring. Aqui você seleciona a qual dispositivo as configurações serão aplicadas. Se você estiver configurando uma placa de rede e só houver uma delas no sistema então ela será identificada por eth0. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (13 of 18)28/09/2004 19:53:11 Configuração do Sistema Módulo do kernel O módulo do kernel é o equivalente ao driver da placa de rede. Utilize o módulo correspondente à sua placa de rede. É possível também utilizar um módulo "genérico", como por exemplo ne2k-pci para uma placa de rede compatível com a NE-2000 PCI. Veja mais sobre módulos no Capítulo 12. Porta E/S Esse campo é opcional e se refere à porta de E/S da placa de rede. Normalmente não é necessário para placas de rede do tipo Plug and Play. irq Assim como no item anterior, em alguns casos é preciso indicar explicitamente qual a IRQ utilizada pela placa de rede. Após a configuração do dispositivo é necessário configurar o DNS e o roteamento. Essas duas configurações podem ser feitas em Configuração -> Rede -> Tarefas de cliente -> DNS - Especificação do servidor de nomes e Configuração -> Rede -> Tarefas de cliente -> Roteamento e roteadores, e não serão vistas em detalhes aqui. ADSL A configuração do ADSL é feita em duas etapas: primeiro se configura o modem, caso ainda não esteja configurado, a seguir se configura a conexão. Atenção O procedimento mostrado aqui pode não funcionar com o seu serviço de ADSL, uma vez que existem variações nas configurações dos serviços oferecidos por diferentes empresas. Para a configuração do modem vamos seguir os seguintes procedimentos: l configure o minicom, ou qualquer outro emulador de terminal serial, para usar os parâmetro de conexão: 8N1 9600 l Quando conectar no modem aparecerá um prompt, como mostrado a seguir: 3Com> l Se o modem não sincronizar, use a seguinte seqüência de comandos: 3Com> set adsl open opção file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (14 of 18)28/09/2004 19:53:11 Configuração do Sistema l Onde opção deve ser substituída por ANSI ou G_LITE. l Para configurar a conexão deve-se utilizar os seguintes comandos (atenção para as maiúsculas): 3Com> add port ISP 3Com> set port ISP VPI 0 VCI 35 NETWORK PPP 3Com> enable port ISP 3Com> save all l O valor do VPI e do VCI varia de provedor para provedor; para saber os parâmetros corretos consulte o seu provedor. Uma vez configurado o modem, deve-se fazer alguns testes para verificar se tudo está funcionando bem; siga os passos a seguir como usuário root. # pppoe -A -f 3c12:3c13 Aqui vai aparecer o service name "ISP" configurado anteriormente. Se o modem sincronizar, pode-se tentar este comando antes de fazer a configuração serial. Se o serviço "ISP" já estiver configurado não será necessária a configuração com a conexão serial. Antes de fazer a configuração seguinte é importante que já exista uma conta no provedor de acesso. Neste caso já estará disponível um nome de acesso, uma senha e um domínio no provedor. Na seqüência a seguir, caso a resposta seja igual à resposta padrão apresentada bastará pressionar a tecla Enter. A resposta padrão está entre chaves { }. # adsl-setup Welcome to the Roaring Penguin ADSL client setup. First, I will run some checks on your system to make sure the PPPoE client is installed properly... Looks good! Now, please enter some information: USER NAME > > > Enter your PPPoE user name (default bxxxnxnx@sympatico.ca): > > > {usuario@domínio.do.provedor} INTERFACE > > > Enter the Ethernet interface connected to the ADSL modem For Solaris, this is likely to be something like /dev/hme0. For Linux, it will be ethn, where 'n' is a number. (default eth1): MODEM TYPE file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (15 of 18)28/09/2004 19:53:11 Configuração do Sistema We will try to detect if your modem is compliant with RFC 2516 or not. 3COM's 3CP4130 is *NOT* compliant, for instance. Searching for a modem at interface eth1... Not found, trying with 3COM's code... Non-RFC2516 compliant modem found! Probably 3CP4130... Probing for service name... Found service name = {serviço} Do you want the link to come up on demand, or stay up continuously? If you want it to come up on demand, enter the idle time in seconds after which the link should be dropped. If you want the link to stay up permanently, enter 'no' (two letters, lower-case.) NOTE: Demand-activated links do not interact well with dynamic IP addresses. You may have some problems with demand-activated links. > > > Enter the demand value (default no): {no} DNS Please enter the IP address of your ISP's primary DNS server. If your ISP claims that 'the server will provide DNS addresses', enter 'server' (all lower-case) here. If you just press enter, I will assume you know what you are doing and not modify your DNS setup. > > > Enter the DNS information here: {server} PASSWORD > > > Please enter your PPPoE password: {a senha não ecoa} > > > Please re-enter your PPPoE password: {a senha não ecoa} FIREWALLING Please choose the firewall rules to use. Note that these rules are very basic. You are strongly encouraged to use a more sophisticated firewall setup; however, these will provide basic security. If you are running any servers on your machine, you must choose 'NONE' and set up firewalling yourself. Otherwise, the firewall rules will deny access to all standard servers like Web, e-mail, ftp, etc. If you are using SSH, the rules will block outgoing SSH connections which allocate a privileged source port. The firewall choices are: 0 - NONE: This script will not set any firewall rules. You are responsible for ensuring the security of your machine. You are STRONGLY recommended to use some kind of firewall rules. 1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation 2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway for a LAN > > > Choose a type of firewall (0-2): {0} file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (16 of 18)28/09/2004 19:53:11 Configuração do Sistema ** Summary of what you entered ** Ethernet Interface: eth1 Extra parameters for modem (autodetected): "-f 3c12:3c13 -S {serviço}" User name: usuario@domínio.do.provedor Activate-on-demand: No DNS: Do not adjust Firewalling: NONE > > > Accept these settings and adjust configuration files (y/n)? {y} Adjusting /etc/ppp/pppoe.conf Adjusting /etc/ppp/pap-secrets and /etc/ppp/chap-secrets (But first backing it up to /etc/ppp/pap-secrets-bak) (But first backing it up to /etc/ppp/chap-secrets-bak) Congratulations, it should be all set up! Type 'adsl-start'to bring up your ADSL link and 'adsl-stop' to bring it down. Type 'adsl-status' to see the link status. Para iniciar a conexão ADSL use o comando: # adsl-start Para verificar se conexão está ativa pode-se usar o comando: # ifconfig ppp0 ou então o comando: # adsl-status Pode-se usar o ntsysv para acrescentar o serviço adsl-init na configuração de boot do sistema, para que se conecte toda vez que o computador for inicializado. ZIP DRIVE Existem dois tipos de dispositivos ZIP: interno e externo. O drive interno pode ser IDE ou SCSI e deve ser tratado como se fosse um disco rígido comum, ou seja, basta montá-lo no ponto de montagem correto (por exemplo, /mnt/zipdrive). Utilize como arquivo de dispositivo /dev/hdX4, onde X é a posição do disco na interface IDE (veja mais no Capítulo 6). file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (17 of 18)28/09/2004 19:53:11 Configuração do Sistema Para fazer com que o zip drive externo funcione, primeiro é necessário carregar o módulo PPA; para isto execute o comando a seguir como root: # modprobe ppa Uma vez carregado o módulo o passo seguinte é criar um ponto de montagem para ele, como mostrado a seguir: # mkdir /mnt/zipdrive Agora é só configurar o arquivo /etc/fstab adicionando uma linha como a seguinte: /dev/sda4 /mnt/zipdrive ext2 defaults,rw,exec 0 0 Fazendo isso, o dispositivo será montado automaticamente ao se iniciar o sistema. É possível também omitir essa linha e fazer a montagem manualmente. Caso os disquetes do zip estejam formatados em MS-DOS® basta alterar o valor "ext2" para "vfat", que é o formato para o Windows 95® em diante, ou para "msdos" que é o formato MS-DOS®. Existem outros formatos; para mais informações sobre este ou outros parâmetros consulte a página manual do fstab. A utilização do zip é igual a de qualquer dispositivo de armazenamento de massa (mount/umount). Notas [1] Banners são como folhas de rosto de início/fim de impressão. Normalmente informam o nome do usuário e a data/hora de impressão do documento. Anterior Principal Próxima Dispositivos O XFree86 file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/configuracao.html (18 of 18)28/09/2004 19:53:11 O XFree86 Entendendo o Conectiva Linux Anterior Próxima Capítulo 8. O XFree86 Índice O Protocolo X XFree86 O ambiente gráfico em um sistema Linux é implementado através de um conjunto de aplicações, que se utilizam de um protocolo especial para isso. Esse sistema gráfico, chamado X Window System, foi criado no Instituto de Tecnologia de Massachusetts (MIT) e é um padrão em sistemas UNIX e Linux. Nesse capítulo será abordado o que é e como funciona o sistema X Window e como configurá-lo. O Protocolo X Ao contrário de outros sistemas que simplesmente mostram as aplicações gráficas localmente (isto é, na mesma máquina onde são executadas), o X Window permite o processamento de aplicações gráficas distribuídas pela rede, utilizando-se um relacionamento cliente/servidor; para tanto ele se utiliza do protocolo X. Na relação cliente/servidor definida pelo protocolo X, a parte "servidor" roda na máquina local e é o responsável pela interação com o hardware e por mostrar as aplicações gráficas no display; já a parte "cliente" pode ser executada localmente ou remotamente e é encarregada de executar as aplicações gráficas e dizer ao servidor o que mostrar. Essa arquitetura permite uma grande portabilidade, uma vez que é necessário modificar apenas a parte que faz o acesso ao hardware. Além do mais, através do protocolo X é possível até mesmo executar aplicações gráficas em diferentes sistemas, sendo possível, por exemplo, rodar uma aplicação em um sistema HP-UX® e visualizá-la em um sistema Linux. O X Window pode ser utilizado tanto distribuído em uma rede quanto apenas localmente de maneira transparente para o usuário. XFree86 O XFree86 é um porte de livre distribuição do sistema X window e ele implementa tanto o servidor quanto o cliente X. Além disso o XFree86 provê arquivos de suporte, bibliotecas, utilitários de configuração e os "drivers" para diversas placas de vídeo. Portanto, é o XFree86, ou melhor, o modo file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (1 of 13)28/09/2004 19:53:20 O XFree86 como ele está configurado, que determina a profundidade de cores, a resolução e a taxa de atualização do vídeo. Mais adiante será mostrado como configurá-lo. Embora o XFree86 faça o desenho do que lhe é solicitado na tela, ele não é capaz de criar um ambiente de trabalho gráfico e gerenciar as janelas contendo as aplicações, portanto, se faz necessária além do XFree86 a utilização de uma aplicação do tipo gerenciador de janelas. O Conectiva Linux utiliza como padrão o K Desktop Environment (ou simplesmente KDE). Além do gerenciador de janelas, é comum se utilizar um programa gráfico capaz de receber o login e a senha dos usuários e iniciar uma sessão gráfica para esse usuário. O Conectiva Linux utiliza como padrão o gerenciador de login que acompanha o KDE, chamado de KDM (KDE Display Manager). Configurando o XFree86 A configuração do XFree86 é uma das tarefas do administrador, uma vez que os usuários não possuem permissão para alterar essas configurações. Existem várias maneiras de se configurar o XFree86, mas será mostrado como configurá-lo com o auxílio de um aplicativo desenvolvido especificamente para esta tarefa, chamado xf86cfg. O xf86cfg pode ser utilizado tanto em modo texto quanto em modo gráfico, ou seja, se já existe uma configuração funcional do ambiente gráfico o xf86cfg pode ser executado a partir deste ambiente para reconfigurá-lo, ou caso o XFree86 ainda não tenha sido configurado o xf86cfg pode ser executado a partir do modo texto a fim de se criar uma nova configuração. Para iniciar o configurador do XFree86 abra um terminal, ou a partir do console texto digite xf86cfg. Você deverá ver uma tela como esta: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (2 of 13)28/09/2004 19:53:20 O XFree86 Figura 8-1. Tela Principal do xf86cfg Atenção Ao ser executado a partir do modo texto, o xf86cfg faz uma detecção automática do hardware de vídeo para iniciar o aplicativo em modo gráfico. Caso essa detecção falhe, o administrador poderá iniciar o aplicativo com a opção -textmode para que ele não utilize a detecção automática, e apenas utilize uma interface texto. Na parte superior da janela o primeiro botão (que inicialmente tem o valor configurar layout) permite que se alterne entre os modos de configuração de layout, configuração de tela, configuração de modeline e configuração do AccessX. O botão Modo expert exibe o arquivo de configuração do XFree em modo árvore, permitindo a alteração direta deste. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (3 of 13)28/09/2004 19:53:20 O XFree86 No modo Configurar Layout, mais quatro botões estão disponíveis no topo da tela, permitindo que o administrador selecione dispositivos para configuração ou adicione mais um mouse, teclado, placa de vídeo ou monitor à configuração. Embora isso não seja usualmente necessário, em configurações mais avançadas pode ser necessário adicionar manualmente esses elementos. Clicando com o botão esquerdo do mouse sobre cada elemento (monitor, placa de vídeo, teclado e mouse), e selecionando a opção Configurar, uma nova janela se abrirá permitindo que você configure cada um deles. Dica: Se, ao iniciar o xf86cfg, o mouse não estiver funcionando, você poderá usar o teclado numérico reduzido para mover o ponteiro do mouse. Veja na seção Configurando o AccessX as funções de cada tecla. Configurando o Monitor A partir da tela principal clique com o botão direito do mouse sobre o monitor, escolha a opção Configurar e uma telacomo a seguinte será mostrada: Consulte o manual que acompanha o monitor para obter com exatidão as taxas de sincronia vertical e horizontal deste. Caso o manual não esteja disponível e a detecção automática não tenha conseguido encontrar os valores corretos, utilize um dos valores sugeridos nas listas que sejam mais adequados ao seu monitor. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (4 of 13)28/09/2004 19:53:20 O XFree86 Figura 8-2. Configurando o Monitor No campo Identificador você poderá aceitar o valor padrão (recomendável) ou inserir um novo valor. Esse campo não tem nenhuma relação com o modelo ou a marca do monitor e serve apenas para identificar o monitor internamente no XFree86; uma vez que o XFree86 suporta mais de um monitor e mais de uma placa de vídeo é necessário identificá-los de modo a saber que monitor está ligado a qual placa de vídeo. Nos campos Sincronização Horizontal e Sincronização Vertical digite os valores da taxa de sincronismo horizontal e vertical respectivamente do seu monitor, da seguinte forma: faixas de valores são representadas como X - Y, onde X é o menor valor e Y o maior; para se utilizar valores discretos separe-os por vírgula, como, por exemplo, "31.5, 35, 37.5". No campo Selecione a placa conectada ao monitor você poderá inserir o identificador da placa à qual este monitor está conectado, caso o seu sistema possua mais de uma placa de vídeo. Configurando a Placa de Vídeo Acesse a janela de configuração da placa de vídeo clicando com o botão direito do mouse no ícone da placa de vídeo e escolha a opção Configurar. Surgirá a tela mostrada na Figura 8-3: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (5 of 13)28/09/2004 19:53:20 O XFree86 Figura 8-3. Configurando a Placa de Vídeo O campo Identificador funciona de maneira análoga ao campo de mesmo nome nas configurações do monitor; aceite o valor padrão ou preencha um novo. Selecione a sua placa de vídeo na lista apresentada. Para facilitar a seleção da placa você poderá preencher parte do nome ou do modelo da placa no campo Filtro de modelo da placa, a fim de mostrar apenas as placas que contenham esse valor na lista. Ao se selecionar uma placa de vídeo na lista, o xf86cfg automaticamente seleciona o melhor driver para ela no campo Driver. Existem algumas placas que funcionam melhor com um driver genérico, como por exemplo o driver "vesa"; caso seja necessário escolher um novo driver. O campo BusID é necessário apenas se o seu sistema possui mais de uma placa de vídeo, e o valor a ser inserido pode ser obtido executando-se o comando lspci. Encontre na saída do comando a linha correspondente à placa que se deseja configurar, como no exemplo abaixo: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (6 of 13)28/09/2004 19:53:20 O XFree86 # lspci 00:02.0 PCI bridge: Silicon Integrated Systems [SiS] 5591/5592 AGP 00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL- 8139 01:00.0 VGA compatible controller: Silicon Integrated Systems O valor da primeira coluna precisa então ser convertido de hexadecimal para decimal, e cada valor deve ser separado por dois pontos e precedido do valor "PCI". Assim, para a placa de vídeo listada acima deveria ser usado o valor "PCI:1:0:0". Configurando o teclado e o mouse Os procedimentos para configurar o teclado e o mouse já foram vistos no Capítulo 7, mas você poderá utilizar o xf86cfg para configurá-los também. Abra a janela de configuração de teclado clicando com o botão direito do mouse no ícone do teclado e escolha a opção Configurar. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (7 of 13)28/09/2004 19:53:20 O XFree86 Figura 8-4. Configurando o Teclado Selecione o modelo do seu teclado no campo Modelo de teclado e a disposição das teclas em Layout de teclado. Se o seu teclado possui a tecla de cedilha escolha "Brazilian ABNT2" como o modelo de teclado e "Brazilian" como o layout. Se o teclado for do tipo padrão internacional escolha um dos modelos "Generic xxx-key (Intl)", onde o xxx é o número de teclas e "U.S. English w/ deadkeys" o layout. Para configurar o mouse, siga o mesmo procedimento citado acima, mas clicando sobre o ícone do mouse. Uma janela como esta será mostrada: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (8 of 13)28/09/2004 19:53:20 O XFree86 Figura 8-5. Configurando o Mouse Selecione a porta à qual o mouse está ligado na lista abaixo de Selecione o Mouse. Os valores /dev/ ttsyS0 a /dev/ttsyS3 correspondem às portas seriais 1 a 4 respectivamente. O valor /dev/ psaux corresponde à porta PS/2 e o valor /dev/mouse é um link simbólico para uma das outras portas listadas. Escolha na lista Selecione o protocolo do mouse o protocolo correspondente ao seu mouse. Na dúvida, tente selecionar o valor "Auto". Se o seu mouse não possui três botões selecione a opção Emular 3 botões, e a funcionalidade do botão central de um mouse de três botões será imitada ao se pressionar os dois botões simultaneamente em seu mouse de dois botões. Configurando a Resolução da Tela Selecione o modo Configurar Tela, clicando no botão superior esquerdo, e em seguida, clique no ícone file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (9 of 13)28/09/2004 19:53:20 O XFree86 do monitor com o botão direito do mouse e escolha configurar. Uma tela como a da Figura 8-6 aparecerá: Figura 8-6. Configurando a Resolução da Tela O campo Identificador recebe um valor correspondente ao conjunto de um monitor mais uma placa de vídeo. Não é necessário alterar esse valor pois o xf86cfg o configura automaticamente. Selecione a profundidade de cor padrão a partir da lista de mesmo nome. Os valores são mostrados em bits por pixel, assim o valor 8 corresponde a 8 bits por pixel ou 256 cores. O padrão é se utilizar uma profundidade de cores de 16 bits, e somente se a placa de vídeo suportar utilizar 24 bits. Em seguida, selecione as resoluções de vídeo a serem utilizadas. As duas listas de valores abaixo de Selecione a(s) resolução(ões): contém valores de resolução de vídeo (lista da esquerda) e os valores que a sua configuração irá utilizar (lista da direita). Para adicionar uma resolução à sua configuração selecione-a na lista à esquerda e clique no botão com a setinha para a direita. Observe que o XFree86 utilizará os valores incluídos na lista da direita na ordem em que eles se encontram, logo, se você escolher mais de um valor, coloque o seu preferido no topo da lista, selecionando-o e clicando no botão file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (10 of 13)28/09/2004 19:53:20 O XFree86 com a setinha para cima. Dica: Ao se selecionar mais de uma resolução de vídeo, você poderá alternar entre elas, pressionando Ctrl-Alt-+ após ter iniciado o ambiente gráfico. Configurando o AccessX O XFree86 possui algumas funções especiais voltadas para usuários com deficiências motoras, como por exemplo teclas "aderentes". Essas funções podem ser encontradas iniciando-se o modo Configurar AccessX. Figura 8-7. Configurando o AccessX As opções de configuração são: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (11 of 13)28/09/2004 19:53:20 O XFree86 Habilitar StickyKeys Essa função faz com que as teclas Ctrl, Alt e Shift, ao serem pressionadas, permaneçam "pressionadas"; assim, para digitar um caractere maiúsculo, o usuário pressionará o Shift, irá soltá-lo, e então pressionará a tecla com a letra. A opção Desligamento automático, se habilitada, faz com que a aderência seja cancelada ao se pressionar a tecla novamente e a opção Modificadoresde Bip, quando acionada faz com o que o computador emita um sinal sonoro ao se pressionar uma das teclas de aderência. Habilitar botões do mouse Essa função quando habilitada permite que o usuário utilize as teclas do teclado numérico reduzido para movimentar o ponteiro do mouse na tela. A opção Velocidade de Pico ajusta a velocidade máxima em que o ponteiro pode se movimentar; a opção Atraso para pico ajusta o tempo que o ponteiro demora para alcançar a velocidade de pico e, por fim, a opção Atraso do Movimento ajusta o tempo entre a ação de se pressionar uma das teclas e o ponteiro começar a se mover. As teclas 1 a 4 e 6 a 9 funcionam como teclas direcionais, a tecla 5 funciona como o botão do mouse e sua função é definida pelas teclas /, * e -, que habilitam as funções de botão esquerdo, do meio e da direita, respectivamente. As teclas 0 e Del simulam o clicar, mantendo o botão pressionado e soltar o botão, respectivamente. Habilitar teclas de repetição Esta função habilita a repetição automática de uma tecla pressionada. A opção Taxa de repetição define a velocidade com que ela será "repetida" ao se pressionar uma tecla, e a opção Atraso de repetição ajusta o tempo até que uma tecla pressionada comece a se repetir. Habilitar teclas lentas Quando habilitada, as teclas devem ser pressionadas por um determinado período de tempo para que sejam aceitas pelo XFree86. Este tempo de acionamento é definido pela opção Atraso de tecla. Os dois botões, após Bip quando a tecla for, fazem com que um bip seja emitido quando a tecla for pressionada e quando ela for aceita. Habilitar BounceKeys Esta função, quando habilitada, define um tempo de espera até que o sistema aceite um segundo toque na mesma tecla; esse tempo é definido pela opção Tempo de espera. Dicas de Configuração Embora a configuração do XFree86 esteja se tornando cada vez mais fácil, alguns problemas ainda file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (12 of 13)28/09/2004 19:53:20 O XFree86 podem ocorrer. Veremos a seguir como resolver alguns dos problemas mais freqüentes. Um problema comum está relacionado aos drivers das placas de vídeo. Se ao utilizar o drive recomendado para determinada placa e este não funcionar adequadamente experimente utilizar o driver genérico VESA. Se ao iniciar o sistema, o XFree86 não consegue ser inicializado e a tela do monitor ficar piscando, reinicie o sistema no nível de execução como valor 3 ou single (veja como fazer isso no Capítulo 10) e execute o configurador xf86cfg em modo texto para efetuar a modificação. Certifique-se de que o pacote XFree86-vesa está instalado para poder usar o driver VESA. Faixas de freqüências de sincronismo vertical e horizontal incorretas também podem levar a problemas na visualização do ambiente gráfico. Se ao iniciar o XFree86 a tela ficar "rodando", alterne para um console texto pressionando Ctrl - Alt - F2, execute o xf86cfg e nas configurações de sincronismo vertical e horizontal do monitor, insira faixas de valores mais estreitas, caso o manual do monitor não esteja disponível e não seja possível saber com certeza os valores exatos. Anterior Principal Próxima Configuração do Sistema Gerenciamento de Pacotes file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/xfree.html (13 of 13)28/09/2004 19:53:20 Gerenciamento de Pacotes Entendendo o Conectiva Linux Anterior Próxima Capítulo 9. Gerenciamento de Pacotes Índice Entendendo os Pacotes Pacotes e Dependências O Banco de Dados RPM O Gerenciador de Pacotes RPM Gerenciando Pacotes com o Linuxconf Usando o APT Se você já conhece um pouco do Conectiva Linux, é provável que já tenha ouvido falar várias vezes em pacotes. Talvez até já tenha instalado ou removido alguns. O Conectiva Linux gerencia os arquivos instalados através de pacotes. Para isso ele utiliza o RPM[1]. Entendendo os Pacotes Na maioria dos casos, um aplicativo não é formado apenas por um único arquivo executável, mas sim por um grande número de arquivos, como arquivos de tradução (potfiles), arquivos auxiliares[2], arquivos de documentação e arquivos de configuração. Assim, é bastante complexa a tarefa de instalação de um aplicativo manualmente; ainda mais difícil é a manutenção de seus arquivos. Muitas vezes, uma nova versão do aplicativo torna alguns de seus arquivos obsoletos e então, o administrador do sistema tem de apagar o arquivo antigo para evitar um acúmulo de arquivos inúteis. Um pacote é um arquivo que, além de conter os arquivos necessários para a instalação de um determinado aplicativo, contém também as informações necessárias para que o gerenciador de pacotes possa instalar, manter e remover programas. Um arquivo típico de pacote se parece com o seguinte: -rw-r--r-- 1 root root 8960479 Mar 10 14:42 emacs-21.2-11cl.i386.rpm Estes nomes de arquivos seguem um padrão. Os nomes dos arquivos de pacotes RPM contém informações sobre a versão e a arquitetura às quais se destinam. No caso acima, o arquivo diz que se trata do pacote do "Emacs", versão 21.2, release 11cl e que ele foi criado para plataforma Intel 386. Todos os arquivos de pacotes RPM têm o formado pacote-versao-release.arquitetura.rpm, para permitir reconhecer-se visualmente o arquivo. Você poderá encontrar também pacotes com nomes no formato pacote-versao.src.rpm. Esses pacotes não contém os binários de um aplicativo para serem instalados, mas sim os seus arquivos fontes e são (na grande maioria dos casos) independentes de arquitetura. Será mostrado mais adiante como utilizar esse tipo de pacote. Apesar de várias distribuições de Linux utilizarem pacotes do tipo RPM, isso não significa que eles sejam iguais e que um pacote feito originalmente para uma distribuição irá funcionar perfeitamente em outra. Além dos arquivos que compõem um determinado aplicativo, o pacote RPM contém também informações de como instalar, em que local file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (1 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes copiar os arquivos, como configurar, etc. Essas informações adicionais podem ser diferentes de uma distribuição para outra, então, para evitar problemas, o administrador deve procurar sempre utilizar pacotes feitos especificamente para a sua distribuição. Pacotes e Dependências Uma das características de um sistema Linux é a modularização de seus componentes e o uso intensivo de bibliotecas compartilhadas, e isso se aplica também aos pacotes de aplicativos. É bastante comum que um programador ao escrever um aplicativo utilize bibliotecas de funções já existentes, mas não as inclua no pacote do seu aplicativo uma vez que, se todos fizessem isso, seria um tremendo desperdício de espaço e de banda de rede no caso de se disponibilizar esse pacote na Internet. Assim, ao se instalar, um determinado pacote pode ser necessário primeiro instalar um outro pacote que contenha os "pré-requisitos" para a sua instalação. Pode-se dizer então que o primeiro pacote depende, ou tem como dependência o segundo pacote. Os pacotes RPM contém a informação das dependências de cada aplicativo, e essa informação é utilizada pelo gerenciador de pacotes ao se instalar um novo pacote no sistema, ou remover um pacote instalado. Caso a instalação de um novo pacote requeira um outro, ou se tente remover um pacote instalado do qual outro depende, o gerenciador de pacotes alertará o administrador sobre isso. Outra característica do uso de pacotes é que podem haver aplicativos que se encontram "distribuídos" por vários pacotes. O XFree86 é um exemplo disto. As bibliotecas se encontram em um pacote, os binários em outro, e os módulos específicos a cada grupo de placas de vídeo em outros. A organização de um aplicativo em vários pacotes permite que o administrador instale somente aqueles pacotes que são realmente necessários, evitando ter que instalar ou fazer o download de componentesque não serão utilizados. O Banco de Dados RPM Quando o administrador instala um pacote RPM, o gerenciador de pacotes não se limita a instalar os arquivos, ele também mantém um banco de dados que armazena informações sobre todos os arquivos instalados. O banco de dados registra onde estão os arquivos e quais versões estão instaladas, assim, quando o usuário precisar instalar um pacote que necessite de um arquivo específico, ele saberá se esse pacote já existe ou precisa ser instalado. Ao remover um pacote, o gerenciador consultará o banco de dados, e assim obterá uma lista de quais arquivos que podem ser removidos. Em algumas situações especiais, o banco de dados pode ficar corrompido. Para isso o gerenciador de pacotes conta com funções especiais para recuperar a integridade deste banco, como será mostrado mais adiante. O Gerenciador de Pacotes RPM O rpm é um poderoso gerenciador de pacotes que permite ao administrador instalar, remover e obter informações sobre pacotes. Com o rpm é possível também reparar um banco de dados danificado, construir pacotes a partir de arquivos fonte, verificar a assinatura digital de pacotes RPM, simular uma instalação, entre outras coisas. O RPM oferece uma grande gama de funcionalidades, no entanto, será mostrado aqui apenas as mais utilizadas, devendo o administrador consultar a documentação do aplicativo para mais detalhes. Instalando Pacotes com o RPM Instalar pacotes utilizando utilizando o comando rpm é bastante simples. Abra um terminal e, estando no mesmo diretório onde está o pacote que se deseja instalar, digite: # rpm -i pacote-versao.i386.rpm file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (2 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes A opção -i informa ao comando que você deseja instalar um pacote. É recomendado que o administrador utilize também as opções v e h ao instalar um pacote, ou seja, rpm - ivh, para que o comando mostre mais informações sobre o andamento do processo. Caso o pacote a ser instalado necessite que outro pacote tenha sido previamente instalado, o rpm apresentará uma mensagem de erro mostrando quais dependências não foram atendidas para a instalação deste pacote. Será necessário então instalar os pacotes indicados para poder então instalar com sucesso o pacote que originalmente se queria instalar. Será mostrado mais adiante um modo de fazer isso automaticamente. Caso se deseje atualizar um pacote já instalado no sistema por uma versão mais nova em vez do -i utilize a opção -U, assim o pacote mais antigo será removido, o pacote novo será instalado e as configurações serão mantidas. Removendo Pacotes com o RPM Para remover um pacote com o rpm abra um terminal e digite: # rpm -e nome_do_pacote Ao remover um pacote não é necessário utilizar o nome do pacote completo, isto é, não utilize nome-versão-release.rpm, mas sim apenas o nome do pacote. Utilize a versão apenas se existirem duas versões do pacote instalado e se desejar remover uma delas. Caso algum pacote instalado no sistema dependa do pacote que se deseja remover, o rpm não fará a desinstalação e emitirá uma mensagem de erro informando que dependências seriam quebradas com isto. Caso seja realmente necessário, o administrador poderá utilizar a opção --nodeps para evitar que o rpm faça essa verificação, mas isso não é recomendado, pois poderá danificar o sistema. Obtendo Mais Informações Sobre os Pacotes O rpm pode ser utilizado para obter mais informações sobre os pacotes, tanto os já instalados quanto os não instalados. A forma básica para o modo de consulta é rpm -q [opção] pacote. Será mostrado a seguir, algumas das consultas mais comuns utilizando-se o rpm: Obtendo informações de um pacote: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (3 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes # rpm -qi bash Name : bash Relocations: (not relocateable) Version : 2.05b Vendor: Conectiva Release : 23597cl Build Date: Seg 03 Fev 2003 11:02:57 BRST Install date: Qua 26 Fev 2003 16:10:06 BRT Build Host: mapi8.distro.conectiva Group : Base Source RPM: bash-2.05b-23597cl.src.rpm Size : 863709 License: GPL Packager : Conectiva S.A. - security at conectiva.com.br URL : http://www.gnu.org/software/bash Summary : GNU Bourne Again Shell (bash) Description : Bash é um interpretador de comandos compatível com sh, que executa comandos lidos da entrada padrão ou de um arquivo. Bash também incorpora características úteis das shells Korn e C (ksh e csh). Bash tem sido desenvolvido para ser uma implementação compatível com a especificação IEEE Posix para shells e ferramentas (IEEE Working Group 1003.2). Para obter informações de um pacote que não está instalado, utilize a opção -p, seguida do nome do arquivo do pacote. O administrador poderá utilizar o rpm para obter informações sobre as dependências de um pacote. Poderá descobrir que outros pacotes dependem do pacote que se quer consultar, bem como descobrir de que pacotes o pacote consultado necessita. Os dois exemplos abaixo mostram como descobrir essas duas informações, respectivamente: # rpm -q --whatrequires glib glib-devel-1.2.10-22252cl gtk+-1.2.10-22253cl bonobo-1.0.22-22774cl gconf-1.0.9-24661cl xmms-1.2.7-19809cl # rpm -q -requires glib /sbin/ldconfig /sbin/ldconfig rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 libc.so.6 libdl.so.2 libpthread.so.0 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1.2) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.3) libdl.so.2(GLIBC_2.0) file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (4 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes libdl.so.2(GLIBC_2.1) libpthread.so.0(GLIBC_2.0) Para descobrir a qual pacote pertence um arquivo do sistema utilize a opção -qf arquivo, como no exemplo abaixo: # rpm -qf /bin/bash bash-2.05b-23597cl E como um último exemplo, veja como listar todos os pacotes instalados no sistema: # rpm -qa Recuperando o Banco de Dados RPM Se por um motivo ou outro o banco de dados de pacotes corromper-se, o rpm pode recuperá-lo. Caso seja necessário fazer isso, basta utilizar o comando abaixo: # rpm --rebuildb Utilizando Pacotes de Fontes Usualmente, além dos pacotes que contém os binários dos aplicativos, encontramos também pacotes contendo os arquivos fontes[3] dos aplicativos[4]. O pacote fonte, ao ser instalado, copia seus arquivos para a o diretório /usr/src/rpm/SOURCES, permitindo assim que os usuários do sistema possam estudar como determinado programa é feito e até mesmo alterá-lo de acordo com sua vontade. É possível utilizar um pacote fonte para construir um pacote RPM contendo os arquivos binários adequados à arquitetura da máquina em que ele será utilizado. Se você possui o arquivo fonte e deseja construir um pacote contendo os binários para que o programa possa efetivamente ser instalado, utilize o comando rpm com a opção --rebuild pacote.src.rpm. O pacote será construído e colocado no diretório /usr/src/rpm/RPMS/arquitetura, onde arquitetura é o processador para o qual o pacote foi compilado, normalmente i386. Proceda então a instalação como faria normalmente. Gerenciando Pacotes com o Linuxconf Como alternativa ao uso do rpm no modo linha de comando, o administrador poderá utilizar o Linuxconf para instalar, remover, atualizar e pesquisar informações sobre pacotes. O Linuxconf não possui todas as funcionalidades do rpm em modo texto, no entanto é de mais fácil utilização. Para poder utilizar o Linuxconf para gerenciar pacotes RPM, é necessário instalar o módulo apropriado. Abra o Linuxconf, clique na aba Controle e verifique se a opção Gerenciamento de pacotes RPM está disponível. Caso não esteja, instale o pacote linuxconf-managerpm-*.rpm. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html(5 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes O Linuxconf utiliza o diretório /mnt/cdrom/conectiva/RPMS como padrão (esse é o diretório padrão do CD-ROM). Caso os pacotes RPM que você deseje instalar/ consultar localizem-se em outros diretórios, acesse a opção Controle -> Gerenciamento de pacotes RPM -> Preferências e insira os diretórios onde localizam-se os pacotes RPM do seu sistema. Figura 9-1. Configurando a Localização dos Diretórios com Pacotes RPM Instalando e Atualizando Pacotes com o Linuxconf file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (6 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Figura 9-2. Instalando Um Pacote com o Linuxconf Para instalar ou atualizar um pacote utilizando o Linuxconf, acesse a opção Controle -> Gerenciamento de pacotes RPM -> Instalar/Atualizar um pacote . Preencha o campo Caminho do arquivo RPM com o diretório e o nome do arquivo de pacote RPM que deseja instalar e clique no botão Aceitar. Os diretórios configurados na opção Preferências estarão disponíveis ao se clicar no botão drop-down do campo. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (7 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Figura 9-3. Confirmando a Instalação de Um Pacote com o Linuxconf O Linuxconf verificará se o pacote já está instalado, e o notificará caso já esteja, ou se a versão do pacote instalado for maior ou igual à versão que se deseja instalar. Se o pacote a ser instalado é mais atual do que o já presente no sistema, ou o pacote não exista no sistema, o Linuxconf apresentará uma tela semelhante à Figura 9-3. Clique no botão Aceitar para efetuar a instalação. Concluída a instalação o Linuxconf apresentará uma janela contendo as mensagens geradas pelo processo de instalação. Caso o administrador deseje instalar ou atualizar múltiplos pacotes de uma só vez deve utilizar a opção Controle -> Gerenciamento de pacotes RPM -> Instalar/Atualizar vários pacotes. Ao selecionar esta opção será apresentada uma tela como esta: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (8 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Figura 9-4. Instalando Vários Pacotes Entre com o diretório onde se encontram os pacotes RPM e a máscara de arquivos que o Linuxconf deve utilizar para procurar os arquivos. Se você deseja apenas atualizar os arquivos já existentes, deixe a opção Mostrar pacotes não instalados desmarcada, caso contrário selecione-a para que o Linuxconf mostre os pacotes ainda não instalados, permitindo que você os selecione para instalação. Ao se clicar no botão Aceitar, o Linuxconf efetuará uma busca no sistema e apresentará uma janela contendo todos os pacotes passíveis de atualização e instalação, mostrando a versão atual e a versão para a qual serão atualizados, ou indicará ao lado do pacote que ele não está instalado e indicará também a versão a ser instalada. Selecione os pacotes a serem atualizados ou instalados e clique em Aceitar. Consultando Pacotes com o Linuxconf O Linuxconf é capaz de consultar e mostrar informações referentes a pacotes rpm, tanto os instalados quanto os não instalados. Para consultar pacotes já instalados no sistema utilize a opção Controle -> Gerenciamento de pacotes RPM -> Consultar os pacotes instalados e informe uma máscara de procura, ou deixe em branco para listar todos os arquivos. Clique em Aceitar para efetuar a consulta. Após consultar o sistema o Linuxconf lhe apresentará grupos cujos pacotes membros correspondem à sua máscara de procura. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (9 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Figura 9-5. Lista de Grupos de Pacotes Clicando sobre um dos grupos, obtém-se uma lista contendo os pacotes membros deste grupo. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (10 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Figura 9-6. Lista de Pacotes Finalmente, para se obter informações sobre um pacote específico, basta clicar no nome do pacote. Para obter a lista de arquivos que compõem o pacote e o caminho onde serão colocados ao se instalar o pacote, clique no botão Listar arquivos. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (11 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Figura 9-7. Informações do Pacote O procedimento para consulta de pacotes não instalados é bastante parecido com o processo acima. Utilize a opção Controle -> Gerenciamento de pacotes RPM -> Consultar os pacotes não instalados para iniciar a consulta. Digite o diretório onde se localizam os pacotes a serem instalados no campo Diretórios contendo os rpms, e a máscara de procura de pacotes no campo logo abaixo, ou mantenha o padrão para pesquisar todos os pacotes. Figura 9-8. Consultando Pacotes Não Instalados A apresentação dos resultados é idêntica à da consulta a pacotes já instalados. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (12 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes O Linuxconf provê também uma maneira de se pesquisar palavras chaves em pacotes não instalados. É possível fazer buscas de palavras chaves nas descrições, na lista de arquivos, na lista de dependências e na lista de funcionalidades que os pacotes provêem. Acessando a opção Controle -> Gerenciamento de pacotes RPM -> Pesquisar um pacote você tem acesso a um poderoso modo de pesquisa. Figura 9-9. Pesquisando Palavras Chaves nos Pacotes RPM O modo de pesquisa é uma extensão do modo Consultar pacotes não instalados e, como este, pede que você entre com o diretório onde se encontram os arquivos de pacotes RPM e uma máscara de procura de arquivos. Além disto você deve entrar com uma ou mais palavras chaves e selecionar as opções de busca: Deve conter todas as palavras Selecione esta opção se você usou duas ou mais palavras chaves e deseja que todas elas estejam presentes nos pacotes encontrados. Seu efeito é o do "E" lógico. Pesquise em Sumário Selecione esta opção para que o Linuxconf procure pelas palavras chaves no sumário do pacotes RPMS. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (13 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Pesquise em Descrição Selecione esta opção para fazer a procura das palavras chaves na descrição detalhada do pacote RPM. Pesquise na listagem de arquivos Utilize esta opção para fazer a procura das palavras chaves na lista de arquivos contidos nos pacotes. Você pode utilizar esta opção para descobrir de qual pacote um determinado arquivo do sistema faz parte. Pesquise em Requer Selecione esta opção para buscar nas dependências dos pacotes as palavras chaves. Pesquise em Provê Utilize esta opção para procurar as palavras chaves na lista de funcionalidades que os pacotes provêem. Além das formas de consulta apresentadas acima, o Linuxconf oferece através da opção Controle -> Gerenciamento de pacotes RPM -> Mostrar os pacotes adicionais uma listagem de todos os pacotes instalados, sem separação por grupos. Através desta lista, o administrador pode obter mais informações sobre um pacote e efetuar a remoção de pacotes individualmente. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (14 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Figura 9-10. Mostrar os Pacotes Adicionais Usando o APT O APT, Ferramenta Avançada de Pacotes,[5] é um conjunto de ferramentas utilizadas para gerenciar pacotes de forma automatizada, capaz de resolver automaticamente dependências de pacotes, utilizar e criar repositórios de pacotes. O APT pode ser utilizado para instalar, remover ou atualizar umaplicativo, verificar conflitos de versões de aplicativos instalados, e até mesmo fazer a atualização automática de todo o seu sistema. Configurando o APT O APT utiliza repositórios de arquivos RPM ao instalar ou atualizar pacotes no sistema. Esses repositórios podem estar em sites na Internet, no CD-ROM da distribuição, ou podem ser construídos pelo administrador. A configuração da localização desses repositórios é feita através do arquivo /etc/apt/sources.list. Cada linha do arquivo sources.list contém as informações relativas a um repositório de arquivos RPM e o seu formato é: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (15 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes TIPO [CHAVE] URI PARÂMETROS O campo TIPO pode assumir os valores rpm ou rpm-src, para repositórios que contém pacotes binários ou repositórios de arquivos fonte. O campo [CHAVE] contém o nome da assinatura digital do distribuidor dos pacotes, garantido assim a autenticidade dos pacotes. Esse campo pode ser omitido. O campo URI contém a localização do repositório propriamente dito, e finalmente o campo PARÂMETROS contém informações adicionais sobre a localização dos pacotes dentro do repositório. Será mostrado detalhadamente cada um desses campos, mais adiante. Este é um exemplo do arquivo sources.list[6]: # Package repository URLs # # # Official repositories. rpm ftp://atualizacoes.conectiva.com.br 9/conectiva updates # # Mirror repositories. # rpm ftp://ftp.nl.linux.org/pub/linux/conectiva 9/conectiva main extra kde Estes são somente exemplos; é importante verificar se os caminhos estão corretos antes de iniciar o processo. O Campo TIPO A variável TIPO indica qual tipo de pacote será utilizado. Pode ser rpm, rpm-src ou deb, embora esse último não deva ser utilizado com o seu Conectiva Linux. Como há a possibilidade de ter mais de uma linha apontando para os repositórios do APT, você pode querer colocar o repositório mais rápido na primeira linha. Nota: O tipo rpm-src é utilizado para indicar repositórios com fontes de pacotes (arquivos SRPM). Dessa maneira, utilizando o comando apt-get source algum_pacote, você pode fazer o download dos arquivos fonte do pacote algum_pacote e compilá-lo. O Campo [CHAVE] O arquivos rpm podem ser assinados digitalmente com uma chave criptográfica, e o APT pode utilizar esse recurso para garantir que os pacotes utilizados sejam "autênticos", isto é, que eles sejam assinados pelo autor ou pela empresa responsável pela distribuição deles. Para os administradores, o uso de pacotes assinados pela distribuição garante que eles não contém código malicioso criado por uma pessoa mal-intencionada. Embora recomendado, esse campo não é obrigatório e pode ser omitido. Veja como adicionar assinaturas digitais na seção Usando as assinaturas GPG. O Campo URI As variáveis uri indicam a localização do servidor de repositório do APT. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (16 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes A distribuição pode especificar um caminho exato. Se esta opção for usada, você precisará omitir a variável componente e terminar a opção com uma barra. O APT classificará o uri para o uso interno, mas é muito importante que estas linhas estejam na ordem do servidor mais rápido para o mais lento. Os parâmetros após a uri informam os diretórios que contém os arquivos rpm ou srpm dentro do repositório. Veja mais sobre esses campos na seção Criando Repositórios RPM. Você pode usar diversos fontes para um uri. Veja alguns exemplos: ftp Este método especifica uma conexão FTP para o servidor de repositório. ftp://ftp.conectiva.com.br/repositorio http Este método especifica que você fará uma conexão HTTP ao servidor de repositório. http://www.conectiva.com.br/repositorio Usando o apt-cdrom O apt-cdrom é um comando simples utilizado para adicionar o CD-ROM ao arquivo sources.list do APT, fazendo com que o apt-get procure no seu CD-ROM por pacotes. Sua sintaxe é uma variação desta linha de comando: # apt-cdrom add O apt-cdrom usa informação do arquivo /etc/fstab, caso você não especifique onde está o drive de CD-ROM. Após a execução do comando apt-cdrom add uma linha semelhante à do exemplo a seguir será incluída no seu arquivo sources.list. rpm cdrom:[Conectiva Linux 9 Pre-1 - CD1]/ conectiva 001 Uma possível saída do comando apt-cdrom add seria a seguinte: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (17 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes # apt-cdrom add Usando ponto de montagem do CD-ROM/mnt/cdrom/ Desmontando o CD-ROM Insira um disquete no drive e pressione Enter Montando o CD-ROM Identificando..[c19afb6208760e4f2542607f75a70893-2] Procurando por arquivos de índice no disco.. Encontrei 1 índices de pacotes e 0 índices de fonte. Rótulo encontrado 'Conectiva Linux 9 Pre-1 - CD1' Este disco é chamado: 'Conectiva Linux 9 Pre-1 - CD1' Reading Indexes... Done Gravando nova lista-fonte As entradas de lista-fonte para este disco são: rpm cdrom:[Conectiva Linux 9 Pre-1 - CD1]/ conectiva 001 Repetir este processo para o restante dos CDs em seu conjunto. Utilizando o apt-get O apt-get é uma das ferramentas do APT e provavelmente é o comando que será utilizado com mais freqüência. Os comandos do apt-get são muito fáceis e intuitivos. Eles seguem uma estrutura muito simples: # apt-get opções comando # apt-get opções install pacote [pacote ...] A linha de comando pode ser uma variação dos tipos básicos a seguir: apt-get update Atualiza o banco de dados local do apt-get com os arquivos pkglist[7] do servidor. apt-get check Verifica a integridade do seu sistema. Execute este comando quando tiver dúvidas quanto à integridade dos pacotes do seu sistema. É recomendável executá-lo antes de executar uma atualização de distribuição. apt-get install algum-pacote Instala algum pacote novo, solucionando e carregando automaticamente os pacotes dos quais o aplicativo a ser instalado depende. Caso o pacote algum-pacote já esteja instalado, o apt-get tentará atualizá-lo. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (18 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes apt-get source algum-pacote Faz o download dos fontes de um pacote (SRPM). Note que é necessário que haja uma linha com o TIPO rpm-src no arquivo sources.list para que este comando seja executado. apt-get upgrade Procura por pacotes desatualizados no sistema e os atualiza automaticamente. Atualizará todos os pacotes antigos no sistema. Para atualizar um pacote e suas dependências utilize o comando: # apt-get install pacote_a_ser_atualizado apt-get dist-upgrade Semelhante ao apt-get upgrade, mas instala todos os pacotes básicos e tenta atualizar tudo, instalando novos pacotes caso seja necessário. É uma maneira mais fácil de fazer uma atualização de sua distribuição[8]. apt-get remove algum-pacote Remove o pacote algum-pacote e todos os demais pacotes que dele dependam. apt-get clean Remove os arquivos encontrados no diretório cache, localizado em: /var/cache/apt/archives/, liberando um pouco de espaço no seu disco de sistema. É uma maneira automática de apagar os arquivos que já foram instalados e que não são mais necessários ao sistema. O diretório archives Quando você solicita ao APT para instalar algum pacote ou efetuar uma atualização (upgrade ou dist-upgrade), ele fará download dos pacotes necessários para /var/ cache/apt/archives/partial/ e, após verificar seus hashes e tamanhos de MD5, moverá estes pacotes para /var/cache/apt/archives/. Você pode assumir que todo arquivo no diretório archives/ foi verificado. Utilize o comando apt-get clean para excluir os arquivos no diretório archives/ e archives/partial/. Usando as assinaturas GPG O APT tem suporte ao gpg[9]. Dessa forma, você pode querer usar istopara certificar-se de que está obtendo os pacotes genuínos do seu fornecedor. O APT não tem suporte ao PGP[10]. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (19 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes A sintaxe do arquivo sources.list tem de ser alterada como desta maneira para que possamos utilizar o gpg: rpm [gpg-id] uri distribution component [component ...] Após efetuar esta mudança, isto é, introduzir o campo [gpg-id], você terá de certificar-se de que tem a chave pública do seu fornecedor em seu chaveiro gpg. A gpg-id[11] é a usada pelo fornecedor para assinar seus pacotes, garantido assim a genuinidade do fornecedor. Na realidade, é um indicador para a última parte da assinatura digital do fornecedor disponível no arquivo vendors.list. Exemplo 9-1. vendors.list # Lista dos fornecedores de pacotes confiáveis # # Este arquivo contém a lista de fornecedores de pacote (empresas # ou pessoas) cujos pacotes você pode confiar. # simple-key "cncbr" { Fingerprint "30EAE85C3D91C29880B4F0B3E368DDD099807190"; Name "Conectiva S.A. <security@conectiva.com.br>"; } Exemplo 9-2. Importando uma chave gpg # gpg --import arquivo_com_a_chave No Exemplo 9-2, em arquivo_com_a_chave[12], temos um arquivo com a chave pública gpg do seu fornecedor. Este comando importará a chave de seu fornecedor no chaveiro do usuário root (já que apenas o root pode instalar, remover ou manipular pacotes, não teria sentido importar esta chave no chaveiro de outro usuário). Caso você queira utilizar o apt sem a assinatura gpg, basta que você retire o [gpg-id] da linha do endereço do repositório que consta no arquivo sources.list. O padrão para o site da Conectiva é utilizar a assinatura gpg. Apenas lembre-se que esta versão do apt-get está em constante desenvolvimento. Caso você encontre algum erro ao utilizá-lo, entre em contato com a Conectiva; mais informações no site da distribuição . Criando Repositórios RPM file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (20 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Além de utilizar os repositórios públicos disponíveis na Internet, um administrador poderá montar o seu próprio repositório, o que pode ser bastante útil para se atender uma rede local evitando que cada máquina a ser atualizada precise buscar os seus pacotes na Internet, consumindo banda de rede desnecessariamente. Antes de prosseguir com a criação de um repositório, o administrador deve se certificar de que a máquina onde será armazenado o repositório possui um servidor web, um servidor de FTP ou algum tipo de acesso funcionando (por exemplo, NFS). Estrutura de Diretórios de um Repositório RPM Um repositório RPM possui uma estrutura padronizada de diretórios, definida assim: diretório principal Este diretório conterá os arquivos de licença, os diretórios com os arquivos fontes, arquivos binários, etc. É equivalente ao diretório raiz do CD da sua distribuição Linux. Contém os seguintes sub-diretórios: diretório da distribuição Este diretório conterá os diretórios com os arquivos rpm. diretórios RPMS Esses diretórios conterão os arquivos de pacotes. Eles devem ter o nome RPMS seguido de ponto e um nome que os identifique, como por exemplo, RPMS.beta ou RPMS.001. Poderão existir vários diretórios como estes ou apenas um, ficando a cargo do administrador essa decisão. O nome após o ponto também pode ser decidido pelo administrador. diretório base O diretório base contém arquivos especiais do tipo pkglist que possuem a lista e a descrição dos pacotes dos diretórios RPMS. Atenção: o nome deste diretório deve ser base. Seguindo essa estrutura, poderia ter como exemplo um repositório cujo diretório principal fosse /srv/www/default/html/repositorio. A árvore de diretórios se pareceria assim: /srv/www/default/html/repositorios /srv/www/default/html/repositorios/9 /srv/www/default/html/repositorios/9/conectiva /srv/www/default/html/repositorios/9/conectiva/RPMS.new /srv/www/default/html/repositorios/9/conectiva/base A configuração do arquivo /etc/apt/sources.list deverá conter a seguinte linha para poder utilizar esse repositório: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (21 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes rpm http://www.minhaorganizacao.com.br/repositorios 9/conectiva new Gerando os Arquivos pkglist Para cada diretório RPMS é necessário gerar um arquivo que contenha a lista e a descrição dos pacotes ali contidos. Esses arquivos recebem o nome de pkglist.xxx, onde o xxx é o diretório descrito pelo arquivo. Os arquivos pkglist são compactados no formato bzip2 e são gerados automaticamente pelo comando genbasedir, que possui o seguinte formato: # genbasedir [-s | --sign] [--topdir=dir] dist comp [comp ...] onde: -s ou --sign Use este parâmetro para assinar digitalmente o seu arquivo pkglist. Utilizando esta opção o comando solicitará a sua senha gpg e irá criar um arquivo chamado hashfile.gpg no mesmo diretório. --topdir Este parâmetro indica onde se localiza o diretório principal. dist É o nome de sua distribuição Linux. Usualmente se utiliza o nome da distribuição e opcionalmente um identificador de versão. comp Este ou estes são os diretórios onde os arquivos RPM se localizam. Utilize apenas o sufixo após o ponto dos diretórios RPMS. Para gerar os arquivos pkglist da árvore de diretórios exemplificada anteriormente, deve-se se utilizar o seguinte comando, estando no diretório base: # genbasedir --topdir=/srv/www/default/html/repositorios 9/conectiva new Synaptic - Interface Gráfica para o APT O Synaptic é uma interface gráfica para o conjunto de ferramentas de atualização APT. Ele permite que você atualize seu Conectiva Linux de maneira rápida, prática e segura. Todos os pacotes são baixados diretamente do ftp da conectiva (podendo ser configurado o local) com possibilidade de certificação de autenticidade do fornecedor. Há ainda a possibilidade de instalar os pacotes presentes no CD do Conectiva Linux. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (22 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Interface do Synaptic Conheceremos a aparência visual do Synaptic, o que cada botão faz e como podemos utilizá-los. Para executar o Synaptic, estando como superusuário, digite no terminal X (konsole, wterm, xterm, etc.): # synaptic Aguarde enquanto o Synaptic inicia. Surgirá então uma janela como a apresentada na Figura 9-11. Figura 9-11. Janela Principal do Synaptic file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (23 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Agora teremos uma breve descrição da interface do Synaptic começando pelos botões localizados no topo da janela. Botões Principais do Synaptic Na Figura 9-12 temos os botões principais do Synaptic. Eles serão explicados a seguir. Figura 9-12. Botões Principais do Synaptic O Botão Atualizar Lista Esse botão faz a atualização dos arquivos de índice de pacotes do Apt contendo a lista de pacotes disponíveis no servidor. É necessário estar conectado à Internet para poder fazer o download dos arquivos de índice. Recomendamos utilizar esse botão sempre que você for fazer uma atualização/modificação de qualquer pacote no seu sistema. Dessa forma, sua máquina estará sempre com a versão mais nova dos arquivos de índice, refletindo assim a situação no servidor que abriga o repositório do Apt. Este botão é equivalente ao comando apt-get update. Ao pressionar o botão Atualizar Lista, surgirá uma janela mostrando a evolução do download dos arquivos de índice[13]. Ao final do download, a janela fechará e o Synaptic irá recalcular as dependências e mostrar a nova lista de pacotes atualizada. O Botão Atualizar Tudo Este botão seleciona automaticamentetodos os pacotes existentes no servidor que tenham versões mais novas que os pacotes que estão instalados no seu sistema. É a maneira mais simples de estar com o seu sistema sempre atualizado com a última versão dos aplicativos instalados. Para executar a instalação dos pacotes, veja o botão Proceder. O Botão Atualizar Distribuição Este botão seleciona automaticamente todos os pacotes que devem ser instalados/atualizados para atualizar a distribuição inteira. O botão anterior (Atualizar tudo) não atualiza pacotes que, na sua nova versão, dependam de outros pacotes que não instalados no seu sistema. Um breve exemplo: se o pacote X atual depende só de Y, mas na versão mais nova (que está no servidor) ele depende também de Z que não está instalado na sua máquina, então o pacote X não será instalado. Utilizando o botão Atualizar Distribuição, o pacoteX seria atualizado e o pacote Z instalado. A mesma situação ocorre para pacotes que seriam removidos por causa de conflitos novos que não existiam na versão anterior do pacote. O botão Atualizar distribuição também instalará os pacotes considerados essenciais, que estão marcados como Important no arquivo /etc/apt/rpmpriorities. O Botão Proceder Como o próprio nome já indica, o botão Proceder tem a finalidade de executar as ações programadas com os outros botões (Atualizar tudo, Atualizar Distribuição) e também as ações efetuadas diretamente com os pacotes (Manter, Instalar, Atualizar e Remover). Você pode ainda, durante a execução das ações, especificar se deseja file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (24 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes apenas fazer o download dos pacotes ou se quer fazer o download e executar as operações especificadas. Nota: A instalação/atualização de um número grande de aplicativos pode demorar algum tempo. Aguarde enquanto o Synaptic realiza as operações necessárias aos procedimentos solicitados. Vejamos agora os outros botões que compõem a interface do Synaptic. Procurando pacotes É possível realizar uma busca pelo nome do pacote utilizando a opção Procurar Pacote e clicando no botão com a figura de uma lupa. Na janela principal surgirão as seções onde você pode encontrar o pacote com o nome especificado. Na caixa de opções Filtro de Busca você pode definir a situação do pacote que deseja encontrar. Veja com mais detalhes cada um desses botões na Figura 9-13. Figura 9-13. Botões de Procura dos Pacotes O botão Filtros... permite que você crie filtros de busca personalizados. Você pode buscar pacotes por seção, por status, conforme as dependências e muito mais. Experimente esse recurso para otimizar suas buscas. Dica: Você pode visualizar a lista de pacotes de diferentes formas, utilizando as opções do menu Visualizar, contido na interface principal. Agora que já sabemos como procurar um pacote, vejamos como instalar, atualizar, manter e/ou remover um pacote e suas dependências. Quando o filtro de pacotes estiver com o filtro Todos os Pacotes selecionado, serão mostrados todos os pacotes disponíveis no(s) servidor(es) listados no arquivo /etc/apt/ sources.list, local onde constam os servidores que contêm repositório de arquivos do Apt. Esta lista de pacotes pode conter os pacotes encontrados nos repositórios de mais de um servidor. Por esse motivo, o tempo para download varia de acordo com o tempo de resposta do servidor. Lista de Pacotes Observando a primeira coluna da tabela, vemos setas apontando para a direita, indicando o nome de cada seção. Clicando em uma seta, aparece uma lista com os nomes dos pacotes pertencentes à seção aberta. Na coluna Versão Instalada, podemos observar a versão do pacote, caso ele esteja instalado. A coluna Versão Disponível mostra qual versão do pacote está disponível para a instalação. Se a versão disponível for mais nova que a versão instalada, significa que esse pacote pode ser atualizado. Na coluna Descrição vemos a descrição do pacote. Para uma descrição mais detalhada do pacote veja a aba Descrição, que se encontra abaixo da lista e pacotes. Informações sobre os Pacotes Na parte inferior da janela, temos algumas abas que mostram informações mais detalhadas sobre o pacote selecionado na lista de pacotes. Estas abas são as seguintes: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (25 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Informação, Descrição e Dependências. Cada aba tem uma funcionalidade própria. Veja na Figura 9-14 essas abas em destaque. Figura 9-14. Abas de Informação A aba Informação fornece informações gerais sobre o pacote como, por exemplo, se está instalado ou não, a que seção o pacote pertence, qual a prioridade de instalação do pacote, tamanho e versão, além de informações sobre os pacotes disponíveis para a atualização e a importância da atualização. A aba Descrição nos fornece uma descrição detalhada do que é o pacote, o que ele faz e o que disponibiliza. O nível de detalhe de cada descrição varia de pacote para pacote. A aba Dependências nos mostra as dependências do pacote selecionado. Você também pode selecionar no menu dessa aba a opção de ver somente as dependências do pacote, os pacotes que dependem do pacote selecionado. Assim, você pode ter uma idéia de quais pacotes dependem de quais e o quão complexo seria instalar isso tudo manualmente, além de poder avaliar as conseqüências da desinstalação de um pacote. Trabalhando com os Pacotes Quando modificarmos o estado atual do pacote, surgirá uma indicação do que será feito. Essa indicação será visualizada de duas formas, com pequenas setas coloridas apontando em determinadas direções ou com um destaque colorido sobre a linha do pacote marcado. Vejamos o que cada uma dessas indicações querem nos dizer: l seta para cima ou destaque verde: indica que o pacote será instalado. l seta para baixo ou destaque vermelho: indica que o pacote será desinstalado. l seta na diagonal ou destaque amarelo: indica que o pacote será atualizado. Dica: Você pode alterar as cores utilizadas para indicar as operações com os pacotes. Para isso clique em Configurações -> Preferências -> Cores e clique sobre o botão cor ao lado da opção que você deseja alterar. Vejamos agora o que fazem os botões Manter, Instalar/Atualizar e Remover. Observe estes botões na Figura 9-15. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (26 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes Figura 9-15. Botões de Estado dos Pacotes O botão Manter é utilizado para voltar o pacote aos seu estado atual. Por exemplo, você selecionou o pacote YZW e clicou no botão Instalar, sendo assim, o estado do pacote YZW foi modificado indicando que ele seria instalado quando o botão Proceder fosse pressionado. Porém, você se arrependeu e não quer mais instalar o pacote YZW e sim deixá-lo como está. Basta clicar no botão Manter para fazer voltar o pacote YZW ao estado anterior sem efetuar nenhuma alteração. Note que este botão só tem efeito antes de você pressionar o botão Proceder. O botão Instalar marca o pacote para ser instalado, calculando suas dependências e selecionando-as para instalação automática, de forma que todas as dependências sejam instaladas junto com o pacote. Caso você selecione um pacote que já esteja instalado, o nome deste botão mudará para Atualizar e a sua função será de atualizar o pacote existente com as versões mais novas existentes no repositório do servidor. Caso você selecione um pacote cuja versão instalada no seu sistema seja a última versão disponível, o botão Atualizar ficará sombreado de cinza, tornando-se inativo. Veja a versão instalada do pacote no seu sistema na coluna Versão Instalada e a versão disponível no servidor na coluna Versão Disponível. Vejamos agora o botão Remover, que remove um pacote selecionado, observando as dependências de pacotes existentesno sistema. Você pode ver quais são as dependências de cada pacote clicando na aba Dependências. Nota: Quando você seleciona algum pacote para atualizar ou instalar, o Synaptic automaticamente seleciona as dependências desse pacote como necessárias à instalação. Se você retirar alguma dependência manualmente (selecionando o pacote e clicando no botão Manter), as dependências do pacote serão quebradas. Para consertar automaticamente os problemas de dependência, você pode utilizar o recurso de Corrigir Pacotes Quebrados do menu Ações. Uma outra situação em que essa função será útil é quando o usuário instala um pacote utilizando o comando rpm com a opção --nodeps. Utilizando o Synaptic Vejamos agora uma maneira simples de manter seu sistema atualizado utilizando o Synaptic. Uma vez que o seu APT já vai pré-configurado com os servidores oficiais da Conectiva, a única coisa que você tem que fazer é utilizar o Synaptic estando conectado à Internet. 1. Em primeiro lugar, devemos sempre atualizar os arquivos de índice que possuímos em nossas máquinas. Isso é feito utilizando o botão Atualizar Lista. Clicando nesse botão, surgirá uma janela com a lista de servidores cadastrados no APT mostrando o progresso do download do arquivo de índice, como já visto anteriormente. 2. Devemos agora marcar todos os pacotes que queremos atualizar. Isso pode ser feito de duas maneiras: manualmente ou automaticamente. Para fazer da maneira mais simples e rápida clique no botão Atualizar tudo, que se encontra ao lado do botão Atualizar Distribuição. Caso queira fazer manualmente, selecione pacote por pacote e clique no botão Atualizar que se encontra na parte inferior da janela, ao lado das abas de informação. 3. Com os pacotes selecionados, podemos ver quais serão as alterações a ser executadas. Selecione o filtro Mudanças Programadas e observe que a lista de pacotes será modificada e todos os pacotes terão a marcação indicando uma mudança de estado. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (27 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes 4. Para finalizar, clique no botão Proceder, que irá executar as ações especificadas e confirme a execução do processo na janela que se abre. Você pode ver na Figura 9-16 um exemplo das barras de progresso que surgem enquanto as alterações estão sendo preparadas e executadas. Figura 9-16. Preparando Alterações Notas [1] Redhat Package Manager (Gerenciador de Pacotes Redhat). [2] Arquivos diversos como imagens de ícones ou arquivos de dados. [3] Contém o código que deve ser compilado para gerar o programa em si. [4] Pacotes com o nome: pacote.src.rpm. [5] Advanced Package Tool. [6] As linhas que iniciam com o caractere # são comentários [7] Arquivos que contém a lista de pacotes, dependências e informações encontradas no servidor. Este comando deve ser executado sempre antes de se utilizar o comando apt-get com outro parâmetro. [8] Note que podem ocorrer problemas durante a atualização de uma distribuição mais antiga. [9] GNU Privacy Guard. [10] Pretty Good Privacy. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (28 of 29)28/09/2004 19:53:24 Gerenciamento de Pacotes [11] Os colchetes no arquivo source.list devem estar aqui. [12] Por exemplo, o arquivo vendors.list. [13] Especificados no arquivo /etc/apt/sources.list, que é um dos arquivos de configuração do Apt. Anterior Principal Próxima O XFree86 O Processo de Inicialização file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/rpm.html (29 of 29)28/09/2004 19:53:24 O Processo de Inicialização Entendendo o Conectiva Linux Anterior Próxima Capítulo 10. O Processo de Inicialização Índice Carregando Informações Para a Inicialização Gerenciadores de Inicialização do Linux O Processo init Mensagens de Inicialização do Sistema Finalizando o Processo Configurando o Processo de Inicialização Ao apertar o botão Power do computador muitas mensagens aparecem na tela, e para o usuário não devem ter muito significado. O objetivo deste capítulo é fornecer mais detalhes sobre o processo de inicialização, e mostrar que as informações exibidas na tela naquele momento têm muita importância. Carregando Informações Para a Inicialização Logo após ligar a máquina, é feita uma série de verificações feita pela BIOS[1], principalmente uma verificação geral do hardware da máquina. Após isto, é carregado um pequeno programa que está localizado no primeiro setor do disco rígido (ou primeiro setor do disquete, se for o caso) chamado de Registro Mestre de Inicialização ou MBR. Ele pode ter uma destas duas funções: l O MBR localiza a partição ativa e carrega o primeiro setor desta partição, que contém um pequeno programa com informações sobre o sistema operacional que está nesta partição. Ele simplesmente irá carregar os componentes básicos do sistema, ou irá carregar um gerenciador de inicialização que seja mais poderoso e poderá finalizar o trabalho. l O MBR carrega informações diretamente de uma das partições e pode utilizá-las para carregar sistemas operacionais de qualquer partição. A segunda opção é mais interessante e abrangente, e portanto a mais utilizada. Assim, a BIOS utiliza o MBR para carregar um gerenciador de inicialização, podendo inicializar o Linux ou outros sistemas operacionais de qualquer partição ou dispositivo. Gerenciadores de Inicialização do Linux Logo após a primeira parte da inicialização, um gerenciador de inicialização é carregado. Sua principal função é gerenciar as várias partições do disco rígido, permitindo que o usuário possa escolher entre as opções disponíveis. O gerenciador de inicialização é geralmente utilizado quando existe mais de um sistema operacional na máquina. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (1 of 15)28/09/2004 19:53:38 O Processo de Inicialização As próximas seções irão discutir os dois principais gerenciadores de inicialização do Linux: o LILO[2] e o Grub[3], descrevendo suas principais características e opções. LILO O LILO é um gerenciador de inicialização utilizado por muitas distribuições é um dos gerenciadores mais versáteis. Algumas das características do LILO são: l É possível inicializar o LILO de vários dispositivos diferentes (incluindo disquete); l Pode ser instalado no MBR ou no setor de inicialização de uma partição; l Ele não possui arquivos ocultos nem uma partição especial. Além disso, seus arquivos de configuração podem ser instalados em qualquer partição (mesmo as partições que não são Linux). l Ele pode inicializar várias configurações de kernel e até mesmo vários kernels diferentes. O LILO permite que você escolha entre as várias partições fornecendo uma linha de comando: LILO boot: Basta colocar o nome do sistema operacional que você deseja configurar. Os nomes das partições foram preenchidos durante a instalação; se você não souber, basta teclar TAB para verificar as partições existentes. Após selecionar a partição basta pressionar ENTER. Poderá ser iniciado um sistema operacional diferente, uma configuração diferente ou poderão ser passados os parâmetros para a inicialização do kernel Linux, dependendo de sua escolha. Se desejar mais detalhes sobre a configuração do LILO, dirija-se para a seção Configurando o LILO. Grub O Grub é um gerenciador de inicialização amigável, que fornece um menu gráfico para a escolha de partições, e é altamente configurável. Entre suas características pode-se citar: l Ele permite carregar uma variedade muito grande de sistemas operacionais livres, bem como alguns sistemas proprietários que não são suportados e que precisam de um gerenciador de inicialização específico. l O Grub é muito flexível. Ele gerencia vários tipos de sistemas de arquivo e de kernels, e assim é possível carregar um sistema operacional do modoque se deseja, sem gravar a posição física do kernel no disco. l Sua interface gráfica é amigável e configurável, sendo possível modificar a imagem de fundo, a cor das letras, a ordem das opções no menu, entre outras configurações. Ele pode ser configurado também para apresentar um ambiente em modo texto. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (2 of 15)28/09/2004 19:53:38 O Processo de Inicialização Se o Grub foi configurado durante a instalação como o gerenciador de inicialização padrão, após a verificação de hardware da BIOS aparecerá uma tela gráfica com uma lista de sistemas operacionais, bastando escolher qual deseja. Lembre-se de que nem todas as distribuições Linux trabalham com o Grub. Veja no site do Projeto GNU mais informações sobre o Grub. Para configurá-lo, veja a seção Configurando o Grub. O Processo init O init é o primeiro processo iniciado no Linux, logo após a carga do kernel do sistema. Quando é disparado, o init continua a carga do sistema, geralmente executando vários scripts que irão verificar e montar sistemas de arquivos, configurar teclado e iniciar servidores, entre outras tarefas. O init utilizado no Linux permite que existam diversos níveis de execução no sistema. Um nível de execução é uma configuração de software do sistema que define quais processos devem ser inicializados e quais não devem, e também de que modo são inicializados. O administrador do sistema é quem define qual será o nível de execução em que o sistema será executado, sendo que isto pode ser configurando através do menu Configuração -> Miscelânea -> Runlevel padrão do Linuxconf. Observe a Figura 10-1, que mostra esta tela. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (3 of 15)28/09/2004 19:53:38 O Processo de Inicialização Figura 10-1. Níveis de Execução de um Sistema Não existe uma regra que diga o que deve ser inicializado em cada nível de execução, mas em geral, utiliza-se o padrão descrito na Tabela 10-1: Tabela 10-1. Níveis de Execução Níveis de Execução Ação 0 desligar o sistema 1 modo monousuário, também chamado de modo single 2 modo multiusuário, texto 3 modo multiusuário, texto, com serviços 4 não utilizado 5 modo gráfico (X11) 6 reinicializar o sistema O nível de execução mais utilizado é o 3, por permitir que multiusuários acessem o sistema e tenham acesso à rede. Quando desejar que a tela de acesso inicial esteja em modo gráfico, basta configurar o nível de execução em 5. O nível número 1 faz com que o sistema entre no modo single, onde são inicializados o shell padrão e os serviços que foram configurados para inicializar neste nível. Se você executar o comando /sbin/chkconfig - -list, a lista com todos níveis de execução e todos os serviços será fornecida, mostrando em quais níveis de execução cada serviço é inicializado. O modo single é importante para manutenção do sistema, pois pode verificar serviços e programas sem prejudicar o funcionamento do sistema, já que a maioria dos serviços e programas estarão parados. Lembre-se também que os serviços devem ser configurados separadamente no Linuxconf. Se você configurar seu sistema para inicializar no nível de execução 3, os serviços que você deseja que sejam inicializados automaticamente (quando o computador estiver sendo ligado) devem ser configurados para o nível de execução 3, pois assim o init será o encarregado de fazer a busca por estes serviços e inicializá-los. Para modificar o nível de execução, basta escolher outro nível e reinicializar o sistema. Para mais informações sobre como configurar o arquivo /etc/inittab, quais são as ações para os processos disponíveis, exemplos de arquivos, como o init é executado e finalizado, entre outras dicas, leia as páginas de manual (man inittab e man init) ou consulte a seção Configurando o Arquivo /etc/inittab. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (4 of 15)28/09/2004 19:53:38 O Processo de Inicialização Mensagens de Inicialização do Sistema Logo após a escolha da partição através do gerenciador de inicialização, uma série de mensagens irão aparecer na tela, indicando o carregamento do kernel. O init é o processo que está gerenciando esta verificação e carregamento. As mensagens de inicialização do kernel podem ser vistas através do Linuxconf no menu Estado -> Registros -> Mensagens de Inicialização do kernel. Em seguida, são mostradas na tela do computador toda aquela parte em que o sistema está carregando, atualizando informações da máquina e da rede. Este é o processo init propriamente dito. Podemos ver as seguintes informações: l Última versão e data de atualização do kernel; l Tipo do processador, monitor e teclado; l Quantidade de memória e como ela está dividida (incluindo tabela de páginas, cache e tabela hash); l Verificação da rede: endereço IP, rede, sockets, placa de rede; l Verificação de portas, terminais, IRQs e drivers; l Existência de outro tipo de hardware, como por exemplo SCSI; l Checagem do disco e das partições para verificar a integridade; l Execução dos serviços previamente configurados, como por exemplo montagem automática de dispositivos. Após a execução destas e de outras tarefas, o sistema estará pronto para receber usuários. Para informações mais detalhadas sobre o sistema e o hardware da máquina, verifique o menu Estado->Estado do sistema->Sistema do Linuxconf. Lá podem ser encontradas informações sobre o uso do disco e da memória, módulos do kernel, uso de dispositivos PCI e informações mais detalhadas do processador, disco e memória, entre outras. Finalizando o Processo Terminado o carregamento do kernel, o sistema estará verificado e configurado para receber usuários. Um dos conceitos importantes que será apresentado na próxima seção é o conceito de terminal, que trabalha com acessos discados (via modem), ou acesso através do login. Terminais e Similares Após a inicialização, você pode acessar o sistema a partir de linhas seriais[4], ou através do console, quando não se está executando o X. Isto só é possível porque um processo especial, chamado getty está disponibilizando acesso através daquele terminal. O getty fica esperando pelo nome do usuário, que é repassado para o programa file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (5 of 15)28/09/2004 19:53:38 O Processo de Inicialização de acesso login, o qual irá processar a validação da senha do usuário. Caso o conjunto usuário/senha seja válido, o login inicia o shell do usuário. Quando o usuário sair do sistema, este shell será finalizado, e o init irá iniciar uma nova instância do getty de maneira que outro usuário (ou o mesmo) possa acessar o sistema. Na verdade, não existe apenas o getty para executar esta tarefa. Existem vários outros, cada qual com sua peculiaridade. Entre os vários getty existentes, podemos destacar o mingetty, o agetty e o mgetty. O getty irá mostrar o conteúdo do arquivo /etc/issue, quando executado. Você pode personalizar este arquivo para mostrar informações da sua máquina. Quando o getty chamar o login, passando como argumento o nome do usuário, o login irá se encarregar de solicitar a senha deste usuário e verificar se a mesma está correta. Caso afirmativo, será apresentado o conteúdo do arquivo /etc/motd[5] e em seguida o sistema verificará se existem novas mensagens de correio eletrônico. Se existir o arquivo /etc/nologin, ninguém exceto o superusuário poderá acessar o sistema. Quando um usuário tentar efetuar login, o conteúdo deste arquivo será exibido no terminal. Isto pode ser útil em caso de manutenção do sistema, embora geralmente se utilize o modo monousuário para este tipo de operação. Todas as falhas de login, assim como os acessos realizados pelo superusuário são registrados em um arquivo de log do sistema,através do syslog. Os usuários conectados estão listados no arquivo /var/run/utmp, que pode ser acessado através dos comandos w e who. O arquivo /var/log/wtmp mantém o registro dos acessos bem-sucedidos ao sistema, e pode ser acessado com o comando last. Configurando o Processo de Inicialização É possível modificar o processo de inicialização de acordo com que se deseja, configurando o gerenciador de inicialização e atualizando o processo init, entre outras atividades. Nesta seção serão mostradas algumas configurações, tanto utilizando o aplicativo Linuxconf (o que torna a configuração mais direta) quanto utilizando os arquivos de configuração diretamente. Configurando o Arquivo /etc/inittab É possível configurar o init através do arquivo /etc/inittab. O arquivo segue o seguinte formato: identificação:níveis_execução:ação:processo As linhas começadas com um "#" são ignoradas. Veja o Exemplo 10-1 que mostra um trecho deste arquivo. Note que os comentários do próprio arquivo estão depois de um sinal de "#" e as explicações estão após dois sinais de "#": Exemplo 10-1. Arquivo /etc/inittab file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (6 of 15)28/09/2004 19:53:38 O Processo de Inicialização ## Indica o nível de execução padrão do sistema id:3:initdefault: # System initialization. ## Indica o diretório de scripts a ser executado, ## dependendo do nível de execução configurado. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 # Trap CTRL-ALT-DELETE ## A seqüência de teclas indica o comando descrito, ## ou seja, reinicializa o sistema. ca::ctrlaltdel:/sbin/shutdown -t3 -r now ## Se por algum motivo a energia cair, o sistema ## agenda o desligamento do sistema para 2 minutos ## a partir do momento da queda de energia. pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" ## Se a força for restaurada antes de ser executado ## o comando anterior, este será cancelado. pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" # Run gettys in standard runlevels ## Executa terminais em níveis de execução padrão, ## utilizados para conexões para console. 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 #7:2345:respawn:/sbin/mingetty tty7 #8:2345:respawn:/sbin/mingetty tty8 file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (7 of 15)28/09/2004 19:53:38 O Processo de Inicialização #9:2345:respawn:/sbin/mingetty tty9 #10:2345:respawn:/sbin/mingetty tty10 #11:2345:respawn:/sbin/mingetty tty11 #12:2345:respawn:/sbin/mingetty tty12 É possível alterar o nível de execução a qualquer momento, modificando o número do nível de execução diretamente no arquivo (segunda linha do exemplo), ou através do comando telinit. O comando aceita como argumento o nível de execução para o qual se deseja mudar. Por exemplo, telinit 2 irá levar o sistema ao nível de execução 2; telinit 1 levará o sistema ao modo monousuário; telinit q fará com que o init releia seu arquivo de configuração (/etc/inittab). Dica: Para verificar o nível de execução de um sistema basta executar o comando runlevel. Configurando o LILO O LILO é um gerenciador de inicializações que oferece muitas formas de adaptação às necessidades do usuário. As opções mais importantes são descritas nesta seção, sendo que a sua configuração pode ser feita através do Linuxconf ou pelo arquivo /etc/lilo.conf. O LILO é composto por diversos componentes, entre os quais: l O início do código do LILO, que reside no primeiro setor. l O coração do LILO, que reside no arquivo /boot/boot.b. l Um arquivo de mapas, residente no arquivo /boot/map e utilizado pelo LILO para localizar os kernels e outros dados. Se desejar, você poderá configurar o LILO após o processo de inicialização, através do Linuxconf. Isto pode ser feito pelo menu Configuração -> Inicialização -> Lilo. Veja a Figura 10-2, que mostra esta tela. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (8 of 15)28/09/2004 19:53:38 O Processo de Inicialização Figura 10-2. Configurando o LILO O menu principal de configurações é o Padrões LILO (Linux boot loader). Aqui são feitas as configurações principais do LILO, através da aba Opções básicas que contém os seguintes campos: LILO é usado para inicialização deste sistema: opção que deve ser habilitada para definir o LILO como gerenciador de inicialização. Instalar setor de inicialização em: define o nome do dispositivo (por exemplo, uma partição de disco rígido) que contém um setor de inicialização. Caso este parâmetro seja omitido, o setor de inicialização é lido do dispositivo montado como raiz. Modo de inicialização da BIOS: tenta unir as requisições a setores adjacentes em uma única requisição de leitura. Isso diminui o tempo da carga. É bastante recomendada quando o LILO está instalado em um disquete. Codificação da tabela de inicialização: gera endereços lineares em vez de endereços no formato setor/cabeça/cilindro. Endereços lineares são convertidos em tempo de execução e não dependem da geometria do disco. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (9 of 15)28/09/2004 19:53:38 O Processo de Inicialização Atraso da inicialização em segundos: especifica o número de segundos que o carregador deve esperar antes de carregar a primeira imagem. Isso é útil em sistemas que inicializam imediatamente a partir de um disco rígido, após a habilitação do teclado. O carregador não tem que esperar pelo período de tempo caso esse atraso seja omitido ou configurado como zero. Apresentar o prompt LILO boot: Indica se o prompt do LILO deve aparecer durante a inicialização. Força a apresentação da mensagem de acesso ao sistema, e fica aguardando que alguma tecla seja pressionada. Tempo limite do prompt em segundos: configura o tempo de espera (em segundos) para entrada de teclado. Caso nenhuma tecla, no tempo especificado, seja pressionada, a primeira imagem é automaticamente carregada. Similarmente, a entrada da senha é abortada se o usuário levar muito tempo. Arquivo de mensagem (opc.): especifica um arquivo contendo uma mensagem a ser apresentada antes da linha de inicialização. Nenhuma mensagem é apresentada enquanto o programa estiver esperando pela tecla Shift, após ser apresentada a mensagem LILO. As outras opções são utilizadas para a configuração de um kernel compilado ou para a configuração de outros sistemas operacionais. Elas não são obrigatórias, e você deve ter muita experiência para configurá-las. Após mostrar as opções do Linuxconf, cada um de seus significados serão mostrados através do arquivo de configuração do LILO, que está localizado em /etc/ lilo.conf. Para alterá-lo pode ser usado o editor de sua preferência. Antes da edição, é sugerida a criação de uma cópia de segurança do arquivo. Nota: Note que se você não está utilizando o Linuxconf para configurar o LILO e sim editando diretamente o arquivo de configuração, suas alterações somente terão efeito após a execução do comando /sbin/lilo. O arquivo lilo.conf começa por uma seção denominada global, seguida por uma ou mais seções de sistema as quais configuram as opções de inicialização dos diversos sistemas operacionais que podem ser inicializados pelo LILO. Uma nova seção é iniciada pelos parâmetros image=caminho ou other=caminho, indicando o caminho das imagens dos diversos sistemas da máquina. A seguir, apresentaremos o Exemplo 10-2, que mostra um arquivo /etc/lilo.conf de uma máquina onde compartilham o DOS® ou Windows® na partição / dev/hda1e o Linux na partição /dev/hda6. Exemplo 10-2. Exemplo de Arquivo /etc/lilo.conf file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (10 of 15)28/09/2004 19:53:38 O Processo de Inicialização boot=/dev/hda delay = 40 compact vga = normal map=/boot/map install=/boot/boot.b prompt timeout=50 # Linux image=/boot/vmlinuz-2.4.20-26373cl label=linux root=/dev/hda6 read-only # um outro sistema operacional other=/dev/hda1 label=dos table=/dev/hda Há diversas opções possíveis; serão verificadas as que estão sendo mostradas no arquivo. A primeira linha define o dispositivo que contém um setor de inicialização, geralmente um disco rígido. A opção delay=tsecs configura (em décimos de segundo) o tempo que o carregador deve esperar antes de carregar a primeira imagem. A terceira linha (compact) é opcional; utilizada para diminuir o tempo da carga e recomendada quando o LILO está instalado em um disquete. O modo VGA texto pode ser configurado pela opção vga=modo. Alguns valores que poderão ser utilizados estão mostrados na tabela a seguir: | 640x480 800x600 1024x768 1280x1024 -----+------------------------------------- 256 | 0x301 0x303 0x305 0x307 32k | 0x310 0x313 0x316 0x319 64k | 0x311 0x314 0x317 0x31A 16M | 0x312 0x315 0x318 0x31B A opção map=arquivo-mapa especifica a localização do arquivo mapa. Caso map seja omitido, o arquivo /boot/map será o padrão. Para instalar o arquivo de imagens em um determinado setor, basta utilizar a opção install=setor. Caso a opção install seja omitida, /boot/boot.b será usada como padrão. Para apresentar uma mensagem de acesso ao sistema, basta configurar a opção prompt, sendo que na opção timeout=tsecs é configurado o tempo de espera (em file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (11 of 15)28/09/2004 19:53:38 O Processo de Inicialização décimos de segundos) para entrada de teclado. Caso nenhuma tecla seja pressionada no tempo especificado, a primeira imagem é automaticamente carregada. As duas últimas seções do arquivo representam respectivamente as partições Linux e Windows®. A imagem é configurada pela opção image e o nome da partição que surgirá para o usuário durante a inicialização é configurado na opção label=nome. A opção root=dispositivo especifica o dispositivo que deve ser montado como raiz. Caso o nome especial current seja usado, o dispositivo raiz é configurado para o dispositivo no qual o sistema de arquivos raiz está atualmente montado. A última opção (read-only) especifica que o sistema de arquivos raiz deve ser montado com permissões somente de leitura. Dica: Para conhecer mais opções de configuração dirija-se à página de manual do arquivo de configuração do LILO (man lilo.conf). Caso algum componente seja alterado ou o arquivo /etc/lilo.conf seja atualizado, o LILO deverá ser executado através do comando: # /sbin/lilo A seguir, o LILO gravará uma cópia do setor de inicialização de destino, criará um novo setor e um novo arquivo de mapa. O LILO mostrará todos os sistemas operacionais instalados. Finalizada a atualização, a máquina poderá ser reinicializada através do comando: # /sbin/shutdown -r now Configurando o Grub A configuração do Grub pode ser feita pelo Linuxconf. Para isso, dirija-se ao menu Configuração -> Inicialização -> Grub. Suas funcionalidades são: l Opções Gerais: Tela de edição das propriedades gerais de Grub, tais como tempo de limite de apresentação do menu, número de cores e senha. l Entradas de Menu: Exibe as entradas que serão mostradas durante a inicialização. Para editar uma entrada basta clicar sobre o nome da mesma e para criar uma nova entrada basta clicar em Adicionar. Veja a Figura 10-3, que mostra esta configuração. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (12 of 15)28/09/2004 19:53:38 O Processo de Inicialização Figura 10-3. Configurando as Entradas do Grub Deve-se configurar de qual tipo de mídia a entrada de menu será inicializada (Tipo de mídia da raiz), sendo que uma lista de dispositivos é fornecida; deve-se configurar em qual mídia ela está localizada (Número HD/FD da raiz, ou seja, qual o caminho para o dispositivo), a partição em que a imagem está localizada (Número da partição raiz) e se for o caso, preencher o caminho para configurar uma partição FreeBSD. As outras abas fornecem opções para o kernel e formas para encadear carregamento. l Entrada padrão: Escolhe qual será a entrada padrão quando o tempo de espera finalizar. l Entrada secundária: Se a entrada padrão não for executada esta opção habilitará uma segunda entrada. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (13 of 15)28/09/2004 19:53:38 O Processo de Inicialização l Instalação: Opção que define a instalação do Grub. Deve-se preencher o nome do dispositivo (por exemplo, /dev/hda para um disco rígido) e o seu diretório de imagens. A configuração do Grub também pode ser feita diretamente no arquivo /boot/grub/menu.lst. Vejamos agora um exemplo deste arquivo: default 0 timeout 30 foreground ffffff background 000000 splashimage (hd0,0)/boot/grub/grub.xpm.gz title Conectiva Linux kernel (hd0,0)/vmlinuz root=/dev/hda1 Este arquivo contém os parâmetros mais utilizados para a configuração do Grub. Uma explicação breve do arquivo será feita a seguir. A opção default estabelece qual opção deve ser automaticamente selecionada quando o usuário não faz nenhuma seleção no tempo especificado na diretiva timeout. Neste caso, o parâmetro zero (0) indica que a primeira opção é selecionada automaticamente. Juntamente com esta opção, o timeout define (em segundos) o tempo que o Grub espera antes de inicializar automaticamente a opção padrão. A cor do texto é definida pela opção foreground. O parâmetro é um valor hexadecimal representando as cores vermelha, verde e azul[6]. Por exemplo, o valor ff0000 define a cor vermelha. Do mesmo modo, a opção background define a cor de fundo. O caminho da imagem de fundo do Grub é colocado na opção splashimage. A imagem deve ter 14 cores e estar no formato XPM. É possível utilizar-se a imagem compactada com gzip. Se esta imagem não for informada, o Grub entrará em modo texto. A opção title define um texto que aparecerá no menu do Grub para identificar o sistema operacional a ser inicializado, e a opção kernel informa qual o sistema operacional a ser inicializado. No caso do Conectiva Linux, esta opção define o kernel. Você pode passar opções para o kernel normalmente. No exemplo acima, informamos ao kernel que a partição onde se encontra o diretório raiz é o /dev/hda1. Nota: Você pode perceber que o caminho informado do kernel inicia com um valor estranho: (hd0,0). Esta é a notação utilizada pelo Grub para representar discos e partições. O que ela quer dizer é que se trata do primeiro disco rígido (hd0) e da primeira partição (0). Caso sua memória não seja detectada corretamente pelo Grub (durante a inicialização gráfica), basta acrescentar o parâmetro mem=xxxM ao final da linha referente ao kernel no arquivo /boot/grub/menu.lst e reiniciar o seu computador. Substitua xxxM pela quantidade de memória existente no seu computador (não esquecendo de descontar a memória compartilhada com a placa de vídeo, caso sua placa de vídeo seja onboard). Como foi dito anteriormente, o Grub possui uma linha de comando que pode ser utilizada para configurá-lo e inicializar um sistema operacional não configurado no arquivo /boot/grub/menu.lst, ou seja, que não está listado no menu. Para acessá-lo, basta pressionar a tecla e no menu do Grub. Ao pressionar a tecla e, você será levado a uma tela de linha de comando, onde deve utilizar os mesmos comandos (opções) listados no arquivo menu.lst. Você pode usar o comando boot para inicializar um sistemaoperacional após definir, no mínimo, a opção kernel. Observe apenas que, após o comando title, quaisquer comandos serão interpretados como file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (14 of 15)28/09/2004 19:53:38 O Processo de Inicialização comandos de inicialização. Por exemplo, para inicializar um kernel via linha de comando, poderia ser feito o seguinte: Grub> kernel (hd0,0)/boot/vmlinuz root=/dev/hda1 Grub> boot Para que tenhamos outro exemplo, veja como mudar a imagem de fundo do Grub colocando a imagem fundo.xpm e como alterar a cor do texto do menu para verde: Grub> splashimage (hd0,0)/boot/grub/fundo.xpm Grub> foreground 00ff00 Notas [1] Basic Input/Output System ou Sistema Básico de Entrada/Saída. [2] LInux LOader. [3] GRand Unified Bootloader. [4] Terminais burros, acesso via linha discada (modem). [5] Message Of the Day - mensagem do dia. [6] Padrão RGB. Anterior Principal Próxima Gerenciamento de Pacotes Recuperação do Sistema file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/boot.html (15 of 15)28/09/2004 19:53:38 Recuperação do Sistema Entendendo o Conectiva Linux Anterior Próxima Capítulo 11. Recuperação do Sistema Índice Introdução Registro do Sistema Integridade do Sistema de Arquivos Criando um Disco de Recuperação Recuperando a Senha de Superusuário Introdução Para uma administração coerente do Linux é necessário lidar com os dispositivos de armazenamento e as ferramentas utilizadas para garantir a segurança e a integridade dos dados no sistema. Este capítulo mostrará como proceder com estas tarefas de manutenção, salientando o uso de ferramentas que ofereçam as informações necessárias para se avaliar o sistema e para corrigir os eventuais problemas que, porventura, venham a ocorrer. Registro do Sistema Com o intuito de salvaguardar o sistema, o kernel e outros programas geram mensagens para que o administrador possa avaliar o seu funcionamento. Essas mensagens ficam guardadas em /var/log/ e podem ser acessadas em modo texto, bastando que sejam abertas com um editor de textos. O Linuxconf, porém, facilita esta pesquisa, apresentando-as em Estado -> Registros. No Linux, os registros são administrados pelo syslog. O daemon do syslog, syslogd, armazena os registros de diversos aplicativos locais e também de clientes remotos. Avaliando os Registros com o Linuxconf Para ler os registros do sistema no Linuxconf, deve-se acessar Estado -> Registros -> Registros do Sistema, onde ficarão disponíveis todos os registros. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/recuperacao.html (1 of 7)28/09/2004 19:53:43 Recuperação do Sistema Figura 11-1. Registros no Linuxconf Configurando o Syslogd com o Linuxconf A configuração do syslogd pode ser feita através do Linuxconf pelo menu Configuração -> Miscelânea -> Registros do Sistema. Serão mostrados todos os arquivos de registro e, para criar um novo arquivo, clique em Adicionar. Pelo exemplo é possível ver como se define o local aonde as mensagens serão armazenadas, de acordo com seu tipo. Na opção Seleções pode-se definir como e quais mensagens são guardadas no arquivo indicado; esta opção consiste de dois sub-campos, sendo um campo de seleção e um campo de destino. O campo de seleção, por sua vez, consiste de duas partes: serviço e prioridade, separados por um ponto ".". Um serviço especifica o subsistema que produz a mensagem. Por exemplo, todas as mensagens do serviço de impressão utilizam o serviço lpr e todos os registros de programas de e-mail utilizam o serviço mail. Uma prioridade define basicamente a que uma mensagem se destina, ou seja, qual a sua exatidão ou urgência. Ela pode ser apenas uma mensagem de depuração do programa (prioridade debug) ou pode ser uma mensagem de alerta (alert), entre outras prioridades. Além do exposto anteriormente, o syslogd entende as seguintes extensões: um asterisco "*" indica todos os serviços ou todas as prioridades, dependendo de que lado do ponto se encontra. A palavra none significa nenhuma prioridade para o serviço fornecido. Veja a Figura 11-2, que mostra um exemplo de configuração do syslog. É possível ver pelo exemplo, que os serviços e prioridades irão produzir registros a serem guardados no arquivo /var/log/messages. Isto indica que todas as mensagens que são marcadas com a prioridade info serão direcionadas para o arquivo /var/log/messages, porém mensagens marcadas com os serviços mail ou news não serão armazenadas. Após estas configurações, reinicialize o syslogd através do Linuxconf para que suas mudanças sejam efetuadas. Um outro modo de efetuar a configuração do syslog pode ser através do arquivo / etc/syslog.conf. Este arquivo define aonde as mensagens serão armazenadas, de acordo com seu tipo, como foi explicado anteriormente. Linhas em branco ou iniciadas por "#" são ignoradas. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/recuperacao.html (2 of 7)28/09/2004 19:53:43 Recuperação do Sistema Figura 11-2. Destino do syslog Para que o syslogd releia seu arquivo de configuração é necessário enviar um sinal SIGHUP para ele. Para enviar esse sinal execute o comando: # killall -HUP syslogd ou seja, todos os arquivos abertos serão fechados, o arquivo de configuração será lido novamente e o serviço syslog será reinicializado automaticamente. Existem outros sinais que podem ser enviados; a sintaxe básica para enviar um sinal para o servidor syslogd é a seguinte: # kill -SINAL `cat /var/run/syslogd.pid` onde SINAL é um comando que executa uma ação. Verifique a lista dos principais sinais do syslog na página de manual (man syslogd). Uma lista de serviços e prioridades pode também ser encontrada na página de manual do arquivo de configuração do syslog. # man syslog.conf Arquivo de Configuração O arquivo /etc/syslog.conf é utilizado para configurar o syslogd, no qual são especificadas as regras para registrar cada tipo de mensagem, como foi discriminado anteriormente. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/recuperacao.html (3 of 7)28/09/2004 19:53:43 Recuperação do Sistema As regras apresentam dois campos, seleção (selector) e ação (action) - campos que são separados por espaços ou tabulações. O campo seleção apresenta duas partes, facilidade e prioridade, separadas por um ponto, nas quais o campo seleção designa um padrão de facilidades e prioridades pertencentes a uma ação especificada. O campo facilidade informa ao syslog o tipo de aplicativo que originou a mensagem (e- mail, kernel, sistema de impressão, entre outros), e o campo prioridade a importância da mensagem. Este é um exemplo do syslog.conf típico: # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or # higher. Don't log private authentication # messages! *.info;mail.none;authpriv.none /var/log/messages # The authpriv file has restricted access. authpriv.* /var/log/secure # Log all the mail messages in one place. mail.* /var/log/maillog # Everybody gets emergency messages, plus log # them on another machine. *.emerg * # Save mail and news errors of level err and # higher in a special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log local7.* /var/log/boot.log Na configuração do syslog, para armazenar as mensagens em arquivos, o administrador do sistema pode configurá-lo para enviar todas as mensagens para um único arquivo ou dividi-las em vários arquivos, de acordo com a facilidade e prioridade. Ao separar as mensagens desta forma cada arquivo de log será mais coerente, mas o usuário deverá monitorar múltiplos arquivos. Direcionando todasas mensagens para um único arquivo, o administrador possuirá todas as informações em um único local, sendo que este arquivo será muito maior. Existe, também, a possibilidade de direcionar os logs para serem gravados em uma outra máquina, na impressora ou mostrados diretamente no vídeo, ampliando as possibilidades de manutenção e dinamizando o processo. Integridade do Sistema de Arquivos A integridade do sistema de arquivos é uma característica fundamental para o funcionamento adequado do sistema, e a sua verificação envolve o uso de ferramentas específicas, como fsck, o qual verifica o estado do disco rígido e corrige os problemas que porventura ocorram em ocasionais quedas de energia, desligamento acidental do sistema ou outro tipo de problema. Nestes casos, normalmente o fsck costuma corrigir automaticamente os erros na inicialização posterior ao ocorrido, mas existem casos em que esta manutenção terá de ser efetuada manualmente. O fsck O fsck verifica e repara a integridade de um sistema de arquivos do Linux. Pode-se informar tanto o dispositivo a ser analisado como, por exemplo, /dev/hda1, como o ponto de montagem do sistema (por exemplo, /home). O fsck tem a capacidade de verificar simultaneamente sistemas de arquivos que se encontram em discos distintos. A sintaxe básica para o seu uso é a seguinte: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/recuperacao.html (4 of 7)28/09/2004 19:53:43 Recuperação do Sistema # fsck /dev/hda O fsck encontrará as falhas e inconsistências do sistema de arquivos e as reparará, mas o superusuário deverá ter permissões de leitura e escrita para isso, pois, caso contrário, será necessário acrescentar a opção -n para o caso de permissão de somente leitura. Quando ocorrerem inconsistências no sistema de arquivos, o fsck avisará das modificações que deverá fazer, o que, normalmente implicará em perda de dados. A avaliação desta perda está disponível na saída de diagnóstico que o fsck apresentará. A interatividade padrão do fsck está resumida a respostas do tipo sim ou não, mas, dependendo das opções, ele poderá ser ativado em opções não interativas. Consulte as páginas do manual (man fsck) para mais informações. Dica: Recomenda-se utilizar o fsck em partições desmontadas para garantir a integridade do sistema. Em alguns casos o sistema não inicializará, pois, provavelmente, terá arquivos corrompidos. Uma solução para isto é utilizar a opção do linux single (ver detalhes na seção Recuperando a Senha de Superusuário) e disparar o fsck com a opção -v, na qual o programa mostrará todas os problemas e modificações a serem feitas, esperando sempre por uma confirmação do usuário. A sintaxe é: # fsck -v -c /dev/hda1 A opção -c verifica blocos defeituosos do dispositivo. Criando um Disco de Recuperação Figura 11-3. Instalando o Grub em um disco flexível Com o Linuxconf é bastante simples instalar o Grub em um disco flexível e inicializar a máquina com ele. Acesse Configuração - >Inicialização -> Grub -> Instalação e opte por instalá-lo no disco flexível, preenchendo a opção Dispositivo com /dev/fd0. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/recuperacao.html (5 of 7)28/09/2004 19:53:43 Recuperação do Sistema Recuperando a Senha de Superusuário Esquecer a senha de superusuário pode parecer, à primeira vista, um problema sem solução, já que se trata de uma situação extrema. Existe, em contrapartida, um forma de se solucionar este inconveniente. Ao inicializar o computador, na tela de opções do Grub, deve-se selecionar a imagem do sistema operacional para o qual se deseja recuperar a senha e digitar e (edit) duas vezes, que habilitará a edição da linha referente à imagem. No final da linha deve ser inserida a frase init=/bin/ bash, para habilitar o acesso para a linha de comando; em seguida, tecle a letra b (boot). Ao aparecer a linha de comando, digite a seqüência abaixo: # mount -o remount,rw / # passwd root Digite a nova senha aqui e confirme-a # sync # reboot A senha do superusuário foi modificada. No LILO basta que usuário digite, na opção do lilo, uma das seguintes opções: LILO boot: linux single LILO boot: linux emergency Isto fará com que o usuário acesse o sistema sem que seja requerido nenhum tipo de senha. Em contrapartida, essas alternativas poderão deixar o sistema vulnerável a invasões. Note que este tipo de invasão só será possível a alguém que tenha acesso físico à máquina. É muito importante zelar pela segurança física de servidores. Mesmo alguém sem conhecimentos de informática poderia abrir o computador e retirar o disco rígido, levando-o com todos os seus dados confidenciais. Linux single e segurança Para se precaver de uma provável invasão do sistema por um usuário que não tenha a senha de superusuário deve-se tomar as seguintes precauções: Grub l No Linuxconf, edita-se as opções gerais do Grub (Configuração -> Inicialização -> Grub); l Habilita-se uma senha, evitando-se que o grub seja acessado por um usuário sem autorização (Opções gerais -> Senha). LILO l Deve ser feita uma cópia do arquivo de configuração do LILO /etc/lilo.conf; l Deve se incluir, então, as seguintes linhas no mesmo arquivo: file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/recuperacao.html (6 of 7)28/09/2004 19:53:43 Recuperação do Sistema restricted password=12345 Essa inserção deve ser feita logo após a linha que indica a imagem, algo como: image=/boot/vmlinuz-2.4.20-26373cl l Agora basta atualizar o LILO: # lilo O linux single estará desativado em ambas as opções. Para recuperar a senha e poder utilizá-la basta acessar como um usuário comum (ou delegar esta tarefa para um usuário de extrema confiança) e acessar a opção no Linuxconf ou digitar: $ cat /etc/lilo.conf A senha do linux single estará no campo Senha, no caso do Grub, ou na linha "password:", no caso do LILO. Anterior Principal Próxima O Processo de Inicialização O Kernel file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/recuperacao.html (7 of 7)28/09/2004 19:53:43 O Kernel Entendendo o Conectiva Linux Anterior Próxima Capítulo 12. O Kernel Índice Kernel e Arquivos Auxiliares Atualizando o Kernel do Sistema Módulos do Kernel O kernel é o "coração" do sistema operacional, e é uma das partes do sistema que mais recebe atenção por parte dos desenvolvedores, evoluindo constantemente. A cada nova versão do kernel mais recursos são incorporados, defeitos corrigidos, e constantemente recursos existentes são aprimorados tornando-se mais eficientes. Logo o administrador do sistema, além de conhecer o kernel, deve procurar se manter informado sobre o seu desenvolvimento, e se necessário atualizar o kernel do sistema sob sua responsabilidade. Este capítulo mostrará como atualizar o kernel de seu sistema, e apresentará um importante recurso do kernel: o uso de módulos. Kernel e Arquivos Auxiliares O kernel do sistema se localiza no diretório /boot, juntamente com outros arquivos necessários para a inicialização do sistema. Dentro deste diretório se destacam os seguintes arquivos. vmlinuz Este é o arquivo que contém a imagem do kernel propriamente dito, compactada, que será expandida diretamente na memória e executada. É possível encontrar esse arquivo na forma não compactada também, quando recebe o nome de vmlinux. Usualmente ao nome do arquivo se acrescenta um número indicado a versão do kernel, como por exemplo vmlinuz-2.4.20- 26373cl, e utiliza-se o arquivo vmlinuz como um link simbólico para este. System.map Este arquivo contém uma lista de símbolos do kernel para serem utilizadas pelos módulos. De maneira análoga ao arquivo vmlinuz, ele é um link simbólico para o arquivo System.map- xxx, onde o xxx é a versão do kernel. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/kernel.html(1 of 7)28/09/2004 19:53:46 O Kernel modules-info O arquivo modules-info contém uma lista com os módulos que podem ser utilizados pelo kernel, bem como alguns detalhes destes. Novamente este arquivo segue a mesma convenção dos outros dois arquivos listados, ou seja, usualmente ele é um link simbólico para o arquivo contendo a versão correta do kernel. initrd-x.x.x.img Este arquivo contém uma imagem a ser expandida na memória juntamente com o kernel contendo os módulos necessários para que o kernel possa montar o dispositivo e o sistema de arquivos da partição "root", e a partir daí prosseguir a carga do sistema. Este arquivo é específico para cada versão do kernel e deve ser gerado pelo administrador com o comando mkinitrd. Diretório grub Dentro deste diretório estão os arquivos do gerenciador de inicialização Grub. Veja mais sobre o Grub no Capítulo 10. memtest86 Este arquivo contém um pequeno aplicativo que funciona independente do resto do sistema e pode ser utilizado para se testar os pentes de memória do sistema. Se o sistema utiliza o gerenciador de inicialização LILO, os seus arquivos também se localizarão no diretório /boot. Veja mais sobre o LILO no Capítulo 10. Nota: É possível manter várias versões do kernel no sistema e selecionar qual será utilizado durante o processo de carga do sistema. É uma boa prática manter a versão mais antiga ao se atualizar o kernel, pois se algo não funcionar como deveria é possível voltar facilmente à versão anterior. Atualizando o Kernel do Sistema O administrador pode atualizar o kernel de duas formas: baixando e compilando a fonte do kernel ou através da instalação de pacotes RPM da distribuição. A primeira forma de atualização é recomendada apenas para administradores experientes e é consideravelmente mais complexa, portanto não será explicada aqui[1]. A atualização através de pacotes RPM usualmente envolve três passos: obter os pacotes, instalá-los e configurar o gerenciador de inicialização para carregar o novo kernel durante a inicialização. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/kernel.html (2 of 7)28/09/2004 19:53:46 O Kernel A obtenção do pacote RPM e sua instalação pode ser efetuada facilmente utilizando o Synaptic ou ainda alguma das outras formas descritas no Capítulo 9 . Será necessário escolher qual kernel melhor se adapta às suas necessidades. Os pacotes com nome kernel-smp-x.x.x se destinam à máquinas multiprocessadas, pacotes com o o nome kernel-enterprise-x.x.x se destinam à máquinas servidoras com necessidades especiais (suporte à sistemas de arquivos muito grandes, quantidade de memória RAM até 4GB) e os pacotes com nome kernel-x.x.x onde x.x.x é a versão, contém um kernel para uso geral[2]. Observe também a arquitetura para o qual o kernel foi compilado. Pacotes contendo "i386" podem ser utilizados em qualquer computador PC, os pacotes contendo "i586" se destinam a computadores pentium ou com processadores AMD K6-2 e pacotes contendo "i686" devem ser utilizados em computadores com processadores Pentium II e superiores. Após a instalação do pacote RPM será necessário gerar um arquivo initrd para o kernel instalado. Durante o processo de boot o kernel pode não ter todos os módulos necessários para se acessar os dispositivos contendo o sistema de arquivos raiz do sistema, assim juntamente com o kernel o gerenciador de inicialização carrega na memória do computador o arquivo initrd contendo todos os módulos que o kernel precisa para continuar a carga do sistema. Como o arquivo initrd contém os módulos para uma versão apenas de kernel, é necessário que se tenha um arquivo para cada kernel instalado no sistema. Gerar um arquivo initrd é bastante simples. Abra um terminal, vá para o diretório /boot e utilize o comando mkinitrd para gerar o arquivo, como no exemplo abaixo: # mkinitrd initrd-x.x.x.img x.x.x Onde o x.x.x é a versão do kernel. Após a geração deste arquivo basta apenas configurar o gerenciador de inicialização de sua escolha para carregar o novo kernel durante a inicialização do sistema. Diferente de outros sistemas operacionais, a atualização do kernel é a única operação de atualização do sistema onde é necessário reiniciar o computador. Consulte o Capítulo 10 para obter mais informações sobre a configuração do gerenciador de inicialização. Módulos do Kernel O uso de módulos pelo kernel é um recurso poderoso e prático, que permite que novas funcionalidades sejam acrescentadas ao kernel, sem que seja necessário recompilá-lo. Entendendo os Módulos do Kernel Como visto anteriormente no Capítulo 12, é o kernel que interage diretamente com o hardware e com o sistema de arquivos, e para que ele suporte este ou aquele dispositivo é necessário que, ou o kernel tenha sido compilado com o código que suporte este dispositivo, ou se use um módulo, que é um componente do kernel que pode ser vinculado ou desvinculado dinamicamente ao kernel após o boot sem que haja a file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/kernel.html (3 of 7)28/09/2004 19:53:46 O Kernel necessidade de recompilar o kernel. O uso de módulos permite que se mantenha um kernel pequeno, mas que se tenha a funcionalidade necessária quando for preciso. Por exemplo, suponha que eventualmente seja necessário acessar arquivos em uma partição do tipo FAT32. Ao invés de compilar um kernel com suporte a este sistema de arquivos, basta carregar o módulo apropriado no kernel. De certa forma, os módulos são o equivalente do Linux aos drivers de outros sistemas operacionais, com a vantagem de que não é necessário reiniciar o sistema cada vez que um módulo é adicionando ou retirado do kernel. Localizando os módulos no Linux O kernel do Linux já vem com diversos módulos para os mais diversos periféricos, sistemas de arquivos e protocolos de rede. Os módulos são arquivos com extensão ".o" e se localizam no diretório /lib/ modules/2.xx.xx/, onde "xx.xx" é a versão do kernel em uso. O diretório onde se encontram os módulos está divido em subdiretórios de acordo com os tipos de módulos, como por exemplo, net para módulos de rede, fs para os módulos de sistemas de arquivos, e assim por diante. Os módulos referentes às placas de vídeo não se encontram no diretório acima. Como visto na seção sobre o XFree, o ambiente gráfico não é responsabilidade do kernel, logo, o suporte às placas gráficas é feito pelo XFree. O kernel apenas provê suporte ao barramentos AGP e PCI. Instalando Módulos A instalação de um módulo pode ser efetuada de várias maneiras, dependendo do tipo do módulo a ser instalado. Usualmente os passos necessários são: 1. copiar o arquivo do módulo para o diretório apropriado. 2. executar o comando depmod -a, para que o sistema verifique se este módulo depende de algum outro. 3. carregar o módulo no kernel. 4. incluir a carga do módulo nos arquivos de inicialização do sistema. Caso o kernel utilizado não possua o módulo necessário à função que se deseja adicionar será necessário copiar o arquivo ".o" requisitado (fornecido pelo fabricante de um dispositivo, por exemplo) para o subdiretório apropriado dentro do diretório /lib/modules/2.xx.xx/. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/kernel.html (4 of 7)28/09/2004 19:53:46 O Kernel Ao se adicionar um novo módulo ao diretório de módulos, é necessário executar o comando depmod para que o sistema atualize a sua lista de módulos, e a dependências desses módulos. Para carregar o módulo no kernel será necessário utilizar o comando insmod que será visto em mais detalhes na seção Utilizando e Configurando Módulos. Caso o módulo não seja carregado automaticamente ao se iniciar o sistema será necessário incluir o comando de carga do módulo em um arquivo de inicialização. Módulos de placa de rede, por exemplo, são automaticamente carregados pelo Linux quando configurado pelo Linuxconf.O comando para carga automática do módulo pode ser colocado no arquivo /etc/rc.d/rc.local. Utilizando e Configurando Módulos Os comandos utilizados para listar, carregar ou remover os módulos carregados no kernel são lsmod, insmod e rmmod respectivamente. O comando lsmod lista os módulos atualmente carregados no kernel, mostrando também informações como o tamanho do módulo e utilização. Para carregar um módulo na memória basta usar o comando insmod como no exemplo abaixo: # insmod ipx.o # lsmod Module Size Used by ipx 12736 0 (unused) Alguns módulos exigem parâmetros adicionais, que devem ser passados na linha de comando de inserção do módulo. Uma placa de rede, por exemplo, pode precisar da IRQ na qual está instalada, caso o Linux não consiga detectá-la automaticamente. Cada módulo pode exigir parâmetros diferentes, mas de forma geral o formato para a passagem de parâmetros é: insmod módulo parâmetro=valor Em alguns casos, um módulo pode precisar que algum outro módulo esteja carregado. Nesse caso pode ser bastante útil o uso do comando modprobe, que funciona de maneira semelhante ao comando insmod, mas é capaz de resolver problemas de dependências de outros módulos automaticamente. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/kernel.html (5 of 7)28/09/2004 19:53:46 O Kernel Caso não se deseje mais utilizar um determinado módulo, pode-se descarregá-lo liberando assim a memória que ele está ocupando. Para descarregar um módulo basta usar o comando rmmod, como no exemplo abaixo: # rmmod ipx Lista de módulos do Conectiva Linux O Conectiva Linux traz uma grande quantidade de módulos, logo não é possível aqui descrever cada um deles. No entanto é possível ter uma breve descrição de cada módulo usando-se o comando modinfo -d. É possível também obter a lista de parâmetros aceitos pelo módulo usando-se o parâmetro -p. Exemplo: # modinfo -d sis900.o SiS 900 PCI Fast Ethernet driver # modinfo -p sis900.o multicast_filter_limit int max_interrupt_work int debug int No exemplo acima, ao lado de cada parâmetro aceito pelo módulo, está o tipo de valor esperado. O diretório que contém os módulos está dividido em subdiretórios, de acordo com o tipo de módulo: kernel/drivers/block Módulos para dispositivos de bloco como RAID e drives de fita. kernel/fs Módulos para acesso à sistemas de arquivos, como o fat, ext2 e ext3. misc "Miscelânea" de módulos, que não se encaixaram em nenhuma das categorias predefinidas. Por exemplo, drivers alternativos de som. kernel/drivers/pcmcia file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/kernel.html (6 of 7)28/09/2004 19:53:46 O Kernel Módulos para dispositivos PCMCIA, usados principalmente em notebooks. kernel/drivers/usb Módulos para dispositivos do tipo USB, como teclados, mouses e joysticks. kernel/drivers/cdrom Módulos para dispositivos de CD-ROM não compatíveis com o padrão IDE. kernel/net/ipv4 Módulos de funções de pacotes IP versão 4, como mascaramento de IP. kernel/drivers/net Módulos de dispositivos de rede, como placas de redes, suporte a PPP e SLIP. kernel/drivers/scsi Módulos para dispositivos SCSI, como placas controladoras. kernel/drivers/video Módulos especiais requeridos por algumas placas de captura de vídeo. Notas [1] Para saber mais sobre essa forma de atualização do kernel, consulte o documento Como Fazer e o site do Kernel (http://www.kernel.org). [2] Os pacotes com nome kernel-pcmcia não contém o kernel, mas sim utilitários de suporte a PCMCIA e podem ser úteis para sistemas instalados em notebooks Anterior Principal Próxima Recuperação do Sistema Dicas Para a Administração file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/kernel.html (7 of 7)28/09/2004 19:53:46 Dicas Para a Administração Entendendo o Conectiva Linux Anterior Próxima Capítulo 13. Dicas Para a Administração Índice Consultas a Registros do Sistema A importância do Backup Verificação do Disco Rígido Permissões de Usuários e Arquivos Segurança do Sistema Isolando os Problemas Em Caso de Problemas, Procure Ajuda Todos os administradores de sistemas possuem vícios particulares. Cada um é individualizado e único em sua forma de trabalhar, mas há algumas diretivas que muitos seguem ou que contribuiriam para que estes fossem melhores administradores. Este capítulo enfatizará alguns problemas que um administrador de sistemas Linux pode encontrar, e quais são as formas mais simples de resolver tais problemas no Conectiva Linux, além de mostrar algumas atividades importantes que devem ser executadas pelos administradores. Consultas a Registros do Sistema Uma das principais atividades de um administrador é consultar aos arquivos de registro, também chamados de logs. Estes arquivos contêm informações sobre desempenho e utilização do sistema, além de ser a melhor maneira de se descobrir como uma máquina está se comportando no dia-a-dia. Se algum erro está ocorrendo, os arquivos de registro irão descrevê-lo. Muitos programas instalados no servidor (inclusive o kernel) produzem mensagens, alertas, avisos e registros dos eventos ocorridos no sistema. Estas mensagens são guardadas e separadas em arquivos distintos por um programa chamado syslog. Elas ficam guardadas no disco rígido de uma forma organizada, por nível de importância e também de origem. Uma forma de evitar e solucionar problemas que ocorrem no sistema é verificar rotineiramente os arquivos de log, encontrados no diretório /var/log/ (no Conectiva Linux). Este arquivos informam a data, a hora, o usuário, o que aconteceu e demais informações relativas a um processo. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/como-trabalham.html (1 of 7)28/09/2004 19:53:50 Dicas Para a Administração Esta verificação dos arquivos de log pode ser automatizada, e em caso de algum alerta ou aviso específico, o administrador do servidor deve ser informado por e-mail. O programa ideal para estas atividades que se repetem com uma certa freqüência de tempo é o cron; ele pode também agendar a tarefa de apagar arquivos de log que atingem um tamanho muito grande, ou apagar arquivos temporários antigos. Estes assuntos foram amplamente discutidos no guia. No Capítulo 5, discutiu-se sobre os serviços de agendamento de tarefas e no Capítulo 11 sobre os arquivos de registro para a manutenção do sistema. Verifique estes capítulos e faça as devidas configurações se necessário. A importância do Backup Outro controle que se deve ter em mente é o controle sobre os programas instalados. Tudo aquilo que foi instalado, configurado, modificado, atualizado e removido do sistema deve ser gerenciado pelo administrador. Deve-se guardar arquivos de configuração e estruturas de diretórios, anotar os serviços do sistema que precisam ser inicializados, fazer cópias e sempre atualizá-las em um lugar exclusivo para isto. Esta atividade é chamada de backup ou cópia de segurança. Assim, sempre que precisar atualizar ou trocar o sistema, tudo estará disponível, bastando fazer cópias desses dados para o seu local de origem. Uma outra utilidade do backup diz respeito às falhas no sistema: se o computador for danificado, seja na questão de software ou hardware, um backup à mão salvará o sistema. Observe na seqüência abaixo um exemplo fictício de backup bastante simples. 1. Monte o diretório /home em uma partição separada. 2. Crie um diretório com o nome de /home/restaura. 3. Dentro deste diretório crie um outro diretório chamado /home/restaura/etc. 4. Copie do diretório /etc do sistema, todos os arquivos que você precisou modificar, para o diretório /home/restaura/etc. 5. Caso precise reinstalar o sistema, após a instalação, copie o conteúdo do diretório /home/ restaura/etc para o /etc do sistema. 6. Reinicialize o sistema e verifique se suas configurações anterioresforam restauradas. É importante verificar os programas que estão sendo inicializados juntamente com o sistema, e isto pode file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/como-trabalham.html (2 of 7)28/09/2004 19:53:50 Dicas Para a Administração ser feito através do Linuxconf (verifique Capítulo 10 para mais detalhes). Isto é importante para verificar quais serviços são realmente essenciais e desabilitar quais são desnecessários, e também melhorar a segurança e a performance do sistema, bem como a utilização de memória. Verificação do Disco Rígido Ao se formatar um disco ou partição, deve-se sempre fazer a verificação de blocos ruins, pois caso existam setores físicos danificados no disco, eles serão isolados, impedindo que dados sejam gravados nesta região do disco. Isto é uma forma de prevenção: se estes setores estiverem habilitados para gravação e dados forem armazenados ali, possivelmente serão perdidos. Além disso, separe as partições de forma que você possa sempre ter uma ou mais livres, podendo usá-las para cópias de segurança, testes e futuras expansões. Também é importante separar os dados de usuários dos dados do sistema, pois caso o sistema seja substituído, será possível manter os dados dos usuários no novo sistema. Não havendo dados de usuários entre os dados do sistema, a tarefa de administração não será prejudicada em razão da desorganização dos arquivos. É importante também utilizar sistemas de arquivos atualizados nos discos, pois sistemas mais novos contam com uma performance, administração e recursos superiores. Ferramentas para manutenção de sistemas de arquivos antigos não devem ser utilizadas em sistemas mais novos (mesmo porque existem ferramentas novas): elas podem prejudicar o nome dos arquivos e alterar as suas propriedades a ponto de o sistema não funcionar mais. Um arquivo importante que deve ser lembrado durante a tarefa de montagem dos sistemas de arquivos existentes é o arquivo /etc/fstab. Assim, sempre que o sistema reinicializar, todos os diretórios contidos neste arquivo serão automaticamente montados. Programas que dependem de dados remotos para funcionar (montados de uma rede, por exemplo) não apresentarão problemas no funcionamento. Sempre que montagens forem efetuadas manualmente através do comando mount, você precisará indicar apenas o diretório ou o dispositivo a ser montado. Além de verificar os blocos ruins dos discos no momento da formatação, também é recomendável fazer esta verificação periodicamente. Através do comando badblocks, é possível a criação de uma lista com os números dos blocos defeituosos que forem encontrados. Podemos, com isso, orientar o programa fsck a marcar estes blocos como defeituosos, para não serem usados futuramente na gravação de dados. Verifique os passos abaixo, que mostram como verificar os blocos defeituosos de um disquete que contém o sistema de arquivos ext3: 1. Insira um disquete no dispositivo e execute o seguinte comando: # badblocks /dev/fd0 1440 > blocos-ruins file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/como-trabalham.html (3 of 7)28/09/2004 19:53:50 Dicas Para a Administração 2. Execute o comando fsck usando a lista de blocos ruins criada no arquivo blocos-ruins, da seguinte forma: # fsck -t ext3 -l blocos-ruins /dev/fd0 Caso existam dados gravados em um bloco defeituoso, o programa tentará mover estes dados para um outro local. Se for um problema físico do disco, estes dados poderão estar corrompidos e sem possibilidade de recuperação. Em um sistema de arquivos ext3, os dados de um arquivo são gravados de uma maneira que não fiquem fora de seqüência, ou muito distantes um dos outros. Isto evita a fragmentação de arquivos, que pode deixar o sistema de arquivos desorganizado e lento. Em outros sistemas de arquivos que não conseguem gravar de uma forma otimizada os dados, existem ferramentas para corrigir esta deficiência. É recomendável utilizar estas ferramentas periodicamente, caso você tenha de usar outros sistemas de arquivos, caso contrário opte em não usá-los. Além da questão da integridade do sistema de arquivos, uma outra questão importante a ser abordada é o espaço de cada área de trabalho do usuário. Muitas vezes, esta área excede o limite esperado, atrapalhando tarefas de outros usuários. Para evitar isso, pode-se criar um sistema de quotas, o que configura uma área com um certo tamanho para cada um dos usuários. Estes temas podem ser vistos com mais detalhes no Capítulo 4 e Capítulo 11. Permissões de Usuários e Arquivos Um sistema que contenha muitos usuários requer atenção dobrada. Usuários inexperientes, que tenham acesso a arquivos importantes, podem prejudicar o sistema. O primeiro passo para evitar isso é verificar a permissão de cada usuário do sistema, permitindo assim que cada um tenha a sua área, não tendo acesso a arquivos de outros usuários ou acesso a arquivos essenciais do sistema. Além da configuração das permissões dos usuários, é importante verificar as permissões dos arquivos e serviços. Muitas vezes, arquivos importantes são deixados com permissões de leitura, escrita e execução, o que deixa de ser erro do usuário e passa a ser erro do administrador. Portanto, essa verificação de permissões de arquivos deve ser feita para evitar que danos futuros possam ser causados no sistema. O sistema de permissões de usuários é explicado detalhadamente no Capítulo 3. Segurança do Sistema file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/como-trabalham.html (4 of 7)28/09/2004 19:53:50 Dicas Para a Administração Atualmente, um bom administrador deve ter conhecimento do sistema em que trabalha, e sobretudo deve protegê-lo de possíveis ataques ao seu sistema. Em razão da expansão da indústria e da Internet, manter uma rede de computadores sem um sistema eficiente de proteção é um primeiro passo para evitar acessos indesejáveis. Lembre-se também de que o fato de o sistema estar configurado para oferecer uma boa proteção não implica necessariamente que o sistema esteja seguro, pois isto depende também de ações tomadas pela administração e pelos usuários, na verificação constante do sistema e das tentativas de violação da segurança do sistema. Alguns procedimentos podem ser tomados para evitar que isto ocorra: Construção de um firewall É um conjunto de componentes (hardware e software) que restringe o acessos entre as máquinas em uma rede local e a Internet, ou entre redes internas. Ele tem como função proteger a rede (ou um sistema) de quaisquer tentativas de violação por parte de pessoas não autorizadas, sendo que estas tentativas geralmente ocorrem através de conexões pela Internet. É o meio mais comum de se configurar a segurança em um sistema Linux. Filtragem de serviços Para verificar se alguns serviços são realmente necessários, como por exemplos serviços que utilizam rede (Gopher, Telnet, FTP). Isto faz com que portas de acesso à rede permaneçam abertas, sem utilização, deixando passagem para invasores. É importante verificar se os usuários estão utilizando estes serviços, e se não estiverem, "fechar" as portas abertas. Outra questão é que um serviço só pode ser acessado por um usuário se este estiver autorizado pelas regras de filtragem. Caso o usuário deseje utilizar um novo serviço que não esteja cadastrado, terá de solicitar autorização para que possa utilizar este serviço. Na verdade, não é um serviço que é filtrado, mas, sim, a porta que ele utiliza. Informação e Atualização É sempre recomendável ter as últimas versões dos pacotes de segurança em seu sistema; isso faz com que falhas detectadas em versões anteriores deixem de existir. Procure também manter-se informado sobre as últimas novidades em termos de segurança em redes. Existem milhares de newsgroups e listas de discussão sobre o assunto. É bom também ter conhecimentos das falhas detectadas em sistemase os métodos utilizados para contorná-las, bem como os meios utilizados por invasores para quebrar a segurança de redes. Monitoramento Constante file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/como-trabalham.html (5 of 7)28/09/2004 19:53:50 Dicas Para a Administração Não basta apenas configurar um firewall para a rede e deixar que ele se encarregue do serviço de segurança da rede. É necessário monitoramento constante a fim de observar todo o tráfego de pacotes pelo sistema; com isso, determina-se se o sistema está funcionando corretamente e se houve tentativas de operações ilegais ou mesmo dados mal interpretados pelo sistema. Usuários Conscientizados Os usuários comuns podem colaborar em muito na questão da segurança. Às vezes, por falta de conhecimento dos dispositivos de segurança, eles podem cometer algumas falhas primárias, que sem querer podem comprometer os esforços realizados. Um exemplo básico é a escolha de senhas para usuários; geralmente são escolhidas senhas simples e fáceis de serem identificadas, utilizando nomes, números como data de nascimento ou endereços, que são senhas de fácil identificação. A conscientização dos usuários pode ser uma atividade que pode melhorar os níveis de segurança do sistema. Isolando os Problemas A maioria dos problemas encontrados em um sistema são apenas conseqüências do verdadeiro motivo que os tornou aparentes. Outros porém podem ser isolados e resolvidos sem uma ordem lógica, mas através de uma escala de prioridades. A capacidade de saber o verdadeiro motivo de um problema e não apenas observar as suas conseqüências é o que torna o administrador de sistemas mais completo. Antes de procurar problemas, reveja todo o planejamento da rede ou do sistema, procurando as possíveis falhas. Isso poderá auxiliar na procura do problema, de um modo mais específico. Isole os problemas, verifique o sistema como um todo, estabeleça uma escala de prioridades, marque um dia e um horário para resolvê-los, simule a operação em outro computador e verifique quanto tempo será necessário, e por fim essencialmente, em qualquer mudança avise todos os usuários. Em Caso de Problemas, Procure Ajuda A comunidade Linux disponibiliza informação das mais diferentes formas. Existem milhares de sites com apostilas e informações de quase praticamente todos os tópicos. Além disso, o próprio sistema dispõe de algum material didático, como por exemplo páginas de manual e info. Estes são os principais canais de comunicação e documentação: l Projeto LDP-BR e Projeto LDP : dois links importantes, sendo que o primeiro trata do projeto LDP[1] em âmbito nacional, com documentação em português sobre os mais diversos assuntos. É um esforço para produzir ou traduzir documentação para a língua portuguesa. O segundo projeto engloba todo o esforço mundial, sendo que a documentação está em inglês. Se você tiver algum file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/como-trabalham.html (6 of 7)28/09/2004 19:53:50 Dicas Para a Administração problema, vale a pena dar uma olhada nestas páginas. l Newsgroups: são canais de discussão de dúvidas sobre os mais diversos assuntos. Alguns newsgroups interessantes são: comp.os.linux, comp.os.linux.networking e comp.os.linux.security, todos em inglês. l Páginas de manual e Info: páginas sobre o comando relacionado. Basta digitar man seguido do nome do comando. Páginas Info são acionadas do mesmo modo, mas podem trazer mais informações e uma interface mais agradável. Notas [1] Linux Documentation Project. Anterior Principal Próxima O Kernel Licença de Livre Publicação file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/como-trabalham.html (7 of 7)28/09/2004 19:53:50 Licença de Livre Publicação Entendendo o Conectiva Linux Anterior Próxima Apêndice A. Licença de Livre Publicação Esta é uma tradução não-oficial da Open Publication License versão 1.0, de 8 de junho de 1999, e não é substituto legal para a Licença original, disponível em http://www.opencontent.org/openpub. Entretanto, esta tradução poderá auxiliar pessoas que falem português a entender melhor a licença Openpub. É permitido a qualquer pessoa copiar e distribuir cópias desse documento de licença, desde que sem a implementação de qualquer mudança. OPEN PUBLIC LICENSE Draft v1.0, 8 june 1999 Requisitos comuns às versões Os trabalhos protegidos pela Licença de Livre Publicação (Open Publication License) podem ser reproduzidos e distribuídos no todo ou em parte, em qualquer meio físico ou eletrônico, desde que os termos desta licença estejam incluídos, e que esta licença ou uma incorporação dela por referência (com quaisquer das opções escolhidas pelo autor ou editor) estejam presentes na reprodução. A forma apropriada para uma incorporação por referência deste livro é: Copyright(c) (2001) Conectiva, S.A. Este material somente poderá ser distribuído se sujeito aos termos e condições firmados na Licença de Livre Publicação (Open Publication License), versão X.Y ou superior (a versão mais atual encontra-se disponível em http://www.opencontent.org/openpub/ Esta referência, devidamente preenchida com os dados da publicação, deve ser seguida imediatamente com quaisquer opções escolhidas pelos autores ou editor do documento (consultar a seção Termos opcionais). É permitida a redistribuição comercial de material licenciado pela Licença de Livre Publicação (Open Publication License). Qualquer publicação no formato livro padrão (papel) requer obrigatoriamente a citação dos autores e file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/openpub.html (1 of 4)28/09/2004 19:53:51 Licença de Livre Publicação editor originais. Os nomes dos autores e do editor devem aparecer em todas as superfícies externas do livro. Em todas as faces externas do livro, o nome do editor original deve estar impresso em tamanho tão grande quanto o título do trabalho, e citado como proprietário em relação àquele título. Copyright O copyright de todo trabalho protegido pela Licença de Livre Publicação (Open Publication License) pertence aos autores ou proprietários. Escopo desta licença Os termos de licença a seguir aplicam-se a todos os trabalhos protegidos pela Licença de Livre Publicação (Open Publication License), a não ser que explicitamente indicado no trabalho. A mera adição de trabalhos protegidos pela Licença de Livre Publicação (Open Publication License) ou partes de trabalhos protegidos pela Licença de Livre Publicação (Open Publication License) em uma mesma mídia que contenha outros trabalhos ou programas não protegidos por essa licença não decorre em aplicação da Licença de Livre Publicação (Open Publication License) para esses outros trabalhos. O trabalho resultante deve explicitamente conter uma nota especificando a inclusão do material protegido pela Licença de Livre Publicação (Open Publication License) e o aviso de copyright apropriado. APLICABILIDADE. Se alguma parte desta licença não puder ser aplicada em alguma jurisdição, as partes restantes deste documento continuam sendo aplicadas. AUSÊNCIA DE GARANTIA. Os trabalhos protegidos pela Licença de Livre Publicação (Open Publication License) são fornecidos "como estão", sem garantias de qualquer tipo, explícita ou implícita, incluindo, mas não limitado a, as garantias implícitas de comercialização e conveniência para um propósito particular, ou garantia de não-infração. Requisitos para trabalhos modificados Todas as versões modificadas de documentos cobertos por esta licença, incluindo traduções, antologias, compilações e documentação parcial, deve seguir os requisitos abaixo: 1. A versão modificada deve ser indicada como tal. 2. As pessoas que fizerem as modificações e as datas de modificação devem ser identificadas. 3. O reconhecimento dos autores e editor originais (se aplicável)deve ser mantido de acordo com as práticas acadêmicas usuais de citação. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/openpub.html (2 of 4)28/09/2004 19:53:51 Licença de Livre Publicação 4. O local da versão não-modificada do documento deve ser indicado. 5. Os nomes originais dos autores não devem ser utilizados para indicar ou garantir seu endosso ao documento resultante sem a autorização expressa dos autores. Práticas recomendadas Em adição aos requisitos desta licença, é solicitado e extremamente recomendado aos redistribuidores que: 1. Se os trabalhos protegidos pela Licença de Livre Publicação (Open Publication License) estiverem sendo distribuídos em impressos ou CD-ROM, os autores sejam informados por email, ao menos trinta dias antes, para que os autores tenham tempo de providenciar documentação atualizada. Esta notificação deve descrever as modificaçoes introduzidas no documento, se existirem. 2. Todas as modificações substanciais (incluindo exclusões) devem ser marcadas claramente no documento, ou então descritas em um anexo ao documento. 3. Finalmente, mesmo não sendo obrigatório sob esta licença, é considerado de bom tom oferecer uma cópia sem ônus de todo o material modificado (impresso e CD-ROM) para os autores originais. Termos opcionais Os autores e editores de documentos protegidos pela Licença de Livre Publicação (Open Publication License) podem escolher certas opções de licença simplesmente incluindo alguns parágrafos após a cópia da licença ou sua referência. Estas opções são consideradas parte da licença e devem ser incluídas com ela (ou com a referência a ela) nos trabalhos derivados. As opções que se aplicam a este trabalho são: A:É vedada a distribuição de versões com modificações substanciais deste documento sem a expressa permissão dos proprietários do direito autoral. B:É vedada a distribuição deste trabalho ou qualquer derivado seu em qualquer formato de livro padrão (papel) sem a prévia autorização dos proprietários do direito autoral. Políticas de Publicações Livres file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/openpub.html (3 of 4)28/09/2004 19:53:51 Licença de Livre Publicação (O texto a seguir não é considerado parte da licença.) Os trabalhos protegidos pela Licença de Livre Publicação (Open Publication License) estão disponíveis e podem ser acessados na home page da Open Publication . Os autores de trabalhos protegidos pela Licença de Livre Publicação (Open Publication License) podem incluir suas próprias licenças nesses trabalhos, desde que os termos dessa licença não sejam mais restritrivos que os da Licença de Livre Publicação (Open Publication License). Em caso de dúvidas sobre a Licença de Livre Publicação (Open Publication License), contactar David Wiley <dw2@opencontent.org> ou a lista de autores de publicações <opal@opencontent. org> via email. Para se inscrever na lista de autores de publicações livres (Open Publication Author's List), mande um email para <opal-request@opencontent.org> com a palavra subscribe no corpo da mensagem. Para enviar mensagens para a lista de autores de publicações livres (Open Publication Author's List), mande um email para opal@opencontent.org ou simplesmente responda a uma mensagem postada. Para se desinscrever na lista de autores de publicações livres (Open Publication Author's List), mande um email para opal-request@opencontent.org com a palavra unsubscribe no corpo da mensagem. Anterior Principal Próxima Dicas Para a Administração Licença Pública Geral GNU file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/openpub.html (4 of 4)28/09/2004 19:53:51 Licença Pública Geral GNU Entendendo o Conectiva Linux Anterior Principal Apêndice B. Licença Pública Geral GNU GNU GENERAL PUBLIC LICENSE Version 2, June 1991 This is an unofficial translation of the GNU General Public License into Portuguese. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL -- only the original English text of the GNU GPL does that. However, we hope that this translation will help Portuguese speakers understand the GNU GPL better. Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA É permitido a qualquer pessoa copiar e distribuir cópias desse documento de licença, sem a implementação de qualquer mudança. Introdução As licenças de muitos softwares são desenvolvidas para cercear a liberdade de uso, compartilhamento e mudanças. A GNU Licença Pública Geral, ao contrário, pretende garantir a liberdade de compartilhar e alterar softwares de livre distribuição - tornando-os de livre distribuição também para quaisquer usuários. A Licença Pública Geral aplica-se à maioria dos softwares da Free Software Foundation e a qualquer autor que esteja de acordo com suas normas em utilizá-la (alguns softwares da FSF são cobertos pela GNU Library General Public License). Quando nos referimos a softwares de livre distribuição, referimo-nos à liberdade e não ao preço. Nossa Licença Pública Geral foi criada para garantir a liberdade de distribuição de cópias de softwares de livre distribuição (e cobrar por isso caso seja do interesse do distribuidor), o qual recebeu os códigos-fonte, que pode ser alterado ou utilizado em parte em novos programas. Para assegurar os direitos dos desenvolvedores, algumas restrições são feitas, proibindo a todas as pessoas a negação desses direitos ou a solicitação de sua abdicação. Essas restrições aplicam-se ainda a certas responsabilidades sobre a distribuição ou modificação do software. Por exemplo, ao se distribuir cópias de determinado programa, por uma taxa determinada ou gratuitamente, deve-se informar sobre todos os direitos incidentes sobre aquele programa, assegurando- file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/gpl.html (1 of 7)28/09/2004 19:53:52 Licença Pública Geral GNU se que os fontes estejam disponíveis assim como a Licença Pública Geral GNU. A proteção dos direitos envolve dois passos: (1) copyright do software e (2) licença que dá permissão legal para cópia, distribuição e/ou modificação do software. Ainda para a proteção da FSF e do autor, é importante que todos entendam que não há garantias para softwares de livre distribuição. Caso o software seja modificado por alguém e passado adiante, este software não mais refletirá o trabalho original do autor não podendo portanto ser garantido por aquele. Finalmente, qualquer programa de livre distribuição é constantemente ameaçado pelas patentes de softwares. Buscamos evitar o perigo de que distribuidores destes programas obtenham patentes individuais, tornado-se seus donos efetivos. Para evitar isso foram feitas declarações expressas de que qualquer solicitação de patente deve ser feita permitindo o uso por qualquer indivíduo, sem a necessidade de licença de uso. Os termos e condições precisas para cópia, distribuição e modificação seguem abaixo. Termos e Condições para Cópia, Distribuição e Modificação 1. Esta licença se aplica a qualquer programa ou outro trabalho que contenha um aviso colocado pelo detentor dos direitos autorais dizendo que aquele poderá ser distribuído nas condições da Licença Pública Geral. O Programa refere-se a qualquer software ou trabalho e a um trabalho baseado em um Programa e significa tanto o Programa em si como quaisquer trabalhos derivados de acordo com a lei de direitos autorais, o que significa dizer, um trabalho que contenha o Programa ou uma parte deste, na sua forma original ou com modificações ou traduzido para uma outra língua (tradução está incluída sem limitações no termo modificação). Atividades distintas de cópia, distribuição e modificação não estão cobertas por esta Licença, estando fora de seu escopo. O ato deexecutar o Programa não está restringido e a saída do Programa é coberta somente caso seu conteúdo contenha trabalhos baseados no Programa (independentemente de terem sidos gerados pela execução do Programa). Se isso é verdadeiro depende das funções executadas pelo Programa. 2. O código-fonte do Programa, da forma como foi recebido, pode ser copiado e distribuído, em qualquer mídia, desde que seja providenciado um aviso adequado sobre os copyrights e a negação de garantias, e todos os avisos que se referem à Licença Pública Geral e à ausência de garantias estejam inalterados e que qualquer produto oriundo do Programa esteja acompanhado desta Licença Pública Geral. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/gpl.html (2 of 7)28/09/2004 19:53:52 Licença Pública Geral GNU É permitida a cobrança de taxas pelo ato físico de transferência ou gravação de cópias, e podem ser dadas garantias e suporte em troca da cobrança de valores. 3. Pode-se modificar a cópia ou cópias do Programa de qualquer forma que se deseje, ou ainda criar- se um trabalho baseado no Programa, copiá-lo e distribuir tais modificações sob os termos da seção 1 acima e do seguinte: [a.] Deve existir aviso em destaque de que os dados originais foram alterados nos arquivos e as datas das mudanças; [b.] Deve existir aviso de que o trabalho distribuído ou publicado é, de forma total ou em parte derivado do Programa ou de alguma parte sua, e que pode ser licenciado totalmente sem custos para terceiros sob os termos desta Licença. [c.] Caso o programa modificado seja executado de forma interativa, é obrigatório, no início de sua execução, apresentar a informação de copyright e da ausência de garantias (ou de que a garantia corre por conta de terceiros), e que os usuários podem redistribuir o programa sob estas condições, indicando ao usuário como acessar esta Licença na sua íntegra. Esses requisitos aplicam-se a trabalhos de modificação em geral. Caso algumas seções identificáveis não sejam derivadas do Programa, e podem ser consideradas como partes independentes, então esta Licença e seus Termos não se aplicam àquelas seções quando distribuídas separadamente. Porém ao distribuir aquelas seções como parte de um trabalho baseado no Programa, a distribuição como um todo deve conter os termos desta Licença, cujas permissões estendem-se ao trabalho como um todo, e não a cada uma das partes independentemente de quem os tenha desenvolvido. Mais do que tencionar contestar os direitos sobre o trabalho desenvolvido por alguém, esta seção objetiva propiciar a correta distribuição de trabalhos derivados do Programa. Adicionalmente, a mera adição de outro trabalho ao Programa, porém não baseado nele nem a um trabalho baseado nele, a um volume de armazenamento ou mídia de distribuição não obriga a utilização desta Licença e de seus termos ao trabalho. São permitidas a cópia e a distribuição do Programa (ou a um trabalho baseado neste) na forma de código-objeto ou executável de acordo com os termos das Seções 1 e 2 acima, desde que atendido o seguinte: [a.] Esteja acompanhado dos códigos-fonte legíveis, os quais devem ser distribuídos na forma da Seções 1 e 2 acima, em mídia normalmente utilizada para manuseio de softwares ou; [b.] Esteja acompanhado de oferta escrita, válida por, no mínimo 3 anos, de disponibilizar a terceiros, por um custo não superior ao custo do meio físico de armazenamento, uma cópia completa dos códigos- file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/gpl.html (3 of 7)28/09/2004 19:53:52 Licença Pública Geral GNU fonte em meio magnético, de acordo com as Seções 1 e 2 acima; [c.] Esteja acompanhado da mesma informação recebida em relação à oferta da distribuição do código- fonte correspondente (esta alternativa somente é permitida para distribuições não comerciais e somente se o programa recebido na forma de objeto ou executável tenha tal oferta, de acordo com a subseção 2 acima). O código-fonte de um trabalho é a melhor forma de produzirem-se alterações naquele trabalho. Códigos fontes completos significam todos os fontes de todos os módulos, além das definições de interfaces associadas, arquivos, scripts utilizados na compilação e instalação do executável. Como uma exceção excepcional, o código-fonte distribuído poderá não incluir alguns componentes que não se encontrem em seu escopo, tais como compilador, kernel, etc. para o sistema operacional onde o trabalho seja executado. Caso a distribuição do executável ou objeto seja feita através de acesso a um determinado ponto, então oferta equivalente de acesso deve ser feita aos códigos-fonte, mesmo que terceiros não sejam obrigados a copiarem os fontes juntos com os objetos simultaneamente. 1. Não é permitida a cópia, modificação, sub-licenciamento ou distribuição do Programa, exceto sob as condições expressas nesta Licença. Qualquer tentativa de cópia, modificação, sublicenciamento ou distribuição do Programa é proibida, e os direitos descritos nesta Licença cessarão imediatamente. Terceiros que tenham recebido cópias ou direitos na forma desta Licença não terão seus direitos cessados desde que permaneçam dentro das cláusulas desta Licença. 2. Não é necessária aceitação formal desta Licença, apesar de que não haverá documento ou contrato que garanta permissão de modificação ou distribuição do Programa ou seus trabalhos derivados. Essas ações são proibidas por lei, caso não se aceitem as condições desta Licença. A modificação ou distribuição do Programa ou qualquer trabalho baseado neste implica na aceitação desta Licença e de todos os termos desta para cópia, distribuição ou modificação do Programa ou trabalhos baseados neste. 3. Cada vez que o Programa seja distribuído (ou qualquer trabalho baseado neste), o recipiente automaticamente recebe uma licença do detentor original dos direitos de cópia, distribuição ou modificação do Programa objeto destes termos e condições. Não podem ser impostas outras restrições nos recipientes. 4. No caso de decisões judiciais ou alegações de uso indevido de patentes ou direitos autorais, restrições sejam impostas que contradigam esta Licença, estes não isentam da sua aplicação. Caso não seja possível distribuir o Programa de forma a garantir simultaneamente as obrigações desta Licença e outras que sejam necessárias, então o Programa não poderá ser distribuído. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/gpl.html (4 of 7)28/09/2004 19:53:52 Licença Pública Geral GNU Caso esta Seção seja considerada inválida por qualquer motivo particular ou geral, o seu resultado implicará na invalidação geral desta licença na cópia, modificação, sublicenciamento ou distribuição do Programa ou trabalhos baseados neste. O propósito desta seção não é, de forma alguma, incitar quem quer que seja a infringir direitos reclamados em questões válidas e procedentes, e sim proteger as premissas do sistema de livre distribuição de software. Muitas pessoas têm feito contribuições generosas ao sistema, na forma de programas, e é necessário garantir a consistência e credibilidade do sistema, cabendo a estes e não a terceiros decidirem a forma de distribuição dos softwares. Esta seção pretende tornar claro os motivos que geraram as demais cláusulas desta Licença. 5. Caso a distribuição do Programa dentro dos termos desta Licença tenha restrições em algum País, quer por patentes ou direitos autorais, o detentor original dos direitos autorais do Programa sob esta Licença pode adicionar explicitamente limitações geográficas de distribuição, excluindo aqueles Países, fazendo com que a distribuição somente seja possível nos Países não excluídos. 6. A Fundação de Software de Livre Distribuição (FSF - Free Software Foundation) pode publicar versões revisadas ou novas versões desta Licença Pública Geral de tempos em tempos. Estas novas versõesmanterão os mesmos objetivos e o espírito da presente versão, podendo variar em detalhes referentes a novas situações encontradas. A cada versão é dado um número distinto. Caso o Programa especifique um número de versão específico desta Licença a qual tenha em seu conteúdo a expressão ``ou versão mais atualizada'', é possível optar pelas condições daquela versão ou de qualquer versão mais atualizada publicada pela FSF. 7. Caso se deseje incorporar parte do Programa em outros programas de livre distribuição de softwares é necessária autorização formal do autor. Para softwares que a FSF detenha os direitos autorais, podem ser abertas exceções desde que mantido o espírito e objetivos originais desta Licença. 8. UMA VEZ QUE O PROGRAMA É LICENCIADO SEM ÔNUS, NÃO HÁ QUALQUER GARANTIA PARA O PROGRAMA. EXCETO QUANDO TERCEIROS EXPRESSAREM-SE FORMALMENTE, O PROGRAMA É DISPONIBILIZADO EM SEU FORMATO ORIGINAL, SEM GARANTIAS DE QUALQUER NATUREZA, EXPRESSAS OU IMPLÍCITAS, INCLUINDO MAS NÃO LIMITADAS, ÀS GARANTIAS COMERCIAIS E DO ATENDIMENTO DE DETERMINADO FIM. A QUALIDADE E A PERFORMANCE SÃO DE RISCO EXCLUSIVO DOS USUÁRIOS, CORRENDO POR SUA CONTA OS CUSTOS NECESSÁRIOS A EVENTUAIS ALTERAÇÕES, CORREÇÕES E REPAROS JULGADOS NECESSÁRIOS. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/gpl.html (5 of 7)28/09/2004 19:53:52 Licença Pública Geral GNU 9. EM NENHUMA OCASIÃO, A MENOS QUE REQUERIDO POR DECISÃO JUDICIAL OU POR LIVRE VONTADE, O AUTOR OU TERCEIROS QUE TENHAM MODIFICADO O PROGRAMA, SERÃO RESPONSÁVEIS POR DANOS OU PREJUÍZOS PROVENIENTES DO USO OU DA FALTA DE HABILIDADE NA SUA UTILIZAÇÃO (INCLUINDO MAS NÃO LIMITADA A PERDA DE DADOS OU DADOS ERRÔNEOS), MESMO QUE NÃO TENHA SIDO EMITIDO AVISO DE POSSÍVEIS ERROS OU DANOS. FIM DA LICENÇA Como Aplicar Estes Termos a Novos Programas? Caso você tenha desenvolvido um novo programa e deseja a sua ampla distribuição para o público, a melhor forma de conseguí-lo é torná-lo um software de livre distribuição, onde qualquer um possa distribuí-lo nas condições desta Licença. Para tanto basta anexar este aviso ao programa. É aconselhável indicar ainda no início de cada arquivo fonte a ausência de garantias e um apontamento para um arquivo contendo o texto geral desta Licença, como por exemplo: (uma linha para dar o nome do programa e uma breve idéia do que ele faz.) Copyright ® 19yy nome do autor Este programa é um software de livre distribuição, que pode ser copiado e distribuído sob os termos da Licença Pública Geral GNU, conforme publicada pela Free Software Foundation, versão 2 da licença ou (a critério do autor) qualquer versão posterior. Este programa é distribuído na expectativa de ser útil aos seus usuários, porém NÃO TEM NENHUMA GARANTIA, EXPLÍCITAS OU IMPLÍCITAS, COMERCIAIS OU DE ATENDIMENTO A UMA DETERMINADA FINALIDADE. Consulte a Licença Pública Geral GNU para mais detalhes. Deve haver uma cópia da Licença Pública Geral GNU junto com este software em inglês ou português. Caso não haja escreva para Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Inclua também informações de como contatar você através de correio eletrônico ou endereço comercial/ residencial. file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/gpl.html (6 of 7)28/09/2004 19:53:52 Licença Pública Geral GNU Caso o programa seja interativo, apresente no início do programa um breve aviso. Por exemplo: Gnomovision versão 69, Copyright nome do autor Gnomovision NÃO POSSUI NENHUMA GARANTIA; para detalhes digite ``mostre garantia''. Este é um software de livre distribuição e você está autorizado a distribuí-lo dentro de certas condições. Digite ``mostre condição'' para mais detalhes. Os comandos hipotéticos "mostre garantia" e "mostre condição" apresentarão as partes apropriadas da Licença Pública Geral GNU. Evidentemente os comandos podem variar ou serem acionados por outras interfaces como clique de mouse, etc.. Esta Licença Pública Geral não permite a incorporação de seu programa em programas proprietários. Se o seu programa é uma subrotina de biblioteca, você pode achar mais interessante permitir a ``ligação'' de aplicações proprietárias com sua biblioteca. Se é isso que você deseja fazer, use a Licença Pública Geral GNU para Bibliotecas no lugar desta Licença. Anterior Principal Licença de Livre Publicação file:///C|/cursos_e_livros_cd/informática/sistemas%20operacionais/linux/conectiva/entendendo/gpl.html (7 of 7)28/09/2004 19:53:52 Local Disk Prefácio Básico Linuxconf Contas e Grupos Arquivos e Diretórios Serviços Essenciais Dispositivos Configuração do Sistema O XFree86 Gerenciamento de Pacotes O Processo de Inicialização Recuperação do Sistema O Kernel Dicas Para a Administração Licença de Livre Publicação Licença Pública Geral GNU