Your SlideShare is downloading. ×
  • Like
Curso de linux para empresas
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Curso de linux para empresas

  • 205 views
Published

 

Published in Technology , News & Politics
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
205
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
9
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Curso de Formação LINUX para empresas APOSTILA I - APLINUX.com.br Administração de Sistemas LINUX Prof. Alexandre Pedroso Portal do Administrador de Servidores LINUX Baseada no Conectiva Linux 9.0 http://www.aplinux.com.br
  • 2. Alexandre Pedroso – http://www.aplinux.com.br AGRADECIMENTOS Em primeiro lugar, gostaria de agradecer a minha esposa e minha filha que tiveram toda a compreensão necessária para que um projeto grandioso como este seguisse adiante. Além de compreensão, tive uma ajuda muito especial da minha esposa, no que diz respeito às revisões de textos da apostila. Agradeço também a todas as pessoas que participaram direta ou indiretamente deste projeto. A elas, eu envio um muito obrigado por toda e qualquer ajuda que tenham prestado. Gostaria de deixar também, o agradecimento a Deus, pois, com certeza, sem Ele, eu não seria capaz de completar todo o processo. Agradeço por Ele me fornecer conhecimento, força, disposição e clareza para expor minhas idéias e pensamentos. Além disso, fica aqui meus parabéns para todos os profissionais que desenvolvem para plataformas LINUX. Além destes, os parabéns vão também para os administradores de redes LINUX, usuários LINUX e, até mesmo, para as pessoas que estão apenas começando neste universo e, sem dúvida, merecem uma atenção especial, pois cada vez mais, precisamos de novos adeptos ao sistema. Para as empresas ou Grupo de Projetos LINUX que, a cada dia, tornam o LINUX um sistema mais seguro, mais amigável e mais estável envio um grande abraço e a mensagem que segue: “Continuem assim, vocês realmente fazem a diferença e mostram porque o Software Livre supera em todos os aspectos o Software Proprietário”. Alexandre Pedroso – http://www.aplinux.com.br Página 2
  • 3. Alexandre Pedroso – http://www.aplinux.com.br ÍNDICE Capítulo 01 – INTRODUÇÃO 06 - Sistema operacional + histórico - GNU e Software Livre - Distribuições 06 08 09 Capítulo 02 - PRIMEIROS PASSOS NO SISTEMA 14 - 14 15 16 17 19 Usuários comuns e grupos Superusuário UID e GID Comandos envolvidos Exemplos de utilização Capítulo 03 – SHELL 20 - 20 21 23 25 26 Conceitos Tipos de execução do shell e seus arquivos Comandos envolvidos Exemplos de utilização Modelos dos arquivos de configuração do shell Capítulo 04 - GERENCIAMENTO DE ARQUIVOS E DIRETÓRIOS 30 - 30 30 31 31 32 32 33 34 Introdução Metacaracteres Tipos de arquivos Listando arquivos e diretórios Criando e removendo arquivos e diretórios Copiando, renomeando e movendo arquivos e diretórios Hard Links e Links Simbólicos Exemplos de utilização Capítulo 05 - ESTRUTURA DE DIRETÓRIOS 37 - Entendendo a estrutura de diretórios do sistema - Funções dos diretórios do sistema 37 38 Capítulo 06 - DOCUMENTAÇÃO LINUX 40 - Como utilizar a documentação do sistema? 40 Alexandre Pedroso – http://www.aplinux.com.br Página 3
  • 4. Alexandre Pedroso – http://www.aplinux.com.br - Exemplos de utilização - Fontes de documentação na Internet 41 42 Capítulo 07 - PERMISSÕES EM ARQUIVOS E DIRETÓRIOS 43 - 43 44 45 45 47 48 Introdução Modo Simbólico Modo Octal Suid bit, Sgid bit e Sticky bit Comandos envolvidos Exemplos de utilização Capítulo 08 - COMANDOS AVANÇADOS DO SISTEMA 50 - Comandos avançados do sistema - Exemplos práticos 50 53 Capítulo 09 – REDIRECIONAMENTO E PIPE 55 - Introdução - Comandos envolvidos - Exemplos de utilização 55 55 55 Capítulo 10 - GERENCIAMENTO DE USUÁRIOS E GRUPOS 57 - 57 57 58 59 Introdução Contas de Usuários e Contas de Grupos Comandos envolvidos Exemplos de utilização Capítulo 11 - SISTEMAS DE ARQUIVOS E PARTIÇÕES 61 - Introdução - Comandos envolvidos - Exemplos práticos 61 64 65 Capítulo 12 – SERVIÇOS E PROCESSOS 67 - Introdução - Gerenciamento de processos - Exemplos práticos 67 68 70 Capítulo 13 - INSTALAÇÃO DE PACOTES 71 Alexandre Pedroso – http://www.aplinux.com.br Página 4
  • 5. Alexandre Pedroso – http://www.aplinux.com.br - Introdução - Comandos envolvidos - Exemplos de utilização 71 72 73 Capítulo 14 – EXERCÍCIOS 75 - Lista de exercícios 75 Capítulo 15 – INSTALAÇÃO DO CONECTIVA LINUX 9.0 87 - Instalação do Conectiva Linux 9.0 87 Capítulo 16 – GLOSSÁRIO DE TERMOS TÉCNICOS 89 - Glossário de termos técnicos 89 Capítulo 17 – GABARITO DOS EXERCÍCIOS 106 - Gabarito dos exercícios 106 Alexandre Pedroso – http://www.aplinux.com.br Página 5
  • 6. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 01 – INTRODUÇÃO 1.1 – SISTEMA OPERACIONAL + HISTÓRICO O Linux é um sistema operacional. Mas o que vem a ser um sistema operacional? Sistema Operacional (S.O.) é um conjunto de programas que atuam como intermediário entre o hardware e o usuário. Esse conjunto de programas é responsável pela transmissão de instruções do usuário para o hardware (computador) para que estas sejam executadas em tempo real. Seguem abaixo, algumas tarefas que devem ser desempenhadas por um Sistema Operacional: - Controlar todos os dispositivos de I/O (input/output). Controlar as requisições de hardware. Prover uma interface agradável ao usuário. Conforme vimos acima, o sistema operacional é formado por um conjunto de programas. Mas como é dividido esse conjunto de programas? Muito simples. Temos basicamente dois modos de operação: - Modo Kernel. Modo Usuário. O Kernel é o núcleo do sistema operacional. É nele que rodam todas as rotinas do sistema. Somente as rotinas do kernel têm acesso ao hardware do computador. No Modo Kernel, o sistema operacional trabalha com instruções privilegiadas tendo acesso total ao processador. Suas principais funções são: - Tratamento de interrupções. Criação e eliminação de processos. Sincronização e comunicação entre processos. Controle de processos. Gerência de memória. Gerência do sistema de arquivos. Operações de entrada e saída (I/O). Alexandre Pedroso – http://www.aplinux.com.br Página 6
  • 7. Alexandre Pedroso – http://www.aplinux.com.br No Modo Usuário, rodam as aplicações dos usuários que fazem com que este interaja com o sistema operacional. Neste modo, não há acesso ao hardware e também o acesso ao processador é reduzido. Depois desta definição de sistema operacional podemos continuar falando um pouco mais sobre sistemas LINUX. O LINUX foi criado a partir de uma mini-distribuição de UNIX chamada MINIX. Os sistemas UNIX existem há muito tempo. Talvez esse seja um dos motivos de tamanho sucesso. Na verdade, toda a qualidade destes sistemas está baseada na sua portabilidade e na sua estabilidade. Eles são considerados portáteis, pois conseguem “rodar” a grande maioria dos programas escritos nas mais diversas linguagens de programação e nas mais diversas plataformas. Além disso, normalmente programas escritos para UNIX são, facilmente, portados para outras plataformas. E aí vem o mais importante: conseguem ser portáteis com uma estabilidade invejável. Com essas duas qualidades, os sistemas UNIX ganharam vários adeptos pelo mundo todo, inclusive programadores de software, que encontraram nele todos os recursos necessários para se escrever programas, além de um vasto material de pesquisa e aprendizado. Como falamos anteriormente, o LINUX surgiu de uma mini-distribuição de UNIX chamada MINIX. Portanto, podemos concluir que, muitas das características presentes nos sistemas UNIX também estão presentes em sistemas LINUX. Dentre elas, podemos destacar: - Multitarefa – capacidade do sistema operacional de compartilhar o processador para duas ou mais tarefas, dando impressão que estão sendo executadas simultaneamente. - Multiusuário – capacidade do sistema operacional de permitir que vários usuários consigam utilizá-lo ao mesmo tempo. Os usuários podem utilizar a mesma máquina e os mesmos dispositivos simultaneamente. - Tempo Compartilhado para processos – capacidade do sistema operacional de executar vários processos ao mesmo tempo, gerando os conhecidos processos pais e processos filhos. Além disso, pode-se definir prioridades de execução de processos com muita eficácia. - Simplicidade – normalmente, sistemas LINUX tem uma forma de interação com os usuários bastante simples, porém muito Alexandre Pedroso – http://www.aplinux.com.br Página 7
  • 8. Alexandre Pedroso – http://www.aplinux.com.br eficiente. Podemos citar como exemplo, sua interface em modo texto, que é bem simples e muito estável e rápida. Existem várias outras características comuns aos dois sistemas, mas creio que estas sejam as mais importantes e por esse motivo, não me estenderei mais com isso. 1.2 – GNU E SOFTWARE LIVRE O sistema operacional LINUX é composto por um conjunto de aplicações e um Kernel. Este Kernel está sob os termos do GNU (General Public License – GPL). Mas o que vem a ser GNU? Na década de 70, o compartilhamento de programas entre programadores de computadores era uma prática muito natural. Eles compartilhavam o código fonte para ganhar agilidade no desenvolvimento de seus programas. Sendo assim outros programadores poderiam entender seus códigos, alterá-los e melhorálos, caso necessário. Porém, com o passar dos anos, esta prática foi se tornando cada vez menos utilizada. Então, alguns programadores resolveram desenvolver um sistema operacional totalmente GNU, para poderem dar continuidade ao compartilhamento de seus códigos. Surgia então, o primeiro sistema operacional sob os termos da licença GNU. Este sistema foi desenvolvido com bases no UNIX, mas não era um UNIX. Quando falamos sobre GNU não podemos deixar de falar também sobre Software Livre. Mas o que vem a ser Software Livre? Este é um termo que costuma gerar muitas e muitas confusões. O Software Livre não tem nada a ver com gratuidade, não tem a ver com sistemas gratuitos. Software Livre refere-se à liberdade dos usuários em executar, copiar, distribuir, estudar, modificar e melhorar o programa. Seguem abaixo, as quatro liberdades mais conhecidas e citadas do Software Livre (SL): - Liberdade de executar o programa com qualquer propósito. Alexandre Pedroso – http://www.aplinux.com.br Página 8
  • 9. Alexandre Pedroso – http://www.aplinux.com.br - Liberdade para estudar como o programa funciona e adaptá-lo às suas necessidades. O acesso ao código fonte é pré-requisito para que isso possa acontecer. - Liberdade para redistribuir cópias do programa, para que se possa ajudar aos amigos, conhecidos, parentes, etc. - Liberdade para melhorar o programa, e distribuir suas melhorias para o público em geral, de maneira que toda a comunidade possa se beneficiar. O acesso ao código fonte é pré-requisito para que isso possa acontecer. Mais informações dobre GNU ou sobre Software Livre podem ser encontradas em: - http://www.gnu.org/home.pt.html http://www.gnu.org/licenses/licenses.pt.html Com os esclarecimentos acima sobre GNU e Software Livre, podemos falar um pouco mais sobre o LINUX. Linus Torvalds iniciou o projeto do Kernel do LINUX inspirado no MINIX, como já foi dito anteriormente. A idéia era “criar um MINIX melhor do que o MINIX”, de acordo com suas próprias palavras. Em 1991 ele anunciou, na Internet, a primeira versão oficial do LINUX, versão 0.02. Deste dia até hoje, muitos e muitos programadores espalhados pelo mundo contribuíram para fazer do LINUX o que ele é hoje – um sistema operacional que consegue agregar algumas importantes características do UNIX com interesses técnicos dos administradores de rede, administradores de sistema, programadores e usuários. E o que é melhor, tudo isso dentro do conceito de Software Livre. 1.3 – DISTRIBUIÇÕES Existem várias distribuições LINUX disponíveis para todos os gostos e para todos os tipos de uso. Temos distribuições voltadas para estações de trabalho, distribuições voltadas para servidores de rede e até distribuições voltadas para executarem apenas serviços específicos. Mas o que vem a ser uma distribuição LINUX? Alexandre Pedroso – http://www.aplinux.com.br Página 9
  • 10. Alexandre Pedroso – http://www.aplinux.com.br Uma definição para distribuição LINUX é que ela é formada por um Kernel e por um conjunto de aplicativos que acabam por completar o sistema operacional. Além disso, as distribuições LINUX podem fornecer aplicativos, serviços e scripts diferenciados e personalizados de acordo com o objetivo de cada distribuição. Existem basicamente dois modelos de desenvolvimento de distribuições LINUX. São eles: - Projetos Empresas Projetos As distribuições LINUX desenvolvidas como Projetos, são aquelas que, na grande maioria dos casos, não tem fins lucrativos. Seria mais ou menos assim. Um grupo de programadores que começam a trabalhar juntos a fim de disponibilizar para sua comunidade de membros e usuários um sistema LINUX voltado para aplicações específicas. Se este sistema é bem aceito pela comunidade, ele pode expandir seus horizontes para outros tipos de aplicações ou simplesmente continuar com sua idéia inicial. Neste modelo de desenvolvimento, muitas pessoas podem colaborar com aplicativos, traduções, documentações, enfim, tudo que fará parte do sistema operacional. Podemos citar algumas distribuições LINUX baseadas neste modelo de desenvolvimento, bem como suas principais características: 1) Debian O Debian é desenvolvido por voluntários e estudantes de uma universidade. Utiliza uma ferramenta chamada apt-get para atualização de pacotes e atualização do próprio sistema. Suas principais características são estabilidade e alto poder de atualização do sistema. Seu principal defeito é que sua instalação pode ser considerada complexa para usuários mais leigos. Voltada tanto para estações de trabalho como para servidores de rede. Maiores informações podem ser encontradas em: Alexandre Pedroso – http://www.aplinux.com.br Página 10
  • 11. Alexandre Pedroso – http://www.aplinux.com.br http://www.debian.org 2) Slackware Uma distribuição que, normalmente, é utilizada por usuários mais experientes. Suas configurações são quase todas feitas em modo texto, o que faz com que as pessoas que o utilizam, tenham que conhecer profundamente seu sistema. Sua principal característica é a estabilidade. Seu principal defeito também é a instalação que pode ser considerada complexa para usuários mais leigos. Voltada tanto para estações de trabalho como para servidores de rede. Maiores informações podem ser encontradas em: http://www.slackware.org 3) Kurumin O Kurumin é uma distribuição nacional mantida, principalmente, por seu criador – Carlos Morimoto. O Kurumin inicialmente veio como uma opção para as pessoas que gostariam de aprender e utilizar sistemas LINUX, mas que não queriam ou não possuíam conhecimentos suficientes para instalá-los em seus discos rígidos. Então, foi criada essa distribuição, baseada no KNOPPIX, que “roda” diretamente do cd-rom, ou seja, não é necessário instalação. Basta colocar a media do Kurumin na unidade de cd-rom e reiniciar o computador. Esta distribuição faz parte de um seleto grupo chamado pela comunidade de LIVE-LINUX, ou seja, LINUX que “rodam” diretamente do cd-rom. Suas principais características são a facilidade de uso, a portabilidade do sistema e a detecção de hardware. Seu principal defeito é não ter uma instalação / configuração mais voltada para servidores de rede. Voltada para estações de trabalho. Maiores informações podem ser encontradas em: http://www.kurumin.com.br Alexandre Pedroso – http://www.aplinux.com.br Página 11
  • 12. Alexandre Pedroso – http://www.aplinux.com.br Empresas As distribuições LINUX desenvolvidas por Empresas, são aquelas que, na grande maioria dos casos, disponibilizam além de um produto que pode ser comprado ou “baixado” pela Internet, suporte para seus usuários que adquiriram o produto comercialmente. Isso é importante, principalmente, para profissionais que começaram a utilizar sistemas LINUX há pouco tempo e que desejam suportá-lo e administrá-lo profissionalmente. Além disso, quando comprado, o produto é entregue em uma “caixinha” que contém além dos cd’s de instalação, manuais de usuários, manuais de administradores e cartões de registro. Neste modelo de desenvolvimento, somente os programadores da empresa desenvolvem o produto. O máximo que usuários e membros da comunidade podem fazer para participar do desenvolvimento é entrar para o conhecido report de bug’s nas versões betas do produto. Podemos citar algumas distribuições LINUX baseadas neste modelo de desenvolvimento, bem como suas principais características: 1) Conectiva Distribuição nacional de maior destaque e, muito provavelmente, a mais utilizada em toda a América Latina. Existem diversas escolas credenciadas pela Conectiva para oferecer treinamento LINUX e certificação profissional neste produto. Suas principais características são estabilidade, documentação em português, certificação profissional reconhecida e instalação fácil. Seu principal defeito é o modelo de desenvolvimento fechado. Voltada tanto para estações de trabalho como para servidores de rede. Maiores informações podem ser encontradas em: http://www.conectiva.com.br 2) Red Hat Red Hat é a distribuição mais conhecida e mais utilizada em todo o mundo. Isso fez com que várias distribuições se baseassem nela (Conectiva LINUX, Mandrake, Fedora, entre outras). Alexandre Pedroso – http://www.aplinux.com.br Página 12
  • 13. Alexandre Pedroso – http://www.aplinux.com.br A Red Hat criou diversas ferramentas para gerenciamento do seu sistema, tais como, sndconfig, Xconfigurator, rpm, entre outras. Suas principais características são estabilidade, certificação profissional reconhecida e instalação fácil. Seu principal defeito é o modelo de desenvolvimento fechado e ultimamente só pode ser adquirida comercialmente. Voltada tanto para estações de trabalho como para servidores de rede. Maiores informações podem ser encontradas em: http://www.redhat.com 3) Mandrake Mandrake é uma distribuição muito fácil e indicada também aos iniciantes no mundo LINUX. A Mandrake criou diversas ferramentas para gerenciamento do seu sistema, tais como, HardDrake, DrakX, DrakFont, entre outras. Suas principais características são facilidade de uso, instalação fácil, melhor organização de menus gráficos. Seu principal defeito é não ter uma instalação / configuração mais voltada para servidores de rede. Voltada para estações de trabalho. Maiores informações podem ser encontradas em: http://www.mandrake.com Com isso nós encerramos o primeiro capítulo da nossa apostila. Alexandre Pedroso – http://www.aplinux.com.br Página 13
  • 14. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 02 - PRIMEIROS PASSOS NO SISTEMA 2.1 – USUÁRIOS COMUNS E GRUPOS Para que os usuários possam utilizar o sistema operacional é necessário que estes tenham uma conta de usuário cadastrada no sistema. É mais ou menos assim. Todo usuário que deseja utilizar um computador com um sistema LINUX, deverá fornecer um nome de usuário e uma senha de acesso ao computador. Esta é uma forma de garantir a segurança e a integridade dos dados contidos no disco rígido. Desta forma, somente terão acesso ao sistema, as pessoas que tiverem as credenciais de acesso. Isso é muito bom e deveria ser pré-requisito de qualquer sistema operacional, mas infelizmente ainda encontramos alguns deles que permitem o uso sem autenticação com usuário e senha. Mas deixando isso de lado, vamos ao conceito de usuários comuns e grupos em sistemas LINUX. Os usuários comuns são contas de acesso que não possuem direitos administrativos, ou seja, são contas que, simplesmente terão acesso a arquivos e diretórios criados pelo seu usuário. Essas contas são utilizadas para que os usuários do LINUX consigam acessar o sistema, digitar documentos e criar planilhas, navegar na Internet, sem alterar ou interferir em qualquer configuração do sistema operacional. Mas isso não é o suficiente. Na grande maioria das empresas, os computadores estão ligados em rede e existe um grande número de usuários que compartilham recursos comuns. Como fazer então, para que se tenha uma administração centralizada e fácil de todas as configurações referentes aos usuários e senhas que utilizam os sistemas? O grande problema é que, podemos ter, por exemplo, três pessoas que trabalham no departamento de Contabilidade da empresa que, normalmente, acessam os mesmos arquivos e diretórios de trabalho durante o dia. Então como fazer para diferenciar estes usuários e seus direitos de acessos a arquivos e diretórios de trabalho no sistema, dos demais usuários da empresa, que não poderão ter acesso a esses arquivos e diretórios? Mais do que isso, como fazer para que essa configuração não se torne repetitiva, difícil e trabalhosa para o administrador da rede? Alexandre Pedroso – http://www.aplinux.com.br Página 14
  • 15. Alexandre Pedroso – http://www.aplinux.com.br Fácil. Utilizaremos para isso o conceito de grupos. Os grupos foram criados para que usuários com tarefas comuns, acessos comuns a arquivos e diretórios de trabalhos sejam colocados em um mesmo grupo e todas as configurações sejam realizadas uma única vez ao grupo. Ou seja, se os usuários alex, pedro e paulo fazem parte do grupo contabilidade, então todos os três usuários terão os mesmos direitos concedidos ao grupo Contabilidade. Desta forma, o administrador tem um controle maior de suas configurações, bem como, uma agilidade muito grande para realizá-las. Podemos concluir então que, um grupo é um conjunto de usuários que compartilham os mesmos direitos de acesso a determinados recursos do sistema. IMPORTANTE: Toda vez que é criado um usuário no sistema, automaticamente é criado também, um grupo com o mesmo nome do usuário. Este é o grupo primário daquele usuário, o qual ele faz parte e sempre fará parte. Isso é uma configuração que pode ser alterada no sistema, mas que por padrão, vem conforme descrito acima. IMPORTANTE: Quando um usuário comum acessa o sistema, o prompt fica com uma identificação visual diferente de quando o root faz o acesso. A identificação de um usuário comum logado pode ser feita através do caractere $ no prompt de comando. Vejamos o exemplo abaixo: [alex@pedroso root]$ Neste exemplo temos as seguintes informações, da esquerda para a direita: nome do usuário logado no sistema, nome do host configurado no sistema, diretório atual que o usuário se encontra e, por último, o caractere que identifica o usuário comum ($). 2.2 – SUPERUSUÁRIO Esta é uma conta de usuário no sistema para fins administrativos. Esta conta deverá ser utilizada, exclusivamente, pelo administrador do sistema. Ela, como seu próprio nome já diz, tem super poderes no sistema LINUX. Com ela, é possível realizar qualquer tarefa, independente de direitos e permissões concedidas à conta. Alexandre Pedroso – http://www.aplinux.com.br Página 15
  • 16. Alexandre Pedroso – http://www.aplinux.com.br Este superusuário é conhecido como root. Seguem abaixo alguns privilégios do usuário root: - Acessar arquivos, mesmo sem ter permissão ou direito concedido. Mudar permissão ou direito de qualquer arquivo do sistema. Adicionar e remover usuários no sistema. Instalar aplicativos e periféricos. Seguem abaixo as principais obrigações do usuário root: - Manter a segurança do sistema e a segurança da rede. Verificar o espaço livre em disco. Realizar backup diariamente. Disponibilizar e manter serviços de rede aos usuários. Gerenciamento do desempenho do sistema. Manter a analisar o log (registro) do sistema. IMPORTANTE: Quando você está trabalhando como root, o sistema assume que você sabe o que está fazendo. Qualquer comando digitado será executado sem restrição. Portanto, qualquer engano cometido pode danificar o sistema todo. Por isso a recomendação de utilizar a conta de root somente para fins administrativos. IMPORTANTE: Quando o superusuário (root) acessa o sistema, o prompt fica com uma identificação visual diferente de quando um usuário comum faz o acesso. A identificação do superusuário logado pode ser feita através do caractere # no prompt de comando. Vejamos o exemplo abaixo: [root@pedroso root]# Neste exemplo temos as seguintes informações: da esquerda para a direita: nome do usuário logado no sistema, nome do host configurado no sistema, diretório atual que o usuário se encontra e, por último, o caractere que identifica o superusuário (#). 2.3 – UID e GID O UID é a identificação de um usuário internamente no sistema. Se você cria um usuário com o nome de alex, o sistema identifica este usuário através de um código (número) seqüencial chamado UID. Alexandre Pedroso – http://www.aplinux.com.br Página 16
  • 17. Alexandre Pedroso – http://www.aplinux.com.br O GID é a identificação de um grupo internamente no sistema. Se você cria um grupo com o nome de contabilidade, o sistema identifica este grupo através de um código (número) seqüencial chamado GID. Usuário root = UID = 0 Usuários administrativos = UID < 500 Usuários comuns = UID >= 500 Ou seja, quando criamos o primeiro usuário comum no sistema, este será criado com UID = 500. O usuário root sempre tem UID = 0. IMPORTANTE: Se você quiser que um usuário comum passe a ter direito de root no sistema, basta alterar o seu UID para 0. Veremos mais adiante como é feita essa alteração. 2.4 – COMANDOS ENVOLVIDOS Este é nosso primeiro contato com o LINUX. Portanto, serão apresentados alguns comandos básicos que servirão para que você consiga dar os primeiros passos no sistema. Até o momento, todo o nosso aprendizado estava focado para a parte conceitual. A partir deste tópico, teremos uma mescla de conceitos e comandos práticos a serem apresentados. Então, é muito importante que os comandos sejam executados em um micro para que você consiga fixá-los melhor. Desta forma, o aprendizado se torna mais rápido e amigável. Vamos lá, chega de falarmos e vamos começar a colocar a mão na massa! IMPORTANTE: A grande maioria dos comandos do LINUX possui parâmetros que podem ser utilizados na linha de comando. Esses parâmetros são opções que definirão como o comando deve se comportar (seu modo de operação). Nesta apostila, serão demonstrados os parâmetros mais comumente utilizados. Se você quiser conhecer outros parâmetros, poderá fazê-lo acessando as páginas dos manuais do sistema. Mais adiante veremos como ter acesso a esta vasta documentação existente no próprio sistema. Essa é uma fonte rica de conhecimento que deve ser explorada por você. IMPORTANTE: O LINUX é um sistema que diferencia letras maiúsculas de letras minúsculas, ou seja, se for digitado em maiúsculo um comando que deve ser escrito em minúsculo, o sistema retornará um erro de comando inválido. Isso também se aplica aos parâmetros dos comandos e aos arquivos e diretórios do sistema. Alexandre Pedroso – http://www.aplinux.com.br Página 17
  • 18. Alexandre Pedroso – http://www.aplinux.com.br login : Comando utilizado para acesso ao sistema. Deve ser digitada uma conta de usuário válida para acessar o sistema. Após a digitação do nome da conta, o sistema solicitará a senha de acesso. IMPORTANTE: Se você errar a senha por mais de três vezes, o sistema começa a demorar muito para responder às tentativas de login. Isso é uma medida de segurança para evitar ataques conhecidos como “brute force”. logout : Comando utilizado para encerrar uma seção de login. Através dele, você coloca o sistema em modo seguro, ou seja, esperando que se digite uma conta de usuário e uma senha para o uso. shutdown : Comando utilizado para desligar/reiniciar o sistema. Todos os usuários que estiverem utilizando o sistema serão notificados que este será desligado. Parâmetros do shutdown: now -h -r -F -t Indica que o comando deve ser executado agora. Indica que o sistema deve ser desligado. Reiniciar o sistema após o desligamento. Força a checagem do disco na próxima reinicialização do sistema. Tempo em segundos que o sistema aguardará para o desligamento. halt : Comando utilizado para desligar ou paralisar o sistema. reboot : Comando utilizado para reinicializar o sistema. CTRL+ALT+DEL : Comando utilizado para desligar o sistema. IMPORTANTE: A combinação das teclas CTRL+ALT+DEL desliga o sistema sem precisar estar logado nele, ou seja, qualquer pessoa pode pressionar estas teclas e tirar um servidor de operação, por exemplo. Veremos mais adiante como desabilitar este comando, para garantir que o sistema será desligado/reiniciado somente por pessoas autorizadas a fazê-lo. Alexandre Pedroso – http://www.aplinux.com.br Página 18
  • 19. Alexandre Pedroso – http://www.aplinux.com.br 2.5 – EXEMPLOS DE UTILIZAÇÃO shutdown –h now (desliga o sistema agora) shutdown –r (reinicia o sistema) halt (desliga o sistema) reboot (reinicia o sistema) Alexandre Pedroso – http://www.aplinux.com.br Página 19
  • 20. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 03 – SHELL 3.1 – CONCEITOS O shell é o interpretador de comandos do sistema. Ele oferece uma interface de linha de comando entre o usuário e o sistema operacional (LINUX). No Conectiva LINUX e, na grande maioria das distribuições, o shell padrão do sistema é o bash. Um shell pode ser utilizado para basicamente três propósitos. São eles: - Utilização interativa – Aguarda a execução dos comandos por parte do usuário para repassá-los ao sistema. - Personalização de uma seção – Definir variáveis de ambiente, tais como, diretórios de spool, diretório inicial, entre outras, a fim de personalizar o ambiente de trabalho do usuário. - Programação – Criação e execução de scripts (combinação de comandos do shell com comandos do sistema). Explicando um pouco melhor, podemos dizer que o shell interativo é utilizado quando um usuário efetua login no sistema e começa a operálo, digitando comandos em sua console. Com isso, o usuário estará interagindo com o sistema, ou seja, passando comandos e recebendo as saídas (resultados) desses comandos. Um shell de personalização de uma seção é utilizado quando um usuário efetua login no sistema. No momento do login, são configuradas algumas variáveis de ambiente para este usuário. Estas variáveis de ambiente também podem ser chamadas de perfil do usuário. Desta forma, é possível configurar perfis diferentes e personalizados para os usuários, de acordo com a necessidade particular de cada um. Para um melhor entendimento, podemos exemplificar da seguinte forma. Imagine que o usuário alex utiliza o sistema somente para acessar um pequeno programa que realiza a contabilidade da empresa. Todas as vezes que este usuário efetuar login, seria necessário digitar um comando para acessar o programa de contabilidade. Além disso, este programa está localizado em um diretório qualquer do sistema. Então, poderíamos chegar ao absurdo de dizer que, primeiro o usuário deveria digitar um comando para acessar este diretório e depois um segundo Alexandre Pedroso – http://www.aplinux.com.br Página 20
  • 21. Alexandre Pedroso – http://www.aplinux.com.br comando para acessar seu programa de contabilidade. Isso não é visto com bons olhos pelos usuários. Então, o que poderíamos fazer para resolver esse pequeno problema? Utilizando os perfis de usuários e as variáveis de ambiente, poderíamos configurar o sistema de modo que, todas as vezes que o usuário alex acessasse o sistema, automaticamente seria configurado o PATH de execução de programas e, ainda mais, o programa de contabilidade seria carregado. Além disso, poderíamos implementar cores ao shell deste usuário, criar alias para comandos do sistema, entre outras coisas. Como os perfis podem ser configurados individualmente, esta configuração só se aplicaria ao usuário em questão. IMPORTANTE: Mais adiante, veremos as definições de PATH e alias de comandos. Um shell de programação é, normalmente, utilizado para “rodar” scripts ou programas de forma automática. Neste tipo de shell, não existe a interação do usuário ou do administrador do sistema, pois os scripts “rodam” de forma automática. Um bom exemplo de um shell de programação seria uma rotina de backup agendada para ser executada todos os dias durante a madrugada. Quando o script responsável pela realização do backup entra no ar, inicia-se então um shell de programação. 3.2 – TIPOS DE EXECUÇÃO DO SHELL E SEUS ARQUIVOS Os tipos de execução do shell definem como o shell se comportará e para que este shell será utilizado. São eles: - Shell de login – executado quando um usuário efetua login no sistema. Neste caso, bash (shell padrão do LINUX) executa os seguintes arquivos: /etc/profile, ~/.bash_profile e ~/.bash_logout. - Shell interativo – executado quando um usuário digita comandos no sistema e recebe as saídas (resultados) desses comandos. Normalmente, um shell interativo é também um shell de login. Neste caso, bash (shell padrão do LINUX) executa os seguintes arquivos: ~/.bashrc e ~/.bash_history. - Shell não interativo – executado quando um script (programa) “roda” automaticamente, conforme visto acima. Alexandre Pedroso – http://www.aplinux.com.br Página 21
  • 22. Alexandre Pedroso – http://www.aplinux.com.br Vejamos agora, qual é a função de cada um dos arquivos comentados nos tipos de execução do shell acima. São eles: - /etc/profile – este arquivo contém a configuração dos perfis de todos os usuários do sistema. É nele que configuraremos tudo o que for comum a todos os usuários do sistema. São exemplos de possíveis configurações deste arquivo as variáveis de ambiente PATH, MANPATH, HOSTNAME, USER, LOGNAME, entre outras. - ~/.bash_profile – este arquivo contém a configuração do perfil do usuário corrente (usuário logado no sistema). É nele que configuramos a personalização de cada usuário, de acordo com suas necessidades. São exemplos de possíveis configurações deste arquivo as variáveis de ambiente PATH, MANPATH, HOSTNAME, USER, LOGNAME, entre outras. - ~/.bash_logout – este arquivo é um pouco diferente dos citados acima. Enquanto que os anteriores somente são executados quando é carregado um shell de login, o ~/.bash_logout somente é executado, como seu próprio nome diz, quando um usuário efetua logout no sistema. Todos os comandos que estiverem dentro deste arquivo serão executados neste momento. Um exemplo clássico de comando que pode ser adicionado a este arquivo é o clear (limpeza da tela do terminal). - /etc/bashrc - este arquivo contém os aliases e funções de todos os usuários do sistema. É nele que configuraremos tudo o que for comum a todos os usuários do sistema. São exemplos de possíveis configurações deste arquivo os aliases e funções, conforme dito acima. - ~/.bashrc – este arquivo contém os aliases e funções do usuário corrente (usuário logado no sistema). É nele que configuramos a personalização de cada usuário, de acordo com suas necessidades. São exemplos de possíveis configurações deste arquivo os aliases e funções, conforme dito acima. - ~/.bash_history – este arquivo contém todos últimos comandos digitados pelo usuário corrente (usuário logado no sistema). No LINUX, existe um atalho para procura dos últimos comandos digitados, a fim de poupar tempo e serviço dos usuários e administradores do sistema. Pressionando a seta para cima do teclado, o sistema mostra os últimos comandos digitados pelo usuário corrente. O interessante e o diferencial para outros Alexandre Pedroso – http://www.aplinux.com.br Página 22
  • 23. Alexandre Pedroso – http://www.aplinux.com.br sistemas operacionais é que esta lista de últimos comandos estará disponível mesmo após a reinicialização do sistema, pois o armazenamento é feito em arquivo (~/.bash_history) e não na memória RAM. IMPORTANTE: Para as explicações acima foi utilizado o caractere “~” em alguns dos caminhos de arquivos do shell. Mas o que vem a ser o caractere “~” e o que ele representa no sistema? Bom, vamos lá. O caractere “~” é uma forma bastante simples de representar o diretório “home” do usuário corrente (usuário logado no sistema). Então, se nós estivermos logados no sistema com um usuário chamado alex o caractere “~”, na verdade, equivale ao caminho /home/alex/. Isso é muito interessante, pois temos uma espécie de variável que pode ser utilizada independentemente do usuário que está logado. Imagine a seguinte situação: você precisa fazer um script ou um programa qualquer que gravará um arquivo no diretório home do usuário que está logado no sistema. Você pode então, escrever um código que grava o arquivo referido sempre em “~”, que automaticamente ele gravará em /home/alex se o usuário alex estiver logado e em /home/pedro, quando pedro estiver logado. Portanto, o caractere “~” é amplamente utilizado, principalmente para elaboração de scripts. IMPORTANTE: Também nos referimos muito a variável de ambiente PATH. Mas o que vem a ser a variável PATH? Path significa caminho em inglês e é exatamente isso que esta variável representa no sistema. Ela é responsável por armazenar os caminhos que o sistema deve procurar por um comando que é executado pelos usuários ou pelo administrador do sistema. Exemplificando, imagine que o comando halt se encontra dentro do diretório /usr/bin/. Todas as vezes que eu quisesse executar este comando, teria primeiro que acessar este diretório e depois executar o comando. É para evitarmos esse desconforto que utilizamos a variável PATH, ou seja, definimos nossa variável PATH com o valor /usr/bin/. Assim sendo, de qualquer diretório (local) que eu estiver no sistema, posso executar o comando halt com êxito. É bom salientar que, a variável PATH pode apontar para mais de um diretório diferente, conforme necessidade. 3.3 – COMANDOS ENVOLVIDOS set : comando utilizado para visualizar na saída padrão todas as variáveis de ambientes configuradas para o usuário corrente e seus respectivos conteúdos. Dentre essas variáveis podemos destacar: BASH, Alexandre Pedroso – http://www.aplinux.com.br Página 23
  • 24. Alexandre Pedroso – http://www.aplinux.com.br BASH_VERSION, PATH, HOSTNAME, HOSTTYPE, HOME, LANG, MAIL, LOGNAME, OSTYPE, MANPATH, USERNAME, entre outras. echo : comando utilizado para visualizar na saída padrão o conteúdo de uma variável de ambiente. export : comando utilizado para exportar o conteúdo de uma variável de ambiente para diferentes shell’s carregados pelo usuário. exit : comando utilizado para encerrar uma seção de shell. Perceba que exit não é o mesmo que logout. O comando logout permite ao usuário sair do sistema, enquanto que o comando exit encerra somente uma seção de shell carregada. unset : comando utilizado para limpar o conteúdo de uma variável de ambiente. alias : comando utilizado para criação de alias de comandos do sistema. Mas o que vem a ser um alias? Um alias nada mais é do que um apelido dado a um comando. Isso pode ser utilizado, por exemplo, para comandos complexos e de difícil memorização. Ao invés de ter de digitar mount –r –t iso9660 /dev/cdrom /mnt/cdrom todas as vezes que for utilizar o cdrom, você pode criar um alias chamado cdrom que fará o mesmo trabalho com bem menos digitação. unlias : comando utilizado para exclusão de aliases criados no sistema. bash : o comando bash é utilizado para carregar uma nova seção de shell para o usuário. No LINUX, podemos carregar uma série de seções de shell com um mesmo usuário. É como se existisse um shell pai (que é iniciado quando o usuário efetua login no sistema) e carregássemos vários outros shell’s em sequência, criando com isso shell’s filhos. Como vimos acima, temos os comandos export (exportar variáveis de ambiente para diferentes shell’s carregados) e exit (encerrar seção de shell) que estão diretamente relacionados ao comando bash. IMPORTANTE: Não podemos confundir o bash que é o shell padrão do LINUX com o comando bash que executa uma nova seção de shell no sistema. IMPORTANTE: Variáveis de ambiente são sempre escritas em maiúsculo. Isso não é uma lei e sim um padrão. Não deixarão de funcionar se forem escritas em minúsculos, mas os padrões estão aí para facilitar e para serem utilizados. Alexandre Pedroso – http://www.aplinux.com.br Página 24
  • 25. Alexandre Pedroso – http://www.aplinux.com.br 3.4 – EXEMPLOS DE UTILIZAÇÃO set (visualizar as variáveis de ambiente do usuário corrente) set | more (visualizar as variáveis de ambiente do usuário corrente com paginação – pausa na tela) echo $TURMA (visualizar o conteúdo da variável chamada TURMA) export TURMA=noite (definir o conteúdo da variável TURMA e exportar para todos os shell’s do sistema) exit (encerrar uma seção de shell) unset $TURMA (limpar o conteúdo da variável de sistema $TURMA) alias (visualizar os aliases existentes para o usuário corrente) alias | less (visualizar os aliases existentes para o usuário corrente com paginação – pausa na tela) alias cdrom=”mount –r –t iso9660 /dev/cdrom /mnt/cdrom” (criar um alias chamado cdrom que na verdade irá executar o comando padrão para montagem da unidade de cdrom no sistema) unalias cdrom (remover o alias cdrom criado anteriormente) bash (carregar um novo shell) IMPORTANTE: Todas as variáveis de ambiente, aliases e funções definidas via linha de comando, conforme exemplos acima, estarão disponíveis enquanto o usuário se mantiver logado no sistema. Porém quando o usuário efetuar logout, essas variáveis, aliases e funções Alexandre Pedroso – http://www.aplinux.com.br Página 25
  • 26. Alexandre Pedroso – http://www.aplinux.com.br serão perdidos. Então, como poderíamos fazer para resolver este problema? Bom, vamos lá. Conforme vimos neste capítulo, o shell é um interpretador de comandos e pode ser utilizado para vários propósitos. Existem três tipos básicos de execução de um shell e cada um desses tipos, faz uso de arquivos que auxiliam e ajudam nas configurações personalizadas para o uso do sistema. Bingo! Quando nós precisamos declarar variáveis de ambiente que devam estar disponíveis sempre a todos os usuários do sistema, incluímos estas variáveis dentro de um arquivo que foi feito justamente para isso - /etc/profile. Assim sendo, quando nós precisamos declarar variáveis de ambiente que devam estar disponíveis para um usuário em particular, incluímos estas variáveis dentro de um arquivo que foi feito justamente para isso ~/.bash_profile. Continuando com a brincadeira, quando nós precisamos declarar alias e funções que devam estar disponíveis sempre a todos os usuários do sistema, incluímos estes dentro de um arquivo que foi feito justamente para isso - /etc/bashrc. E assim respectivamente, respeitando sempre a função de cada arquivo no sistema, de acordo com as explicações descritas na pág. 21, 22 e 23 desta apostila. Vejamos abaixo alguns modelos desses arquivos para exemplificar melhor o uso. 3.5 – MODELOS DOS ARQUIVOS DE CONFIGURAÇÃO DO SHELL Vamos ver agora alguns exemplos de arquivos de configuração do shell estudados neste capítulo. Estes modelos foram retirados do Conectiva LINUX 9.0. É bom salientar que, da forma como estão, estes arquivos são criados automaticamente pelo sistema, quando este está sendo instalado. Na verdade, no momento da instalação do Conectiva LINUX 9.0 é criada a conta do superusuário root, seu diretório home (/root) e seus arquivos de configuração do shell. Como já vimos anteriormente, cada usuário possuí seus próprios arquivos de configuração do shell. Sendo assim, o melhor local para armazenar estes arquivos é no diretório home de cada usuário do sistema. Vejamos agora, alguns exemplos destes arquivos. 01) /etc/profile # /etc/profile # System wide environment and startup programs # Functions and aliases go in /etc/bashrc Alexandre Pedroso – http://www.aplinux.com.br Página 26
  • 27. Alexandre Pedroso – http://www.aplinux.com.br PATH="$PATH:/usr/bin/X11:/usr/games:/usr/local/bin" # remember to always keep a ':' at the end of MANPATH if [ $MANPATH ]; then MANPATH="$MANPATH:/usr/local/man:/usr/share/man:/usr/local/share /man:" else MANPATH="/usr/local/man:/usr/share/man:/usr/local/share/man:" fi # This is the original ksh default PS1 value # Bash will get its own from /etc/bashrc PS1='$(/bin/hostname -s) [$PWD] > ' ulimit -c 0 if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then umask 002 else umask 022 fi USER=`id -un` LOGNAME=$USER MAIL="/var/spool/mail/$USER" EDITOR=/usr/bin/vi HOSTNAME=`/bin/hostname` HISTSIZE=1000 HISTFILESIZE=1000 INPUTRC=/etc/inputrc export EDITOR HISTFILESIZE HISTSIZE HOSTNAME INPUTRC LOGNAME MAIL MANPATH PATH PS1 USER for i in /etc/profile.d/*.sh ; do if [ -x $i ]; then . $i fi done unset I Alexandre Pedroso – http://www.aplinux.com.br Página 27
  • 28. Alexandre Pedroso – http://www.aplinux.com.br 02) /etc/bashrc # /etc/bashrc # System-wide functions and aliases # Environment configuration on /etc/profile PS1="[u@h W]$ " alias alias alias alias alias alias alias alias alias alias alias alias which="type -path -a" l="ls -laF --color=auto" ls="ls --color=auto" m="minicom -s -con -L" minicom="minicom -s -con -L" tm="tail -f /var/log/messages" tmm="tail -f /var/log/maillog" tms="tail -f /var/log/secure" cds="cd /etc/rc.d/init.d && ls" fd="mount /dev/fd0 /mnt/floppy; cd /mnt/floppy && ls" ufd="cd /mnt && umount floppy && ls" ldir="mount /mnt/floppy && l /mnt/floppy && umount /mnt/floppy" 03) ~/.bash_profile # ~/.bash_profile: executed by Bourne-compatible login shells. if [ -f ~/.bashrc ]; then . ~/.bashrc fi PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bi n/X11 export PATH mesg n 04) ~/.bashrc # ~/.bashrc: executed by bash(1) for non-login shells. export PS1='h:w$ ' umask 022 # You may uncomment the following lines if you want `ls' to be colorized: # export LS_OPTIONS='--color=auto' Alexandre Pedroso – http://www.aplinux.com.br Página 28
  • 29. Alexandre Pedroso – http://www.aplinux.com.br # eval `dircolors` # alias ls='ls $LS_OPTIONS' # alias ll='ls $LS_OPTIONS -l' # alias l='ls $LS_OPTIONS -lA' # Some more alias to avoid making mistakes: alias cls='clear' alias dir='ls -lah' # alias rm='rm -i' # alias cp='cp -i' # alias mv='mv -i' 05) ~/.bash_logout # ~/.bashrc: executed by bash(1) for non-login shells. clear 06) ~/.bash_history logout cd /etc/apt/ mcedit sources.list cd apt-get update apt-get install apt apt-get dist-upgrade cls lynx http://www.aplinux.com.br lynx http://www.br-linux.org logout Alexandre Pedroso – http://www.aplinux.com.br Página 29
  • 30. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 04 - GERENCIAMENTO DE ARQUIVOS E DIRETÓRIOS 4.1 – INTRODUÇÃO Uma das mais importantes tarefas de um administrador de sistemas LINUX é conhecer como se dá o gerenciamento de arquivos e diretórios do sistema. Mais do que isso, o administrador do sistema, deve conhecer a fundo a grande maioria dos arquivos de configuração do sistema, sua localização na árvore de diretórios e os comandos utilizados para manipulação destes arquivos. Neste capítulo, começaremos o estudo dos arquivos e diretórios do sistema e falaremos sobre comandos, considerados básicos, mas vitais para qualquer administrador. 4.2 – METACARACTERES Os Metacaracteres são um conjunto de símbolos utilizados para facilitar a manipulação de arquivos e diretórios do sistema. Eles são muito utilizados em várias tarefas administrativas, tais como: - Cópias de arquivos Busca em arquivos Busca de string ou expressão Scripts Backup do Sistema Monitoramento O intuito deste tópico é apresentar os principais Metacaracteres existentes no sistema e demonstrar como estes podem ser úteis para as tarefas diárias de um administrador. Então, vamos lá. * : representa qualquer caractere em qualquer quantidade ? : representa qualquer caractere na quantidade um. [] : representa uma lista de caracteres. {} : representa uma seqüência de caracteres separados por vírgula. Alexandre Pedroso – http://www.aplinux.com.br Página 30
  • 31. Alexandre Pedroso – http://www.aplinux.com.br Estes são os Metacaracteres que iremos estudar. Mais adiante no tópico de exemplos práticos deste capítulo, veremos as suas utilizações de forma mais detalhada. 4.3 – TIPOS DE ARQUIVOS Em sistemas LINUX, temos vários tipos de arquivos que podem ser identificados com o comando ls –lah. Vejamos agora os tipos mais comuns de arquivos presentes em sistemas LINUX. Tipos de arquivos Arquivo regular (comum) d Diretório l Link simbólico b Dispositivo orientado a bloco (hd, disquete, etc) c Dispositivo orientado a caractere (modem, serial, etc) s socket (comunicação entre processos do sistema) p pipe (comunicação entre processos do sistema) Abaixo, segue uma demonstração do comando identificamos os tipos de arquivos listados. Tipo + Perm -rw------drw-r--r--rw-r--r-- L 1 1 1 U.D. root root root G.D. root root root ls –la e como Tam Data Hora Arquivo 217 2004-06-28 12:43 .ICEauthority 0 2004-06-24 17:40 .qconf 272 2004-06-28 13:01 APLINUX.doc No exemplo acima, temos na primeira coluna a identificação do tipo de arquivo e suas permissões. Ainda é cedo para falarmos das permissões, mas como podemos perceber, o primeiro caractere desta coluna indica que tipo de arquivo está sendo visualizado. Observe sua tabela com os tipos de arquivos existentes e compare com este primeiro caractere para saber os tipos de arquivos listados com o comando. 4.4 – LISTANDO ARQUIVOS E DIRETÓRIOS cd: comando utilizado para troca de diretórios (movimentação no sistema). Alexandre Pedroso – http://www.aplinux.com.br Página 31
  • 32. Alexandre Pedroso – http://www.aplinux.com.br pwd: comando utilizado para informar o caminho completo que o usuário corrente se encontra. ls : comando utilizado para listar arquivos e diretórios na saída padrão. Parâmetros do ls: -a -l -F -h 4.5 Visualizar Visualizar Visualizar arquivo. Visualizar todos os arquivos, inclusive ocultos. em forma de lista (na vertical) também um símbolo para identificar o tipo do tamanho dos arquivos com formatação visual. – CRIANDO E REMOVENDO ARQUIVOS E DIRETÓRIOS touch : comando utilizado para criar arquivos vazios no sistema. mkdir : comando utilizado para criar diretórios vazios no sistema. Parâmetros do mkdir: -p Utilizado para criar uma árvore de diretórios. rmdir : comando utilizado para remover diretórios vazios no sistema. rm : comando utilizado para remover arquivos e diretórios no sistema. Parâmetros do rm: -r -f -i 4.6 Remover árvore de diretórios de forma recursiva. Modo forçado, ou seja, sem confirmação para exclusão. Modo interativo, ou seja, com confirmação para exclusão. – COPIANDO, RENOMEANDO E MOVENDO ARQUIVOS E DIRETÓRIOS cp : comando utilizado para copiar arquivos e diretórios Alexandre Pedroso – http://www.aplinux.com.br Página 32
  • 33. Alexandre Pedroso – http://www.aplinux.com.br Parâmetros do cp: -R -f -i -a -b Copiar árvore de diretórios de forma recursiva. Modo forçado, ou seja, sem confirmação para sobrescrever destino. Modo interativo, ou seja, com confirmação para sobrescrever destino. Copiar arquivos preservando suas permissões originais. Faz um backup do arquivo de destino que será sobrescrito. mv : comando utilizado para renomear ou mover arquivos e diretórios. Parâmetros do mv: -i -b 4.7 Modo interativo, ou seja, com confirmação para sobrescrever destino. Faz um backup do arquivo de destino que será sobrescrito. – HARD LINKS E LINKS SIMBÓLICOS A função dos comandos de link é criar uma ligação simbólica (atalho) entre arquivos. Existem basicamente dois tipos de ligações no sistema: os hard links e os links simbólicos. Os hard links podem ser chamados de cópias de um mesmo arquivo em um mesmo diretório ou em diretórios diferentes. Na verdade, não são cópias e sim o mesmo arquivo com nomes diferentes. É importante salientar que, o arquivo somente é apagado definitivamente do disco quando todos os seus links são removidos. Outra característica interessante dos hard links é que quando for alterado um dos arquivos linkados, todos os demais serão alterados. Já os links simbólicos estão mais para atalhos de arquivos no sistema. Neste caso, a alteração ou a exclusão de um dos arquivos linkados, não interfere em nada os demais. Portanto, excluindo um arquivo para o qual links simbólicos apontam, nada acontece. É claro que, os links estarão quebrados e por esse motivo os atalhos não funcionarão, mas não existe, além disso, nenhuma ligação entre os arquivos. ln : comando utilizado para criar links no sistema. Alexandre Pedroso – http://www.aplinux.com.br Página 33
  • 34. Alexandre Pedroso – http://www.aplinux.com.br Parâmetros do ln: -s -f 4.8 Utilizado para criação de links simbólicos. Modo forçado, ou seja, sem confirmação para sobrescrever. – EXEMPLOS DE UTILIZAÇÃO ls –l (formato longo) ls –la (formato longo, listando todos os arquivos, inclusive ocultos). ls –lah (formato longo, listando todos os arquivos, inclusive ocultos e com formatação visual do tamanho). ls –lah *.txt (listar somente os arquivo com extensão txt). cp /etc/arquivo.t?t /opt (copiar arquivo.t alguma coisa t do diretório /etc/ para o diretório /opt). ls arq[123] (mostra todos arquivos e diretórios que comecem com arq e tenham um único caractere completando seu nome que pode ser 1, 2 ou 3.). ls arq{123,4,5} (mostra todos os arquivos e diretórios que comecem com arq e tenham como complemento do seu nome 123, 4 ou 5). touch arquivo.txt (criar o arquivo vazio com o nome de arquivo.txt). mkdir aplinux (criar diretório aplinux) mkdir /etc/teste (criar o diretório teste dentro do diretório /etc já existente). mkdir /opt/prog /opt/appl (criar os diretórios prog e appl dentro do diretório /opt já existente). Alexandre Pedroso – http://www.aplinux.com.br Página 34
  • 35. Alexandre Pedroso – http://www.aplinux.com.br mkdir –p /opt/sistema/contabilidade (criar a árvore de diretórios sistema/contabilidade dentro do diretório /opt já existente). pwd (informar o caminho completo que o usuário corrente se encontra). cd (quando utilizado sozinho, muda do diretório atual para o diretório home do usuário corrente). cd / (mudar do diretório atual para a raíz do sistema). cd /opt (mudar do diretório atual para o diretório /opt). rmdir /etc/aplinux (remove o diretório aplinux, desde que este esteja vazio). rm arquivo.txt (remove o arquivo com o nome de arquivo.txt). rm –i arquivo.txt (remove o arquivo com o nome de arquivo.txt, solicitando confirmação). rm –rf /opt (remove o diretório /opt recursivamente, sem confirmação). IMPORTANTE: O uso do comando rm com os parâmetros rf não é recomendado, principalmente se estiver logado no sistema como root. Como já vimos, o sistema não impede nenhuma ação que seja realizada pelo superusuário. Portanto, uma exclusão acidental pode causar danos irreparáveis ao sistema. cp arquivo.txt /etc/sysconfig (copiar o arquivo com o nome de arquivo.txt para dentro do diretório /etc/sysconfig) cp arquivo1.txt arquivo2.txt arquivo3.txt /opt (copiar os arquivos com os nomes de arquivo1.txt, arquivo2.txt e arquivo3.txt simultaneamente para dentro do diretório /opt). cp –R /etc /opt Alexandre Pedroso – http://www.aplinux.com.br Página 35
  • 36. Alexandre Pedroso – http://www.aplinux.com.br (copiar a árvore de diretórios /etc recursivamente para dentro do diretório /opt). cp –b arquivo.txt /opt (copiar o arquivo com o nome de arquivo.txt para dentro do diretório /opt e caso haja, no destino, um arquivo com o mesmo nome, o arquivo de destino será renomeado para arquivo.txt~, ou seja, será feito backup antes de sobrescrever o destino). mv arquivo.txt documento.txt (renomeia o arquivo com o nome de arquivo.txt para documento.txt) mv /etc/arquivo.txt /opt (move o arquivo com o nome de arquivo.txt para dentro do diretório /opt). mv /opt/teste /etc (move o diretório teste de dentro do diretório /opt para o diretório /etc). mv /etc/arquivo.txt /opt/documento.txt (move e renomeia o arquivo chamado arquivo.txt de dentro do diretório /etc para dentro do diretório /opt com o nome de documento.txt). ln /opt/teste teste ln –s /mnt/cdrom/conectiva/RPMS cdrom (criar um link simbólico com o nome de cdrom que aponta para o diretório /mnt/cdrom/conectiva/RPMS, ou seja, um atalho). IMPORTANTE: No exemplo dado acima, se você digitar o comando da forma apresentada, poderá acessar o diretório /mnt/cdrom/conectiva/RPMS, digitando apenas cd cdrom, simplificando com isso, o trabalho de digitação do administrador do sistema. Alexandre Pedroso – http://www.aplinux.com.br Página 36
  • 37. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 05 – ESTRUTURA DE DIRETÓRIOS 5.1 - ENTENDENDO A ESTRUTURA DE DIRETÓRIOS DO SISTEMA Entender e conhecer a estrutura de diretórios de sistemas LINUX é uma das tarefas fundamentais ao administrador do sistema. Vejamos porque. Imagine que você tenha que consertar o motor de um veículo sem conhecer como este motor funciona, sem conhecer suas características e suas particularidades e, além disso, não conhece também as peças que o compõe. Situação um tanto quanto complicada, não acha? Com o LINUX é a mesma coisa. É impossível realizar uma boa administração e um bom suporte ao sistema sem saber quais são e para que servem seus diretórios. Quando instalamos o Conectiva LINUX 9.0, são criados alguns diretórios padrões que serão utilizados pelo sistema. Estes diretórios estão presentes na maioria das distribuições LINUX, havendo pouca, ou muitas vezes, nenhuma diferença entre eles. Estudaremos agora, a estrutura de diretórios existente no Conectiva LINUX 9.0, detalhando a função de cada um deles no sistema. Antes de começarmos, gostaria de fazer um rápido comentário. No LINUX, a estrutura de diretórios é apresentada de uma forma muito diferente dos demais sistemas operacionais. Nele, não encontramos letras de unidades para identificação de partições e muito menos utilizamos a barra invertida para localização de diretórios. As partições ficam dispostas e acessíveis a partir de uma mesma raiz no sistema, denominada /. Para entendermos melhor, segue uma breve explicação. Suponhamos que, você tenha instalado o seu sistema com duas partições diferentes, uma para o boot e outra para o sistema. Suponhamos também que, sua partição de boot é a /boot e sua partição do sistema é a /. Então, digitando, no prompt, o comando cd /, iremos, como já vimos, para a raiz do sistema. Na raiz do sistema, digitando ls – lah, você pode perceber que serão listados todos os diretórios que se encontram na partição /. Além destes, são listados também os diretórios que se encontram em outras partições do disco, no nosso exemplo, o diretório /boot que se encontra na partição /boot. Em breve, compreenderemos porque isso é possível. Por enquanto, simplesmente devemos saber que, o acesso a todos os diretórios do sistema, é feito Alexandre Pedroso – http://www.aplinux.com.br Página 37
  • 38. Alexandre Pedroso – http://www.aplinux.com.br através de um ponto único /, mesmo que estes estejam em partições de discos diferentes. Além disso, toda a navegação pelos diretórios é feita utilizando-se a barra normal. Você escreve cd /etc para acessar o diretório etc e não cdetc. Você escreve cd / para acessar a raiz do sistema e não c:. Com estes conceitos importantes esclarecidos, podemos então, partir para as funções de cada um dos diretórios do sistema. 5.2 – FUNÇÕES DOS DIRETÓRIOS DO SISTEMA / Raiz do sistema. /home Diretórios e arquivos de trabalho dos usuários comuns do sistema. /root Diretórios e arquivos de trabalho do superusuário (root). /boot Contém o kernel e todos os arquivos necessários para a inicialização do sistema. /bin Contém aplicativos e utilitários do sistema. /sbin Contém ferramentas de configuração e manutenção do sistema. /lib Contém as bibliotecas compartilhadas e os módulos do kernel. /dev Contém todos os dispositivos do sistema, tais como, modem, hd, floppy, cdrom, etc /etc Contém todos os arquivos de configuração do sistema. /tmp Diretório reservado para os arquivos temporários utilizados por algumas aplicações. /mnt Diretório reservado para montagem de dispositivos. /proc Contém informações sobre os processos em execução no sistema. Alexandre Pedroso – http://www.aplinux.com.br Página 38
  • 39. Alexandre Pedroso – http://www.aplinux.com.br /usr Programas de usuários, sistemas de janelas X, jogos, etc. /var Contém arquivos de dados variáveis como log do sistema e diretórios de spool. /opt Diretório reservado para terceiros como OpenOffice. instalação de aplicações Alexandre Pedroso – http://www.aplinux.com.br Página 39 de
  • 40. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 06 – DOCUMENTAÇÃO LINUX 6.1 – COMO UTILIZAR A DOCUMENTAÇAO DO SISTEMA O Conectiva LINUX 9.0 vem com uma vasta documentação disponível no próprio sistema. Estas são as páginas do manual contidas no produto, em sua grande maioria, escritas em português. Isso é muito útil e deve ser utilizado sempre que exista alguma dúvida ou a necessidade de aprofundamento em alguns dos tópicos apresentados nesta apostila. Este manual online é muito completo. Por exemplo, os comandos apresentados pelo manual, trazem muitas e muitas opções de parâmetros que não se encontram nesta apostila. Por esse motivo, separei um capítulo inteiro da apostila para falar da documentação do sistema e repetir quantas vezes for necessário, a importância de utilizar esta documentação diariamente, como forma de aprendizado ou complemento ao aprendizado. IMPORTANTE: As páginas do manual são pacotes opcionais que podem ou não ser instalados no sistema. Cabe a você, decidir no momento da instalação se deseja ou não que sejam instalados estes pacotes. Particularmente, eu recomendo a instalação desses e de outros pacotes que fizerem referência à documentação do sistema. Primeiro porque, nunca sabemos quando poderemos precisar de auxílio para resolver algum problema ou para realizar alguma tarefa ou, até mesmo, para sanar aquela pequena dúvida que sempre aparece nas horas erradas. E em segundo lugar, eu nunca conheci alguém que soubesse exatamente tudo que se encontra nesta documentação e que pudesse falar com franqueza: “Eu não preciso dela, por isso não vou instalar”. A única boa explicação para que se não instale a documentação do sistema é a de que o computador não possui espaço suficiente para comportar todos os pacotes que a compõe. Ainda sim, seria melhor tentar adquirir um novo disco rígido... Existem algumas formas de acessarmos a documentação do sistema. Normalmente, o fazemos digitando alguns dos comandos demonstrados abaixo. man : comando utilizado para exibir as páginas do manual de um comando qualquer do sistema. Alexandre Pedroso – http://www.aplinux.com.br Página 40
  • 41. Alexandre Pedroso – http://www.aplinux.com.br Parâmetros do man: -C -M -P -a Especificar um arquivo de configuração alternativo para as páginas. Especificar um caminho para a busca pelas páginas de manuais. Especificar qual paginador será utilizado para exibição. Exibir todas as páginas que combinem com o nome especificado. IMPORTANTE: Na grande maioria das vezes, utilizamos o comando man sem parâmetro algum, pois por padrão ele já vem com as configurações citadas acima definidas para o uso. help : comando utilizado para exibir uma rápida ajuda sobre um comando qualquer do sistema. info : comando utilizado para exibir as páginas do manual de um comando qualquer do sistema. Gradativamente, o info vem substituindo o man. 6.2 – EXEMPLOS DE UTILIZAÇÃO man find (exibe as páginas do manual do comando find). man rmdir (exibe as páginas do manual do comando rmdir). rmdir --help (exibe uma rápida ajuda sobre o comando rmdir). info find (exibe as páginas do manual do comando find). IMPORTANTE: Além disso, temos as documentações específicas de cada pacote instalado no sistema. Por exemplo, meu computador vai ser um servidor que publica zonas de DNS, portanto, tenho instalado em meu LINUX os pacotes do BIND (Berkeley Internet Name Domain). Se eu precisar sanar alguma dúvida com referência ao BIND, não usarei o man, o help e tão pouco o info. Vou acessar um diretório do sistema que contém a documentação de todos os pacotes instalados. Este diretório é Alexandre Pedroso – http://www.aplinux.com.br Página 41
  • 42. Alexandre Pedroso – http://www.aplinux.com.br o /usr/share/doc/. Dentro dele, existem vários sub-diretórios que contém os manuais específicos de cada pacote. Vale salientar que, estes manuais só estarão disponíveis para mim neste diretório, se eu optar por instalá-los no momento da instalação do BIND. 6.3 – FONTES DE DOCUMENTAÇÃO NA INTERNET Todos nós sabemos que, nos dias de hoje, a Internet é uma grande fonte de conhecimento e de pesquisa disponível para todos. Nela você pode encontrar desde simples receitas culinárias até modelos de cálculos avançados de interoperabilidade espacial. Isso é muito bom, desde que se saiba como procurar essas documentações e que se saiba, principalmente, filtrar o que realmente são documentos sérios e originais do que nós chamamos de falso-conteúdo e plágio. Falando sobre LINUX, as regras são as mesmas. Existem muitos e muitos bons sites espalhados na Internet, mas também existem os ruins. Cabe a você examiná-los, explorá-los e aproveitar tudo que eles tem a oferecer. A comunidade LINUX brasileira vem crescendo muito ultimamente e, todos os dias, surgem novos sites com propostas inovadoras. Isso é muito bom e muito importante, pois precisamos mesmo de muitas e muitas pessoas desenvolvendo para LINUX, trabalhando com LINUX, escrevendo LINUX e lecionando LINUX. Quero deixar claro que, as opiniões apresentadas nesta apostilas não são verdades absolutas e não foram escritas com este propósito. Portanto, os sites que recomendo abaixo, são experiências particulares minhas e que podem não agradar a todos, mas que a mim, agradaram. Neles vocês encontrarão muitos e muitos artigos sobre LINUX, dicas, novidades, notícias e excelentes fóruns para perguntas e respostas sobre os diversos assuntos desse universo chamado LINUX. Então, vamos lá, a lista tão esperada segue abaixo. 1) 2) 3) 4) 5) 6) 7) 8) 9) http://www.aplinux.com.br http://www.conectiva.com.br http://www.br-linux.org http://www.noticiaslinux.com.br http://www.underlinux.com.br http://www.dicas-l.unicamp.br http://www.linuxdicas.com.br http://www.ccl-br.com.br http://www.revistadolinux.com.br Alexandre Pedroso – http://www.aplinux.com.br Página 42
  • 43. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 07 - PERMISSÕES EM ARQUIVOS E DIRETÓRIOS 7.1 – INTRODUÇÃO Qualquer sistema operacional precisa contar com um bom controle de acesso aos seus arquivos e diretórios. Isso é o primeiro passo para garantir a segurança e a integridade dos dados gravados no sistema. Além disso, como poderemos garantir que as configurações do sistema não serão alteradas por pessoas não autorizadas, se o sistema operacional não conta com um bom controle de acesso aos seus arquivos e diretórios. No LINUX o controle de acesso aos arquivos e diretórios possui uma forma particular de funcionamento, muito diferente da maioria dos demais sistemas operacionais. Apesar de bem simples, o controle é eficaz e garante a segurança do sistema, se bem configurado, é claro. O que vamos estudar neste capítulo é exatamente isso. Como podemos garantir que o nosso sistema LINUX esteja com seus dados e seus arquivos de configuração seguros e bem salvos de qualquer tipo de alteração indevida. Primeiramente, é importante definir que, em sistemas LINUX, existem dois modos de se definir as permissões em arquivos e diretórios. Iremos aprender os dois modos, mas é importante salientar que, existe um deles que é mais difundido e mais utilizado por toda a comunidade. O LINUX possui apenas três tipos de permissões. Por esse motivo, alguns especialistas em segurança de sistemas, dizem que sua segurança não é boa no que diz respeito ao acesso aos arquivos, porém eu discordo plenamente. É claro que, se for comparado com outros sistemas operacionais, poderemos até considerar como sendo uma desvantagem, porém não é uma falha. Digo isso porque, mesmo com poucas permissões disponíveis, o LINUX pode ser configurado de forma segura e, com certeza, não ficar atrás de nenhum outro sistema operacional no quesito segurança do sistema de arquivos. Seguem abaixo as permissões existentes no LINUX. Outro detalhe que devemos apresentar é que as permissões são dadas para contas de usuários e para contas de grupos no sistema. Isso quer dizer que, os direitos efetivos de um usuário em arquivos e diretórios Alexandre Pedroso – http://www.aplinux.com.br Página 43
  • 44. Alexandre Pedroso – http://www.aplinux.com.br são a soma das permissões deste usuário com as permissões dos grupos aos quais este usuário pertence. 7.2 – MODO SIMBÓLICO Neste modo, utilizaremos o comando chmod e, além dele, utilizaremos as permissões em modo simbólico, os operadores e as notações simbólicas. Vejamos abaixo, a explicação de cada um dos itens citados acima. Permissões r w x LINUX leitura gravação execução IMPORTANTE: Se nós temos somente as permissões mostradas acima, como poderíamos fazer para dar permissão de exclusão a um usuário em um arquivo qualquer do sistema? Simples e complicado ao mesmo tempo. Simples porque, quando dermos a um usuário a permissão de gravação em um arquivo, automaticamente este usuário terá permissão de exclusão para este arquivo. Complicado porque, um usuário que tem permissão de alteração em um arquivo, pode excluí-lo acidentalmente e complicar a vida do administrador do sistema. É claro que existem outras formas de garantir que este arquivo não seja excluído acidentalmente, mas de qualquer forma, achei que valeria a pena alertar para o problema. Nas permissões LINUX, não existe permissões separadas para configuração de alteração e exclusão de arquivos. E isso é ruim... Operadores + = do modo Simbólico Utilizado para adicionar a permissão Utilizado para remover a permissão Utilizado para atribuir somente a permissão especificada na linha de comando Notação simbólica u Usuário dono do arquivo g Grupo dono do arquivo o Outros usuários do sistema a Utilizado para definir permissões tanto para o usuário dono, para o grupo dono e para os outros usuários do sistema. Alexandre Pedroso – http://www.aplinux.com.br Página 44
  • 45. Alexandre Pedroso – http://www.aplinux.com.br 7.3 – MODO OCTAL Este é o modo mais utilizado para definirmos permissões no LINUX. Isso porque, além de ser mais fácil, é também mais prático quando digitado na linha de comando. Para utilizarmos o modo octal, basta apenas sabermos os valores octais de cada uma das três permissões existentes no LINUX. Valores octais das permissões LINUX r leitura 4 w gravação 2 x execução 1 7.4 – SUID BIT, SGID BIT E STICKY BIT O suid bit, o sgid bit e o sticky bit são permissões avançadas que podem ser utilizadas para garantir ainda mais a segurança do sistema. Vejamos agora a função de cada uma dessas permissões. - suid bit : um arquivo com o suid bit ativado, será executado com as permissões do usuário dono do arquivo e não com as permissões do usuário que o executou (valor octal = 4). - sgid bit : em um diretório com o sgid bit ativado, qualquer arquivo que seja criado dentro dele, será criado com o mesmo grupo dono do diretório (valor octal = 2). - sticky bit : em um diretório com o sticky bit ativado, somente o dono do arquivo poderá remove-lo, ou seja, mesmo que um usuário qualquer tentar remover este arquivo e tenha permissão para isso, o sticky bit não permitirá (valor octal = 1). IMPORTANTE: Dentre essas três permissões avançadas estudadas acima, podemos dizer que somente as permissões dois e três, sgid bit e sticky bit, respectivamente, podem ser utilizadas com a finalidade de manter a segurança do sistema. A primeira delas, suid bit, é muito perigosa e deve ser evitada em qualquer sistema, mesmo os que não tenham conexões ativas com a Internet. Isso porque, imagine que um script tenha como usuário dono o root. Se este script estiver com o suid bit ativado, qualquer usuário que executá-lo, o estará fazendo com direito de root. Até aí tudo bem, o problema vem agora. Imagine que Alexandre Pedroso – http://www.aplinux.com.br Página 45
  • 46. Alexandre Pedroso – http://www.aplinux.com.br este mesmo script tenha um código para excluir recursivamente todo o diretório /etc. Bingo! Um simples usuário acabou com seu sistema em poucos segundos. Se você não é louco e não deseja que isso aconteça com você, procure por todos os suid bit do sistema e remova-os impiedosamente. Mais adiante estudaremos como fazer isso de uma maneira bem simples, rápida e prática. IMPORTANTE: É bom salientar que para trabalharmos com permissões no sistema de arquivos do LINUX, sempre temos que utilizar dois comandos em conjunto. Um deles será utilizado para definir permissões nos arquivos e diretórios e o outro será utilizado para definir quem terá estas permissões. É mais ou menos assim. Imagine que você precisa dar um presente a alguém. Você precisa de duas informações para realizar esta tarefa sem erros. Primeiro você precisa saber que presente vai dar e em segundo, você precisa saber para quem será dado o presente. A mesma coisa acontece com as permissões em arquivos e diretórios do LINUX. Primeiro você deve saber qual permissão será dada e depois para qual ou para quais usuários do sistema elas serão concebidas. IMPORTANTE: Uma das maiores falhas de seguranças encontradas em sistemas de computadores é a união da permissão de gravação com a permissão de execução em um arquivo ou diretório. Para visualizarmos o problema, imaginemos que você definiu em um diretório qualquer em seu sistema que os outros usuários podem gravar e executar arquivos. Isso significa que, em poucos segundos seu sistema pode, literalmente, virar poeira ou deixar de existir. Mas porque, você acaba de me perguntar... É bem simples. Se um usuário malicioso escrever um código (shell script) que faz alguma coisa errada no sistema, ele poderá gravar este script neste diretório e, por incrível que pareça, poderá executar este script e causar danos graves ao sistema. Isso ainda não é o pior. Imagine agora que além de dar permissão de gravação e execução neste diretório, você ativou o suid bit. Pronto, agora você realmente está querendo morrer! Este script gravado pelo usuário, será executado por ele com poderes de root e isso significa um problema e tanto para você. Portanto, nada de permissões casadas de gravação e execução e nada de suid bit em seu sistema. Visualização das permissões de arquivos e diretórios Tipo + Perm L U.D. G.D. Tam Data Hora Arquivo -rw------1 root root 217 2004-06-28 12:43 .ICEauthority drw-r--r-1 root root 0 2004-06-24 17:40 .qconf -rw-r--r-1 root root 272 2004-06-28 13:01 APLINUX.doc Alexandre Pedroso – http://www.aplinux.com.br Página 46
  • 47. Alexandre Pedroso – http://www.aplinux.com.br No exemplo acima, podemos observar que a primeira coluna da tabela contém as informações de permissões dos arquivos e diretórios do sistema. Como já vimos anteriormente, o primeiro caractere da esquerda para a direita desta coluna representa o tipo de arquivo. Então vamos desconsiderar este caractere para as permissões. Contando do segundo caractere da esquerda para a direita na primeira coluna da tabela, temos três grupos de três caracteres cada um. Estes grupos de caracteres indicam, conforme já vimos, as permissões do usuário dono do arquivo ou diretório (primeiro grupo de três caracteres), grupo dono do arquivo ou diretório (segundo grupo de três caracteres) e outros usuários do sistema (terceiro grupo de três caracteres). Além disso, a tabela nos informa também quem são, atualmente, o usuário dono do arquivo ou diretório e o grupo dono do arquivo ou diretório. Estas informações estão, respectivamente, nas colunas três e quatro da tabela. Desta forma, temos todas as informações necessárias para alterar as permissões em arquivos e diretórios do sistema. 7.5 – COMANDOS ENVOLVIDOS chmod : comando utilizado para alterarmos as permissões em arquivos e diretórios do sistema. Parâmetros do chmod: -R Alterar permissões de forma recursiva em uma árvore de diretórios. chown : comando utilizado para alterarmos o usuário dono e o grupo dono de arquivos e diretórios do sistema. Parâmetros do chown: -R Alterar usuário dono e grupo dono de forma recursiva em uma árvore de diretórios. umask : comando utilizado para definirmos as permissões padrões para criação de novos arquivos e diretórios no sistema. O comando umask exige um conceito e um cálculo a mais para ser utilizado. Por padrão, qualquer arquivo criado em um sistema LINUX sem umask configurado, terá permissão octal de 666. No Conectiva LINUX 9.0, o umask padrão do sistema tem valor octal de 022. Alexandre Pedroso – http://www.aplinux.com.br Página 47
  • 48. Alexandre Pedroso – http://www.aplinux.com.br Portanto, podemos concluir que, qualquer arquivo que seja criado no sistema terá permissão octal de 644. É simples. Basta subtrair o valor octal do comando umask ao valor octal padrão do sistema que é 666. No nosso exemplo, 666 – 022 = 644. 7.6 – EXEMPLOS DE UTILIZAÇÃO chmod u+r /etc/passwd (adiciona permissão de leitura ao usuário dono do arquivo /etc/passwd). chmod u-w /etc/passwd (exclui permissão de gravação do usuário dono do arquivo /etc/passwd). chmod g+x /etc/passwd (adiciona permissão de /etc/passwd). execução ao grupo dono do arquivo chmod g-r /etc/passwd (exclui permissão de leitura do grupo dono do arquivo /etc/passwd). chmod o+rw /etc/passwd (adiciona permissões de leitura e gravação aos outros usuários do sistema no arquivo /etc/passwd). chmod u=rw,g=rw,o=r /etc/passwd (define as permissões do usuário dono, do grupo dono e de outros usuários do sistema para leitura + gravação, leitura + gravação e leitura, respectivamente, no arquivo /etc/passwd). chmod 000 /etc/passwd (define as permissões do usuário dono, do grupo dono e de outros usuários do sistema para nenhum acesso, nenhum acesso e nenhum acesso, respectivamente, no arquivo /etc/passwd). chmod 644 /etc/passwd (define as permissões do usuário dono, do grupo dono e de outros usuários do sistema para leitura + gravação, leitura e leitura, respectivamente, no arquivo /etc/passwd). chmod 755 /etc/passwd Alexandre Pedroso – http://www.aplinux.com.br Página 48
  • 49. Alexandre Pedroso – http://www.aplinux.com.br (define as permissões do usuário dono, do grupo dono e de outros usuários do sistema para direito total, leitura + execução e leitura + execução, respectivamente, no arquivo /etc/passwd). umask 000 (define a permissão octal padrão para criação de arquivos e diretórios no sistema para 777 – péssima idéia!). umask 022 (define a permissão octal padrão para criação de arquivos e diretórios no sistema para 644 – ótima idéia!). chown root:root /etc/passwd (altera o usuário dono e o grupo dono respectivamente, no arquivo /etc/passwd). chown alex:admin /etc/passwd (altera o usuário dono e o grupo dono respectivamente, no arquivo /etc/passwd). para para root alex e e root, admin, chmod 1755 /opt/sistema (altera as permissões do diretório /opt/sistema habilitando o sticky bit). chmod 4755 /opt/sistema (altera as permissões do diretório /opt/sistema habilitando o suid bit). chmod 2755 /opt/sistema (altera as permissões do diretório /opt/sistema habilitando o sgid bit). Alexandre Pedroso – http://www.aplinux.com.br Página 49
  • 50. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 08 - COMANDOS AVANÇADOS DO SISTEMA 8.1 – COMANDOS AVANÇADOS DO SISTEMA Os comandos avançados do sistema são muito utilizados pelos administradores. Através deles, é possível realizar quase todas as tarefas administrativas do sistema. Portanto, além de muito importantes para o dia a dia do profissional LINUX, estes comandos estão presentes na avaliação de certificação. Então, mãos a obra! cat : comando utilizado para visualizar o conteúdo de um arquivo na saída padrão (listagem da primeira para a última linha). tac : comando utilizado para visualizar o conteúdo de um arquivo na saída padrão (listagem da última para a primeira linha). sort : comando utilizado para classificar as linhas de um arquivo na saída padrão. Parâmetros do sort: -d -r -u -f Classificação em ordem crescente Classificação em ordem decrescente Não repete linhas idênticas encontradas no arquivo Ignora diferenciação entre maiúscula e minúscula, existente por padrão no sistema. wc : comando utilizado para contar as palavras, as linhas ou os caracteres presentes em um arquivo. Parâmetros do wc: -l -w -c Contagem das linhas do arquivo Contagem das palavras do arquivo Contagem dos caracteres do arquivo head : comando utilizado para visualizar as primeiras linhas de um arquivo na saída padrão. Parâmetros do head: -n Número de linhas a mostrar Alexandre Pedroso – http://www.aplinux.com.br Página 50
  • 51. Alexandre Pedroso – http://www.aplinux.com.br -v Imprime cabeçalho com o nome do arquivo tail : comando utilizado para visualizar as últimas linhas de um arquivo na saída padrão. Parâmetros do tail: -n -c -f Número de linhas a mostrar Número de caracteres a mostrar Continua indefinidamente, assumindo que arquivo está crescendo (muito usado para log’s do sistema). cut : comando utilizado para cortar colunas ou campos de um arquivo. O cut não altera o conteúdo do arquivo, somente envia o resultado para saída padrão. Parâmetros do cut: -c -d -f Colunas a serem cortadas no arquivo Informa o caractere usado como delimitador de campo Define o range de campos a serem cortados expand : comando utilizado para substituir ocorrências de tabulações por caracteres em branco. Parâmetros do expand: -i -t n Substitui ocorrências de tabulação no início da linha Substitui ocorrências de todas as tabulações por número de caracteres em branco (n) fmt : comando utilizado para formatação de arquivos. Parâmetros do fmt: -w n -s Largura do texto a ser formatada (n) Não concatena linhas, respeitando as quebra de linhas pr : comando utilizado para formatar um arquivo para impressão. Parâmetros do pr: -d -f Utiliza duplo espaçamento de linha para impressão Utiliza como separador de página o avanço de formulário Alexandre Pedroso – http://www.aplinux.com.br Página 51
  • 52. Alexandre Pedroso – http://www.aplinux.com.br -h Título a ser impresso grep : comando utilizado para procurar por palavras ou expressões dentro de um arquivo. Parâmetros do grep: -i -l -v Não faz distinção entre minúscula e maiúscula na busca Lista os nomes dos arquivos ao invés de linhas individualizadas Lista as linhas não correspondidas find : comando utilizado para procurar por arquivos no sistema de arquivos. Parâmetros do find: -name Utilizado para informar o nome do arquivo a ser procurado updatedb : comando utilizado para gerar um banco de dados indexado com informações de localização dos arquivos no sistema de arquivos. locate : comando utilizado para localizar arquivos no banco de dados gerado pelo comando updatedb. IMPORTANTE: O comando locate é utilizado para consulta aos arquivos do sistema. Sua vantagem é que a busca é muito rápida. Por ser feita em um banco de dados indexado gerado pelo comando updatedb, essa busca consegue retornar rapidamente a localização de qualquer arquivo do sistema. Muito mais eficiente que o find, o locate tem um único defeito. Ele depende que o comando updatedb seja executado regularmente, pois senão a busca será feita em um arquivo desatualizado, podendo mostrar falsos resultados. whereis : comando utilizado para localizar somente os comandos do sistema de forma rápida. O whereis não faz consultas a arquivos, somente a comandos do sistema, somente consulta os diretórios informados na variável PATH do sistema. sed : comando utilizado para fazer substituições de textos em arquivos. Parâmetros do sed: s Substitui palavra ou expressão no arquivo por outra informada Alexandre Pedroso – http://www.aplinux.com.br Página 52
  • 53. Alexandre Pedroso – http://www.aplinux.com.br g 8.2 Substitui de forma global, ou seja, em todo o arquivo, mesmo que haja repetição. – EXEMPLOS PRÁTICOS cat /etc/passwd (visualiza o conteúdo do arquivo /etc/passwd – do início para o fim). tac /etc/passwd (visualiza o conteúdo do arquivo /etc/passwd – do fim para o início). sort –r cidades.txt (visualiza o conteúdo do arquivo cidades.txt em ordem decrescente). sort cidades.txt (visualiza o conteúdo do arquivo cidades.txt em ordem crescente). wc cidades.txt (informa o número de linhas, palavras e caracteres do arquivo cidades.txt). wc –l cidades.txt (informa o número de linhas do arquivo cidades.txt). head –20 /var/log/messages (lista somente as primeiras 20 linhas do arquivo /var/log/messages). tail –20 /var/log/messages (lista somente as últimas 20 linhas do arquivo /var/log/messages). echo $PATH | tail –c10 (lista somente os últimos 10 caracteres do conteúdo da variável $PATH). cut –d: -f1-1 /etc/passwd (mostra somente o primeiro campo do arquivo /etc/passwd utilizando : como delimitador). cut –d: -f1-3 /etc/passwd (mostra o primeiro, o segundo e o terceiro campo do arquivo /etc/passwd utilizando : como delimitador). expand cidades.txt Alexandre Pedroso – http://www.aplinux.com.br Página 53
  • 54. Alexandre Pedroso – http://www.aplinux.com.br (substitui ocorrências de caracteres em branco). tabulações no arquivo cidades.txt por fmt –w50 –s cidades.txt (formata a largura do texto para 50, respeitando a quebra de linha). pr –d –h “CABEÇALHO DA IMPRESSÃO” cidades.txt (imprime o conteúdo do arquivo cidades.txt com espaçamento de duas linhas e título, conforme comando). grep alex /etc/passwd (lista as linhas que /etc/passwd). contem a palavra alex dentro do arquivo find / –name *.txt (procura por arquivos com a extensão txt em todo o sistema - /). updatedb (gera banco de dados indexado com informações de arquivos e diretórios do sistema). locate cidades.txt (localiza o arquivo cidades.txt rapidamente no banco de dados indexado gerado pelo comando updatedb). whereis halt (localiza o comando halt nos diretórios de PATH do sistema). sed s/C.E.P/cep/g cidades.txt (substitui todas as ocorrências da palavra CEP pela palavra cep no arquivo cidades.txt). Alexandre Pedroso – http://www.aplinux.com.br Página 54
  • 55. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 09 – REDIRECIONAMENTO E PIPE 9.1 – INTRODUÇÃO Os comandos do sistema, quando utilizados isoladamente, tem uma função específica e rendem muito menos do que poderiam render ao administrador do sistema. Porém, quando utilizamos um conjunto de comandos de forma unificada, eles se tornam poderosas ferramentas capazes de realizar praticamente todas as tarefas imagináveis no sistema. Vamos estudar agora, quais são as maneiras de unificar os comandos para atingir os objetivos descritos acima. 9.2 – COMANDOS ENVOLVIDOS tee : comando utilizado para receber a saída de outro comando e enviar o resultado para saída padrão e para um próximo comando. | : comando utilizado para redirecionar a saída padrão de um comando para ser utilizada como entrada padrão de outro comando. > : comando utilizado para modificar a saída padrão de um comando. < : comando utilizado para modificar a entrada padrão de um comando. 2> : comando utilizado para redirecionar as saídas de erro de um comando para um arquivo qualquer. 9.3 – EXEMPLOS DE UTILIZAÇÃO cat cidades.txt | head –5 | tail –1 (visualizar a quinta linha do arquivo cidades.txt). cat cidades.txt | sort | tee cidades.ordenada | wc –l (visualizar o número de linhas do arquivo cidades.txt e criar o arquivo cidades.ordenada que terá o conteúdo do arquivo cidades.txt com as linhas em ordem crescente). Alexandre Pedroso – http://www.aplinux.com.br Página 55
  • 56. Alexandre Pedroso – http://www.aplinux.com.br ls –l > arquivos.txt (cria o arquivo arquivos.txt com o conteúdo do comando ls –l). find / -name *.txt 2> erro.log (procura por arquivos no sistema e redireciona os erros gerados pelo comando para o arquivo erro.log). Alexandre Pedroso – http://www.aplinux.com.br Página 56
  • 57. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 10 - GERENCIAMENTO DE USUÁRIOS E GRUPOS 10.1 – INTRODUÇÃO As contas de usuários e grupos, como já visto anteriormente, são fundamentais para garantirmos a segurança e a integridade dos dados do sistema. O usuário utilizará, sempre, uma conta e uma senha para acessar o sistema (realizar o login). Depois disso, poderá somente ter acesso, aos arquivos e diretórios com permissões para esta conta de usuário ou com permissões para alguma conta de grupo que este usuário faça parte. É tarefa fundamental dos administradores de sistemas LINUX saber criar contas de usuários no sistema, criar contas de grupos, delegar autoridades aos usuários, configurar as permissões de acessos aos arquivos e diretórios do sistema de forma adequada, agrupar os usuários com acessos comuns e manter somente contas utilizadas no banco de dados de usuários do sistema. Neste capítulo, estudaremos como podemos realizar todas essas tarefas citadas acima em sistemas LINUX. 10.2 – CONTAS DE USUÁRIOS E CONTAS DE GRUPOS Primeiramente, vamos estudar alguns conceitos importantes sobre o funcionamento destas contas em sistema LINUX. No momento que criamos um usuário no sistema, serão alterados os seguintes arquivos. - /etc/passwd – banco de dados com informações de contas de usuários do sistema e suas propriedades. - /etc/shadow – banco de dados com informações de senhas de usuários do sistema (senhas criptografadas). - /etc/group – banco de dados com informações de contas de grupos do sistema e suas propriedades. Alexandre Pedroso – http://www.aplinux.com.br Página 57
  • 58. Alexandre Pedroso – http://www.aplinux.com.br No momento que criamos um usuário no sistema, serão utilizados os seguintes arquivos. - /etc/login.defs – neste arquivo estão as configurações padrões para o login do usuário. É nele que definimos algumas das opções de segurança, tais como, quantidade mínima de caracteres na senha, tempo de expiração da senha, entre outras. - /etc/skel/* - o conteúdo deste diretório será copiado para dentro do diretório home do usuário, no momento em que este está sendo criado. Esses são arquivos de configuração do shell do usuário, que têm a finalidade de estipular um padrão de criação de contas de usuários. São exemplos desses arquivos: .bashrc, .bash_profile, .bash_logout, .bash_history, entre outros. 10.3 - COMANDOS ENVOLVIDOS useradd : comando utilizado para criação de contas de usuário no sistema. Parâmetros do useradd: -d -g -s Definir o diretório home do usuário Definir o grupo primário do usuário Definir o shell que será utilizado pelo usuário userdel : comando utilizado para exclusão de contas de usuário no sistema. Parâmetros do userdel: -r Apagar também o diretório home do usuário passwd : comando utilizado para alteração de senha de usuário no sistema. groupadd : comando utilizado para criação de contas de grupo no sistema. -f Modo forçado, ou seja, cria o grupo mesmo que já exista no sistema. Alexandre Pedroso – http://www.aplinux.com.br Página 58
  • 59. Alexandre Pedroso – http://www.aplinux.com.br gpasswd : comando utilizado para incluir ou excluir usuários nas contas de grupos. Além disso, o gpasswd é utilizado para administrar os grupos do sistema. Parâmetros do gpasswd: -a -d -R -r -A -M Adicionar usuário no grupo Excluir usuário do grupo Desabilitar o acesso ao grupo através do comando newgrp Remover a senha de um grupo Definir o administrador do grupo Definir os membros e seus direitos no grupo newgrp : comando utilizado pelos próprios membros do grupo para inclusão de novos usuários no grupo. id : comando utilizado para listar informações sobre o usuário, tais como, sei uid, seu gid, grupos que pertence, entre outras. 10.4 – EXEMPLOS DE UTILIZAÇÃO useradd alex (cria o usuário alex no sistema). userdel alex (remove o usuário alex do sistema). userdel –r alex (remove o usuário alex e seu diretório home do sistema). passwd alex (defini ou altera a senha do usuário alex no sistema). passwd (defini ou altera a senha do usuário corrente). groupadd contabilidade (cria o grupo contabilidade no sistema) gpasswd –a alex contabilidade (inclui o usuário alex no grupo contabilidade). Alexandre Pedroso – http://www.aplinux.com.br Página 59
  • 60. Alexandre Pedroso – http://www.aplinux.com.br gpasswd –d alex contabilidade (exclui o usuário alex do grupo contabilidade). id alex (mostra informações sobre o usuário alex). id (mostra informações sobre o usuário corrente). Alexandre Pedroso – http://www.aplinux.com.br Página 60
  • 61. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 11 - SISTEMAS DE ARQUIVOS 11.1 – INTRODUÇÃO Os sistemas de arquivos de um sistema operacional são a forma como este acessa o disco em busca das informações, seja para leitura ou gravação. Eles constituem um conjunto de propriedades que ditam como os arquivos serão armazenados no disco e como serão acessados pelo sistema operacional. Existem vários tipos de sistema de arquivos, que basicamente, servem para realizar o mesmo trabalho. A diferença entre eles é a forma como o trabalho é feito e os recursos disponíveis em cada um dos sistemas de arquivos existentes. São exemplos de sistemas de arquivos FAT16, FAT32, NTFS, EXT2, EXT3, ISO9660, entre outros. No Conectiva LINUX 9.0, o sistema de arquivo padrão é o EXT3. O EXT3 é uma evolução natural para o EXT2. Suas principais características são: Journaling O fsck consegue prover resultados satisfatórios, mas a correção de erros pode levar muito tempo, algo inaceitável em aplicações críticas. Além disso, se o desligamento incorreto do computador ocorreu quando dados estavam sendo gravados no disco, o fsck não conseguirá completar esses processos, ocasionando a perda das informações que estavam sendo gravadas. Diante desses problemas, foi apresentada uma solução viável: a utilização de sistemas de arquivos com a tecnologia "Journaling", que possuem a capacidade de acompanhar as mudanças que serão feitas no sistema de arquivos (por exemplo, gravações/atualizações de dados) antes que realmente sejam feitas. Essas informações que o Journaling captura são então armazenadas em uma parte separada do sistema de arquivos, denominada "Journal" (mas também conhecida por "registros de log"). Quando as informações são armazenadas no Journal, o sistema de arquivos aplica as mudanças registradas nele e então, remove as informações do Journal. Agora, entenda porque o Journaling é uma solução eficiente para os problemas de erro. Os registros de log são escritos antes que as mudanças efetivamente ocorram no sistema de arquivos e esses Alexandre Pedroso – http://www.aplinux.com.br Página 61
  • 62. Alexandre Pedroso – http://www.aplinux.com.br registros somente são eliminados quando as mudanças são feitas. Assim, se o computador é indevidamente desligado, o processo de montagem no próximo startup verificará se há mudanças gravadas no Journal "marcadas" como não feitas. Se houver, tais mudanças são então aplicadas ao sistema de arquivos. Isso faz com que os riscos de perda de dados sejam reduzidos drasticamente. Sistema de arquivos ext3 Existem vários sistemas de arquivos disponíveis com a tecnologia Journaling, como o XFS, desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado com código aberto, o ReiserFS, desenvolvido especialmente para Linux, JFS, desenvolvido originalmente pela IBM mas também liberado com código aberto, e o mais conhecido deles: o ext3, desenvolvido pelo Dr. Stephen Tweedie juntamente com outros colaboradores, na Red Hat, e que veremos agora. O sistema de arquivos ext3 é basicamente o sistema de arquivos ext2 com recursos de Journaling. Talvez, essa seja a razão de seu uso amplo: ele é totalmente compatível com ext2 (que foi um sistema de arquivos muito usado), o que nenhum outro sistema de arquivos baseado em Journaling é. O ext3 passou a ser efetivamente suportado pelo kernel do Linux a partir da versão 2.4. Conseqüentemente, todas as distribuições Linux lançadas com esse kernel ou superior, tem suporte padrão para ext3. No ext3, o código de Journaling usa uma camada chamada "Journaling Block Device" (JBD). A JBD foi criada com o propósito de implementar Journal em qualquer tipo de dispositivo com base em blocos de dados. Por exemplo, o código ext3 informa e "pede autorização" a JDB para efetuar as mudanças, antes de modificar/adicionar qualquer dado no disco. Sendo assim, é o JDB que verdadeiramente "gerencia" o Journal. O fato mais interessante disso é que, a JDB funciona como uma entidade independente, permitindo que não só o ext3 a use, mas também outros sistemas de arquivos. A JDB utiliza um método diferente de outros Journalings para recuperação de informações. Ao invés de armazenar as informações em bytes que depois devem ser implementados, a JDB grava os próprios blocos modificados do sistema de arquivos. Assim, o ext3 também armazena "réplicas" completas dos blocos modificados em memória para rastrear as operações que ficaram pendentes. A desvantagem desta Alexandre Pedroso – http://www.aplinux.com.br Página 62
  • 63. Alexandre Pedroso – http://www.aplinux.com.br forma de trabalho é que o Journal acaba sendo maior. No entanto, o ext3 não precisa lidar com a complexidade dos Journalings que trabalham gravando bytes. Tipos de Journaling no ext3 O ext3 suporta três diferentes modos de trabalho do Journaling. São eles: - Journal: grava todas as mudanças em sistema de arquivos. É o mais lento dos três modos, mas é o que possui maior capacidade de evitar perda de dados. - Ordered: grava somente mudanças em arquivos metadata (arquivos que guardam informações sobre outros arquivos), mas guarda as atualizações no arquivo de dados antes de fazer as mudanças associadas ao sistema de arquivos. Este Journaling é o padrão nos sistemas de arquivos ext3. - Writeback: também só grava mudanças para o sistema de arquivo em metadata, mas utiliza o processo de escrita do sistema de arquivos em uso para gravação. É o mais rápido Journaling ext3, mas o menos confiável. O modo Ordered é o padrão no ext3, mas é possível especificar qual o modo que você deseja usar, através da atualização do arquivo fstab. Vamos aprender agora, como é o esquema de particionamento de disco em sistemas LINUX. Seguem abaixo as identificações de cada dispositivo físico anexado ao sistema, bem como sua devida explicação. - /dev/hda – disco rígido ligado na porta master da ide primária do computador. - /dev/hdb – disco rígido ligado na porta slave da ide primária do computador. - /dev/hdc – disco rígido ligado na porta master da ide secundária do computador. - /dev/hdd – disco rígido ligado na porta slave da ide secundária do computador. /dev/sda – disco rígido ligado na porta master da scsi primária do computador. - Alexandre Pedroso – http://www.aplinux.com.br Página 63
  • 64. Alexandre Pedroso – http://www.aplinux.com.br - /dev/sdb – disco rígido ligado na porta slave da scsi primária do computador. - /dev/sdc – disco rígido ligado na porta master da scsi secundária do computador. - /dev/sdd – disco rígido ligado na porta slave da scsi secundária do computador. - /dev/fd0 – unidade de disquete - /dev/cdrom – unidade de cdrom - /dev/zip – unidade de zipdrive Após este pequena introdução, podemos então partir para os comandos que envolvem o capítulo. 11.2 – COMANDOS ENVOLVIDOS fdisk : comando utilizado para editar a tabela de partições do sistema. Parâmetros do fdisk: -u Exibe informações em setores ou cilindros do disco mkfs : comando utilizado para construir um sistema de arquivos em um disco particionado. Parâmetros do mkfs: -t -c Especificar o tipo de sistema de arquivos a construir Verificar a integridade física do dispositivo fsck : comando utilizado para verificar a integridade do sistema de arquivos. Parâmetros do fsck: -p Reparação automática do sistema de arquivos Alexandre Pedroso – http://www.aplinux.com.br Página 64
  • 65. Alexandre Pedroso – http://www.aplinux.com.br -c -R Faz também exame de superfície Não verifica raiz do sistema se estiver montado para leitura e gravação mount : comando utilizado para montar um dispositivo em um ponto de montagem no sistema. Parâmetros do mount: -t Especificar tipo do sistema de arquivos do dispositivo que será montado. -r Montar como somente leitura umount : comando utilizado para desmontar um dispositivo de um ponto de montagem no sistema. du : comando utilizado para exibir informações do tamanho de arquivos e diretórios do disco. -s -h Totalização do tamanho do diretório Visualizar tamanho com formatação visual. df : comando utilizado para exibir informações de espaço em disco ocupado pelas partições montadas no sistema. -h Visualizar tamanho com formatação visual. 11.3 – EXEMPLOS PRÁTICOS fdisk /dev/hda (edita a tabela de partição do /dev/hda). mkfs –t ext3 /dev/hda4 (constrói sistema de arquivos ext3 no /dev/hda4). fsck /dev/hda4 (verifica a integridade do sistema de arquivos do /dev/hda4). mount –t ext3 /dev/hda5 /mnt/linux (monta a partição /dev/hda5 com sistema de arquivos ext3 em /mnt/linux). Alexandre Pedroso – http://www.aplinux.com.br Página 65
  • 66. Alexandre Pedroso – http://www.aplinux.com.br mount –t iso9660 /dev/cdrom /mnt/cdrom (monta a unidade de cdrom em /mnt/cdrom). mount –t ntfs /dev/hda6 /mnt/windows (monta a partição /dev/hda6 com sistema de arquivos ntfs em /mnt/windows). mount –t vfat /dev/fd0 /mnt/floppy (monta a unidade de disquete em /mnt/floppy). umount /mnt/windows (desmonta a partição montada em /mnt/windows). umount /mnt/cdrom (desmonta a unidade de cdrom). du –sh (exibe tamanho em disco do diretório corrente). df –h (exibe espaço livre em disco de todas as partições montadas no sistema). umount /mnt/floppy (desmonta a unidade de disquete) Alexandre Pedroso – http://www.aplinux.com.br Página 66
  • 67. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 12 - SERVIÇOS E PROCESSOS 12.1 – INTRODUÇÃO O LINUX controla suas aplicações através de serviços e processos que estão “rodando” no sistema operacional. Mas o que vem a ser os serviços? Os serviços são aplicações desenvolvidas para realizar determinadas tarefas no sistema. Por exemplo, quando instalado um sistema LINUX como sendo um Servidor de DNS, teremos um serviço que desempenhará o papel de DNS neste sistema. Além deste, teremos o serviço de rede, responsável pelas conexões deste servidor com as redes e a Internet, e assim por diante. Quando instalamos o Conectiva LINUX, podemos decidir quais os serviços serão instalados automaticamente. Portanto, podemos dizer que, os serviços, nada mais são do que aplicações (aplicativos) que “rodam” em um servidor ou estão de trabalho com o intuito de desempenhar funções específicas, porém sempre com a finalidade de servir os clientes ou usuários da rede. Para cada tarefa ou para cada serviço que está em execução no sistema o LINUX cria um processo. Na verdade, dependendo da utilização deste serviço ou tarefa o LINUX cria vários e vários processos. Um processo nada mais é do que uma identificação de um serviço ou tarefa que está em execução. Os processos são criados automaticamente pelo sistema operacional quando um serviço ou uma tarefa é iniciado e, é através deles, que o sistema consegue ter controle total sobre os serviços e tarefas que estão em execução. O LINUX possui um ótimo controle de serviços e processos em execução. Através deste controle, é possível especificar prioridades de execução, finalizar processos ociosos, finalizar processos travados, e redefinir prioridades de processos em execução. Essas são tarefas diárias de um administrador de sistemas LINUX. Além disso, o LINUX utiliza endereço reservado de memória para os processos, ou seja, na área de memória que está “rodando” o sistema operacional, por exemplo, não “rodará” nem uma outra aplicação. Assim acontece com qualquer serviço no sistema. Isso é muito bom, pois Alexandre Pedroso – http://www.aplinux.com.br Página 67
  • 68. Alexandre Pedroso – http://www.aplinux.com.br garante que se um serviço travar, não afetará os demais serviços em execução e, tão pouco, afetará o sistema operacional. Outro detalhe importante é que, dependendo da carga dos serviços, o sistema cria processos filhos de um processo pai, ou seja, são divididos os processos para ganhar em agilidade, estabilidade e tempo de resposta ao cliente da rede. Uma explicação bem resumida disso segue abaixo. Imagine que você tem um servidor de publicação web. Neste servidor estão hospedados alguns sites. Então em um determinado momento, seu servidor tem um pico de acesso simultâneo, ou seja, muitas e muitas pessoas acessando seus sites ao mesmo tempo. Neste momento, com certeza, o sistema terá criado vários processos filhos de um processo pai do serviço apache (serviço de http – web server). Isso também é feito de forma automática pelo sistema operacional. Neste capítulo, ainda não iremos aprofundar nos serviços, pois faltam alguns conhecimentos necessários para falarmos deles. Aprofundaremos sim nos processos e seus comandos. Da mesma forma que existem os UID e os GID para identificação de usuários e grupos no sistema, respectivamente, existem também os PID para identificação dos processos no sistema. Portanto, cada processo possui um número que o identifica, que nós chamaremos de PID. Através deste PID, é possível alterar a prioridade de processos em execução, parar processos, reiniciar processos e “matar” processos caso estes estejam com problemas ou causando problemas ao sistema. 12.2 – GERENCIAMENTO DE PROCESSOS Existe um conjunto de comandos utilizados para gerenciamento de processos em sistemas LINUX. São eles. realizar ps : comando utilizado para visualizar processos ativos no sistema. Parâmetros do ps: -a -f -u -x Mostrar todos os processos ativos Mostrar em formato de árvore Incluir usuário do processo e hora de início Incluir processos não associados a um terminal Alexandre Pedroso – http://www.aplinux.com.br Página 68 o
  • 69. Alexandre Pedroso – http://www.aplinux.com.br kill – comando utilizado para encerrar um processo ativo. Parâmetros do kill: -l Exibir os sinais que podem ser enviados a um processo. nice – comando utilizado para ajustar a prioridade que será executado um novo processo. Parâmetros no nice: +n ou –n Definir a prioridade do processo em n (-20 prioridade máxima de execução e 19 prioridade mínima de execução). renice - comando utilizado para ajustar a prioridade de um processo em execução. Parâmetros no renice: +n ou –n Definir a prioridade do processo em n (-20 prioridade máxima de execução e 19 prioridade mínima de execução). IMPORTANTE: Somente o usuário root pode definir prioridades negativas (prioridades máximas) para um processo em sistemas LINUX. Os usuários comuns só podem definir prioridades positivas, ou seja, prioridades que não podem comprometer o sistema. IMPORTANTE: Os processos estão sempre ajustados para as melhores prioridades. Não convém alterar esses valores, ao menos que você saiba muito bem o que faz. top : comando utilizado para mostrar informações de processos, memória RAM, memória virtual, usuários online, entre outros. Parâmetros do top: -d n -i Atualizar a tela de n em n segundos Não inclui na listagem processos ociosos ou zombies. free : comando utilizado para visualizar informações de memória do sistema. Alexandre Pedroso – http://www.aplinux.com.br Página 69
  • 70. Alexandre Pedroso – http://www.aplinux.com.br 12.3 – EXEMPLOS PRÁTICOS ps aux (mostrar todos os processos ativos). ps aux | grep named (mostrar somente os processos referentes ao named). kill –l (lista todos os sinais que podem ser enviados ao processo). kill –9 PID (matar um processo baseado no seu PID). top –d1 (mostra informações de processos, memória RAM, memória virtual, entre outros, atualizando a tela de um em um segundo). free (mostra informações de memória do sistema). Alexandre Pedroso – http://www.aplinux.com.br Página 70
  • 71. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 13 - INSTALAÇÃO DE PACOTES 13.1 – INTRODUÇÃO A instalação de pacotes no sistema é uma tarefa bastante comum. Os administradores de sistemas LINUX devem fazer isso quase que constantemente. Isso porque hoje em dia, a segurança exige uma permanente atualização de pacotes instalados, a fim de sanar os bug´s encontrados em versões mais antigas. Desta forma, o administrador do sistema deve conhecer os métodos de instalação, desinstalação e atualização de pacotes no sistema. IMPORTANTE: É importante manter os pacotes do sistema atualizados, porém todo cuidado em uma atualização é pouco. Imagine que temos um servidor de publicação web instalado em nossa empresa. Além de hospedar vários sites, este servidor também é responsável por publicações de DNS e possui um banco de dados MySQL para uso nos sites. Você percebe que tem uma nova versão do MySQL disponível para download, que entre outras coisas, atualiza um bug grave de segurança existente no produto. A maneira mais correta de proceder essa atualização é criar um servidor clone do seu servidor de produção, atualizar este servidor, aguardar por alguns dias para ver se ocorre algum problema e, se nada de errado acontecer, atualizar seu sistema de produção. Muitos e muitos administradores não seguem esses passos. É bem verdade que, na grande maioria dos casos nada de errado acontece, mas lembre-se que, quando o sistema não puder parar um misero segundo, acontecerá algo de errado e você estará encrencado. Portanto, evite riscos desnecessários. Faça sempre como manda o figurino. Existem algumas formas bem conhecidas de se instalar pacotes e atualizar pacotes do sistema. No Conectiva LINUX, as formas mais conhecidas são o rpm e o apt-get. Este último é uma excelente ferramenta, pois verifica e resolve a grande maioria das dependências entre os pacotes. Mas o que vem a ser a dependência de pacotes em sistemas LINUX? É um conceito muito simples. Imagine que você deseja tomar um copo de leite. Para realizar essa tarefa, você depende de duas coisas: o leite e o copo. Nunca será possível tomar um copo de leite sem o leite ou sem o copo. Isso acontece também com os pacotes do sistema, ou seja, Alexandre Pedroso – http://www.aplinux.com.br Página 71
  • 72. Alexandre Pedroso – http://www.aplinux.com.br dependendo do pacote que você deseja instalar no sistema, terá que instalar vários outros pacotes dos quais esse depende. Exatamente por esse motivo, o apt-get é muito utilizado. Enquanto que o rpm não resolve nenhuma dependência de pacotes, ou seja, você deve resolvêlas por conta própria, o apt-get, na grande maioria dos casos, resolve essas dependências, poupando com isso, muito trabalho do administrador do sistema. Resumidamente, em instalações via rpm, os pacotes serão instalados através dos cd’s fornecidos com o produto (exemplo cd’s Conectiva LINUX). Os pacotes rpm podem ser baixados também da Internet. Já as instalações via apt-get, podem ser feitas dos cd’s, mas normalmente os pacotes são baixados via ftp e instalados no sistema, satisfazendo todas as dependências para o bom funcionamento do pacote. Um pacote rpm tem a seguinte estrutura: dia – 0.86 – 11 cl . i386 . rpm Da esquerda para direita temos: nome do pacote, versão do pacote, distribuição (cl = conectiva linux), plataforma e extensão do arquivo (rpm). Em seguida, estudaremos os comandos utilizados para realizar as tarefas citadas acima, suas principais utilizações e alguns exemplos práticos. 13.2 – COMANDOS ENVOLVIDOS rpm : comando utilizado para instalação, desinstalação e atualização de pacotes no sistema. Parâmetros do rpm: -ivh --force Instalação de pacotes no sistema Somente pode ser utilizado com o parâmetro ivh. Através dele, é possível forçar a instalação do pacote, ignorando se o pacote já está instalado. Alexandre Pedroso – http://www.aplinux.com.br Página 72
  • 73. Alexandre Pedroso – http://www.aplinux.com.br --nodeps --replacefiles -Uvh --oldpackage -e -q -f -p -qp -qd -V -Va Somente pode ser utilizado com o parâmetro ivh. Através dele, é possível forçar a instalação do pacote, ignorando as dependências exigidas pelo sistema. Somente pode ser utilizado com o parâmetro ivh. Através dele, é possível forçar a instalação do pacote, ignorando possíveis conflitos com outros pacotes do sistema. Atualização de pacotes no sistema. Somente pode ser utilizado com o parâmetro Uvh. Através dele, é possível forçar a instalação do pacote, mesmo que este seja mais antigo do que o pacote que já estava instalado no sistema. Desinstalação de pacotes do sistema. Consultar nome, versão e release do pacote. Consultar pacote ao qual o arquivo faz parte. Consultar um arquivo de pacote. Mostrar o nome do pacote para o arquivo rpm especificado. Documentação do pacote. Faz verificação do pacote. Verifica todos os pacotes instalados no sistema. apt-get : comando utilizado para instalação, desinstalação e atualização de pacotes no sistema. Parâmetros do apt-get: install remove update dist-upgrade Instalar pacotes no sistema. Remover pacotes do sistema. Atualizar índices dos pacotes. Fazer upgrade da distribuição (todos os pacotes). 13.3 – EXEMPLOS DE UTILIZAÇÃO rpm –ivh arquivo.rpm (instala o pacote presente em arquivo.rpm no sistema). rpm –ivh arquivo.rpm –force (instala o pacote presente em arquivo.rpm, em modo forçado no sistema). Alexandre Pedroso – http://www.aplinux.com.br Página 73
  • 74. Alexandre Pedroso – http://www.aplinux.com.br rpm –Uvh arquivo.rpm (atualiza o pacote presente em arquivo.rpm no sistema). Alexandre Pedroso – http://www.aplinux.com.br Página 74
  • 75. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 14 – EXERCÍCIOS Este capítulo é reservado aos exercícios de fixação de todo conteúdo apresentado na apostila. Estes exercícios devem ser feitos quantas vezes forem necessárias para que não haja dúvida sobre nenhum tópico. A idéia de colocá-los aqui, é justamente prepará-lo para suas provas de certificação profissional. Procure ser criterioso na hora de respondê-los e mantenha uma folha com as anotações do porque de cada uma de suas respostas. Isso pode ser muito útil quando você for estudar daqui a alguns dias. Provavelmente, você esquecerá porque marcou a alternativa “a” e não a alternativa “b”. Sendo assim, uma explicação anotada pode refrescar sua memória rapidamente, poupando com isso, tempo e desgaste desnecessário. 14.1 – LISTA DE EXERCÍCIOS 1) Sempre que criamos um usuário no sistema, um grupo é criado com o mesmo nome do usuário. Essa afirmação é correta? Explique. 2) Marque o(s) comando(s) para encerrar uma seção de shell. a) login b) logout c) halt d) exit 3) Marque o(s) comando(s) para realizar a reinicialização do sistema. a) shutdown –h now b) shutdown –r now c) reboot Alexandre Pedroso – http://www.aplinux.com.br Página 75
  • 76. Alexandre Pedroso – http://www.aplinux.com.br d) exit 4) Marque o(s) comando(s) para realizar o desligamento do sistema. a) halt b) reboot c) shutdown d) shutdown –h now 5) Marque a alternativa que, respectivamente, identifica usuários, grupos, usuários comuns e root no sistema. a) GID, UID, >500 e 0 b) UID, PID, 0 e >500 c) UID, GID, >500 e 0 d) UID, GID, 0 e >500 6) Altere os arquivos ~/.bashrc e ~/.bash_profile para testes de aliases e variáveis de ambiente criados por você. 7) Não são consideradas características do shell a(s) alternativa(s). a) Interpretador de comandos b) Interface do usuário c) Pode ser configurado somente pelo superusuário d) Admite programação por scripts 8) São exemplos de utilização de um shell não interativo a(s) alternativa(s) abaixo. a) Comando digitado pelo usuário na console b) Usuário efetuando login no sistema Alexandre Pedroso – http://www.aplinux.com.br Página 76
  • 77. Alexandre Pedroso – http://www.aplinux.com.br c) Script de backup “rodando” no servidor d) Usuário efetuando logout 9) Marque o(s) comando(s) para alterar o nome de arquivos no sistema. a) rename b) change c) mv d) nda 10) Marque o(s) comando(s) para mover arquivos e diretórios no sistema. a) move b) mv c) cp d) nda 11) Marque o parâmetro que deve ser utilizado com o comando rm para apagar uma árvore de diretórios. a) –rf b) –f c) –bf d) nda 12) Marque o(s) comando(s) para criar hard links e links simbólicos, respectivamente, no sistema. a) ls e ln b) ln e ln –s Alexandre Pedroso – http://www.aplinux.com.br Página 77
  • 78. Alexandre Pedroso – http://www.aplinux.com.br c) hl e ls d) nda 13) Fale sobre a estrutura de diretórios em sistemas LINUX. 14) Sobre o comando man, não podemos afirmar. a) Você pode especificar parâmetros para o comando b) Só mostra as opções básicas do comando c) Manual completo do comando d) nda 15) Para que servem as opções –P e –M do comando man? 16) Quais comandos podem ser considerados comando de documentação do LINUX. a) man, ls e info b) man e info c) man, info e help d) nda 17) Marque o(s) comando(s) para alterar permissões em arquivos e diretórios do sistema. a) chmod b) chown c) set change d) nda 18) Qual é a seqüência existente nas permissões de arquivos e diretórios do sistema? Alexandre Pedroso – http://www.aplinux.com.br Página 78
  • 79. Alexandre Pedroso – http://www.aplinux.com.br a) Dono do arquivo, membros do grupo e identificação do arquivo ou diretório b) Dono do arquivo, superusuário e outros c) Dono do arquivo, membros do grupo e outros usuários d) Identificação do arquivo, membros do grupo e outros usuários 19) Explique a permissão 752 para um arquivo. a) Dono pode ler, gravar e executar; membros do grupo podem ler e executar; outros usuários podem ler b) Dono pode ler, gravar e executar; membros do grupo podem ler e gravar; outros podem gravar c) Dono pode ler, gravar e executar; membros do grupo podem ler e executar; outros podem gravar d) Dono pode ler, gravar e executar; membros do grupo podem ler e gravar; outros podem gravar 20) Marque o(s) comando(s) para alterar usuário dono e grupo dono de arquivos e diretórios. a) chown b) chmod c) chattr d) nda 21) Marque a(s) alternativa(s) que permite(m) que um arquivo criado em um diretório somente possa ser apagado pelo seu usuário dono, independentemente das permissões que o arquivo tenha. a) suid bit b) sgid bit c) sticky bit Alexandre Pedroso – http://www.aplinux.com.br Página 79
  • 80. Alexandre Pedroso – http://www.aplinux.com.br d) nda 22) Marque o(s) comando(s) para mostrar na saída padrão todas as linhas de um arquivo qualquer. a) ls b) head c) cat d) nda 23) Marque o(s) comando(s) para filtrar conteúdo de arquivo baseado em uma string fornecida. a) grep b) find c) sed d) locate 24) Marque o(s) comando(s) para exibir somente as últimas linhas de um arquivo qualquer. a) cat b) tail c) tac d) nda 25) Marque a(s) alternativa(s) que contém o comando correto para mostrar na tela a antepenúltima linha do arquivo. a) tail –3 /var/log/messages | head –1 b) head –2 /var/log/messages | tail –1 c) tail –3 /var/log/messages | head –2 Alexandre Pedroso – http://www.aplinux.com.br Página 80
  • 81. Alexandre Pedroso – http://www.aplinux.com.br d) head –2 /var/log/messages | tail –2 26) Quais dos comandos abaixo fazem uma rápida busca por arquivos no sistema. a) locate b) find c) findfast d) find –fast 27) Para redirecionar a saída do comando ls –la para dentro do arquivo arquivos.txt, podemos utilizar. a) cat arquivos.txt | arquivos.txt b) ls –la | arquivos.txt c) ls –la > arquivos.txt d) ls –la | arquivos.txt 28) Qual das alternativas abaixo poderia ser utilizada para listar somente os logins de todos os usuários do sistema? a) cat /etc/passwd b) cat /etc/passwd | grep login c) cut –d: -f1-1 /etc/passwd d) cut /etc/passwd | grep login 29) O comando wc é utilizado para. a) Contar linhas, palavras e caracteres de um arquivo b) Classificar o conteúdo de um arquivo c) Visualizar o conteúdo de um arquivo Alexandre Pedroso – http://www.aplinux.com.br Página 81
  • 82. Alexandre Pedroso – http://www.aplinux.com.br d) nda 30) Qual é o arquivo que contém informações de contas de usuário no sistema? a) /etc/shadow b) /etc/pawword c) /etc/passwd d) /opt/passwd 31) Qual é o arquivo que contém as senhas criptografadas de todos os usuários do sistema? a) /etc/passwd b) /etc/senhas c) /opt/shadow d) /etc/shadow 32) Como poderíamos fazer para colocar usuários dentro de um grupo no sistema? a) useradd usuário grupo b) useradd usuário c) gpasswd –d usuário grupo d) gpasswd –a usuário grupo 33) Se você quiser remover um usuário do sistema e todos os seus arquivos, você digitaria. a) userdel b) userdel –a c) userdel –r Alexandre Pedroso – http://www.aplinux.com.br Página 82
  • 83. Alexandre Pedroso – http://www.aplinux.com.br d) rm –rf /home/usuario 34) O diretório home do usuário alex e do usuário root são, respectivamente. a) /alex e /root b) /home/alex e /root c) /home/alex e /home/root d) /opt/alex e /home/root 35) Marque o comando correto para efetuar a montagem de um disquete que é utilizado também no Windows. a) mkfs /dev/fd0 b) mount –t ntfs /dev/fd0 /mnt/floppy c) mount –t vfat /dev/fd0 /mnt/floppy d) mkfs /dev/fd0 /mnt/floppy 36) Marque o comando correto para efetuar a montagem de um cdrom que é utilizado também no Windows. a) mkfs /dev/cdrom b) mount –r –t iso9660 /dev/cdrom /mnt/cdrom c) mount –r –t vfat /dev/cdrom /mnt/cdrom d) mkfs /dev/fd0 /mnt/floppy 37) Um hd IDE pode ser representado no sistema como. a) /dev/sda b) /dev/hda c) /mnt/hda Alexandre Pedroso – http://www.aplinux.com.br Página 83
  • 84. Alexandre Pedroso – http://www.aplinux.com.br d) /mnt/sda 38) Um hd SCSI pode ser representado no sistema como. a) /dev/sda b) /dev/hda c) /mnt/hda d) /mnt/sda 39) Marque o(s) comando(s) para apresentar os processos correntes no sistema. a) top –d1 b) ps aux c) free d) nda 40) Marque o(s) comando(s) para apresentar informações de memória RAM, memória virtual, quantidade de usuários logados e tempo que o sistema está ativo. a) free b) top –d1 c) ps aux d) nda 41) Marque o(s) comando(s) para alterar a prioridade de um processo que será executado no sistema. a) renice b) ps aux | grep +20 c) nice Alexandre Pedroso – http://www.aplinux.com.br Página 84
  • 85. Alexandre Pedroso – http://www.aplinux.com.br d) nda 42) Como poderíamos fazer para “matar” um processo que está travado no sistema? a) ps aux | kill PID b) stop PID c) kill –9 PID d) stop –9 PID 43) Qual opção do comando kill é utilizada para listar os sinais que podem ser enviados aos processos? a) –a b) –l c) –p d) –s 44) Quais os comandos podem ser utilizados para instalação de aplicações em sistemas LINUX? a) setup.exe b) install.exe c) rpm d) apt 45) Qual é o procedimento para excluir um pacote do sistema? a) uninstall b) rpm –ivh pacote c) rpm –e pacote Alexandre Pedroso – http://www.aplinux.com.br Página 85
  • 86. Alexandre Pedroso – http://www.aplinux.com.br d) rpm –q pacote 46) Qual é o procedimento para atualizar um pacote do sistema? a) rpm –e pacote b) rpm –ivh pacote c) rpm –qd pacote d) rpm –Uvh pacote 47) Você quer instalar um pacote sem se preocupar com as possíveis dependências para que ele funcione. Como você faria? a) apt b) install c) rpm d) nda 48) O comando rpm utiliza um servidor de ftp com pacotes para instalar e atualizar seu sistema. Isso é correto? Explique. 49) Explique a maneira correta de realizar a atualização de pacotes em um sistema de produção. 50) Fale sobre a melhor forma de criar as partições de um servidor LINUX. Explique. Alexandre Pedroso – http://www.aplinux.com.br Página 86
  • 87. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 15 – INSTALAÇÃO DO CONECTIVA LINUX 9.0 15.1 – INSTALAÇÃO DO CONECTIVA LINUX 9.0 01) Boot com o cd1 na unidade 02) Seleção do Idioma - Português 03) Release Notes - É sempre bom dar uma boa lida nas principais mudanças que ocorreram nesta versão. 04) Seleção do Mouse 05) Seleção do Teclado – ABNT2 06) Configuração de Rede 1º 2º 3º 4º 5º 6º Nome da Máquina - seumicro.seudominio.com.br Configurar Rede Manualmente Endereço IP - seuip Máscara - suamáscara Roteador - ipdoroteador Servidor de Nomes - ipdoservidordns 07) Seleção do Perfil – Servidor de Redes. Na mesma tela marque as opções "Forçar Particionamento Manual" e "Forçar Seleção de Pacotes" 08) Particionamento de disco - Para uma instalação de Servidor: 1ª partição: linux-swap = 2XRAM 2ª partição: ext3 /boot = 30Mb 3ª partição: ext3 / = restante do disco 09) Aguarde a cópia e instalação dos pacotes 10) Selecione os pacotes necessários para compilação – Vá em tarefas e marque os pacotes: task-c++-devel e task-kernel-compiling. Depois, clique em aplicar 11) Aguarde a cópia e instalação dos pacotes 12) Sair do Synaptic - Sim Alexandre Pedroso – http://www.aplinux.com.br Página 87
  • 88. Alexandre Pedroso – http://www.aplinux.com.br 13) Seleção da Placa de Vídeo - Normalmente o sistema detecta 14) Seleção do Monitor - Normalmente o sistema detecta 15) Configuração da Área de Trabalho - Escolha a configuração de sua preferência 16) Configuração do Usuário - Digite a senha do root (duas vezes) 17) Configuração do Loader - Eu utilizo LILO 18) Instalação Concluída Alexandre Pedroso – http://www.aplinux.com.br Página 88
  • 89. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 16 – GLOSSÁRIO DE TERMOS TÉCNICOS 16.1 – GLOSSÁRIO DE TERMOS TÉCNICOS AGENTE Um programa de computador ou processo que opera sobre uma aplicação cliente ou servidor e realiza uma função específica, como uma troca de informações. Ver também: aplicação. ALIAS Significa segundo nome ou apelido. Pode referenciar um endereço eletrônico alternativo de uma pessoa ou grupo de pessoas, ou um segundo nome de uma máquina. É também um dos comandos básicos do UNIX. ANSI Acrônimo de American National Standards Institute, uma organização afiliada à ISO e que é a principal organização norteamericana envolvida na definição de padrões (normas técnicas) básicos como o ASCII. APLICAÇÃO Programa que faz uso de serviços de rede tais como transferência de arquivos, login remoto e correio eletrônico. ARCHIE Um serviço de busca de arquivos armazenados em FTP anônimo. Pouco disseminado no Brasil. ARPANET Advanced Research Projects Agency Network. Rede de longa distância criada em 1969 pela Advanced Research Projects Agency (ARPA, atualmente Defense Advanced Projects Research Agency, ou DARPA) em consórcio com as principais universidades e centros de pesquisa dos EUA, com o objetivo específico de investigar a utilidade da comunicação de dados em alta velocidade para fins militares. É conhecida como a rede-mãe da Internet de hoje e foi colocada fora de operação em 1990, Alexandre Pedroso – http://www.aplinux.com.br Página 89
  • 90. Alexandre Pedroso – http://www.aplinux.com.br posto que estruturas alternativas de redes já cumpriam seu papel nos EUA. ASCII American Standard Code for Information Interchange. Trata-se de um esquema de codificação que atribui valores numéricos às letras do alfabeto, números, sinais de pontuação e alguns símbolos especiais para ser usado em computadores e dispositivos de armazenamento eletrônico de dados. ASSINATURA 1. Um arquivo (tipicamente de três ou quatro linhas) que as pessoas inserem no fim de suas mensagens; 2. Ato de subscrever uma lista de discussão ou newsgroup; 3. Informação que autentica uma mensagem. BACKBONE A interconexão central de uma rede internet. Pode ser entendido como uma espinha dorsal de conexões que interliga pontos distribuídos de uma rede, formando uma grande via por onde trafegam informações. BAUND RATE Medida de taxa de transmissão elétrica de dados em uma linha de comunicação. Mede o número de sinais elétricos transmitidos por unidade de tempo. Ver também: bps. BBS Bulletin Board System é um sistema que, tipicamente, oferece serviços de correio eletrônico, repositório de arquivos (de programas, dados ou imagens) e outros serviços tais como conversação on-line. Seus assinantes, usualmente, obtêm acesso através de linhas telefônicas (isto é, de voz) utilizadas via computador pessoal e modem. BITNET Because It's Time Network. Rede de computadores formada em maio de 1981 para interconectar instituições educacionais e de pesquisa, fazendo uso de um protocolo chamado RSCS (Remote Spooling Communication System). Teve seu tráfego encerrado em 1996. Alexandre Pedroso – http://www.aplinux.com.br Página 90
  • 91. Alexandre Pedroso – http://www.aplinux.com.br BPS Uma medida da taxa de transferência real de dados de uma linha de comunicação. É dada em bits por segundo. Variantes ou derivativos importantes incluem Kbps (= 1.000 bps) e Mbps (= 1.000.000 bps). Ver também: baud rate BRIGDE Um dispositivo que conecta duas ou mais redes de computadores transferindo, seletivamente, dados entre ambas. Ver também: repetidor BROWSER O browser é um cliente para extração de informação em um servidor Web ou gopher. Tipicamente, um browser será um programa em um computador pessoal que acessará, através de uma linha telefônica, um servidor (isto é, um programa que atende a demanda de clientes remotos) contendo informações de interesse amplo. Ver também: cliente, servidor, Gopher, Mosaic, Web CCITT Acrônimo de Comité Consultatif Internationale de Telegraphie et Telephonie, um órgão da International Telecommunications Union (ITU) das Nações Unidas que define padrões de telecomunicações. (Em 1993, foi extinto e suas atribuições passaram para o ITU-TSS, Telecommunications Standards Section da ITU.) CERN Trata-se do European Laboratory for Particle Physics, possivelmente o mais importante centro para pesquisas avançadas em física nucleares e de partículas localizadas em Genebra, Suíça. O nome CERN relaciona-se ao seu nome anterior, Conseil Europeen pour la Recherche Nucleaire. Para os usuários Internet, o CERN é conhecido como o local onde foi desenvolvido a Web. Ver também: Web CIBERSPAÇO Conjunto de computadores e serviços que constitui a rede Internet. Termo cunhado em analogia com o espaço sideral explorado pelos astronautas. Alexandre Pedroso – http://www.aplinux.com.br Página 91
  • 92. Alexandre Pedroso – http://www.aplinux.com.br CLIENTE É um processo ou programa que requisita serviços a um servidor. Ver também: servidor CORREIO ELETRÔNICO Um meio de comunicação baseado no envio e recepção de textos, chamados de mensagens, através de uma rede de computadores. DATAGRAMA Pacote de informação e dados complementares, como endereço de destino, que é enviado através de uma rede de pacotes. DDN Acrônimo para Defense Data Network, uma porção da Internet que conecta bases militares norte-americanas e seus fornecedores e é usada para comunicações não-confidenciais. MILNET é uma das redes DDN. DIAL-UP Método de acesso a computador remoto (ou rede) que se dá via rede de telefonia convencional. DOMÍNIO É uma parte da hierarquia de nomes da Internet - DNS -, que permite identificar as instituições ou conjunto de instituições na rede. Sintaticamente, um nome de domínio da Internet consiste de uma seqüência de nomes separados por pontos (.). Por exemplo, ci.rnp.br. Neste caso, dentro do domínio ci.rnp.br, o administrador do sistema pode criar diferentes grupos como info.ci.rnp.br ou staff.ci.rnp.br, conforme a necessidade. DOMÍNIO PÚBLICO Programa disponível publicamente, segundo condições estabelecidas pelos autores, sem custo de licenciamento para uso. Em geral, o software pode ser utilizado sem custos para fins estritamente educacionais e não tem garantia de manutenção ou atualização. Um dos grandes trunfos da Internet é a quantidade praticamente Alexandre Pedroso – http://www.aplinux.com.br Página 92
  • 93. Alexandre Pedroso – http://www.aplinux.com.br inesgotável de software de domínio público, de excelente qualidade, que circula pela rede. Ver também: shareware DNS O Domain Name System (DNS) é um serviço e protocolo da família TCP/IP para o armazenamento e consulta a informações sobre recursos da rede. A implementação é distribuída entre diferentes servidores e trata principalmente da conversão de nomes Internet em seus números IPs correspondentes. DOWNLOAD Processo de se transferência de uma cópia de um arquivo presente em um computador remoto para outro computador através da rede. O arquivo recebido é gravado em disco no computador local. O computador de onde os dados são copiados é subentendido como “maior” ou “superior” segundo algum critério hierárquico, enquanto o computador para o qual os dados são copiados é subentendido “menor” ou “inferior” na hierarquia. O sentido literal é, portanto “puxar para baixo”. ETHERNET Um padrão muito usado para a conexão física de redes locais, originalmente desenvolvido pelo Palo Alto Research Center (PARC) da Xerox nos EUA. Descreve protocolo, cabeamento, topologia e mecanismos de transmissão. E-MAIL 1. Correio eletrônico; 2. Endereço de correio eletrônico. FAQ Acrônimo de Frequently Asked Questions, documento com perguntas e respostas sobre determinado assunto, em geral voltado para leigos ou neófitos. FDDI Acrônimo de Fiber Distributed Data Interface, um padrão para o uso de cabos de fibras óticas em redes locais (LANs) e metropolitanas (MANs). A FDDI fornece especificações para a velocidade de transmissão de Alexandre Pedroso – http://www.aplinux.com.br Página 93
  • 94. Alexandre Pedroso – http://www.aplinux.com.br dados (alta, 100 Mbps), em redes em anel, podendo, por exemplo, conectar 1.000 estações de trabalho a distâncias de até 200 Km. FIDONET Rede mundial de BBS, baseada no uso do protocolo Fido, interligando computadores pessoais via linhas telefônicas. FINGER Um serviço Internet que permite obter informações sobre usuários de uma máquina. FIREWALL Um sistema de segurança de rede, cujo principal objetivo é filtrar o acesso a uma rede. FREENET Uma máquina na Internet que é dedicada a acesso pela comunidade sem cobrança de nenhuma taxa. O acesso é fornecido através de bibliotecas públicas ou acesso dial-up. Oferece serviços de BBSs, correio eletrônico e acesso (restrito, em geral) à Internet. FREEWARE Ver: Domínio público FTP File Transfer Protocol. Protocolo padrão da Internet, usado para transferência de arquivos entre computadores. FTP ANÔNIMO Serviço que possibilita o acesso a repositórios públicos de arquivos via FTP. Ver também: FTP FYI Acrônimo de For Your Information (FYI), uma série de artigos sobre a Alexandre Pedroso – http://www.aplinux.com.br Página 94
  • 95. Alexandre Pedroso – http://www.aplinux.com.br Internet; são similares as RFCs, mas possuem conteúdo consideravelmente menos técnico e não definem novos padrões. GATEWAY 1. Sistema que possibilita o intercâmbio de serviços entre redes com tecnologias completamente distintas, como FidoNet e Internet; 2. Sistema e convenções de interconexão entre duas redes de mesmo nível e idêntica tecnologia, mas sob administrações distintas. 3 Roteador (terminologia TCP/IP). GOPHER Um sistema distribuído para busca e recuperação de documentos, que combina recursos de navegação através de coleções de documentos e bases de dados indexadas, por meio de menus hierárquicos. O protocolo de comunicação e o software seguem o modelo cliente servidor, permitindo que usuários em sistemas heterogêneos naveguem, pesquisem e recuperem documentos armazenados em diferentes sistemas, de maneira simples e intuitiva. HOST Computador ligado à Internet. HTML Acrônimo de Hypertext Markup Language, é a linguagem padrão para escrever páginas de documentos Web (WWW). É uma variante da SGML (Standard Generalized Markup Language), bem mais fácil de aprender e usar, que possibilita preparar documentos com gráficos e links para outros documentos para visualização em sistemas que utilizam Web. HTTP O protocolo HTTP (HyperText Transfer Protocol) permite que os autores de hipertextos incluam comandos que possibilitam saltos para recursos e outros documentos disponíveis em sistemas remotos, de forma transparente para o usuário. internet Uma coleção de redes locais e/ou de longa distância, interligadas numa Alexandre Pedroso – http://www.aplinux.com.br Página 95
  • 96. Alexandre Pedroso – http://www.aplinux.com.br rede virtual pelo uso de um protocolo que provê um espaço de endereçamento comum e roteamento. Ver Internet. INTERNET Significa a "rede das redes". Originalmente criada nos EUA, que se tornou uma associação mundial de redes interligadas, que utilizam protocolos da família TCP/IP. A Internet provê transferência de arquivos, login remoto, correio eletrônico, news e outros serviços. IP O Internet Protocol é o protocolo responsável pelo roteamento de pacotes entre dois sistemas que utilizam a família de protocolos TCP/IP, desenvolvida e usada na Internet. É considerado o mais importante dos protocolos em que a Internet é baseada. IRC Acrônimo de Internet Relay Chat, serviço que possibilita a comunicação escrita on-line entre vários usuários pela Internet. É a forma mais próxima do que seria uma “conversa escrita” na rede. ISO International Organization for Standardization (ISO)‚ uma organização internacional formada por órgãos de diversos países que discute, especifica e propõe padrões para protocolos de redes. Muito conhecido por ter estabelecido um modelo de sete camadas que descreve a organização conceitual de protocolos, o OSI. ISDN Uma rede digital que integra serviços de diversas naturezas como voz, dados, imagens, etc. que deve substituir gradualmente a infra-estrutura física atual de comunicações, em que cada serviço tende a trafegar por segmentos independentes. ITU International Telecommunications Union. Órgão da ONU responsável pelo estabelecimento de normas e padrões em telecomunicações. Alexandre Pedroso – http://www.aplinux.com.br Página 96
  • 97. Alexandre Pedroso – http://www.aplinux.com.br KERMIT Um programa popular de transferência de arquivos e emulação de terminal. LAN Acrônimo de Local Area Network, rede de computadores limitada, em geral, limitada a um prédio ou conjunto de prédios de uma instituição. LISTSERV Servidor de listas de discussões. LOGIN REMOTO Acesso a um computador via rede para execução de comandos. Para todos os efeitos, o computador local, usado pelo usuário para “logar” no computador remoto, passa a operar como se fosse um terminal deste último. MAN Acrônimo de Metropolitan Area Network, uma rede com tecnologia que opera a alta velocidade (de centenas de megabits por segundo a alguns gigabits por segundo) e que tem abrangência metropolitana. MOSAIC Um programa cliente de fácil utilização projetado para procura de informações disponíveis na Web. Distribuído como freeware, o Mosaic foi criado pelo National Center for Supercomputing Applications (NCSA) dos EUA e tem capacidade multimídia. MULTICAST Um endereço para uma coleção específica de nós numa rede, ou uma mensagem enviada a uma coleção específica de nós. É útil para aplicações como teleconferência. NAVEGAÇÃO Ato de conectar-se a diferentes computadores da rede distribuídos pelo mundo, usando as facilidades providas por ferramentas como browsers Web. O navegante da rede realiza uma “viagem” virtual explorando o Alexandre Pedroso – http://www.aplinux.com.br Página 97
  • 98. Alexandre Pedroso – http://www.aplinux.com.br ciberespaço, da mesma forma que o astronauta explora o espaço sideral. Cunhado por analogia ao termo usado em Astronáutica. NET The Net ou Internet, a rede. NETIQUETA Um conjunto de regras de etiqueta para o uso socialmente responsável da Internet, ou seja, o modo como os usuários devem proceder na rede, especialmente na utilização de correio eletrônico. NETNEWS Usenet News, Usenet ou News. Serviço de discussão eletrônica sobre vasta gama de assuntos, cada qual ancorado por um grupo de discussão. NEWS Ver: netnews NEWSGROUP Grupo temático de discussão do netnews. NFS O Network File System, desenvolvido pela Sun Microsystems Inc., é um protocolo que usa IP para permitir o compartilhamento de arquivos entre computadores. NIC Network Informations Center, centro de informação e assistência ao usuário da Internet que disponibiliza documentos, como RFCs, FAQs e FYIs, realiza treinamentos, etc. NIS Acrônimo para Network Information System (NIS), é um sistema distribuído de bases de dados que troca cópias de arquivos de configuração unindo a conveniência da replicação à facilidade de Alexandre Pedroso – http://www.aplinux.com.br Página 98
  • 99. Alexandre Pedroso – http://www.aplinux.com.br gerência centralizada. Servidores NIS gerenciam as cópias de arquivos de bases de dados, e clientes NIS requerem informação dos servidores ao invés de usar suas cópias locais destes arquivos. É muito usado por administradores UNIX para gerenciar bases de dados distribuídas através de uma rede. Ver também: NIS+ NIS+ Versão atualizada do NIS de propriedade da Sun Microsystems Inc. que provê mais recursos ao serviço e uma maior segurança. NÓ Qualquer dispositivo, inclusive servidores e estações de trabalho, ligado a uma rede. NOC Network Operations Center. Um centro administrativo e técnico que é responsável por gerenciar os aspectos operacionais da rede, como o controle de acesso à mesma, roteamento, etc. OSI O Open Systems Interconnection (OSI) é um modelo conceitual de protocolo com sete camadas definidas pela ISO, para a compreensão e o projeto de redes de computadores. Trata-se de uma padronização internacional para facilitar a comunicação entre computadores de diferentes fabricantes. Ver também: ISO PACOTE Dado encapsulado para transmissão na rede. Um conjunto de bits compreendendo informação de controle, endereço fonte e destino dos nós envolvidos na transmissão. PING O ping (Packet Internet Groper) é um programa usado para testar o alcance de uma rede, enviando a nós remotos uma requisição e esperando por uma resposta. PIR Alexandre Pedroso – http://www.aplinux.com.br Página 99
  • 100. Alexandre Pedroso – http://www.aplinux.com.br Locais previstos para a interconexão de redes de mesmo nível (peer networks), visando assegurar que o roteamento entre redes seja eficiente e organizado. No Brasil, os três principais PIR’s estão previstos em Brasília, Rio de Janeiro e São Paulo. PoP Ponto de Presença de uma espinha dorsal de rede. Local onde uma rede permite acesso à sub-redes e a provedores de serviços. Uma rede madura cobre sua região de atuação através de pontos de presença nas principais cidades/distritos dessa região: interligados por um conjunto de linhas dedicadas, compondo um backbone. POP Post Office Protocol. Protocolo usado por clientes de correio eletrônico para manipulação de arquivos de mensagens em servidores de correio eletrônico. PORTA Uma abstração usada pelo protocolo TCP/IP para distinguir entre conexões simultâneas para um único host destino. O termo também é usado para denominar um canal físico de entrada ou de um dispositivo. POSTMASTER E-mail do responsável pelo correio eletrônico de uma instituição. PPP Um dos protocolos mais conhecidos para acesso via interface serial, permite que um computador faça uso do TCP/IP através de uma linha telefônica convencional e um modem de alta velocidade. É considerado o sucessor do SLIP por ser mais confiável e eficiente. PROTOCOLO Uma descrição formal de formatos de mensagem e das regras que dois computadores devem obedecer ao trocar mensagens. Um conjunto de regras padronizado que especifica o formato, a sincronização, a seqüência e a verificação de erros em comunicação de dados. O protocolo básico utilizado na Internet é o TCP/IP. PROVEDOR DE ACESSO Alexandre Pedroso – http://www.aplinux.com.br Página 100
  • 101. Alexandre Pedroso – http://www.aplinux.com.br Instituição que se liga à Internet, via um ponto de presença ou outro provedor, para obter conectividade IP e repassá-la a outros indivíduos e instituições, em caráter comercial ou não. PROCEDOR DE INFORMAÇÃO Instituição cuja finalidade principal é coletar, manter e/ou organizar informações on-line para acesso, através da Internet, por parte de assinantes da rede. Essas informações podem ser de acesso público incondicional, caracterizando assim um provedor não-comercial ou, no outro extremo, constituir um serviço comercial onde existem tarifas ou assinaturas cobradas pelo provedor. PROVEDOR DE SERVIÇO Pode ser tanto o provedor de acesso quanto o de informação. REPETIDOR Um dispositivo que propaga (regenera e amplifica) sinais elétricos em uma conexão de dados, para estender o alcance da transmissão, sem fazer decisões de roteamento ou de seleção de pacotes. Ver também: bridge, roteador RFC Acrônimo para Request For Comments. RFCs constituem uma série de documentos editados desde 1969 e que descrevem aspectos relacionados com a Internet, como padrões, protocolos, serviços, recomendações operacionais, etc. Uma RFC é, em geral, muito densa do ponto de vista técnico. ROTEADOR Dispositivo responsável pelo encaminhamento de pacotes de comunicação em uma rede ou entre redes. Tipicamente, uma instituição, ao se conectar a Internet, deverá adquirir um roteador para conectar sua Rede Local (LAN) ao ponto de presença mais próximo. SERVIDOR 1. No modelo cliente-servidor, é o programa responsável pelo atendimento a determinado serviço solicitado por um cliente. Serviços Alexandre Pedroso – http://www.aplinux.com.br Página 101
  • 102. Alexandre Pedroso – http://www.aplinux.com.br como archie, Gopher, WAIS e WWW são providos por servidores; 2. Referindo-se a equipamento, o servidor é um sistema que provê recursos tais como armazenamento de dados, impressão e acesso dialup para usuários de uma rede de computadores. SITE 1. Uma instituição onde computadores são instalados e operados; 2. Um nó Internet. SHAREWARE Programa disponível publicamente para avaliação e uso experimental, mas cujo uso em regime pressupõe que o usuário pagará uma licença ao autor. Note-se que shareware é distinto de freeware, no sentido de que um software em shareware é comercial, embora em termos e preços diferenciados em relação a um produto comercial “ortodoxo”. Ver também: domínio público. SLIP Serial Line IP é um protocolo Internet bastante popular usado via interfaces seriais. Ver também: PPP SMILEY Uma "carinha" construída com caracteres ASCII e muito usada em mensagens eletrônicas para dar idéia de sentimentos ou emoções. Por exemplo, a mais comum é :-), que significa humor e ironia. Você deve girar o smiley 90 graus para a direita para entendê-lo. SMTP O Simple Mail Transfer Protocol é o protocolo TCP/IP usado para troca de mensagens via correio eletrônico na Internet. SNMP O Simple Network Management Protocol é um protocolo usado para monitorar e controlar serviços e dispositivos de uma rede TCP/IP. É o padrão adotado pela RNP para a gerência de sua rede. SYSOP Alexandre Pedroso – http://www.aplinux.com.br Página 102
  • 103. Alexandre Pedroso – http://www.aplinux.com.br A pessoa que opera e mantém um BBS. Abreviatura de system operator. TALK Serviço que permite a comunicação escrita on-line entre dois usuários da Internet. TCP/IP Acrônimo de Transmission Control Protocol/Internet Protocol, é a família de protocolos para a comunicação de dados inter-redes, originalmente proposta para a Advanced Research Products Agency Network (ARPANet). Hoje é um padrão de fato para inter-redes abertas, e seu uso é amplamente difundido dentro e fora dos EUA. TELNET Serviço que permite login remoto segundo o jargão e a vertente técnica Internet. TRANSCEIVER Dispositivo utilizado na conexão física de um nó a uma rede local. TRANSFERENCIA DE ARQUIVO Cópia de arquivos entre duas máquinas via rede. Na Internet, implantada e conhecida por FTP. UDP Acrônimo para User Datagram Protocol, o protocolo de transporte sem conexão da família TCP/IP, usado com aplicações como o de gerenciamento de redes (SNMP) e de serviço de nomes (DNS). URL Acrônimo para Uniform Resource Locator, localizador que permite identificar e acessar um serviço na rede Web. Por exemplo, a URL abaixo aponta para o WWW da RNP: http://www.rnp.br/ USENET Alexandre Pedroso – http://www.aplinux.com.br Página 103
  • 104. Alexandre Pedroso – http://www.aplinux.com.br Ver: Netnews USENET NEWS Ver: Netnews UUCP UNIX-to-UNIX CoPy é uma coleção de programas para intercomunicação de sistemas UNIX. Possibilita a transferência de arquivos, execução de comandos e correio eletrônico. VERONICA Acrônimo para Very Easy Rodent-Oriented Net-wide Index to Computerized Archives, ferramenta para pesquisa no GopherSpace, o conjunto de servidores Gopher disponíveis na Internet. WAFFLE Um programa que possibilita a um BBS tornar-se um site Usenet. WAIS Acrônimo para Wide Area Information Server, é um serviço de bases de dados distribuídas acessíveis via Internet, cuja principal peculiaridade é a conversão automática de formatos para visualização remota de documentos e dados. WAN Acrônimo de Wide Area Network, uma rede que interliga computadores distribuídos em áreas geograficamente separadas. Ver também: LAN e MAN WEB Ver: WWW WHOIS Banco de dados de informações sobre domínios, redes, hosts e pessoas, fornecendo um serviço de diretório de usuários da Internet. Alexandre Pedroso – http://www.aplinux.com.br Página 104
  • 105. Alexandre Pedroso – http://www.aplinux.com.br WORM Acrônimo de Write Once Read Many. 1. Ferramenta de busca na rede Web; 2. Verme, programa que, explorando deficiências de segurança de hosts, logrou propagar-se de forma autônoma na Internet na década de 80. WWW World Wide Web, ou Web. Meta-rede, baseada em hipertextos, que integra diversos serviços Internet, através de uma interface que possibilita o acesso a informações multimídia. X.25 Protocolo de roteamento muito utilizado em redes públicas de pacotes. X.400 Um protocolo que especifica serviços do tipo store-and-forward, sendo o serviço de correio eletrônico Message Handle System (MHS) o mais conhecido deles, como parte das recomendações OSI/ISO. X.500 É um padrão ITU-TSS/ISO para serviços de diretório eletrônico. yellow pages Ver: NIS Alexandre Pedroso – http://www.aplinux.com.br Página 105
  • 106. Alexandre Pedroso – http://www.aplinux.com.br Capítulo 17 – GABARITO DOS EXERCÍCIOS 17.1 – GABARITO DOS EXERCÍCIOS 01) 02) 03) 04) 05) 06) 07) 08) 09) 10) V D B, C A, D C C C C B 11) 12) 13) 14) 15) 16) 17) 18) 19) 20) A B B C A C C A 21) 22) 23) 24) 25) 26) 27) 28) 29) 30) C C A B A A C D A C 31) 32) 33) 34) 35) 36) 37) 38) 39) 40) D D C B C B B A A, B B Alexandre Pedroso – http://www.aplinux.com.br Página 106 41) 42) 43) 44) 45) 46) 47) 48) 49) 50) C C B C, D C D A -