Baixe o app para aproveitar ainda mais
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 um
Compartilhar