Debian in Ici Ante Lenny

148
Debian Básico - Desktop Paraná

Transcript of Debian in Ici Ante Lenny

Page 1: Debian in Ici Ante Lenny

Debian Básico  DesktopParaná

Page 2: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Direitos autorais:

Essa Apostila está licenciada sob uma Licença Creative Commons Atribuição-Uso Não-Comercial-

Compartilhamento pela mesma licença 2.0 Brazil. Pode ser copiada, distribuída e modificada. Para ver uma

cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/2.0/br/ ou envie uma carta para

Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Assembleia.

2

Page 3: Debian in Ici Ante Lenny

Documento Debian Básico - Desktop Paraná

Versão 1.0-4

Data de Revisão 09 de março de 2009 por José Manuel da Pena Rosa10 de março de 2009 por Fábio Tobich20 de abril de 2009 por Felipe Camargo de Pauli07 de maio de 2009 por Felipe Camargo de Pauli21 de maio de 2009 por Felipe Camargo de Pauli15 de julho de 2009 por Felipe Camargo de Pauli05 de agosto de 2009 por Felipe Camargo de Pauli21 de agosto de 2009 por Felipe Camargo de Pauli

Equipe Técnica Mantenedor: Felipe Camargo de PauliRevisor: Fábio TobichColaboradores:André Lucas FalcoDavid Alves FrançaCoordenação do projeto: Jonsue Trapp Martins

Páginas 148 páginas

Page 4: Debian in Ici Ante Lenny
Page 5: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

ÍndiceIntrodução.......................................................................................................................................................9História do GNU/LINUX................................................................................................................................10

Multics, Unix e Minix: os avós do GNU/Linux............................................................................................10O surgimento do projeto GNU....................................................................................................................11Nasce o Kernel Linux.................................................................................................................................12O encontro do GNU com o Pinguim..........................................................................................................13Debian.......................................................................................................................................................13

Discos e partições de disco.........................................................................................................................15O que são partições?.................................................................................................................................15Partição primária, estendida e lógica.........................................................................................................16

Sistemas de arquivos...................................................................................................................................20Blocos........................................................................................................................................................20Journaling..................................................................................................................................................20Principais diferenças entre os principais....................................................................................................21

Abstração de hardware................................................................................................................................23Nós de dispositivos....................................................................................................................................23Nomeação de dispositivos.........................................................................................................................26

Estrutura de diretórios.................................................................................................................................28Endereços..................................................................................................................................................29Diretórios do Sistema................................................................................................................................30

Exercícios de fixação (parte 1)....................................................................................................................33Iniciação........................................................................................................................................................34

Como obter ajuda?....................................................................................................................................34Terminais...................................................................................................................................................34Usuários e grupos......................................................................................................................................35Entendendo o terminal...............................................................................................................................37Comandos para informações sobre sessões.............................................................................................37Coringas....................................................................................................................................................38Recursividade............................................................................................................................................39Redirecionadores.......................................................................................................................................402>...............................................................................................................................................................42

VIM.................................................................................................................................................................44Criando um arquivo...................................................................................................................................44Editando um arquivo existente...................................................................................................................44Modos do vim............................................................................................................................................44

Comandos essenciais..................................................................................................................................46cd...............................................................................................................................................................46ls................................................................................................................................................................47pwd............................................................................................................................................................48mkdir..........................................................................................................................................................49> (De novo este redirecionador)................................................................................................................50cp...............................................................................................................................................................50mv..............................................................................................................................................................51rm..............................................................................................................................................................52diff..............................................................................................................................................................53file..............................................................................................................................................................54tree............................................................................................................................................................54

O completo APT............................................................................................................................................56Repositórios...............................................................................................................................................57Utilizando o apt..........................................................................................................................................57dpkg...........................................................................................................................................................61

Exercícios de fixação (parte 2)....................................................................................................................65Comandos para visualização de conteúdo de arquivos ..........................................................................68

sort.............................................................................................................................................................68cat..............................................................................................................................................................68tac..............................................................................................................................................................69head...........................................................................................................................................................69tail..............................................................................................................................................................70

5

Page 6: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

more..........................................................................................................................................................71less............................................................................................................................................................71nl................................................................................................................................................................71

Comandos para pesquisa............................................................................................................................72find.............................................................................................................................................................72locate.........................................................................................................................................................73grep...........................................................................................................................................................74

Comandos diversos......................................................................................................................................75alias...........................................................................................................................................................75badblocks...................................................................................................................................................75clear...........................................................................................................................................................76date............................................................................................................................................................76df................................................................................................................................................................77dmesg........................................................................................................................................................78echo...........................................................................................................................................................78free............................................................................................................................................................78ln................................................................................................................................................................80su...............................................................................................................................................................82time............................................................................................................................................................82touch..........................................................................................................................................................83uname........................................................................................................................................................83uptime........................................................................................................................................................84whatis........................................................................................................................................................84watch.........................................................................................................................................................85which.........................................................................................................................................................85reboot........................................................................................................................................................85halt.............................................................................................................................................................86shutdown...................................................................................................................................................86Montagem de Dispositivos (mount e umount)............................................................................................86

Exercícios de fixação (parte 3)....................................................................................................................89Comandos para gerenciamento de rede.....................................................................................................90

Informações básicas..................................................................................................................................90Ifconfig.......................................................................................................................................................92/etc/network/interfaces...............................................................................................................................92ping............................................................................................................................................................94route..........................................................................................................................................................94nmap..........................................................................................................................................................95hostname...................................................................................................................................................97

Exercícios de fixação (parte 4)....................................................................................................................98Comandos de gerenciamento de contas....................................................................................................99

Arquivos de contas de usuários e grupos..................................................................................................99adduser....................................................................................................................................................101userdel.....................................................................................................................................................101addgroup..................................................................................................................................................102groupdel...................................................................................................................................................102passwd.....................................................................................................................................................103id..............................................................................................................................................................103groups......................................................................................................................................................103getent.......................................................................................................................................................103

Comandos para gerenciamento de processos........................................................................................105ps.............................................................................................................................................................106top............................................................................................................................................................107kill............................................................................................................................................................107killall.........................................................................................................................................................108jobs..........................................................................................................................................................108fg..............................................................................................................................................................109bg.............................................................................................................................................................109

Comandos para gerenciamento de permissões.......................................................................................111Proprietários, grupos e outros usuários....................................................................................................111Tipos de permissões................................................................................................................................111

6

Page 7: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Diretórios..................................................................................................................................................112Arquivos...................................................................................................................................................113chown.......................................................................................................................................................114chgrp........................................................................................................................................................114chmod......................................................................................................................................................115umask......................................................................................................................................................116newgrp.....................................................................................................................................................117usermod...................................................................................................................................................119

Exercícios de fixação (parte 5)..................................................................................................................120Instalação de impressoras.........................................................................................................................122

Abrindo o Gerenciador.............................................................................................................................122Definindo uma impressora padrão...........................................................................................................122Adicionar uma nova impressora..............................................................................................................123Remover uma impressora........................................................................................................................125

SSH..............................................................................................................................................................126Instalando e iniciando o serviço...............................................................................................................126Conectando-se ao servidor......................................................................................................................127Copiando com o ssh................................................................................................................................128

Anexo I (Instalação do Sistema Operacional – Desktop Paraná 2.0 - Zandor)......................................130Primeira etapa da instalação...................................................................................................................130Segunda Etapa da Instalação..................................................................................................................131

Anexo II (Alsa).............................................................................................................................................133Eventuais problemas...............................................................................................................................133

Referências Bibliográficas.........................................................................................................................134

7

Page 8: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Índice de FigurasFigura 1: Richard M Stallman.........................................................................................................11Figura 2: Linus Torvalds.................................................................................................................12Figura 3: O casamento: GNU e Linux.............................................................................................13Figura 4: Algumas distribuições......................................................................................................13Figura 5: MBR - Master Boot Record.............................................................................................16Figura 6: Informações que definem uma partição..........................................................................17Figura 7: Quatro partições primárias..............................................................................................18Figura 8: Três primárias mais uma lógica.......................................................................................18Figura 9: Uma primária mais três lógicas.......................................................................................19Figura 10: Estrutura de diretórios...................................................................................................27Figura 11: Cilindros, trilhas e setores..............................................................................................80Figura 12: Adduser x Userdel.......................................................................................................101Figura 13: Caixa de diálogo "Configuração da impressora"..........................................................123Figura 14: Definindo uma impressora padrão...............................................................................123Figura 15: Procurando o dispositivo.............................................................................................124Figura 16: Instalando uma impressora que esteja no Windows....................................................126Figura 17: Instalando o driver da impressora...............................................................................127Figura 18: Menu de contexto para remover uma impressora.......................................................127

8

Page 9: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

INTRODUÇÃOA migração de diversos serviços que possuem seus códigos-fonte fechados para alternativas livres é

uma realidade dentro do estado do Paraná. É uma questão de tempo até que todas as estações de trabalho

de todas as secretarias estejam com a distribuição Debian personalizada pela Celepar, denominada

Desktop Paraná, e diversas ferramentas do projeto GNU e de outros projetos alternativos livres estejam

instalados e em produção. A CPPC (Coordenação de Projetos, Pesquisa e Capacitação) é a coordenação

dentro da Celepar responsável por tentar diminuir o impacto dessa transição, através de uma ampla

documentação de serviços adotados pelo estado e cursos para usuários e técnicos. Esta apostila é a

primeira de uma série de três volumes. São eles: Debian Básico; Debian Intermediário; e Debian Avançado.

Todos estes volumes visam fazer com que os administradores de redes que desenvolvem trabalhos dentro

do estado do Paraná ou qualquer interessado da comunidade consigam realizar suas competências já

existentes de gerenciamento, mas agora com ferramentas completamente livres.

O curso de Debian Básico tem como objetivo transmitir aos técnicos interessados conceitos básicos

de informática, introdução a conceitos utilizados nas versões Unix like, e ensinar-lhes vários comandos para

serem utilizados para gerenciamento de uma rede. Este curso é básico, por isso terá uma série de

introduções a assuntos sem aprofundamento. O estudante terá a possibilidade de manusear uma série de

ferramentas e entender o que acontece com o computador, mas as soluções e análises mais profundas do

sistema, capacidade de criação de projetos de redes complexas, será adquirida apenas com a conclusão

dos três volumes.

A release atual do Desktop Paraná possui o codinome Zandor, que possui a estrutura do Debian

Lenny com as alterações feitas pela Celepar. Será esta a distribuição que este curso irá abordar, porém,

deve-se ficar claro que qualquer outra distribuição, até mesmo uma Unix-Like sem vínculos com o Debian,

segue os mesmos princípios do Zandor e possui muitos comandos e arquivos idênticos ou parecidos.

Tenham um bom curso!

9

Page 10: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

HISTÓRIA DO GNU/LINUXSem um sistema operacional não conseguimos utilizar o computador para

nada, pois é o sistema operacional que permite a interação entre o homem

e a máquina. Para entendermos melhor sobre o surgimento do Debian, o

sistema operacional adotado pelo Paraná, vamos ver um pouco da história

dos sistemas operacionais.

MULTICS, UNIX E MINIX: OS AVÓS DO GNU/LINUXApesar de não ter sido o primeiro sistema operacional criado, vamos começar nossa história com o

MULTICS, por volta de 1969. Cientistas da computação, em um encontro que ocorreu no MIT

(Massachusetts Institute of Technology), inclinaram-se sobre uma ideia que quase todos tinham em comum:

a possibilidade de se criar um sistema operacional time-sharing. Ele teria características de tempo de

compartilhamento, que nada mais é do que vários usuários compartilhando os recursos de um computador.

Até então, os computadores não permitiam tal tarefa. Somente um processo poderia rodar por vez em cada

computador. De uma ideia surgiu um consenso. De um consenso surgiu um esboço. De um esboço surgiu

um projeto e sobre este projeto derramou-se muito dinheiro. O que antes só existia em mentes e papéis

passava a ganhar linhas de códigos em computadores de vários programadores.

Os investidores de recursos financeiros e humanos uniram-se no esforço de um único fim. Eram eles:

ARPA – Departamento de defesa dos EUA – (principal auxílio: recurso financeiro.

Interessado em novas tecnologias para serem usadas em armas cada vez mais precisas e

devastadoras);

General Eletric (principal auxílio: espaço físico e computadores);

Laboratórios Bell da AT&T (principal auxílio: programadores renomados, sendo o mais

importante para nós: Ben Thompson);

MIT (principal auxílio: programadores renomados e o esboço do projeto).

Os anos foram se passando e, devido a complexidade maior do que esperada da tarefa, os

resultados desejados não foram atingidos. Isto fez com que o projeto MULTICS perdesse força e, aos

poucos, cada uma das entidades envolvidas foram o abandonando. O sonho do multiprocessamento em um

sistema operacional foi morrendo. Foi morrendo até que morreu. Em 1969 o projeto foi abandonado.

Ken Thompsom, funcionário dos Laboratórios Bell e ex-integrante do grupo que desenvolvia o

MULTICS, continuou estudando o sistema e decidiu criar um outro sistema operacional mais simples, mas

que conservasse as ideias básicas do MULTICS, nascendo assim o UNICS (Uniplexed Information and

Computing Service), que mais tarde passou a se chamar UNIX. Ele ficou bom e convincente, fazendo assim

com que a AT&T resolvesse patrociná-lo. Era a volta do sistema operacional multiprocessado.

Inicialmente o UNIX foi escrito em Assembly, o que causava grandes dificuldades pelo fato de que

praticamente o sistema operacional só funcionaria em uma arquitetura. Como Assembly é uma linguagem

de baixo nível e muito complicada, Thompson tinha a intenção de passar o Unix para uma linguagem de alto

nível. Após algumas tentativas mal sucedidas, surgiu a linguagem C, e o UNIX finalmente foi reescrito sob

esta linguagem no ano de 1973.

10

Page 11: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

O UNIX cresceu muito na AT&T, que até então, não o comercializava e o distribuía gratuitamente para

às universidades para fins educacionais. Mas com o seu crescimento, a partir da versão UNIX System IV

(em 1983), a AT&T começou a comercializá-lo cobrando pelo seu uso e não disponibilizando mais seu

código fonte.

Por não ter mais acesso ao código fonte do UNIX, o professor universitário, Dr Andrew Tanenbaum,

motivado por fins educacionais, resolveu desenvolver um novo sistema operacional baseado no UNIX,

criando assim o MINIX. Era um sistema operacional limitado, pois possuía apenas fins didáticos, e nesta

tarefa cumpria bem seu papel, mas para ser usado para outros fins era considerado fraco.

O SURGIMENTO DO PROJETO GNU“Em 1984, Richard M. Stallman descobriu que software proprietário fazia vítimas diretas quando ele

mesmo se tornou uma delas.”

Tudo começou quando a Xerox resolveu presentear o Laboratório

de Inteligência Artificial do MIT (o mesmo laboratório de onde surgiu o

projeto do MULTICS e local onde Richard M. Stallman trabalhava) com

uma super impressora Laser de ponta.

A impressora era extremamente instável, ou seja, travava toda

hora. Alguém mandava algum trabalho para ser impresso e quando ia

buscar depois de meia hora, descobria que a impressora havia travado

na metade do trabalho. Arrumava-a, enviava novamente o trabalho e

depois de uma hora retornava para buscar, mas adivinha o que ele

descobria? Que a impressora havia novamente travado há 59 minutos

(haja paciência).

Antes de ganhar essa impressora da xerox, eles tinham uma

outra impressora que apresentara o mesmo problema. Como não era

possível fazer alterações no hardware da impressora para corrigir os problemas devido a falta de tecnologia

da época, eles faziam alterações no driver da mesma, adicionando algumas funções (gambiarras).

Uma dessa funções que eles haviam adicionado fazia com que aparecesse uma mensagem na tela

de cada usuário que havia mandado uma impressão informando se a tal estava pronta ou não. Avisava

também problemas na impressão, caso isso ocorresse. Assim, quando havia algum problema, alguém iria

correndo para sanar o problema o quanto antes. Então já haviam encontrado não a solução, mas um jeito

de fazer com que a remediação fosse mais rápida. Bastava implementar as mesmas alterações no driver

dessa outra impressora. E isso foi feito? Infelizmente não era possível pois o driver daquela impressora era

proprietário, pertencia à Xerox, e só estava disponível na forma binária. O código-fonte era exclusivo da

xerox. Para se alterar um programa é necessário seu código-fonte (como se fosse a receita de um bolo. É o

código em que encontramos toda a programação que faz um programa funcionar). Richard e seus

companheiros de trabalho estavam impotentes diante desse problema.

Quando Richard soube que um colega de outra universidade tinha o código fonte para esse driver,

procurou-o. Para sua surpresa, o colega se negou a lhe repassar o código-fonte, pois ele havia assinado um

acordo de responsabilidade que o impedia, legalmente, de compartilhar essa informação com quem quer

11

Figura 1: Richard M Stallman

Page 12: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

que fosse. Se Richard Stallman quisesse ter acesso ao código fonte ele teria que assinar um acordo igual

ao que seu colega assinara. Isso ia contra seus princípios.

Muito pouco tempo depois de tudo isso, o MIT desencadeou um processo de reestruturação

tecnológica. Os softwares que já estavam obsoletos foram substituídos. Os novos softwares, apesar de

mais sofisticados e fáceis de se usar, vieram com acordos iguais àquele que seu colega havia assinado,

permitindo a ele alterar os programas, mas não os redistribuir. Além disso, não poderia divulgar o código

fonte original. Richard se viu então num grande impasse: se ele quisesse continuar a trabalhar com

informática, ele teria que assinar o mesmo tipo de acordo que havia feito ele conviver com uma impressora

destruidora de paciência. Ele sentia que não podia assinar esse contrato, mas ao mesmo tempo isso

passava a ser tendência do mercado. Ele era contra tudo isso e não queria mais jogar dessa forma, mas

não passava em sua mente deixar a informática.

Foi então que, no ano de 1984, Richard resolveu não assinar o acordo, sair da MIT e fundar a FREE

SOFTWARE FOUNDATION, com a proposta de lutar para que as pessoas pudessem ter acesso a

softwares livres, com direito a olhar seu código fonte, modificar e distribuir os programas livremente,

promovendo o livre fluxo de ideias na área de softwares.

Através da FREE SOFTWARE FOUNDATION foi criado o projeto GNU, que idealizava a criação de

um alternativa livre para cada software proprietário existente. Claro que uma das metas era um sistema

operacional completamente livre. Qualquer pessoa teria o direito de usar, modificar e redistribuir esses

softwares, desde que fossem garantidos esses mesmos direitos aos softwares derivados. O nome GNU foi

escolhido porque, além do significado original do mamífero Gnu, é um acrônimo recursivo de “GNU is Not

Unix” (em português “Gnu Não é Unix”). Esse sistema operacional deveria ser compatível com o UNIX, mas

não poderia usar nenhuma parte do código fonte do UNIX, já que este era fechado. Assim a partir de 1984,

liderados por Richard Stallman, um grupo de programadores que aderiram à causa começaram a

desenvolver as principais peças de um sistema operacional e aplicativos diversos.

Em 1991 o sistema operacional GNU estava quase pronto, mas ainda faltava a sua parte mais

importante: o seu núcleo, que na informática é chamado de kernel. Assim Richard e sua equipe

concentraram seus esforços na criação do kernel chamado Hurd. Enquanto isso...

NASCE O KERNEL LINUXNum outro lugar do mundo, um cara chamado Linus Torvalds, finlandês, estudante de Ciências da

Computação na Universidade de Helsink, deparou-se com o MINIX. Lembram-se que o código fonte do

UNIX passou a não ser mais disponibilizado fazendo com que Tanembaum criasse o MINIX para que os

acadêmicos pudessem estudar sistemas operacionais na prática? Então! Lá estava o MINIX sendo

explorado por Linus. Só que o MINIX era muito limitado, afinal de contas, fora desenvolvido para fins

didáticos. Mas foi suficiente para despertar em Linus, em 1991, a ideia de

criar um novo sistema operacional mais completo, baseado no UNIX,

utilizando as diretrizes POSIX, regras também observadas na criação do

MINIX.

Linus teve a ideia e a divulgou na Usenet, um sistema de

comunicação instantânea remota que foi precursor da internet. No fim de

12

Figura 2: Linus Torvalds

Page 13: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

1991 disponibilizou na rede a primeira versão do kernel criado por ele. Linus queria que todos os

programadores que quisessem se envolver no projeto, auxiliassem-no a melhorar sua criação. Essa mesma

comunidade que o ajudou a fazer com que o kernel crescesse, resolveu homenageá-lo dando o nome ao

kernel de Linux, que é a contração de Linus (idealizador) e Unix (sistema em que o Linux foi baseado).

Mas o Linux ainda era apenas um kernel, e precisava de todo restante dos programas para funcionar

como um sistema operacional completo. Por coincidência, faltava exatamente o que fora produzido no

projeto GNU. Mas a junção de tudo não era algo fácil. Para utilizar o Linux, o próprio usuário tinha que

encontrar os outros programas do projeto GNU, compilá-los e configurá-los; talvez por isso, o Linux tenha

começado a ter fama de sistema operacional para técnicos.

O ENCONTRO DO GNU COM O PINGUIMO Linux atingiu um nível de desenvolvimento que

nenhum kernel criado pela Free Software Foundation havia

alcançado, além de suportar todas as peças do sistema

operacional GNU. Foi aí que, numa dedução óbvia, pensou-se em unir os dois, GNU e Linux. Um

completaria o outro, e assim, surgiu um sistema operacional forte, completo e o melhor, com todo seu

código aberto!

Atualmente, o sistema operacional GNU com o kernel Linux é conhecido como GNU/Linux, que é

como o projeto solicita aos utilizadores que se refiram ao sistema completo, embora a maioria das pessoas

se refiram ao sistema apenas como Linux, por uma questão de facilidade.

DEBIANQual é a diferença entre um buffet e um prato à la

carte? No primeiro, você poderá escolher, dentro de todas as

opções oferecidas pelo restaurante, o que mais lhe agrada.

No segundo, você diz o nome do prato e este vem pronto com

os ingredientes e proporções que o restaurante define. Os

sistemas operacionais proprietários e livres funcionam

analogamente aos buffets e pratos prontos. Sistemas

proprietários vêm prontos, permitindo que você configure

somente aquilo que tem permissão e que insira programas

feitos para eles. Já os livres permitem que, dentre todos os

softwares do projeto GNU ou qualquer outro projeto, você

escolha quais quer ter e como eles devem interagir. O

GNU/Linux é, então, o restaurante que fornece uma gama

grandíssima de opções para que você escolha qual deseja

usar e como eles devem trabalhar juntos. Qualquer pessoa

pode criar seu próprio “prato”. E esses “pratos” é que são as

distribuições. O Debian é uma distribuição GNU/Linux, já

que ele pega o que deseja do projeto GNU, encaixa ao kernel

13

Figura 4: Algumas distribuições

Figura 3: O casamento: GNU e Linux

Page 14: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Linux, insere outros softwares criados por ele ou terceiros (alguns programas até proprietários, como o java)

e os deixa prontos para serem utilizados. Outros exemplos de distribuição são Ubuntu, SuSE, Mandriva, etc.

Veja na figura 4 logos das principais.

O Debian nasceu em 1993, mais precisamente no dia 16 de agosto daquele ano. Seu criador foi Ian

Murdock. A ideia de Murdock era criar um sistema operacional que fosse livre, consoante à filosofia da

comunidade criada por Stallman. No começo Ian conseguiu a ajuda de alguns hackers e da própria Free

Software Fundation. Eles tinham como preocupação compilar os vários pacotes do GNU/LINUX, mas

seguindo um método que tornava o controle do sistema organizado. Cada pacote (conjunto de arquivos que

ganham um rótulo. Será visto na página 56) tinha um mantenedor que era responsável por resolver

problemas de dependências, instabilidade, novas versões, ou seja, tudo que envolvesse estes pacotes.

Além disso, ferramentas permitiam que a instalação fosse facilitada, sendo criado até um repositório, que é

um servidor de pacotes acessível através de um simples comando. Padrões de criação de pacotes,

documentação de tudo, fases de maturação, tudo isso e mais várias outras coisas fizeram com que o

Debian crescesse e se tornasse uma das distribuições mais completas, maduras, robustas e organizada de

todas. Hoje a empresa conta com uma constituição, contrato social e padrão para organização de pacotes.

Qualquer um pode contribuir com o projeto, só que seus pacotes devem seguir as regras da comunidade.

Murdock, antes de se envolver com o projeto do Debian, trabalhou no filme Toy Story. Como ficou

emocionalmente envolvido com os personagens, resolveu dar o nome de um personagem do desenho a

cada nova release do Debian. Veja alguns deles:

Debian 1.1 Buzz (17 de junho de 1996) Debian 1.2 Rex (12 de dezembro de 1996) Debian 1.3 Boo (05 de junho de 1997) Debian 2.0 Ham (24 de julho de 1998) Debian 2.1 Slink (09 de março de 1999) Debian 2.2 Potato (15 de agosto de 2000) Debian 3.0 Woody (19 de julho de 2002) Debian 3.1 Sarge (6 de junho de 2005) Debian 4.0 Etch VERSÃO ESTÁVEL Debian Lenny VERSÃO DE TESTE Debian Sid VERSÃO INSTÁVEL PARA SEMPRE

ebian vem da contração do nome de Ian Murdock com o da sua mulher, Debra.

DEBra e IAN MurdockD

14

Page 15: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

DISCOS E PARTIÇÕES DE DISCOAntes de começarmos a estudar os comandos para administração do Debian, precisaremos ver

alguns conceitos de informática necessários no decorrer deste curso. Iremos abordar esses conceitos

primeiramente de uma forma genérica, depois iremos analisá-los sob a ótica Debian.

O QUE SÃO PARTIÇÕES?Alguns dispositivos de armazenamento permitem-nos criar divisões lógicas de seu espaço total. Ao

criar partições, aos olhos do sistema operacional, cada uma delas é como se fosse um dispositivo de

armazenamento diferente. Essa diferenciação permite que: (a) tenhamos mais segurança dos dados

armazenados em situações críticas; (b) mais de um tipo de sistema operacional no mesmo dispositivo físico;

(c) uma otimização na utilização do espaço disponível. Existem mais razões, mas essas são as principais.

(a) Segurança da integridade de dados

Ao criar mais de uma partição, poderemos definir uma natureza para cada uma delas. Vejamos uma

situação hipotética, a qual sugerimos que adote (inclusive na instalação, no final do curso, iremos utilizar

essa configuração):

Nome Natureza

/boot Partição destinada aos dados de inicialização do sistema. Mesmo existindo uma partição com este fim, ainda será necessário alguns arquivos de inicialização dentro do diretório barra (/).

/ Partição onde ficam os dados essenciais e não essenciais ao funcionamento do sistema básico. Extremamente necessária para se ter suporte a todos os recursos do computador.

/home Partição destinada apenas ao armazenamento de informações e documentos pessoais de cada usuário.

Swap É a área de troca do sistema operacional. Sempre que a utilização real da memória principal atingir 60%, os dados armazenados em cache por mais tempo começam a ser realocados para a swap. Desta forma, os dados continuam alocados em cache para serem utilizados quando requisitados e libera-se a memória principal para novos processos ou processos ativos que necessitem do espaço em memória de imediato.

Essa divisão básica e muito utilizada permite que tenhamos mais segurança durante a manipulação

dos dados. O computador, em seu estado normal, inicia o sistema operacional a partir de uma imagem do

sistema básico armazenada no /boot. Depois ele carrega outros aplicativos que são importantes para a

exploração máxima do potencial do computador. Estes aplicativos ficam no /. Após a inicialização do

sistema básico, o computador carrega as informações do usuário que iniciar a sessão, armazenadas dentro

do /home. Caso uma dessas partições acabe sendo danificada, as outras manterão-se intactas. Se o /boot

for danificado é possível iniciar o computador através de um disco de inicialização e restaurar a partição que

falta, voltando, assim, a ter acesso a todos os programas, configurações e arquivos pessoais dos usuários.

Caso o / esteja com problema, é possível que você inicie o computador no modo de segurança e tente

consertar o que está de errado. Caso pense-se em apenas reinstalar todo o computador, mas pretenda-se

manter os arquivos pessoais dos usuários, basta reinstalar o sistema operacional mantendo o /home. Mais

organização e segurança, com certeza.

15

Page 16: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

(b) Mais de um sistema operacional

A maioria dos sistemas operacionais possuem sistemas de arquivos diferentes entre eles (este

assunto será abordado na página 20). Não é possível se ter um dispositivo com mais de um sistema de

arquivos. Criando partições, temos, virtualmente, vários dispositivos diferentes. Cada um deles pode ter um

sistema operacional. Isso nos permite ter instalado, por exemplo, num mesmo disco rígido, o Windows e o

Debian. Para decidir qual será carregado usamos os chamados boot-loaders. O mais conhecido é o GRUB

do projeto GNU. Ao instalar o Debian, o GRUB é instalado por padrão (se você quiser poderá optar por não

o instalar). Você deve conhecer parte dele. Lembra da tela azul que aparece após o computador ter sido

ligado que todos os sistemas operacionais aparecem? Esse é o safado.

(c) Otimização da utilização do espaço disponível

Cada sistema de arquivos possui um padrão de unidade mínima de armazenamento, chamada bloco.

Se você enviar a um bloco alguma arquivo com tamanho inferior a ele, o espaço vazio será perdido. Como

existem arquivos de sistema que possuem um desempenho melhor com arquivos grandes e outros com

tamanhos pequenos, é interessante definir sistemas de arquivos diferentes para partições diferentes, de

forma que eles explorem melhor o potencial do hardware (velocidade e real utilização do disco rígido).

PARTIÇÃO PRIMÁRIA, ESTENDIDA E LÓGICAAs partições primárias e lógicas têm funções iguais: criar divisões em um dispositivo de

armazenamento para que o sistema operacional pense se tratar de mais de um dispositivo físico. A partição

estendida já tem um papel diferente. Ela define onde a partição lógica inicia. Para entender isso é

necessário que saibamos como é a estruturada a MBR.

A MBR (Master Boot Record) é um local situado no início de um disco rígido que aloca a tabela de

partições e os boot-loaders. Seu tamanho é de 512 bytes. Veja na figura 5 como esses bytes são

distribuídos.

Os 64 bytes referentes a tabela de partições são divididos em quatro partes, tendo 16 bytes cada

uma. Dentro desse espaço de 16 bytes é onde encontramos a diferença entre os tipos de partições. Ele

pode conter informações a respeito de uma partição ou então o endereço do espaço que contém as

informações da próxima partição lógica.

16

Figura 5: MBR - Master Boot Record

Page 17: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Dentro da MBR Informações que definem uma partição Primária

Dentro da MBR Referência para a primeira partição lógica Estendida

Fora da MBR Informações a respeito de uma partição no primeiro espaço de 16 bytes; referência para a próxima lógica, se existir, nos outros 16 bytes; e 32 bytes finais sem nada (espaço perdido mesmo)

Lógica

Mas o que são essas informações que definem uma partição? São os dados que definem exatamente

onde começa e onde termina uma partição. Esses dados são mostrados na tabela abaixo:

A figura 6 mostra o que cada 16 bytes dentro da MBR armazena. Quando temos uma partição

estendida, esses 16 bytes só terão o endereço do espaço que contém a primeira partição lógica. Cada

espaço fora da MBR que tenha informações sobre uma partição lógica também terá 64 bytes, só que será

organizada de uma forma diferente. Os primeiros 16 bytes serão reservados para definir a partição, como

mostrado na figura 6. Os outros 16 bytes indicam qual é o endereço da nova partição lógica. Os outros 32

bytes não armazenam nada, só existindo para que assuma o mesmo padrão da MBR. É como se

tivéssemos uma tabela de partições da MBR de 64 bytes para cada partição lógica.

Propriedades importantes

1. As partições primárias só podem existir dentro da MBR, por isso, o número máximo desta partição que podemos ter em um disco rígido é quatro.

2. A partição estendida só serve para criar um vínculo entre a MBR e a primeira partição lógica, por isso não enxergamos ela.

3. Cada nova partição lógica deve ser referenciada por uma lógica anterior, sendo que a primeira delas deve ser referenciada pela partição estendida dentro da MBR.

4. A última partição lógica encerrará com uma assinatura, para que o sistema saiba que acabaram as partições.

5. Não será possível, após criar uma partição estendida, criar uma partição primária.6. O máximo de partições que se pode criar em um disco rígido é dezesseis, sendo que

somente quinze são utilizáveis, já que uma será a estendida.

17

Figura 6: Informações que definem uma partição

Page 18: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Exemplos de divisões de um disco rígido

Com 4 partições primárias:

Com 3 partições primárias, uma estendida apontado para a primeira lógica de 1:

Com 1 partição primária, 1 estendida apontando para a primeira lógica de 3:

18

Figura 8: Três primárias mais uma lógica

Figura 7: Quatro partições primárias

Figura 9: Uma primária mais três lógicas

Page 19: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Esse sistema de máximo de partições primárias, partição estendida e encadeamento de lógicas existe

pois, antigamente, os sistemas operacionais só trabalhavam com partições primárias. Quatro partições eram

suficientes, já que os discos tinham os incríveis tamanhos de 30MB, 540MB, 730MB, 850MB, além dos mais

sofisticados e de alta capacidade de armazenamento, de 1.28GB! Hoje em dia, com discos de 80GB,

120GB, 160GB, 500GB e outras capacidades maiores, mais partições são necessárias. Para que pudessem

ser criadas mais de quatro partições havendo compatibilidade com sistemas antigos, foi necessário criar um

sistema em que as informações de partições ficassem fora da MBR, já que somente os 64 bytes não eram

suficientes para armazenar tantas informações. O método explicado anteriormente foi a solução encontrada.

19

Page 20: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

SISTEMAS DE ARQUIVOSSistemas de arquivos, ou filesystem, é o que chamamos de formatação lógica de um disco. A primeira

formatação é a física, feita pelo fabricante do disco. Ela não será abordada neste curso. A segunda

formatação é a lógica, feita pelo sistema operacional, sendo esse o motivo de cada sistema operacional ter

suporte a sistemas de arquivos diferentes. Essa formatação tem função de preparar o disco para ser

utilizado pelo sistema. Também possui um conjunto de regras que define como os dados serão

manipulados, ou seja, armazenados e recuperados. Alguns tipos de sistemas de arquivos possuem recursos

a mais do que outros, como por exemplo journaling, tail, etc, além de blocos de tamanhos diferentes.

BLOCOSO bloco é a menor unidade de armazenamento em um disco. Imagine um banco da Suíça. Você é

milionário e possui uma seção só para você, e dentro dessa seção existem várias maletas. A política do

banco não permite que você entre em sua seção por motivo de segurança. Sempre que você queira colocar

ou retirar algo do banco, você precisará solicitar uma maleta específica que esteja dentro da sua seção.

Você tem 50 anéis de ouro na maleta A e apenas um de prata na B. Se você quiser retirar o anel de prata,

terá que solicitar a maleta B inteira. Se você quiser apenas um de ouro, terá que solicitar a maleta A inteira

do mesmo jeito. Essa maleta é como o bloco dos sistemas de arquivos. O tamanho real de um arquivo não

importa, e sim a soma do total de bytes dos blocos que ele usa.

E a diferença entre bloco e setor é que este é criado pela formatação física e é muito pequeno. Serve

como referência para que a formatação lógica possa definir quantos setores representarão a menor unidade

do sistema de arquivos, ou seja, quantos setores representarão um bloco de dados.

or padrão, os sistemas de arquivos não misturam dados de arquivos diferentes dentro

do mesmo bloco. Se temos um arquivo A que precisa de 2 blocos e meio, a metade do

terceiro não será usado para armazenamento de um arquivo B. Os dados são armazenados

no quarto bloco. Isso por padrão, mas existem alguns recursos que possuem blocos

especiais que armazenam “caldas” de arquivos (daí tail). Os dados que completam blocos

cheios são gravados sequencialmente e os dados finais de todos os arquivos, os restos, são

armazenados num bloco especial. Este recurso chama-se tail packing.

P

JOURNALINGÉ um recurso que registra tudo que o sistema de arquivos faz, permitindo que em caso de queda de

energia ou travamento não haja corrompimentos. Quando abrimos um arquivo ou programa, ele é carregado

na memória. Tudo que fazemos é alterado na memória e, somente após um tempo determinado pelo

aplicativo, sistema operacional ou usuário (através das opções de salvar, sincronizar, etc), será feita a

alteração dos dados no disco. Essa alteração não é gravada sobre os dados anteriores, mas sim em um

espaço novo no disco. O espaço que continha os dados antigos é considerado como disponível, mas

continuará com os dados antigos até que o sistema realmente precise dele. Se durante o processo de

sincronia de dados entre memória RAM e disco – momento esse em que um novo espaço no disco é

20

Page 21: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

referenciado como local de armazenamento do arquivo – houver uma queda de energia ou travamento, o

sistema de arquivos perderá a ligação com o espaço antigo e o espaço novo terá somente parte dos dados

atualizados. O arquivo estará corrompido. Com o sistema de journaling, antes de realizar qualquer tarefa, o

sistema de arquivos a registrará. No caso de haver um problema, como no exemplo anterior, o sistema de

arquivos saberá o endereço do espaço antigo e conseguirá recuperá-lo. Não teremos o espaço atualizado,

já que esse nunca foi passado completamente da memória RAM para o disco, mas teremos o arquivo no

estado anterior, que já é alguma coisa (as vezes muita coisa).

PRINCIPAIS DIFERENÇAS ENTRE OS PRINCIPAISExiste uma série de testes que foram feitos para averiguar as principais características de cada

sistema de arquivos. Os principais sistemas de arquivos no linux são Ext3, ReiserFS e XFS. Após analisar

vários relatórios podemos concluir o seguinte.

Capacidade de armazenamento

A porcentagem definida pela razão entre blocos utilizáveis e total de blocos mostra que, na maioria

dos relatórios o ReiserFS e XFS são mais eficazes que o Ext3. Isso quer dizer que o Ext3 possui muitos

blocos perdidos para controle de si mesmo, enquanto o sistema dos outros sistemas de arquivos é mais

inteligente.

Criação, montagem e desmontagem de sistemas de arquivos

Para criação de sistemas de arquivos, o pior sistema de arquivos é o Ext3. Em um teste realizado

pelo site www.debian-administration.org, para se criar o Ext3 em um HD de 20GB, levou-se 14,7 segundos,

enquanto os outros dois levaram menos de 2 segundos. Mas o ReiserFS foi o pio no quesito montagem de

dispositivos. E foi feio, já que levou de 5 a 15 vezes (cerca de 2,3 segundos) mais tempo do que os outros

dois para executar a tarefa (menos de 0,5 segundo) e cerca de 1 a 3 vezes (0,4 segundo) mais tempo para

desmontar que os outros. O XFS foi quase que unânime, porém durante a desmontagem utiliza o dobro de

processamento que os outros sistemas de arquivos. O computador utilizado para os testes tinha um

processador Intel Celeron 533 com 512MB de RAM. Para criação e montagem, todos exigem quase a

mesma coisa do processador, cerca de 60% de sua capacidade para criar e cerca de 40% para montar.

Porém, para desmontar, o XFS mostrou-se muito menos “econômico” juntamente com o Ext3, já que

exigiram o dobro do processador (cerca de 40%) que o ReiserFS exigiu (cerca de 20%).

Operações com arquivos grandes

O ReiserFS é o mais lento para criar uma cópia de um arquivo grande de outra partição ou da mesma

partição. O Ext3 ficou em segundo e o XFS é o que criou as cópias mais rapidamente, mostrando-se ser o

melhor sistema de arquivos para ser utilizado com este tipo de arquivos. Na remoção de um arquivo grande,

o XFS deu uma lição nos outros sistemas de arquivos, sendo 100 vezes mais rápido que os outros dois,

sendo o Ext3 o mais lento na realização desta atividade. Quanto a utilização do processador, o ReiserFS faz

feio. Nas cópias tudo é parecido, mas na remoção, ele exige 50% da capacidade do processador enquanto

os outros dois pedem precisam de somente 10% para realizar a mesma tarefa.

21

Page 22: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Operações com arquivos pequenos

Os testes mostraram, em sua maioria, que em relação a arquivos pequenos a utilização do

processador e o tempo de execução de tarefas (cópias e remoções) todos os sistemas de arquivos são

parecidos. Apesar disso, o ReiserFS se mostrou um pouco pior que os outros dois. A única vez que ganhou

dos outros foi na velocidade para remoção de arquivos, perdendo ou empatando em todos outros quesitos.

22

Page 23: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

ABSTRAÇÃO DE HARDWARESempre que iniciamos o computador, o sistema operacional faz uma varredura procurando todos os

dispositivos de hardware disponíveis para utilização. Quando encontrados, cada um deles recebe um nome

e é criado dentro do diretório /dev um arquivo especial chamado de nó de dispositivo, que nada mais é

que um espaço na memória RAM que será o local ao qual o hardware enviará e receberá dados do sistema

e vice-versa. Sempre que um aplicativo precisar acessar alguma informação do hardware, ele só precisará

abrir o arquivo especial referente.

NÓS DE DISPOSITIVOS Cada nó precisará de um driver para funcionar. No Windows, sempre que você adiciona um

dispositivo, é necessário que você instale o driver que tenha as instruções de funcionamento dele. Após

instalado, aparece no gerenciador de dispositivos um ícone pelo qual o administrador consegue fazer as

configurações necessárias. Os aplicativos que precisam dele criam referências apontando para este

“representante”. No Debian, quase sempre os dispositivos de hardware encontrados já têm suporte do

sistema e funcionam sem necessidade de configuração. Quando isto não acontecer, o administrador terá

que inserir um módulo que dará suporte ao dispositivo (o módulo ensina o sistema a utilizar aquele

dispositivo). Se tudo estiver certo, o dispositivo aparecerá dentro do diretório /dev.

O comando abaixo irá mostrar todos os nós de dispositivos que o sistema encontrou.

$ls -l /devbrw-rw---- 1 root disk 3, 1 Nov 21 13:27 hda1

Existem quatro tipos de nós de dispositivos. Sempre que executamos o comando ls mostrado

anteriormente (comando este que será abordado na página 47), podemos verificar várias informações a

respeito dos arquivos e diretórios. O primeiro set de configuração (a primeira letra) é responsável por

informar qual é o tipo de arquivo listado. Veja quais são os arquivos especiais abaixo:

Nós de dispositivos de bloco (b)

São os dispositivos de hardware que trocam informações em blocos, ou seja, vários pacotes de

dados são trafegados simultaneamente entre o dispositivo e o sistema. Além disso, estes dispositivos

podem ser formatados em blocos, o que permite que o sistema consiga acessar exatamente a informação

desejada. Se tivéssemos apenas um bloco para armazenamento no HD inteiro, por exemplo, toda vez que

precisássemos de alguma informação de dentro dele, todo o bloco teria que ser copiado para a memória.

Imagine você tentando abrir um documento de 100 bytes armazenado em um HD de 160 gigabytes? Se

houvesse apenas um bloco de 160GB, todo ele deveria ir para a memória para você acessar o seu

documento. Com os blocos, o sistema pode solicitar a cópia apenas daqueles blocos que são necessários,

ou seja, você iria praticamente direto aos dados que deseja e só carregaria na memória o que fosse

necessário. Mais rápido e melhor para a memória. Normalmente estes blocos têm 4 kB, podendo variar de

acordo com a formatação do disco (varia por causa do sistema de arquivos escolhido e/ou configurações do

administrador).

23

Page 24: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Nós de dispositivos de caractere (c)

São os dispositivos de hardware que trocam informações em série, ou seja, apenas um pacote por

vez é trafegado entre o dispositivo e o sistema. Além disso, eles possuem apenas um bloco de dados que

muda dinamicamente. Toda alteração é enviada ao sistema para que ele possa interpretar a mudança e

realizar as atividades necessárias. Por exemplo, o mouse ao ser movido irá enviar os dados das variações

percebidas pelos seus dispositivos de captação de movimento para o arquivo /dev/psaux. O envio é feito

serialmente, ou seja, um bloco por vez.

Nós de dispositivos de soquete (s)

São um pouco diferentes dos outros nós, já que ele representa um dispositivo físico, mas não

direciona as informações que chagam a ele diretamente para o representado, mas sim para um processo

que gerencia os dados do dispositivo. Os dispositivos de soquete são uma versão dos arquivos FIFO

melhorados (tantos que os FIFO já estão em desuso). Eles funcionam como os pipes do shell (a barra

vertical, “|”), que envia o resultado de um comando para outro. Os arquivos de soquete possuem sempre 0

byte, isso porque eles só fazem ligações entre aplicativos. Quando o administrador configura uma

impressora com o protocolo de soquete, todos os trabalhos enviados à impressora são, na verdade,

enviadas para o soquete dela (o arquivo especial). Todos os dados que entram são, então, enviados para o

gerenciador de trabalhos da impressora, que é um programa que roda na própria impressora ou no servidor

de impressão. Ou seja, é o ponto de ligação entre processos de aplicativos. Todos os dados que são

enviados para este arquivo seguem o mesmo padrão do antigo FIFO (First In, First Out – Primeiro que

Entra, Primeiro que Sai). Os primeiros dados que chegam ao soquete são os primeiros que são enviados

para o gerenciador de trabalhos da impressora. Funciona, então, como uma primeira fila de impressão.

Nós de dispositivos de pipe (p)

Quase igual aos dispositivos de soquete, com a diferença que realizam conexões entre aplicações

que não representam dispositivos. Informações são enviadas de aplicações para o arquivo pipe, que as

encaminha para entrada de outro aplicação.

Mesmo que não tenhamos visto nenhum comando, execute exatamente os comandos abaixo para

que possa ter uma visualização desse tipo de arquivo.

1.Abra a console através do caminho Aplicações/Acessórios/Terminal;

2.Crie um arquivo pipe com o comando abaixo:

mkfifo Arquivo-Pipe <Enter>

3.Agora iremos enviar dados para o arquivo Pipe:

echo “Eu quero aparecer em outra aba” > Arquivo-Pipe

4.O comando acima enviou a informação “Eu quero aparecer em outra aba” para o Arquivo-Pipe que

a armazenou. Esta frase fica em “stand-by” até que outro aplicativo permitido requeira as informações. Abra

um novo terminal clicando, no menu do terminal, em Arquivo/Abrir Aba;

5.Nessa nova aba, veja o conteúdo do arquivo “Arquivo-Pipe” utilizando o comando abaixo:

cat Arquivo-Pipe

24

Page 25: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

6.A mensagem “Eu quero aparecer em outra aba” aparecerá. Se você voltar para a primeira aba,

perceberá que o comando que estava em primeiro plano foi finalizado, já que ele enviou a informação que

guardava para um outro comando.

Os arquivos pipe têm a mesma função do redirecionador “|”, também conhecido pelo nome pipe.

Veremos vários redirecionadores na página 40.

Pseudo dispositivos

Estes nós aparentam ser nós de dispositivos, mas não necessariamente representam um dispositivo

físico, real. Eles são interessantes para algumas tarefas do sistema operacional. Veja quais são os pseudo

dispositivos:

seudo dispositivo é um grupo que abrange nós de dispositivos que compartilham uma

mesma característica: serem falsos. Existem vários deles.P/dev/null (dispositivo de caractere)

Este arquivo vai receber todos os dados enviados a ele, porém os descartará sem nenhuma saída. É

como se fosse um buraco negro em que tudo que cai ali dentro se perde para sempre. Se você configurar

uma impressora como local e definir que o nó que o referencia é o null, todos os trabalhos de impressão não

apresentarão erro, já que o arquivo o aceitará, porém não serão impressos, mas sim descartados. Execute

o comando abaixo para entender melhor:

fcamargo@amontoado:~$ ls -l total 389200 drwx------ 5 fcamargo celepar 41 Dez 23 15:53 Acervo drwx------ 3 fcamargo celepar 16 Dez 24 09:25 Backup drwx------ 7 fcamargo celepar 4096 Dez 23 15:51 Desktopfcamargo@amontoado:~$fcamargo@amontoado:~$ ls -l > /dev/nullfcamargo@amontoado:~$

No exemplo acima, o primeiro comando resulta na listagem dos subdiretórios e arquivos do diretório

corrente. No segundo comando, a saída (a listagem) foi redirecionada da tela para o null, que a recebeu

tranquilamente sem apresentar erros, mas depois a ignorou e mandou-a para o “além”. Num futuro, quando

você estiver criando um script e usar um comando que normalmente traz um resultado na tela, mas você

não desejar que ela apareça, você poderá direcionar a saída para o null sem interferir na tarefa por ele

executado.

/dev/random (dispositivo de caractere)

Este arquivo, quando solicitado, envia um fluxo de caracteres aleatórios para a saída solicitada.

Utilidades aparecem a partir do momento que você se familiarizar com outras ferramentas do Debian.

/dev/zero (dispositivo de caractere)

Igual ao random, já que produz um fluxo de caracteres, mas todos os caracteres são o zero. Ideal

para “zerar” trechos conhecidos do hd, como por exemplo a MBR. Você verá como fazer isso em conjunto

do comando dd no curso de Debian Avançado.

25

Page 26: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

NOMEAÇÃO DE DISPOSITIVOSOs arquivos especiais não recebem um nome qualquer de acordo com a criatividade e humor do

sistema operacional. Existe um padrão, e agora veremos como ele nomeia alguns dos principais

dispositivos.

Na maioria das vezes teremos um prefixo que identificará qual é a interface utilizada pelo dispositivo

para se comunicar com a unidade central de processamento.

hda Dispositivo conectado ao “IDE 0” mestre.

hdb Dispositivo conectado ao “IDE 0” escravo.

hdc Dispositivo conectado ao “IDE 1” mestre.

hdd Dispositivo conectado ao “IDE 1” escravo.

hda1 Primeira partição do dispositivo conectado ao “IDE 0” mestre.

sda Dispositivo conectado ao primeiro slot SATA ou a uma porta USB.

sda5 Quinta partição do dispositivo conectado ao primeiro slot SATA.

fd0 Drive de disquete.

ttyS0 Porta serial 0.

psaux Mouse.

video0 Nó da webcam.

wlan0 Primeira placa de rede wireless (sem fio).

eth1 Segunda placa de rede wired (com fio).

Vamos ver um exemplo prático de nomeação dos discos rígidos IDE. Começaremos então com a

seguinte configuração:

1. Disco rígido conectado à IDE0 como mestre;

2. Drive DVD conectado à IDE1 como mestre;

3. Gravador de DVD conectado à IDE1 como escravo.

A nomeação é fácil e invariável. Veja como é feita:

➔ Prefixo de acordo com a forma de conexão +

➔ Letra de a a e referente ao slot conectado +

➔ Números de partições.

As letras seguem a seguinte regra:

IDE 0 (primeira) mestre (master) LETRA a

IDE 0 (primeira) mestre (master) LETRA b

IDE 1 (segunda) escravo (slave) LETRA c

IDE 1 (segunda) escravo (slave) LETRA d

Agora ficou fácil. Voltando ao exemplo anterior, vejamos como cada dispositivo seria nomeado:

1. Disco rígido conectado à IDE0 como mestre = hda;

2. Drive DVD conectado à IDE1 como mestre = hdc;

3. Gravador de DVD conectado à IDE1 como escravo = hdd.

Se existisse um arquivo em determinada partição do disco rígido hda, para que possamos trabalhar

26

Page 27: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

com ele teríamos que informar ao sistema exatamente onde ele está. Se ele estiver na segunda partição

lógica do disco, então o endereço será hda6. Mas por quê?

● As partições primárias são nomeadas de 1 a 4, de acordo com a ordem;

● Se mais de 4 partições forem necessárias, faz-se necessária a criação de partições lógicas

que sempre começam a ser nomeadas a partir do número 5 e vão até o número 16;

● Para que exista uma partição lógica, é necessário que exista uma partição estendida

referenciando a primeira das lógicas. Esta partição assumirá um número assim como as primárias

(de 1 a 4);

● Se a partição estendida assumir um número de 1 a 3, as partições restantes até 4 serão

inutilizadas.

Se tivermos uma partição primária e uma partição lógica:

Partição primária 1

Partição estendida (mesmo que não apareça) 2

Partição lógica 5

Se tivermos quatro partições primárias, não haverá espaço para a estendida, o que acarretará em

impossibilidade de utilização das partições lógicas.

Partição primária 1

Partição primária 2

Partição primária 3

Partição primária 4

27

Page 28: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

ESTRUTURA DE DIRETÓRIOSÉ essencial que, antes de se iniciar o estudo dos comandos e interação com o interpretador de

comandos, o estudante tenha pleno domínio sobre a estrutura de diretórios utilizada pelo Debian.

Sempre teremos apenas dois gêneros de dados em nosso computador: arquivos ou diretórios. Os

arquivos podem ser de várias espécies: arquivo de texto, binários, links (bastante conhecido como atalho),

etc. Já os diretórios só podem ser ou diretórios ou links para outros diretórios. Os diretórios existem para

criar uma divisão lógica dentro do disco de armazenamento, tornando a alocação dos arquivos muito melhor

organizada.

É preciso que tenhamos um ponto de origem a partir do qual uma árvore de subdiretórios repouse.

Este ponto será a base de todo o sistema. Abstratamente, todos os arquivos e diretórios estarão dentro

dele. Podemos comparar o / (barra) ao “Meu computador” do Windows. O “Meu computador” representará o

sistema inteiro e todos os locais aos quais o usuário tem acesso: disquetes (A :// ), partições de discos rígidos

e drives de CD/DVD (C://, D://, E:// e assim por diante). Já no Debian, temos o / (barra – diretório raiz) e

dentro dele temos acesso a disquetes (/media/floppy0), partições de discos rígidos (/boot, /home e os outros

diretórios do /) e qualquer local que o usuário tenha acesso a partir do seu sistema. Na figura abaixo é

possível visualizar o funcionamento da estrutura de diretórios:

A estrutura começa com o / e depois vai indo níveis abaixo. Os diretórios etc, dev, lib e media estão

um nível abaixo em relação ao / (primeiro nível) e no mesmo nível em relação a eles. Os arquivos fstab,

sudoers e o diretórios pendrive estão no mesmo nível em relação ao / (segundo nível), mas estão em

diretórios diferentes.

28

Figura 10: Estrutura de diretórios

Page 29: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

ENDEREÇOSA estrutura de diretórios é muito simples, como foi visto anteriormente, principalmente no modo

gráfico. Mas quando estivermos utilizando linhas de comando através de um terminal virtual (interpretador

de comandos), é necessário saber trabalhar com endereços.

Endereços Absolutos

É o caminho que deve ser seguido do diretórios raiz (o /) até o diretório ou arquivo desejado. Sempre

que se muda de nível, coloca-se uma barra para fazer a separação. Usando a figura 10 como referência,

veja alguns endereços absolutos.

Diretório corrente é aquele diretório que o usuário está no momento.

Arquivo ou diretório que se deseja ter o endereço absoluto

Diretório corrente Endereço absoluto

Arquivo fstab /etc/ /etc/fstab

Arquivo sudoers /home/felipe /etc/sudoers

Diretório pendrive /etc/ /media/pendrive/

Diretório dev /etc/ /dev/

Diretório / /home/tiaogalinha/Desktop /

Perceba que o diretório corrente nada interfere no endereço absoluto.

Endereços Relativos

O endereço absoluto é o caminho do / até o arquivo ou diretório desejado, independente do diretório

corrente. Já o endereço relativo é o caminho do diretório corrente ao arquivo ou diretório desejado.

Arquivo ou diretório que se deseja ter o endereço relativo

Diretório corrente Endereço relativo

Arquivo fstab /etc/ fstab

Arquivo sudoers /home/felipe ../../etc/sudoers

Diretório pendrive / media/pendrive/

Diretório dev /etc/ ../dev

Diretório / / .

É possível perceber dois fatos no quadro acima: os endereços relativos, diferente dos absolutos, não

começam com /; e quando o arquivo ou diretório não está vinculado verticalmente ao diretório corrente, é

melhor usar o endereço absoluto.

s dois pontos consecutivos (..) indicam o diretório de um nível acima enquanto o ponto

simples (.) indica diretório corrente.O

29

Page 30: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

DIRETÓRIOS DO SISTEMAAgora que você já sabe como funciona o mecanismo da estrutura dos diretórios, vamos ver a forma

como o Debian organiza seus arquivos. Através do comando mostrado abaixo, é possível listar os diretórios

visíveis do diretório raiz.

fcamargo@amontoado:~$ ls -l / total 41 drwxr-xr-x 2 root root 4096 Nov 27 06:41 bin drwxr-xr-x 5 root root 1024 Nov 18 11:44 boot drwxr-xr-x 11 root root 3720 Dez 2 06:45 dev drwxr-xr-x 103 root root 8192 Dez 2 08:12 etc drwxr-xr-x 8 root root 95 Nov 25 09:01 home drwxr-xr-x 14 root root 4096 Nov 27 06:40 lib drwxr-xr-x 12 root root 139 Nov 21 13:39 media drwxr-xr-x 2 root root 6 Ago 5 13:17 mnt dr-xr-xr-x 118 root root 0 Nov 21 11:27 proc drwxr-xr-x 17 root root 4096 Nov 26 17:01 root drwxr-xr-x 2 root root 4096 Nov 27 06:41 sbin drwxrwxrwt 16 root root 4096 Dez 2 08:34 tmp drwxr-xr-x 11 root root 109 Nov 17 10:12 usr drwxr-xr-x 14 root root 140 Nov 17 10:13 var

/boot

Possui a imagem do sistema básico do kernel e arquivos importantes para inicialização do sistema.

Esta imagem é o sistema básico que vai ser carregado na memória principal quando o computador for

inicializado.

/dev

Todos os arquivos especiais ficam dentro deste diretório. Eles não ocupam espaço no disco rígido, já

que têm a função apenas de criar uma conexão entre os aplicativos e os componentes de hardware na

memória RAM. Além disso, o arquivo binário makedev, responsável por criar os arquivos especiais também

é alocado dentro do /dev.

/etc

É o centro nervoso do Debian. Possui quase todos os arquivos de configuração de tudo. Todos os

arquivos que ali estão devem ser de texto. Deve-se evitar alocar arquivos binários dentro deste diretório.

/home

Todos as configurações pessoais dos usuários são gravadas dentro de uma pasta pessoal que ganha

o seu nome e é armazenada dentro do diretório /home. Além disso, os arquivos pessoais dos usuários

também são armazenadas dentro de seus respectivos diretórios.

30

Page 31: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

/lib

Possui as bibliotecas necessárias para a inicialização dos serviços, módulos e aplicativos após o

carregamento do sistema básico da imagem do kernel que fica dentro do /boot.

/media

É o diretório que contém subdiretórios que servem de pontos de montagem de dispositivos. Veremos

montagem de dispositivos na página 86). Sugere-se que dentro do /media tenha-se apenas pontos de

montagem permanentes, como o drive de cd, dvd, compartilhamentos, disquete, etc.

/mnt

É um diretório destinado a montagem de dispositivos temporariamente. Caso deseje-se montar um

dispositivo permanentemente, é recomendado utilizar o /media.

/root

Diretório pessoal do superusuário. Ele não fica dentro do /home para evidenciar que o diretório é do

superusuário e para no caso do sistema estar crítico e não for possível montar as outras partições, será

possível acessar mesmo assim os arquivos pessoais do superusuário, já que ele fica dentro da mesma

partição do sistema. É como o capitão que não abandona o navio.

/sbin

Os arquivos binários essenciais para o funcionamento do sistema ficam dentro deste diretório.

Normalmente esses binários não podem ser executados pelos usuários sem privilégios de superusuário.

/bin

Comandos essenciais para o sistema que estão disponíveis para todos os usuários.

/tmp

Qualquer arquivo temporário poderá ser armazenado dentro deste diretório. Aplicativos também o

usam sem você saber. Toda vez que o computador é reiniciado o conteúdo deste diretório é apagado.

/usr

Contração de Unix ShaRe. É o diretório que possui o maior volume de dados. A ideia deste diretório é

criar um local em que as aplicações não essenciais para o sistema fiquem a disposição de todos os

usuários, mas somente com permissão de leitura. Um aplicativo alocado aqui pode ser acessado com suas

respectivas bibliotecas e arquivos de configuração, mas qualquer coisa que o usuário crie e modifique ficará

dentro da sua pasta pessoal.

31

Page 32: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Subdiretórios Descrição

/usr/bin Contém os aplicativos destinados aos usuários. Não são essenciais ao sistema.

/usr/sbin Contém os aplicativos do sistema que não são essenciais para o seu funcionamento. Normalmente servem para explorar melhor o potencial do computador.

/usr/lib Contém as bibliotecas utilizadas pelos aplicativos alocados no /usr/bin e /usr/sbin.

/usr/share Dados que sempre serão instalados, independente da arquitetura para qual o pacote foi criado. Documentação,plugins, configurações básicas, páginas de manuais, dicionários e imagens de ícones são alguns exemplos.

/var

Um bom sistema operacional precisa de um local em que dados variáveis possam ser criados,

modificados e excluídos dinamicamente por processos . O /var tem essa função. Vejamos alguns dos seus

principais subdiretórios:

Subdiretórios Descrição

/var/cache Alguns aplicativos precisam de um diretório para armazenar alguns dados que utilizam sempre, tornando a reutilização desses dados mais rápida.

/var/log Existem alguns daemons (gerenciadores de serviços) que criam entradas de log em arquivos para que o administrador possa saber o que está acontecendo no computador. Estes registros ficam dentro deste diretório.

/var/spool Possui filas de dados para aplicativos. O CUPS envia os trabalhos de impressão para o /var/spool/cups/tmp.

/var/tmp Semelhante ao /tmp, porém os dados de dentro dele não serão apagados após a reinicialização do sistema. Alguns aplicativos precisam armazenar dados temporariamente, mas exigem que para apagá-los seja enviada uma ordem para isso.

32

Page 33: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

EXERCÍCIOS DE FIXAÇÃO (PARTE 1) 1.A base do Debian (GNU/Linux) possui influências de qual sistema operacional?

a)Minix

b)Windows

c)Unix

d)Mac OS

2.Qual era a proposta da Free Software Foundation?

3.GNU e Linux são a mesma coisa? Se não, defina-os.

4.Qual é a diferença entre uma partição lógica e uma estendida?

5.Faça a associação das colunas:

(a) /boot (I) Arquivos e diretórios essenciais para o sistema básico e quase todos os outros arquivos e diretórios de aplicativos.

(b) / (II) Área dentro do disco destinada ao armazenamento de dados da memória por esgotamento da mesma.

(c) /home (III) Local padrão de alocamento de diretórios de todos os usuários, exceto do root e de usuários do sistema, com seus respectivos arquivos e configurações pessoais.

(d) swap (IV) Imagem do sistema básico.

Resposta: a = ___ , b = ___ , c = ___ , d = ___

6.Assinale com um V as proposições verdadeiras e com um F as proposições falsas:

( ) A MBR não pode ser alterada, já que se trata de uma memória ROM;

( ) É possível se ter uma partição lógica sem uma estendida;

( ) Dentro da MBR podem ser armazenadas informações de até 16 partições;

( ) Após a criação de uma partição lógica, não é possível criar uma partição primária;

7.Qual é a menor unidade de armazenamento que temos em um disco?

8.Indique qual é o tipo de arquivo criado pelo Debian para se comunicar com o:

a)Mouse

b)Disco Rígido

c)Memória Ram

9.Escreva o nome atribuído pelo Debian a:

a)3ª partição lógica de um disco conectado à IDE 0 configurado como slave

b)1º pendrive conectado a um computador com um disco IDE

c)2º pendrive conectado a um computador com um disco SATA

d)Drive de disquete de um computador com dois discos SATA e um IDE

10. Qual é o diretório que contém os pontos de montagem, por padrão, do drive de cd e pendrive?

11. O que, em um comando, caracteriza um endereço absoluto?

12. Qual foi a intenção ao se criar o diretório /usr ?

33

Page 34: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

INICIAÇÃOAntes de iniciarmos a utilização efetiva do interpretador de comandos, devemos ter algumas noções

básicas bem claras. Mas ainda, antes disso, é importante que o estudante saiba onde encontrar

informações a respeito de comandos e funcionamento do sistema operacional, já que nem sempre

encontrará suas dúvidas sanadas por apostilas, manuais e cursos. Tudo isso será visto neste capítulo.

COMO OBTER AJUDA?

Internet

Alguns sites são muito bons para se procurar informações. Visite-os antes, durante e depois de

apareceram as dúvidas:

➔ Site oficial do Debian (http://www.debian.org);

➔ Guia foca linux - Básico – Intermediário – Avançado (http://focalinux.cipsga.org.br/gol.html);

➔ Vários tutoriais em inglês sobre linux (http://www.howtoforge.com/);

Fórum

Em alguns casos, a experiência de outras pessoas é o melhor caminho para se encontrar uma

solução. Esses links levam a fóruns interessantes a respeito do Debian:

➔ http://www.forumdebian.com.br

➔ http://wiki.forumdebian.com.br

➔ http://ubuntuforum-br.org

Manuais

Quase todos os comandos e arquivos de configuração possuem manuais. Para acessá-los, basta

digitar man antes deles no interpretador de comandos.

fcamargo@amontoado:~$ man interfaces (é um arquivo)fcamargo@amontoado:~$ man ifconfig (é um comando)

Para sair dos manuais pressione a tecla <q> do teclado. Q de quit, sair em inglês.

TERMINAISPara poder entregar dados para que a unidade central do computador possa fazer os devidos

processamentos, é necessário que você interaja com o sistema operacional. Os terminais permitem que

essa conexão seja feita. Vejamos agora as principais formas de se fazer isso.

Terminal virtual

É o interpretador de comandos que independe de modo gráfico. Para que possa ser acessado e ser

iniciada uma sessão com um usuário válido, o usuário deve pressionar simultaneamente as teclas

<CTRL>+<ALT>+<F[1 a 6]> se estiver no modo gráfico ou então somente <ALT> + <F[1 a 6]>.

Qualquer aplicativo que precise de suporte do servidor gráfico não funcionará neste terminal. O

34

Page 35: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

interessante dele é que se o modo gráfico travar, o administrador poderá fazer seu diagnostico e corrigir

eventuais problemas através de outro acesso ao sistema operacional.

Terminal emulado

É uma emulação do terminal virtual. Ele é inciado a partir do modo gráfico. A diferença é que no

emulado é possível alterar o perfil da tela (cores, transparência, fundo de tela, etc), mas caso o modo

gráfico trave, o terminal emulado também travará. Para acessá-lo vá em:

Aplicações/Acessórios/Terminal

Modo gráfico

Por fim, o modo gráfico é outra forma de interação. Com ele, após iniciar uma sessão, o usuário

contará com uma interface gráfica e o auxílio do mouse em suas atividades. O problema é que o modo

gráfico nem sempre disponibiliza uma forma de se acessar ou alterar alguns arquivos e locais que

administradores precisam configurar.

USUÁRIOS E GRUPOSO Debian é um sistema multiusuário. Isso quer dizer que vários usuários podem utilizar o mesmo

sistema ao mesmo tempo. Mas aí você vem e me diz que isso é impossível, já que só existem conectores

para um mouse e um teclado. Quer dizer que se dois usuários quiserem utilizar o mesmo sistema, cada um

terá de usar uma metade do teclado e somente um botão do mouse? Calma filha. Utilizam-se terminais

virtuais. Pode-ser ter vários usuários conectados em terminais diferentes sendo utilizados um de cada vez

através do mesmo conjunto de teclado e monitor; ou então usuários sendo manipulados remotamente por

uma ou mais pessoas. Para que haja uma organização das sessões iniciadas, são criados os usuários, que

podem ser os de sistema (utilizados somente pelo sistema operacional) e os usuários normais: o joao, a

maria, etc. Cada usuário terá locais dentro do computador para armazenar arquivos pessoais e informações

referentes às suas preferências. É como se fosse o Documents and Settings do Windows. No linux, o

diretório que contém as pastas pessoais é o /home. Se eu me logo como macale, qualquer arquivo que eu

gravar em minha pasta pessoal ou Desktop, alterações no GNOME (como temas e papéis de parede),

variáveis de ambiente do interpretador de comandos (como definição de proxy, shell padrão do usuário e

path), ficam dentro da sua respectiva pasta dentro do /home/macale. Além disso, processos (programas

carregados na memória) são gerenciados através de uma série de identificações. Dentre elas, o proprietário

e grupo de cada instância do processo.

Usuários e grupos servem, então, para que seja possível um bom funcionamento das permissões,

gerenciamento de instâncias de processos e armazenamento de configurações pessoais.

Superusuário (root)

Para que o sistema fique mais seguro, os sistemas baseados no GNU/Linux possuem um usuário

administrador que é o único que tem plenos poderes sobre o sistema. Sempre que o administrador precisar

fazer alguma configuração, instalação, ou qualquer tarefa de gerenciamento do sistema, deverá estar

logado como superusuário, caso contrário esbarrá em proibições devido a falta de permissões. O nome que

é dado ao superusuário é root.

35

Page 36: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Usuário normal

São todos usuários que não sejam o superusuário. Eles, por padrão, só tem permissão de realizar

tarefas nos locais e processos que são proprietários. Isso faz com que um usuário não interfira no trabalho

do outro. Possuem seus arquivos e configurações alocados dentro de suas pastas pessoais, que por sua

vez ficam no endereço /home.

pasta pessoal do superusuário é a única que não fica dentro do /home. Fica dentro do

próprio diretório raiz. Seu endereço é /root.AGrupos

Grupos são obrigatórios nos sistemas baseados no GNU/Linux. Eles é que permitem que usuários

com privilégios iguais compartilhem as mesmas permissões de uma forma mais fácil. Se existirem 1000

usuários numa rede, mas somente 10 podem acessar um diretório chamado CAIXA PRETA, deve-se criar

um grupo com tal permissão e inserir essas 10 pessoas ao grupo. As outras 990 pessoas serão barradas.

Iniciando/finalizando uma sessão

Para iniciar uma sessão com um usuário qualquer é necessário que se informe o nome do usuário e a

sua respectiva senha. Se as duas chaves estiverem certas, a pessoa terá acesso a todos os locais

permitidos ao usuário logado, e o sistema carregará todas as suas configurações feitas anteriormente. A

sessão pode ser iniciada em qualquer interface mostrada anteriormente. Vejamos como iniciar a sessão

através dos terminais virtuais.

Debian Gnu Linux 5.0 amontoado tty1amontoado login:

A tela acima é acessível, caso o usuário esteja no modo gráfico, através do comando

<CTRL><ALT><F[1 a 6]>, ou então escolhendo a opção SINGLE MODE no grub. Será necessário inserir

primeiramente o nome do usuário e depois a senha.

Debian Gnu Linux 5.0 amontoado tty1amontoado login: fcamargopassword: <Digite a senha Normalmente. Os asteriscos não aparecem para aumentar a segurança>Last login: Thu Jan 29 11:00:00 BRST 2009 on tty5Linux amontoado 2.6.26-1-686 #1 SMP Mon Dec 15 18:15:07 UTC 2008 i686 The programs included with the Debian GNU/Linux system are free software;the exact distribuition terms of each program are described in the individual files in /unix/share/doc/*/copyright.Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to extent permitted by aplicable law.fcamargo@amontoado:~$

o iniciar um terminal emulado, a sessão será iniciada automaticamente com o usuário

que entrou no modo gráfico, sem necessidade de digitar novamente a senha.A

36

Page 37: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

ENTENDENDO O TERMINALSempre que você logar no BASH, um dos terminais mais utilizados pelos usuários Linux, uma linha

de comando fica disponível para que o usuário digite os comandos. Entenda as informações que aparecem

nessa linha:

<nome_do_usuário>@<nome_do_computador>:<diretório_corrente>[caractere_de_status]

Ex: fcamargo@amontoado:/tmp/$

O caractere cifrão ($) indica que o usuário logado não é o superusário. Isso é obvio, mas com o

passar do tempo você notará que esse caractere é mais fácil de se visualizar que o nome do usuário. Para o

usuário root, o nome do usuário e o “@” não aparecem, e o caractere de status muda para o jogo da velha.

Ex: amontoado:/etc/#

Recursos do terminal

Comandos Resultado

CTRL+C Termina a execução de um programa que esteja sendo executado em 1º plano.

CTRL+Z Pára (pausa) a execução de um programa que esteja sendo executado em 1º plano.

CTRL+L Limpa a tela e mantém o comando escrito na linha de comando.

CTRL+D Sai do sistema (mesma coisa que digitar “logout”).

CTRL+U Apaga (similar ao recurso “RECORTAR”) tudo que estiver entre o cursor do teclado e o início da linha de comando.

CTRL+Y Insere o trecho recortado com o CTRL+U a partir de onde o cursos estiver.

TAB (Completando automaticamente)

A tecla <TAB> do teclado permite que o usuário do BASH peça para que ele complete um comando

ou um endereço automaticamente, de acordo com as possibilidades existentes. Por exemplo, se

# if <TAB> <TAB>if ifconfig ifdown ifup # ifc <TAB> Será automaticamente completado para # ifconfig

A mesma coisa acontece com o os endereços.

# cd /m <TAB> <TAB>media/ mnt/ # cd /me <TAB> Será automaticamente completado para # cd /media/

COMANDOS PARA INFORMAÇÕES SOBRE SESSÕES

who (quem?)

Com o comando who é possível ver todos os usuários que estão conectados ao sistema (usuários

normais e superusuário, não usuários do sistema, como daemon ou games).

37

Page 38: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

fcamargo@amontoado:~$ who root tty2 2009-01-29 11:00 fcamargo tty7 2009-01-27 09:56 (:0) fcamargo pts/0 2009-01-29 15:40 (:0.0) fcamargo pts/1 2009-01-29 15:46 (10.15.15.15)

Como pode-se observar, os dados apresentados são:

[usuário_conectado] [terminal] [data e hora do início da conexão] [interface intermediária]

A interface intermediária é aquele que fica entre o sistema operacional e a interface em questão. Se o

usuário se loga no modo gráfico, este modo faz uma ponte entre o usuário e um terminal virtual. Como o

primeiro modo gráfico é representado por ( : 0 ), então na interface intermediária teremos essa

representação. Caso a conexão seja remota, o terminal utilizado sempre será pts/n (onde o “n” é o próximo

número disponível), e o intermediário será o IP ou HOSTNAME (nome) do computador remoto.

No caso de um terminal emulado, este também utilizará o formato pts/n, porém a interface

intermediária será um termo composto pela representação do modo gráfico mais “.0”.

e um usuário se logar no modo gráfico, travar a tela e um novo usuário se logar, este

novo modo gráfico ganhará a representação ( : 20 ) e se conectará ao terminal tty8.Swho am i (quem sou eu?)

Este comando mostra o nome do usuário proprietário do terminal. Se existirem 5 abas abertas em um

terminal emulado, com este comando você sabe exatamente qual é o usuário dono do terminal em que o

comando foi executado e as demais informações vistas anteriomente.

fcamargo@amontoado:~$ who am ifcamargo pts/0 2009-01-29 15:40 (:0.0)

CORINGASExistem alguns caracteres que servem como os famosos coringas do baralho. Eles representam

muitos outros caracteres. Alguns coringas representam todos caracteres, outros restringem-se a grupos

específicos. Eles fazem com que uma tarefa que envolvesse vários arquivos e/ou diretórios acabe se

tornando muito mais fácil e rápida.

Casas

Cada caractere ocupa uma casa. Entende-se como caractere qualquer um dos símbolos presentes

nas tabelas de caracteres ASCII ou UTF.

[4 casas] Eita[9 casas] Meu Saci![13 casas] Thunder cats![28 casas] O Roger come como um cavalo.

* (tudo)

Este caractere representa todos os caracteres, independente do número de casas.

*.odt Representa todos os arquivos terminados em “.odt”.

38

Page 39: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Ex: Como deixar de ser feio.odt – CPPC.odt

Co* Representa tudo que começa com “Co”.Ex: Comanda.odg – Como deixar de ser feio.odt

Co*.odt Representa tudo que começa com “Co” e termina com “.odt”.Ex: Como deixar de ser feio.odt

? (um caractere)

É quase igual ao asterisco (*), porém em vez de aceitar ilimitados caracteres no lugar do coringa, terá

um número fixo de casas. O número de casas vai ser igual ao número de interrogações que se colocar.

B*ço Representa todos os arquivos que começam com “B” e terminam em “ço”.Ex: Bati no Robzila com um ouriço – Beiço

B??ço Representa todos os arquivos que começam com “B” e terminam em “ço”, que possuem apenas duas casas entre os dois critérios.

Ex: Beiço [2 casas entre B e ço]

[ ] (definindo o caractere)

Esta é a forma mais precisa de coringa, pois o usuário poderá definir exatamente quais caracteres

deverão ser usados como critérios. Cada duplo colchete, independente do número de termos que contiver

dentro deles, representarão uma casa (exceto para o caso dos colchetes).

[15adB] Representa todos os caracteres que estão dentro das chaves.[a-n] Representa os caracteres que estiverem entre “a” e “n” (somente letras minúsculas).[a-fh] Representa os caracteres que estiverem entre “a” e “f” (somente letras minúsculas)

mais a letra “h”.[a-zA-C] Representa todos as letras minúsculas mais as letras maiúsculas entre “A” e “C”.{oi,oe}[14-6] Representa arquivos que tenham nas duas primeiras casas a palavra exata “oi” ou

“oe” e na terceira casa qualquer número entre o “4” e “6” mais o “1”.

s chaves servem para que os critérios sejam palavras inteiras (não caracter por

caracter) e devem substituir os colchetes, não ficar dentro deles. [HD][HD] poderá

retornará ou HH ou HD ou DH ou DD. {HD} retornará somente HD.

A

RECURSIVIDADEEste termo deve ficar bem claro, já que frequentemente um usuário ou administrador terá que utilizá-

lo. Vocês cansarão de usar o “-R”. Veja o esquema abaixo para entender a ideia da recursividade.

Quando você ler isto pela segunda vez, a recursividade terá acabado. Se for a primeira vez, leia o parágrafo abaixo.

Se este for o último parágrafo, apague-o e vá para o parágrafo acima, caso contrário, vá para o próximo parágrafo.

Se este for o último parágrafo, apague-o e vá para o parágrafo acima, caso contrário, vá para o próximo parágrafo.

Se este for o último parágrafo, apague-o e vá para o parágrafo acima, caso contrário, vá para o próximo parágrafo.

39

Page 40: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

A recursividade atribuída a um comando faz com que este comando seja executado sobre os arquivos

e subdiretórios do último nível, depois nos arquivos e subdiretórios de um nível acima e assim por diante,

até chegar a um diretório final que acaba com a recursividade. Você entenderá ele melhor quando

começarmos a utilizar alguns comandos.

REDIRECIONADORESProgramas são compilações de ordens bem definidas que possuem objetivos. Então dados são

recebidos, processados pelo processador sob os comandos dos programas e um resultado surge. Podemos

dividir este processo em três etapas:

1. Entrada de dados. Isto se dá através do que chamamos Entrada de um comando;

2. Processamento e geração de um resultado, que fica registrado na memória principal

aguardando uma indicação de o quê fazer com os dados;

3. Saída dos dados. Isto se dá através do que chamamos Saída de um comando.

Os comandos possuem entradas e saídas definidas, que chamamos de entrada e saída Padrão, mas

o usuário poderá a qualquer momento alterar a forma de coleta e entraga de dados de um comando. Isso é

feito através dos redirecionadores.

>

Altera a saída de um comando. Iremos usar um exemplo muito simples para que vocês possam

entendê-lo. Se dermos um echo em um bash qualquer, a mensagem digitada será mostrada dentro do bash

em que o comando rodou (o comando echo será visto na página 78). Este é o padrão, é a saída padrão do

comando. Mas podemos fazer com que, em vez de sair no bash corrente, ele saia em outro bash. Vejamos

o exemplo a seguir.

blanka@amontoado:~$ echo Bom dia estrela do planeta Terra! Bom dia estrela do planeta Terra!

Agora iremos abrir uma nova aba utilizando as teclas de atalho <Ctrl>+<Shift>+<t>. Nesta aba,

teremos que descobrir qual é o nome da sua interface.

blanka@amontoado:~$ who am i

fcamargo pts/1 2009-03-10 15:50 (:0.0)

Agora iremos voltar para o outro bash eredirecionar a saída para o /dev/pts/1.

blanka@amontoado:~$ echo Bom dia estrela do planeta Terra! > /dev/pts/1

blanka@amontoado:~$

Desta vez não apareceu nenhum resultado. Agora vá até o terminal /dev/pts/1 e veja o resultado.

Quando um arquivo é usado como saída e usa-se este redirecionar, se o arquivo não existir será

criado automaticamente e se o arquivo existir será sobrescrito, tendo como conteúdo o resultado do

comando executado antes do “>”.

bozo@amontoado:~$ ls / > eita.txt bozo@amontoado:~$ cat eita.txt

40

Page 41: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

bin boot cdrom Curso ... (além dos outros diretórios)

>>

Igual ao anterior, porém, quando usado um arquivo como saída, ele não descarta o arquivo existente,

e sim adiciona as novas informações ao fim do arquivo.

bozo@amontoado:~$ echo "Carro" > O-que-torna-o-Macauli-bonito bozo@amontoado:~$ cat O-que-torna-o-Macauli-bonito Carro bozo@amontoado:~$ echo FIM >> O-que-torna-o-Macauli-bonitobozo@amontoado:~$ cat O-que-torna-o-Macauli-bonito CarroFIM

<<

Finaliza a execução de um comando no momento que um critério seja atendido. Veja o exemplo:

amontoado:/home/fcamargo# cat << FIM? > será <Enter>> que <Enter>> isto <Enter>> chegará <Enter>> ao <Enter>> FIM? <Enter>será que isto chegará ao amontoado:/home/fcamargo#

No exemplo acima podemos observar que tudo que está após o sinal de maior está sendo digitado, e

após o <Enter>, uma nova entrada é criada. Quando o termo do critério é digitado, o comando é finalizado e

tudo que foi digitado passa para o cat, que mostra todas as entradas, exceto aquela que serviu de critério.

amontoado:/Curso# cat > Baralho << FIM > Oi > meu > amiguinho > FIM amontoado:/Curso# cat Baralho Oi meu amiguinho amontoado:/Curso#

Acima podemos ver que primeiro temos o critério FIM, depois temos a criação do arquivo Baralho e o

a lista criada com todos os resultados, exceto o termo FIM é enviado para o comando cat, que visualiza, só

que em vez de mostrar na tela, envia a saída para o arquivo criado Baralho.

41

Page 42: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

2>É um filtro que deixa a tela limpa de erros. Ele redireciona as mensagens de erro para um novo

arquivo de texto. Se já existir outro arquivo, no mesmo diretório, com o mesmo nome, ele irá sobrescrevê-lo.

amontoado:/Curso# cat Petinho cat: Petinho: Arquivo ou diretório não encontrado amontoado:/Curso# cat Petinho 2> Soh-Erro.txt amontoado:/Curso# cat Soh-Erro.txt cat: Petinho: Arquivo ou diretório não encontrado

2>>

Tem a mesma finalidade do 2>, mas em vez de criar um arquivo novo, ele irá adicionar as novas

linhas ao fim do documento especificado.

amontoado:/Curso# cat Soh-Erro.txt cat: Petinho: Arquivo ou diretório não encontrado amontoado:/Curso# cat Petinho cat: Petinho: Arquivo ou diretório não encontrado amontoado:/Curso# cat Petinho 2>> Soh-Erro.txt amontoado:/Curso# cat Soh-Erro.txt cat: Petinho: Arquivo ou diretório não encontrado cat: Petinho: Arquivo ou diretório não encontrado

| (pipe)

O pipe tem a função de direcionar a saída de um comando para a entrada de um outro. Como os

estudantes têm dificuldade em entender este comando e ainda não estudamos realmente nenhum

comando, iremos usar um exemplo que não possui nenhuma relação com o linux.

Temos os seguintes comando no nosso bash (isto é fictício, tendo apenas fins didáticos):

Comando Descrição

safadinho Crie uma lista com todas as namoradas que o “Chicken Little” já teve. Essa lista deve trazer em linhas: (a) o nome delas; (b) suas habilidades.Sintaxe: safadinho <Enter>

garimpe Mostre apenas as linhas que contenham o que for escrito após o comando.Sintaxe: garimpe <termo-a-ser-pesquisado> <entrada>A entrada pode ser um arquivo ou o resultado de um outro comando.

Vejamos então o que acontece quando executamos o comando “safadinho”:

safadinho <Enter>Nome Habilidadesburns espremer laranja com as temporas;ser irritantefellipa dança do ventre;engraçadinhajoze-eduarda olhar penetrante;gosta de jogos e apostasrobseia humor diferenciado;bale medieval

O resultado acima foi mostrado no formato de lista. Podemos pegar esta lista, que é a saída do

comando safadinho (já que é o resultado dele), e encaminhá-lo para o comando garimpe, para que ele

possa filtrar a lista, mostrando na tela apenas as linhas que contenham o termo pedido. Não é necessário

informar nada de onde o comando garimpe deve pegar os dados para fazer a filtragem, já que o próprio pipe

indica isso.

42

Page 43: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Saída padrão

Pipe alterando a saída

Vamos ler o esquema acima: execute o comando safadinho e o seu resultado, em vez de ser

mostrado na tela, deverá ser encaminhado para o comando garimpe, que irá procurar linhas que

contenham o termo ventre. Veja como ficaria se estivéssemos trabalhando no bash:

safadinho | garimpe ventre <Enter>

fellipa dança do ventre;engraçadinha

Lembre-se disso e será meste em pipe: o pipe serve como um conector, ligando a saída de um

comando com a entrada de outro.

tee

O resultado de um comando que precede o tee é enviado para um arquivo de texto e para a sua

saída padrão ao mesmo tempo. Deve ser usado juntamente com o pipe. Vamos usar o mesmo exemplo do

“>”:

bozo@amontoado:~$ ls / | tee eita.txtbin boot cdrom Curso ... (além dos outros diretórios)bozo@amontoado:~$ cat eita.txt bin boot cdrom Curso ... (além dos outros diretórios)

Perceba que não seria necessário visualizar o arquivo criado. Só o tee já faz tudo: mostra e grava no

arquivo. Estamos usando o cat somente para confirmar se ele fez seu trabalho direito.

43

Page 44: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

VIMQuando o administrador estiver gerenciando o sistema através de um interpretador de comandos,

precisará ter domínio de pelo menos um editor de texto. Você poderá usar até o Gedit (bloco de notas do

Debian) se quiser, mas é imprescindível que ao menos um editor feito para rodar em um terminal virtual seja

dominado, já que nem sempre o servidor gráfico estará presente. O vim é o editor de texto mais utilizado

pelos administradores de sistemas Debian, por isso ele será abordado neste capítulo.

CRIANDO UM ARQUIVOPara criar um arquivo com o vim é fácil, basta utilizar a seguinte sintaxe:

vim {endereço}<nome.do.arquivo>

Abaixo um exemplo do arquivo de texto robzila dentro do diretório pessoal do usuário “feio”.

$vim /home/feio/robzilla <ENTER>

EDITANDO UM ARQUIVO EXISTENTEO processo é igual ao anterior, porém, em vez de darmos um nome para o arquivo, iremos colocar o

nome do arquivo que desejamos alterar.

$vim /etc/hosts <ENTER>

único detalhe que diferencia a criação e edição de arquivos com o vim é se o arquivo

já existe ou não. Se o nome dado já existir, ele será aberto para edição, se não existir,

um novo arquivo se abrirá.

O

MODOS DO VIMExistem três tipos de modos possíveis de se trabalhar no vim:

Inserção de texto

Edição de texto

Linha de comando

Inserção de texto

Rodapé Tecla de atalho Detalhes

INSERÇÃO DE TEXTO NORMAL

<Insert> - para esquerda do cursor<i> - para esquerda do cursor<a> - para direita do cursor

Rodapé: -- INSERT -- Permite que o usuário crie, modifique ou apague dados sempre aumentando ou diminuindo o tamanho total do texto. Se existir a linha abaixo: 2111 bom 1112e você inserir “dia” com o <Insert>, a linha ficará2111 bom dia 1112

INSERÇÃO DE TEXTO SOBRESCRE-VENDO

<Insert Insert><R>

Rodapé: -- REPLACE -- É igual ao INSERT com a diferença que manterá o tamanho original do texto. Isso porque qualquer novo dado inserido sobrescreverá o que já existe. O mesmo procedimento feito antes, mas com o REPLACE, resultará no seguinte:2111 bom 11122111 bom dia2

44

Page 45: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Edição de texto

Funções Tecla de atalho Detalhes

Entrar no modo de edição

<Esc> Rodapé: (nada) Independente do modo que você estiver, ao pressionar a tecla <Esc> você iniciará o modo de edição.

COPIAR <yy> Copia a linha em que o cursor está.<y>n<y> Copia n linhas a partir de onde o cursor estiver para baixo.

Rodapé: n line(s) yanked Irá copiar uma ou mais linhas inteiras para a área de transferência, esperando que o usuário indique, através do posicionamento do cursor e pressionamento da tecla <p>, onde deverá ser criada a cópia no documento.

RECORTAR <yy> Recorta a linha em que o cursor está.<y>n<y> Recorta n linhas a partir de onde o cursor estiver para baixo.

Rodapé: n line(s) less Idem ao “copiar”, só que não manterá a linha que deu origem à cópia.

COLAR <p> Rodapé: n more line(s) Irá inserir no texto a cópia criada ou pelo “Copiar” ou pelo “Recortar”. A ou as novas linhas sempre serão inseridas na linha abaixo de onde o cursor esteja.

APAGAR COM O VISUAL

<v> + setas direcionais + <Delete>

Rodapé: -- VISUAL -- Este modo permite que mesmo fora do modo de inserção, você consiga apagar trechos selecionados e não somente linhas inteiras. Após pressionar o <v> fora do modo de edição, utilize as setas direcionais para selecionar o trecho que deseja apagar e então pressione a tecla <Delete>. Automaticamente você sairá do modo Visual.

Linha de comando

Funções Tecla de atalho Detalhes

Preparar para entrar no modo linha de comando

<Esc> Para iniciar a pesquisa através da linha de comando, sempre será necessário sair do modo de inserção de texto através do <Esc> e depois digitar o comando.

PESQUISAR </>string Para encontrar o texto, basta pressionar a tecla </> e depois escrever o que deseja encontrar. Para avançar para a próxima entrada encontrada no texto, pressione <n> (next - próximo).

SAIR <:q> = Sai sem salvar.<:x> = Salva e sai.<:wq> = Salva e sai.<:q!> = Sai sem salvar forçado.<:x!> = Salva e sai forçado.<:wq!> = Salva e sai forçado.

Após fazer todas as alterações necessárias, você poderá sair salvando ou não o documento. Ao lado estão listadas as formas possíveis de se sair. O “q” é de quit (sair), o “w” é de write (escrever) e o “x” é um atalho para “wq”. Ao utilizar a exclamação, você estará forçando a saída. Algumas vezes, o vim irá impedir que o usuário salve as alterações feitas pois trata-se de um documento importante. O exclamação serve para você dar certeza de que tem ciência do que está fazendo.

45

Page 46: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

COMANDOS ESSENCIAISAgora que já foram abordados alguns dos conceitos básicos necessários para o entendimento de

alguns fatores que aparecem na prática, está na hora da abordagem dos comandos que são necessários

para que um administrador possa fazer um bom gerenciamento do sistema.

Este capítulo trará apenas os comando essenciais do bash. Estes comandos são necessários para

que você possa manipular e gerenciar arquivos e diretórios do sistema. A ordem em que eles estão

dispostos deve ser seguida para que você inicie dos mais simples para os mais complicados. A cada novo

comando haverá um acúmulo de conhecimento que o tornará apto para resolver problemas mais complexos

no decorrer do curso.

s comandos abaixo virão sempre com um campo inicial chamado “Assimilação”, que

informará o que o comando quer dizer para que você possa memorizá-lo de uma

forma mais fácil. O comando na maioria das vezes vai ser um verbo no imperativo. Você

“mandará” o computador fazer algo.

O

CDAssimilação: (Change Directory – Mude o diretório!)

Sintaxe: cd <diretório de destino>

Muda o diretório corrente. O diretório de destino poderá ser informado por um endereço absoluto

(com o “/” no começo), relativo (sem o “/” no começo) ou com um parâmetro (“-”, “..”, “.”, “~”) No exemplo

abaixo, você pode acompanhar tudo que é possível fazer com o comando cd.

1. Entrar em um diretório através de um endereço absoluto;

2. Entrar em um diretório através de um endereço relativo;

3. Entrar no diretório em que o usuário estava antes do atual;

4. Entrar no diretório de um nível acima;

5. Entrar no diretório pessoal (também pode ser usado o “cd ~”).

((1)) fcamargo@amontoado:~$ cd /media/cdrom ((1)) fcamargo@amontoado:/media/cdrom$ cd /home/fcamargo/ ((3)) fcamargo@amontoado:/home/fcamargo$ cd -

/media/cdrom ((4)) fcamargo@amontoado:/media/cdrom$ cd .. ((1)) fcamargo@amontoado:/media$ cd / ((5)) fcamargo@amontoado:/$ cd ((2)) fcamargo@amontoado:/home/fcamargo$ cd Desktop/ ((2e4)) fcamargo@amontoado:/home/fcamargo/Desktop$ cd ../.. ((2)) fcamargo@amontoado:/home$ cd fcamargo/Desktop/ ((1)) fcamargo@amontoado:/home/fcamargo/Desktop$ cd / ((2)) fcamargo@amontoado:/$ cd home/ ((2)) fcamargo@amontoado:/home$ cd fcamargo/

46

Page 47: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

((2)) fcamargo@amontoado:/home/fcamargo$ cd Desktop/ fcamargo@amontoado:/home/fcamargo/Desktop$

LSAssimilação: (List – Liste!)

Sintaxe: ls <diretório 1> ... <diretório n> [parâmetros]

Mostra o conteúdo do(s) diretório(s) desejado. Caso você deseje listar o conteúdo do diretório

corrente, basta digitar “ls” e pressionar <Enter>. Para listar diretórios diferentes do corrente sem sair deste,

informe o endereço absoluto ou relativo daqueles.

fcamargo@amontoado:/curso$ ls arquivo Saci fcamargo@amontoado:/curso$ ls /homefcamargo fellipeveiga marcius parana tiaogalinhafcamargo@amontoado:/curso$

Parâmetro Descrição

-l (liste em linhas) Em vez de trazer o conteúdo em colunas, um ao lado do outro, este parâmetro irá listar o conteúdo em linhas, trazendo informações adicionais de cada arquivo ou diretório. Estas informações serão vistas após esta tabela.

-a (lista all - tudo) Lista tudo, inclusive os arquivos ocultos. Arquivos ocultos tem seus nomes começados por um ponto simples. Exemplo: .oculto (para criar um arquivo oculto, basta renomeá-lo com um ponto na frente).

-h (humanos) Deve-se ser usada em conjunto ao -l. A coluna do tamanho dos arquivos será mostrado em unidades de bytes (B, KB, MB, GB, TB, etc), linguagem mais fácil de entender por nós humanos.

-F (faz o quê?) Mostra ao lado direito do nome do diretório ou arquivo um caractere que indica qual é o tipo do dado.Diretório(/) - Binário(*) ; Pseudo Arquivo(|) ; soquete(=) ; Link Simbólico(@)

-R (recursivo) Ativa a opção de recursividade (página 39).

Informações do INODE (ls -l)

A saída do comando “ls -l” é a seguinte:

amontoado:/curso# ls -l total 0 -rw-r--r-- 1 fcamargo grupo-celepar-usuarios 0 Dez 5 10:05 arquivo drwxr-xr-x 2 fcamargo grupo-celepar-usuarios 6 Dez 5 10:05 Saci amontoado:/curso#

Todas essas informações que aparecem a mais nas colunas ficam no inode de cada arquivo ou

diretório. Inode é um cabeçalho que cada arquivo ou diretório possui para controle do sistema de arquivos e

armazenamento de informações.

Primeira coluna: Tipo de dado e Permissões

A primeira coluna é composta por um set que indica o tipo de dado da linha; três sets que indicam as

permissões do proprietário; três sets que indicam as permissões de quem faz parte do grupo ao qual o

arquivo ou diretório pertence; e por fim, três sets que indicam as permissões de quem não é nem

47

Page 48: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

proprietário, nem faz parte do grupo.

d = diretório l = link simbólico - = arquivo b = nó de dispositivo de bloco s = nó de dispositivo de soquete p = nó de pseudo dispositivo

s nós de dispositivos foram vistos na página 23. As permissões serão abordadas na

página 111.OSegunda coluna: Número de ligações diretas

Diretórios: Indica o número de ligações diretas que se tem a partir do diretório em questão. Por

padrão, sempre teremos duas ligações, mas por quê? Porque se o usuário entrar no diretório que tenha 2

acessos a partir dele, será possível ver o conteúdo do diretório (1º ligação) e voltar para o diretório de um

nível acima (2ª ligação). Então, se nesta coluna aparecer o número 5, o diretório terá 3 subdiretórios, mas 5

opções ligadas diretamente a ele.

Arquivos: O número sempre será 1, porque a única ligação existente é a com o seu conteúdo.

Terceira coluna: Proprietário

Indica o nome do proprietário do arquivo ou diretório.

Quarta coluna: Grupo

Informa qual é o grupo que o arquivo ou diretório pertence.

Quinta coluna

Diretórios: Informa o espaço ocupado pelo conteúdo do diretório e somente dele, não contabilizando

o conteúdo dos subdiretórios.

Arquivo: Informa o tamanho do arquivo.

Sexta, sétima e oitava coluna

Informa a data de criação ou da última modificação.

Nona coluna

Nome do arquivo ou diretório.

PWDAssimilação: (Print the Working Directory – Power directory!)

Sintaxe: pwd

Mostra qual é o diretório corrente.

fcamargo@amontoado:~$ pwd /home/fcamargo/ fcamargo@amontoado:~$

48

Page 49: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

MKDIRAssimilação: (Make dir – Crie o(s) diretório(s)!)

Sintaxe: mkdir <nome do diretório>

Cria um diretório ou toda uma estrutura linear de diretórios. O interpretador de comandos sempre

criará o último nome que você colocou. O resto será o endereço para chegar ao diretório em que será criado

o novo diretório.

No exemplo a seguir, podemos observar formas de se usar o mkdir.

1. Criação do diretório Pequeno dentro do /tmp.

2. Tentativa de se criar o diretório Paulão dentro do diretório /home/fcamargo/ Pequeno , sendo

que este não existe. Por isso, é retornado um erro.

3. Criação do diretório Pequeno dentro do diretório corrente (perceba que não há a / na frente

de Pequeno, por isso, trata-se de um endereço relativo).

4. Procedimento igual ao do ponto 2, porém agora irá dá certo já que a estrutura para o Paulão

existe.

((1)) fcamargo@amontoado:~$ mkdir /tmp/Pequeno((2)) fcamargo@amontoado:~$ mkdir Pequeno/Paulão

mkdir: não é possível criar o diretório `pequeno/Paulão': Arquivo ou diretório não encontrado

((3)) fcamargo@amontoado:~$ mkdir Pequeno((4)) fcamargo@amontoado:~$ mkdir Pequeno/Paulão

fcamargo@amontoado:~$

É possível criar mais de um diretório por vez. Para isso basta separar o nome dos diretórios por

espaço. Se você desejar ter um diretório com espaço no nome (nome composto), coloque-o entre aspas.

fcamargo@amontoado:/curso$ mkdir Burro Robzila “Mico Leão Dourado”fcamargo@amontoado:/curso$ ls -ltotal 0 drwxr-xr-x 2 fcamargo grupo-celepar-usuarios 6 Dez 5 16:20 Burro drwxr-xr-x 2 fcamargo grupo-celepar-usuarios 6 Dez 5 16:20 Mico Leão Dourado drwxr-xr-x 2 fcamargo grupo-celepar-usuarios 6 Dez 5 16:20 Robzila

Se você quiser ter 10 diretórios com nomes 1, 2... até 10, um dentro do outro linearmente, você não

conseguirá da forma normal. Isso porque o único diretório que se tentará criar será o 10, mas todo o resto

terá que existir para funcionar.

fcamargo@amontoado:~$ mkdir 1/2/3/4/5/6/7/8/9/10 mkdir: não é possível criar o diretório `1/2/3/4/5/6/7/8/9/10': Arquivo ou diretório não encontrado

Agora se você usar o parâmetro -p (parents – pais), você irá criar toda a estrutura de diretórios que

faltam para finalmente se criar o 10.

49

Page 50: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

> (DE NOVO ESTE REDIRECIONADOR)Como já vimos anteriormente, o “>” é utilizado para mudar a saída padrão de um documento. No

decorrer deste curso, será necessário que você crie arquivos em branco, somente para poder realizar

alguma atividades. O “>”, se não possuir nada do seu lado esquerdo e o nome de um arquivo de texto não

existente ao lado direito, ele jogará “nada” ao arquivo inexistente, criando-o. Ou seja, será criado um arquivo

novo em branco.

fcamargo@amontoado:/curso$ > Arquivo.txtfcamargo@amontoado:~/curso$ ls Arquivo.txt

iferente do Windows, os sistema baseados no GNU/Linux não trabalham com

extensão. Elas existem apenas para organização por parte dos usuários. Alguns raros

aplicativos associam extensões ao programa que deverá abri-lo, como o BrOffice.org, por

exemplo. Mas ele não deixará de ser o que é.

D

CPAssimilação > (Copy – Copie!)

Sintaxe: cp <arq ou dir a ser copiado> <diretório de destino da cópia> [parâmetros]

Copia um arquivo, vários arquivos, um diretório, vários diretórios, conteúdo de diretórios ou um

combinação dessas opções para um destino. Na cópia o que é copiado é mantido e a cópia vai para um

novo lugar. Se o usuário desejar, ele pode alterar o nome do arquivo ou diretório durante a cópia.

((1)) fcamargo@amontoado:/curso$ ls

Arquivo.txt Saci

((2)) fcamargo@amontoado:/curso$ cp Arquivo.txt Saci

((3)) fcamargo@amontoado:/curso$ lsArquivo.txt Saci

((4)) fcamargo@amontoado:/curso$ ls SaciArquivo.txt

((5)) fcamargo@amontoado:/curso$ cp Arquivo.txt Backup-Arquivo.txt((6)) fcamargo@amontoado:/curso$ ls

Arquivo.txt Saci Backup-Arquivo.txt

1. Comando para visualizar o conteúdo do diretório corrente. Saci estava dentro do diretório

/curso;

2. Copia o arquivo Arquivo.txt para dentro do diretório Saci, que está dentro do diretório

corrente (perceba que não tem a / no começo, por isso, é um endereço relativo);

3. Ao visualizar o conteúdo do diretório, podemos ver que tanto Saci, como Arquivo.txt ainda

estão lá;

4. Ao visualizar o conteúdo de Saci, podemos perceber que a cópia do Arquivo.txt foi feita com

50

Page 51: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

sucesso;

5. Agora o comando irá fazer uma cópia do mesmo arquivo, só que o manterá no mesmo

diretório, tendo apenas o nome diferente;

6. Ao visualizar o conteúdo do diretório corrente, pode-se perceber que os dois itens que já

estavam lá permanecem, e além deles apareceu a nova cópia criada.

Para se copiar um diretório, é necessário que seja usado o parâmetro -R, caso contrário a copia

retornará erro.

fcamargo@amontoado:/curso$ cp -R Saci /tmp

É possível copiar o diretório Saci com outro nome. Para isso é colocar um nome de diretório que

ainda não exista no fim do campo “Destino”.

fcamargo@amontoado:/curso$ cp -R Saci /tmp/Pererê

neste momento que você poderá a começar a utilizar os coringas. Você pode copiar o

conteúdo de um diretório para dentro de outro. Por exemplo: cp -R /etc/apt /tmp/Backup

– Neste exemplo, tudo que tiver dentro do diretório celepar, exceto arquivos ocultos,

representado pelo asterisco, será copiado para dentro do diretório /tmp/Backup. Neste caso é

necessário que o diretório de destino já exista. Só é possível alterar o nome quando a cópia

é de arquivo-arquivo ou diretório-diretório.

É

MVAssimilação > (Move – Mova ou Renomeie!)

Este comando é igual ao cp, com duas diferenças:

1. Após criar a cópia no diretório de destino, apaga o original;

2. Não é preciso utilizar o -R para diretórios.

Movendo arquivos e diretórios

Sintaxe: mv <arq ou dir a ser movido> <diretório de destino do arq ou dir>

Move um arquivo ou diretório para um outro diretório de destino.

fcamargo@amontoado:/curso$ mv Saci ~

O comando acima irá mover o diretório Saci para dentro da sua pasta pessoal (lembrem-se que o

coringa “~” representa a pasta pessoa do usuário logado). O resultado será /home/fcamargo/Saci.

51

Page 52: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

e você quiser, assim como com o “cp”, é possível copiar apenas o conteúdo de um

diretório para outro. Exemplo: cp Saci/* /home/fcamargoSRenomeando arquivos e diretórios

Sintaxe: mv <arq ou dir a ser renomeado> <diretório de destino do arq ou dir>

Funciona da mesma forma que o cp.

Diretórios: Irá renomear se o diretório de destino não existir e a cópia for de um outro diretório.

fcamargo@amontoado:/curso$ mv ~/Saci ~/Pererê

Arquivos: Irá renomear se dentro do diretório de destino não existir um arquivo com o mesmo nome

do arquivo copiado.

fcamargo@amontoado:/curso$ > 123

fcamargo@amontoado:/curso$ mv 123 321

fcamargo@amontoado:/curso$ mv 321 /tmp/123

fcamargo@amontoado:/curso$ mv /tmp/123 /tmp/.123

No caso acima, o arquivo .123 está oculto dentro do diretório /tmp.

RMAssimilação > (Remove – Remova!)

Sintaxe: rm [parâmetros] <arquivo ou diretório>

Pode ser usado para remover arquivos (rm arquivo) ou para remover diretórios (rm -R diretório). Para

remover os dois, use o comando com parâmetro.

Para remover um arquivo:

fcamargo@amontoado:/curso$ touch “Vai pro além”

fcamargo@amontoado:/curso$ ls

Vai pro além

fcamargo@amontoado:/curso$ rm -f “Vai pro além”

fcamargo@amontoado:/curso$ ls

fcamargo@amontoado:/curso$

Para remover um diretório:

fcamargo@amontoado:/curso$ mkdir “Nasceu morto”

fcamargo@amontoado:/curso$ ls

Nasceu morto

fcamargo@amontoado:/curso$ rm -Rf “Nasceu morto”

fcamargo@amontoado:/curso$ ls

fcamargo@amontoado:/curso$

52

Page 53: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Removendo um diretório que não está no corrente:

fcamargo@amontoado:/curso$ mkdir -p 1/2/3/4

fcamargo@amontoado:/curso$ rm -Rf 1/2/3

fcamargo@amontoado:/curso$ tree

.

`-- 1

`-- 2

Perceba que apesar dos diretórios 1 e 1/ 2 aparecerem no comando, o que importa é o último diretório

que o usuário colocou, que no caso é o 3, que está dentro do 1/2. Tudo que estiver abaixo do 3 será

apagado.

última vez que será comentado. Quase sempre os coringas podem ser usados. Não é

diferente com o comando “rm”.ADIFF

Assimilação > (Difference – Mostreme a diferença!)

Sintaxe: diff <arq(1)> <arq(2)>

Permite a comparação linha a linha de arquivos de texto. Eles podem ser arquivos diferentes ou então

arquivos iguais de datas diferentes (verificação de alterações).

Abaixo temos dois arquivos: A e B. Os dois têm o conteúdo abaixo:

fcamargo@amontoado:~$ cat 1A fcamargo@amontoado:~$ cat 2 A B fcamargo@amontoado:~$ cat 3 A X

Existem três tipos de diferenças que são representadas pelas letras d, a e c: Remoção (d – deleted),

adição (a – added), e alteração (c – changed) de linhas.

O diff agrupa esses tipos diferentes. Procura a primeira diferença. Se ela se repetir agrupa a

diferença até chegar ao outro tipo, e assim por diante. Os agrupamentos serão feitos da seguinte forma:

1. Linhas adicionadas

<Nº de linhas adicionadas>a<Nº da primeira linha adicionada>,<Nº da última linha adiciona>

Ex: 16a15,30 (foram adicionadas 16 linhas, são elas as linhas da 15 a 30 do novo arquivo)

fcamargo@amontoado:~$ diff 1 2 1a2 > B

Lê-se “qual é a diferença do arquivo 2 em função do arquivo 1”. O maior (>) diz que o “B” e o “ “ estão

presentes no arquivo 2 e não no arquivo 1.

53

Page 54: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

2. Linhas removidas

<Nº da primeira linha deletada>,<Nº da última linha deletada>d<Nº de linhas deletadas>

Ex: 15,30a16 (foram apagadas 16 linhas, são elas as linhas da 15 a 30 do novo arquivo)

fcamargo@amontoado:~$ diff 2 1 2d1 < B

Lê-se “qual é a diferença do arquivo 1 em função do arquivo 2”. O menor (<) sinaliza que o B foi

retirado do arquivo 1 ou então adicionado ao arquivo 2.

3. Linhas alteradas

<Nº da primeira linha alterada do 1º arquivo>,<Nº da última linha alterada do 1º arquivo>c<Nº da

primeira linha diferente ao 1º arquivo>,<Nº da última linha diferente ao 1º arquivo>

Ex: 15,30a16 (foram apagadas 16 linhas, são elas as linhas da 15 a 30 do novo arquivo)

fcamargo@amontoado:~$ diff 3 2 2c2 < X --- > B

Neste casso, temos que a linha dois do arquivo 3 e a linha dois do arquivo 2 estão diferentes. O

menor indica o que temos a mais no arquivo 3 e o maior indica o que temos a mais no arquivo 2.

FILEAssimilação > (File é file – Arquivo!? Que tipo de arquivo é este?)

Sintaxe: file <nome do arquivo>

Mostra qual é a extensão real do arquivo. Este comando é importante já que os sistemas GNU/LINUX

não utilizam extensões, podendo o arquivo assumir um sobrenome sem alterar suas características. Vejam

o seguinte exemplo:

fcamargo@amontoado:~$ file TEXTO_PURO.txt TEXTO_PURO.txt: ASCII text fcamargo@amontoado:~$ mv TEXTO_PURO.txt TEXTO_PURO fcamargo@amontoado:~$ file TEXTO_PURO TEXTO_PURO: ASCII text fcamargo@amontoado:~$ mv TEXTO_PURO TEXTO_PURO.pdf fcamargo@amontoado:~$ file TEXTO_PURO.pdf TEXTO_PURO.pdf: ASCII text

O arquivo TEXTO_PURO.txt é um arquivo “ASCII text” que exprime texto puro (estilo bloco de notas).

Perceba que ele sempre será texto puro, independente a sua extensão.

TREEAssimilação > (Tree também é tree – Mostreme como estrutura de árvore!)

Sintaxe: tree [parâmetros] <diretório a partir do qual deve ser listado>

Torna a visualização da estrutura de diretórios mais amigável. Veja abaixo:

fcamargo@amontoado:/curso$ tree .

54

Page 55: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

. |-- Mico Le\303\243o Dourado (Acentuações não são entendidas)|-- Robzila | `-- oi |-- Saci | `-- 1 | `-- 2 `-- TEXTO_PURO.pdf

5 directories, 2 files

Desta forma é possível visualizar muito mais fácil os níveis e subníveis do diretório especificado.

Alguns parâmetros estão disponíveis e são interessantes de serem utilizados.

Parâmetro Descrição

-d Lista apenas diretórios.

-a Lista também os arquivos ocultos.

-L <n> Lista somente <n> níveis adentro do diretório definido como inicial. Este parâmetro sempre deve ser o último para que ele fique do lado do número de níveis.Ex: tree -daL 1 /home

-f Mostra o nome do arquivo e/ou diretório e seu endereço relativo.

-l Adentra nos links como se fossem subdiretórios. Sem esta opção, os links são tratados como arquivos, tendo apenas uma indicação de para onde eles apontam.

55

Page 56: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

O COMPLETO APTA instalação de aplicativos, bibliotecas, binários, módulos, ou seja, tudo que existe dentro do Debian,

só seria mais fácil se ela se desse automaticamente ao simples pensar do administrador. O apt foi criado

para o Debian, mas já vem sendo utilizado em várias outras distribuições. Todas as distribuições derivadas

do Debian não ousam tocar no apt, ele sempre está disponível.

Antes de qualquer coisa, o que são pacotes? Pacotes são unidades de programas ou bibliotecas.

Quando fazemos download de um arquivo, driver ou plugin para windows, eles sempre vem em um arquivo.

Este arquivo normalmente é um conjunto de outros arquivos compactados que possuem uma série de

regras que dizem o que o sistema operacional deverá fazer com cada um deles e onde alocá-los. Quando

instalamos o Apache, todos os arquivos que são necessários para a sua instalação, do binário que irá iniciar

o processo até o ícone do menu, irá ser descarregado no seu computador e um script contendo as regras

de instalação serão executados. Ou seja, um pacote do Apache é um conjunto de arquivos que contém os

arquivos que foram feitos pelo seu desenvolvedor para fazer com que ele rode no seu computador. Este

pacote pode precisar de outros pacotes para ser instalado normalmente. Se você está desenvolvendo um

programa e já existem pacotes prontos que diminuem o seu trabalho, cria-se um pacote com aquilo que não

existe e este que já existia passa a ser uma dependência do que você fez. Será necessário ter os dois para

que o seu programa funcione.

O apt (advanced package tool – ferramenta avançada de pacotes) trabalha em conjunto com um

repositório. Este repositório não passa de um servidor de pacotes. Todos os pacotes existentes para o

Debian ficam dentro dele. Isso torna fácil a instalação, pois esses pacotes só fazem parte do repositório se

estiverem de acordo com o padrão do sistema, com todos pacotes que servem de base instalados

(conhecidos como dependências) e sem problemas de incompatibilidade e instabilidade.

O processo é simples: o administrador executa o comando apt informando o nome do pacote que

será instalado. O apt vai até uma lista local recebida do repositório e verifica se o pacote solicitado existe.

Se existir, o apt requisita ao repositório o(s) arquivo(s) .deb necessário(s) para a instalação e descompacta-

o(s). Feito isso, informações, se necessárias, são solicitadas ao administrador (endereço de proxy,

endereços de servidores, informações específicas do aplicativo). Com tudo engatilhado, basta chamar o

“burro de carga” que fará o trabalho sujo de instalação: o dpkg. O dpkg não pensa no conjunto, apenas

instala, e muito bem instalado, os pacotes com as configurações feitas do jeito que são entregues a ele.

Após todo esse processo, o apt informa que o pacote foi instalado com sucesso.

Passos:

1. Verificação de existência do pacote na lista local (/var/cache/apt/pkgcache.bin);

2. Requisição do pacote ao repositório (/etc/apt/source.list);

3. Download dos .deb e dos de suas dependências (/var/cache/apt/archives);

4. Descompactação e, se existir, realização de configurações;

5. Instalação do pacote pelo dpkg.

Todo esse processo é feito pelo apt, tendo que o administrador apenas configurar a lista dos

repositórios os quais fornecem os pacotes ao computador. Então, vamos começar por eles.

56

Page 57: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

REPOSITÓRIOSPodem ser repositórios:

● Locais dentro do seu disco rígido;

● Locais na rede ou internet;

● Locais em discos removíveis (pendrives, cd/dvd roms, etc).

O Debian disponibiliza na internet mais de 400 repositórios redundantes. Repositórios redundantes

são repositórios iguais, que ao se alterar um, todos são alterados. Eles existem para que sempre exista um

espelho perto de qualquer pessoa em qualquer lugar do mundo, e também para, mesmo que alguma

catástrofe aconteça, sempre existam servidores no ar.

A Celepar possui um espelho dentro de suas dependências. Então além dos espelhos do repositórios

oficiais do Debian, também existe uma área com pacotes criados pelos desenvolvedores da Celepar. Estes

pacotes fazem com que haja uma personalização no sistema operacional, ajustando-o de acordo com as

necessidades dos funcionários do estado do Paraná.

O arquivo que devemos editar para especificar os caminho desses servidores é o

sources.list. Se você quiser que seu apt trabalhe com os espelhos dos repositórios oficiais do Debian

armazenados na Celepar, edite o arquivo acima com o vim (página 44) e o deixe da seguinte maneira:

amontoado:~# vim /etc/apt/sources.list

deb http://www.repositorios.eparana.parana/debian lenny main contrib non-free deb http://www.repositorios.eparana.parana/celepar lenny main contrib non-free deb http://www.repositorios.eparana.parana/marillat lenny main deb http://www.repositorios.eparana.parana/security lenny/updates main contrib non-free

e o computador for utilizado fora da rede do estado (não tiver um endereço 10.0.0.0 e

conexão física a esta rede), você deverá alterar o

www.repositorios.eparana.parana para www.repositorios.pr.gov.br. E se você quiser apenas

um espelho do repositório oficial do Debian, retire a segunda linha, que está escrito

“...parana/celepar etch...”. Os pacotes criados/alterados pela Celepar não serão instalados no

seu computador.

S

UTILIZANDO O APT

apt-get update (atualizando a lista de pacotes)

Sempre que o administrador executa o comando, o apt verifica se ele existe na lista local. Essa lista

local não é atualizada automaticamente. Periodicamente, o administrador deverá atualizá-la através do apt-

get update. Ao executá-lo, o apt verifica a data de última modificação da lista local e a compara à da lista

dos repositórios. Se as duas forem iguais, a lista está atualizada, se a data de modificação dos repositórios

for mais recente, o apt solicita a nova lista com as alterações.

57

Page 58: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

apt-get upgrade (update + atualização das versões dos pacotes)

Funciona da mesma forma que o apt-get update, com a diferença que além de atualizar a lista, ele irá

solicitar a instalação de todos os pacotes que foram incluídos ou alterados. Isso torna a sua lista de pacotes

local atualizada, assim como todo o seu sistema. Esta opção é perigosa quando você tem distribuições

personalizadas, pois a atualização feita pelo Debian pode desfazer as alterações criadas pela

personalização. Se você tiver o Debian puro, recomenda-se a utilização deste comando periodicamente

para manter seu sistema atualizado, já que ele nunca trará problemas.

apt-get install (instalando um pacote)

Sintaxe: apt-get install [parâmetros] <nome do pacote a ser instalado>

Com o comando acima é que será feita a instalação de novos pacotes. Ele é quem propele todo

aquele processo que foi visto anteriormente. Sempre, antes da instalação, existem algumas informações

que são passadas ao administrador, conforme pode ser visto abaixo. Se o pacote precisar de outros não

instalados para funcionar, ele avisará que eles são necessários e que será necessário instalá-los.

amontoado:~# apt-get install apache2 Lendo listas de pacotes... Pronto Construindo árvore de dependências Lendo informação de estado... Pronto Os pacotes extra a seguir serão instalados: apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 libpq5 Pacotes sugeridos: apache2-doc apache2-suexec apache2-suexec-custom Os NOVOS pacotes a seguir serão instalados: apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 libpq5 0 pacotes atualizados, 7 pacotes novos instalados, 0 a serem removidos e 88 não atualizados. É preciso baixar 1744kB de arquivos. Depois desta operação, 5804kB adicionais de espaço em disco serão usados. Você quer continuar [S/n]?

Basta digitar um S, s, Y, y, Sim, Yes, ou então simplesmente teclar o <Enter> do teclado que a

instalação irá iniciar.

Utilizando o parâmetro -y, qualquer perguntar será respondida com um YES.

apt-get remove (removendo um pacote)

Sintaxe: apt-get remove [parâmetros] <nome do pacote a ser removido>

Remove o pacote desejado. Para isso basta saber o nome do pacote que será removido. No exemplo

abaixo, iremos remover o pacote tuxpaint.

amontoado:~# apt-get remove --purge tuxpaint Lendo listas de pacotes... Pronto Construindo árvore de dependências Lendo informação de estado... Pronto Os seguintes pacotes foram automaticamente instalados e não são mais requeridos: tuxpaint-config libfltk1.1 tuxpaint-data netpbm tuxpaint-plugins-default libnetpbm10 tuxpaint-stamps-default Use 'apt-get autoremove' para removê-los. Os pacotes a seguir serão REMOVIDOS:

58

Page 59: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

tuxpaint* 0 pacotes atualizados, 0 pacotes novos instalados, 1 a serem removidos e 13 não atualizados. Depois desta operação, 397kB de espaço em disco serão liberados. Você quer continuar [S/n]? s (Lendo banco de dados ... 124172 arquivos e diretórios atualmente instalados). Removendo tuxpaint ... Expurgando arquivos de configuração de tuxpaint ... Processando gatilhos para man-db ... Processando gatilhos para menu ...

O APT traz várias informações antes da remoção. Informa que existem pacotes que não são mais

necessários, já que trabalhavam em função do pacote TUXPAINT. Mas não os remove automaticamente,

pois eles podem ser utilizados posteriormente por outros pacotes. Se quiser removê-los, o administrador

precisa executar o comando “apt-get remove --purge $(deborphan)”.

Na release Lenny, o comando é “apt-get autoremove”.

Outra informação importante é o --purge. Ele permite que o administrador apague todos os arquivos

de configuração. Sem esta opção, o pacote é removido, mas é mantido no computador os arquivos de

configuração, para no caso de mais a frente haver a reinstalação do pacote, todas as configurações já

estarão prontas.

urge em inglês significa “Purificação”. Quando utilizada esta opção, há a limpeza total

do sistema em relação ao pacote. Nenhum vestígio dele existirá.Papt-get install --reinstall (reinstalando um pacote)

Sintaxe: apt-get install --reinstall [parâmetros] <nome do pacote a ser reinstalado>

Com o parâmetro “--reinstall”, é possível reinstalar automaticamente um pacote. Caso não existisse

esta opção, seria necessário remover e instalar novamente o pacote. Este comando é recomendado quando

um pacote funcionava normalmente e após alguma tarefa executada pelo administrador, ele tenha parado

de funcionar. Alguma dependência pode ter sido desinstalada ou algum arquivo apagado. Desta forma o

pacote volta a ter seu estado original.

aso o pacote tenha muitos arquivos que foram configurados, é recomendável que se

crie um backup de todos, para evitar surpresas desagradáveis.Capt-cache search (descobrindo nomes de pacotes)

Como foi visto anteriormente, para se instalar um pacote, é necessário que o administrador saiba o

nome exato dele. Mas como descobrir isso? Através do search.

Sintaxe: apt-cache search <termo que remeta a um pacote que atenda a sua necessidade>

No exemplo abaixo, a fim de relembrar meu primeiro videogame, procurei na minha lista local algum

pacote que tivesse no nome ou em sua descrição o termo “nintendo”.

59

Page 60: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

amontoado:~# apt-cache search nintendo blockattack - a puzzle game inspired by Tetris desmume - Nintendo DS emulator fceu - FCE Ultra - a nintendo (8-bit) emulator gbsplay - A Gameboy sound player gnome-nds-thumbnailer - Nintendo DS roms thumbnailer for GNkamefu - KDE All Machine Emulator Frontend for Unixkamefu-data - Data files for Kamefu libkamefu-dev - Development headers for Kamefu libkamefu0 - Libraries for Kamefu zsnes - Emulator of the Super Nintendo Entertainment Systemnestra - Nintendo Entertainment System emulator snes9x-x - X binaries for snes9x - Super NES Emulator

Sempre teremos primeiro o nome e depois uma descrição do pacote:

nome-do-pacote – Descrição a respeito do pacote

Se eu quisesse instalar um emulador do Super Nintendo , bastaria eu instalar o pacote zsnes.

apt-cache show (informações sobre pacotes)

Continuando no exemplo do Super Nintendo. Agora que já sabemos o nome do pacote, podemos

instalá-lo. Mas se antes disso, o administrador tiver interesse de saber mais a respeito do pacote, ele

poderá utilizar este comando.

Sintaxe: apt-cache show <pacote que terá as informações apresentadas na tela>

amontoado:~# apt-cache show nestra Package: nestra (nome do pacote)Priority: optional (em relação ao sistema operacional)Section: contrib/otherosfs (local dentro do repositório que está alocado)Installed-Size: 3788 (tamanho em bytes que ocupará após instalado)Maintainer: Debian QA Group <[email protected]> (mantenedor responsável e seu endereço eletrônico para contato)Architecture: i386 (arquitetura para qual o pacote foi feito)Version: 0.66-10 (versão do pacote)Depends: libc6 (>= 2.7-1), libx11-6 (pacotes necessários, dependências)Filename: pool/contrib/n/nestra/nestra_0.66-10_i386.deb (nome do arquivo .deb que será instalado pelo DPKG)Size: 58562 (tamanho do arquivo de instalação em bytes)MD5sum: 8cc650bc1f77be4cd97d0474321cafd6 SHA1: cae8a01c36018d30ce4ebd13006afbbd05635d29 SHA256: e72aca89583a88d91c1edffb61e32dd5217434b9f8fc371be4e997308f8c2378 Description: Nintendo Entertainment System emulator (descrição do pacote) Nestra is a dynamic recompiler which translates 6502 code into native code to emulate a Nintendo Entertainment System. Execution of the translated code is quite fast, and the emulator can run at full speed with relatively modest CPU requirements. However, there is no sound support. . To use this program, you need NES ROMs which are not included. Tag: hardware::emulation, role::program

apt-get clean (apagando arquivos de instalação)

Após a instalação de um pacote, o arquivo de instalação .deb que foi baixado é mantido dentro do

/var/cache/apt/archives para que, no caso de uma reinstalação, ele já esteja no computador, não sendo

necessário perder tempo com download novamente. Este recurso é interessante quando existe espaço de

sobra no disco rígido. Quando isto não acontece, é interessante apagar os arquivos .deb do cache. Não

será necessário usar o rm. O apt-get clean irá apagar todos os pacotes de instalação automaticamente.

60

Page 61: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

apt-cache depends <pacote> (listando dependências)

Caso o administrador queira saber quais são as dependências, conflitos e sugestões de determinado

pacote, ele poderá utilizar este comando. Veja estas informações referentes ao iceweasel, o navegador da

internet do Debian.

amontoado:~# apt-cache depends iceweasel iceweasel Depende: fontconfig Depende: psmisc Depende: procps Depende: debianutils Depende: libc6 Depende: libgcc1 Depende: libglib2.0-0 Depende: libgtk2.0-0 Depende: libnspr4-0d Depende: libstdc++6 Depende: xulrunner-1.9 Sugere: xulrunner-1.9-gnome-support Sugere: latex-xft-fonts Sugere: xfonts-mathml Sugere: ttf-mathematica4.1 Sugere: xprint Sugere: mozplugger Sugere: libkrb53 Conflita: <firefox> Conflita: iceweasel-dom-inspector Conflita: <mozilla-firefox> Substitui: <firefox> Substitui: iceweasel-gnome-support Substitui: <mozilla-firefox>

DPKGO DPKG é uma ferramenta que perdeu espaço no processo de instalação, reinstalação e removeção

de pacotes, mas é essencial para uma boa administração do sistema. Apesar que o apt chama o dpkg para

instalar os pacotes, mas este faz somente aquilo que o apt manda. Quando o apt não der conta é através do

dpkg que os problemas são sanados. Com ele o administrador conseguirá instalar, remover, listar e

manipular pacotes.

dpkg -i <arquivo.deb>

A instalação dos pacotes é feita através deste comando. Sempre deve-se passar o endereço

completo do arquivo a ser instalado. No exemplo abaixo, primeiro o comando apt éutilizado com o

parâmetro -d (download), para que os arquivos de instalação sejam apenas descarregados para o

computador sem ser feita nenhuma instalação.

arquivo pode ser baixado do site do desenvolvedor, da forma como o administrador

achar melhor.ODepois, através do comando dpkg -i o pacote descarregado dentro do /var/cache/apt/archives é

instalado:

61

Page 62: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

amontoado:~# apt-get install -d sl Lendo listas de pacotes... Pronto Construindo árvore de dependências Lendo informação de estado... Pronto Os NOVOS pacotes a seguir serão instalados: sl 0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 0 não atualizados. É preciso baixar 25,1kB de arquivos. Depois desta operação, 127kB adicionais de espaço em disco serão usados. Obter:1 http://www.repositorios.eparana.parana lenny/main sl 3.03-15 [25,1kB] Baixados 25,1kB em 0s (729kB/s) Baixar completo e no modo somente baixar ("download only")

amontoado:~# dpkg -i /var/cache/apt/archives/sl_3.03-15_i386.deb Selecionando pacote previamente não selecionado sl. (Lendo banco de dados ... 90486 arquivos e diretórios atualmente instalados). Desempacotando sl (de .../archives/sl_3.03-15_i386.deb) ... Configurando sl (3.03-15) ... Processando gatilhos para man-db ... amontoado:~# sl <ENTER>

dpkg -l

Lista todos os pacotes com algum vestígios no sistema. As colunas de informações mostram o status,

nome, versão e descrição do pacote. Ao executar este comando, todos os pacotes serão listados. Se você

quiser restringir sua pesquisa, a melhor forma de se fazer isso é ou colocando o nome do pacote que deseja

saber mais informações, ou, caso não o saiba exatamente, utilizar o pipe e o grep. Veja abaixo exemplos.

amontoado:~# dpkg -l cups

Desejado=U=Desconhecido/Instalar/Remover/exPurgar/H=Reter

| Estado=Não/Inst/arqs-Cfg/U=Descomp/Falhou-cfg/H=semi-inst/W=trig-adiado/Trig-pend |/ Erro?=(nenhum)/H=Ret/precisa-Reinst/X=ambos-problemas (Est,Err: maiúsculas=ruim)

||/ Nome Versão Descrição +++-=========================================================ii cups 1.3.8-1lenny4Common UNIX Printing System(tm) – server

O grep será visto na páginas 74.

amontoado:~# dpkg -l |grep ncurse ii libncurses5 5.7+20081213-1 shared libraries for terminal handling ii libncursesw5 5.7+20081213-1 shared libraries for terminal handling (wide character su

ii ncurses-base 5.7+20081213-1 basic terminal type definitions

ii ncurses-bin 5.7+20081213-1 terminal-related programs and man pages

62

Page 63: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

dpkg -r

Agora iremos remover o pacote instalado anteriomente.

amontoado:~# dpkg -r sl (Lendo banco de dados ... 90515 arquivos e diretórios atualmente instalados). Removendo sl ... Processando gatilhos para man-db ... amontoado:~# slbash: /usr/bin/sl: Arquivo ou diretório não encontrado

dpkg --configure

Pode ser que, por algum motivo qualquer, a instalação de um pacote não tenha ocorrido de forma

100% correta, seja com o apt, seja com o dpkg. Isso pode ter ocorrido devido a um problema na

configuração de algum pacote, na falha da instalação de alguma dependência, falha na execução de um

script pós instalação, ou então um programa pode simplesmente deixar de funcionar por causa de uma

alteração no sistema. Com este comando, o sistema irá verificar todas as dependências e realizar todo o

processo de configuração do pacote novamente. Se algo estiver errado, tentará corrigir automaticamente. É

uma mão na roda, por isso, guarde-o na memória.

amontoado:~# dpkg --configure sl amontoado:~# dpkg --configure -a

parâmetro “-a” irá iniciar o processo de verificação de dependências e de

configuração. Quanto às dependências, o dpkg somente verificará se os pacotes

instalados estão em ordem. Se uma dependência não estiver instalada, o comando retornará

um erro.

O

dpkg-reconfigure

Este comando reconfigura um pacote que já foi desempacotado e instalado. Ou seja, deu pau na

instalação ou num pacote já instalado, use o dpkg-reconfigure para tentar fazer com que o script,

responsável por gerenciar a instalação e configuração de todos os binários, arquivos de configuração,

bibliotecas e arquivos adicionais, seja executado.

Passos executados pelo dpkg-reconfigure:

1. Desempacotar os arquivos de configuração e, ao mesmo tempo, fazer um backup das

configurações já existentes para que, no caso de algum problema, elas sejam restauradas.

2. Executa o script gerenciador da instalação, conhecido como postinst.

Para se reconfigurar um pacote específico deve-se ser informado o nome deste. Para que todos os

pacotes com status de pendente sejam reconfigurados, usa-se o parâmetro “-a”.

dpkg -L

O dpkg com este parâmetro poderá trazer informações preciosas para um bom administrador. Caso

você tenha instalado um pacote e não tenha a menor ideia de onde os arquivos que fazem parte do pacote

63

Page 64: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

foram parar, como arquivos de configuração, binários ou bibliotecas, utilizando este recurso você passará a

saber.

Primeiramente iremos instalar um pacote qualquer. No nosso exemplo iremos instalar o pacote

tuxpaint:

# apt-get install tux-paint <Enter>

Depois de instalado, iremos visualizar seu status no sistema:

# dpkg -l tuxpaintii tuxpaint 0.9.16-1 A paint program for young children ii tuxpaint-data 0.9.16-1 Data files for Tux Paint, a paint program for ii tuxpaint-stamps-default 2006.10.21-1 Stamp files for Tux Paint, a paint program for

Como você pode ver, ele está instalado (é óbvio, acabamos de instalá-lo, mas caso não tivéssemos

sido nós quem tivéssemos instalado, este passo seria importante). Agora iremos descobrir onde andam

todos os arquivos referentes ao programa:

# dpkg -L tuxpaint

Veja o resultado em sua tela e observe que muitos diretórios se repetem. Isso acontece, porque na

verdade, o que o parâmetro faz é mostrar a parte do script de instalação responsável por criar os diretórios

e arquivos necessários para o funcionamento do programa. Então ele tem que criar primeiro o

/usr/share/pixmaps para depois criar o /usr/share/pixmaps/tuxpaint.png. Todos arquivos e diretórios

relacionados ao tuxpaint aparecerão.

64

Page 65: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

EXERCÍCIOS DE FIXAÇÃO (PARTE 2) 1.Qual é a diferença entre terminal virtual e terminal emulado? Cite dois motivos que justifiquem a

existência dos dois.

2.Existe a possibilidade de se iniciar uma sessão sem inserir um usuário válido?

3.O que cada uma das teclas de atalho abaixo fazem?

a)<CTRL>+<C>

b)<CTRL>+<L>

c)<CTRL>+<D>

d)<CTRL>+<SHIT>+<T>

Obs.: Se você não se lembrava delas, memorize-as. Elas são muito importantes.

4.Qual é a forma mais indicada para termos certeza que um endereço ou nome de arquivo será

digitado corretamente?

5.Temos em um diretório os seguintes arquivos e diretórios:

Dir: Baralho – Arq: Carvalho – Arq: Banana – Dir: Ana – Arq: Caneco

Informe como faríamos para executar as seguintes tarefas utilizando expressões regulares:

a)Remover tudo que começam com A: $ rm -rf ________ <Enter>

b)Mover tudo que termina em “ana” para o diretório Baralho: $ mv ________ Baralho/ <Enter>

c)Remover tudo que começar com qualquer coisa, ter “ar” no meio, ter obrigatoriamente um

caractere qualquer após “ar” e finalizar com “lho”: $ rm -rf ________ <Enter>

d)Visualizar em linha tudo que tiver, somente na segunda casa do nome do arquivo ou diretório, uma

letra de “a” a “l”: $ ls ________ -l <Enter>

6.Se não é permitido excluir um diretório com conteúdo, qual seria o recurso utilizado, sem ser excluir

manualmente o conteúdo, para excluir o diretório em questão? Explique o porquê.

7.Faça o seguinte teste:

1 – Logue-se em um terminal emulado;

2 – Abra uma nova aba utilizando as respectivas teclas de atalho;

3 – Verifique qual é a identificação do novo terminal;

4 – Volte para o primeiro terminal;

5 – Execute o comando a seguir: $ echo “Bom dia meus amiguinhos” <Enter>;

6 – Agora execute este: $ echo “Bom dia meus amiguinhos” > /dev/(identificação do segundo

terminal);

7 – Qual foi o resultado?

8.O “pipe” é igual ao “>”? Justifique.

9.Crie um arquivo utilizando o vim. Nomeie-o com o seu último nome e siga os passos:

a)Insira a seguinte linha:

Esta é a primeira linha do meu arquivo de texto criado com o VIM.

b)Copie esta linha e cole duas vezes, alterando a palavra “primeira” para “segunda” e “terceira”;

c)Apague a segunda linha do arquivo;

d)Salve e saia do VIM.

65

Page 66: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

10. Comandos Change Directory e List :

a)Entre no diretório /etc/network/ e execute o comando $ ls . Qual foi o resultado?

b)Visualize sem sair do diretório corrente o conteúdo do diretório /root, e depois execute $ pwd.

Qual foi o resultado que apareceu na tela na execução dos dois comandos?

c)Entre no diretório /boot/grub e depois vá para o diretório /etc/samba. Agora executa o seguinte

comando duas vezes: $ cd -. Em qual diretório você está agora?

d)Vá para sua pasta pessoal sem escrever nenhum endereço, somente utilizando o comando

Change Directory. Como você fez isso?

e)Visualize do diretório corrente o conteúdo do diretório /dev ativando a opção “em linhas”.

f)Quais são as permissões do Proprietário, Grupo e Outros do seu diretório pessoal?

11.Comando Make Directory (acumulativo):

a)Crie um diretório chamado “Caneco” dentro de /tmp.

b)Crie usando apenas uma linha de comando os diretórios Jan, Fev, Mar e Abr dentro de

/tmp/Caneco. Como você fez isso?

c)Agora execute o comando $ cd / e depois entre no diretório /tmp/Caneco e execute o comando $

mkdir 01. Algum erro apareceu? Se sim, qual?

d)Crie a seguinte estrutura de diretórios 1/2/3/4/5/6 dentro de /tmp/Caneco usando apenas uma linha

de comando. Como você fez isso?

12.Comando Copy (acumulativo):

a)Copie, utilizando um coringa, todo o conteúdo do diretório /tmp/Caneco para dentro do diretório

Novo-caneco a ser criado dentro do seu diretório pessoal. Entre em seu diretório pessoal utilizando apenas

um comando, sem endereço, e então execute o seguinte comando: $ ls Caneco. Qual foi o resultado do

ls?

b)Crie um backup do arquivo /etc/samba/smb.conf com o nome smb.conf.backup alocando-o no

mesmo diretório do original. Como você fez isso?

13.Comando Move e Remove:

a)Crie o seguinte diretório: /tmp/a/b/c/d/e/. Crie como VIM um arquivo chamado Saci dentro do

diretório anterior contendo o seguinte conteúdo:

“Sou praticamente um hacker invadindo a NASA com tanto conhecimento que adquiri aqui”

b)Mova apenas o diretório e para sua pasta pessoal.

c)Remova o diretório c e todo seu conteúdo. Execute o comando $ ls -R /tmp/a. Qual foi o resultado

que apareceu na tela?

d)Restaure o arquivo smb.conf.backup com o nome smb.conf apagando o backup, fazendo os dois

processos com apenas um comando.

14.O cp e o mv são quase iguais. São tão iguais que um chama o outro durante a execução. Você

consegue me dizer quem chama quem e o que acontece?

15.Descubra qual dos pacotes abaixo já estão instalados no seu sistema. Se estiver, qual é a versão:

a)broffice.org

b)apache2

c)firefox (se não estiver instalado, descubra por que o firefox funciona mesmo assim e explique)

66

Page 67: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

16. Descubra algum programa que atenda as necessidades abaixo. Identifique o nome do pacote e a

sua versão (sempre prefira a última):

a)Servidor web.

b)Programa para descompactar arquivos zip.

c)Cliparts para o BrOffice.org.

d)Internet Explorer 6.

e)OCS.

f)Programa para abrir arquivos rar.

17.Instale o seguinte aplicativo:

skype a)NÃO INSTALE O PACOTE INDICADO COM O APT E NÃO EXECUTE NENHUMA VEZ O

COMANDO # apt-get install skype;

b)Descubra as dependências (com o comando específico para isso) e instale todas com o APT;

c)Faça download do pacote indicado acima, entre no diretório de cache e instale-o usando o DPKG.

18.Instale os seguintes aplicativos utilizando o apt:

internet explorer 6 19.Explique exatamente o que acontece quando utilizamos os comandos abaixo (passo-a-passo):

a)apt-get install pacote

b)apt-get install --resintall pacote

c)apt-get remove pacote

d)apt-get remove --purge pacote

e)apt-get update

f)apt-get clean

20.Como fazemos para executar os seguintes binários sem utilizar os atalhos do path?

a)wget: /usr/bin/wget e não somente wget

b)audacious

c)diff

d)file

e)ifconfig

f)iceweasel

21.Execute os comandos abaixo como superusuário:

# apt-get clean# apt-get remove --purge apache2# apt-get install apache2<CTRL> + <C> ANTES DE TERMINAR A INSTALAÇÃO

Depois disso, tente instalar qualquer outro pacote, menos o apache. Conseguiu? Se não, como

resolver este problema? Explique o que aconteceu.

67

Page 68: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

COMANDOS PARA VISUALIZAÇÃO DE CONTEÚDO DE ARQUIVOS

Os comandos abaixo possuem a mesma finalidade: mostrar o conteúdo de um ou mais arquivos.

Porém eles se comportam de formas diferentes trazendo, também, resultados na tela diferentes.

SORTExistem alguns comandos que nos permitem manipular os dados de arquivos, alterando-os ou não. A

maioria só manipula a forma como os dados são apresentados na tela. O sort é um deles. Ele organiza

alfabética e numericamente as linhas de um arquivo de texto ou as linhas direcionadas para ele por outro

comando.

fcamargo@amontoado:/home/fcamargo/CURSO/OI$ cat DESORDEM 1 3 9 Z A 8 11 10 A1

O arquivo acima está desordenado. Ao se utilizar o comando sort, tanto as letras quanto os números

são ordenados.

fcamargo@amontoado:/home/fcamargo/CURSO/OI$ sort DESORDEM1 10 11 3 8 9 A A1 Z

Perceba que a ordenação não se dá de uma forma absoluta. Os critérios de classificação são feitas

primeiramente pela primeira coluna. Quando há a repetição de um caractere passa-se para a segunda

coluna, e assim por diante. Quando ao empate e não há mais caracteres para serem comparados, a linha

mais acima ficará antes.

Parâmetro Descrição

-n Faz a ordenação numérica de acordo com o valor integral do número, não tomando como base somente o primeiro caractere. Sem o -n, a linha do número 80 será ordenada antes da linha que tem o número 9. Com -n, o 9, por ser menor, ficará antes.

CATO cat (concatenater – concatenador) emenda vários arquivos e os mostra no dispositivo de saída

padrão. No Debian, este dispositivo é o próprio Shell que roda o comando.

Normalmente o cat é utilizado para ver o conteúdo de um único arquivo de texto de uma forma mais

rápida do que utilizando um editor de texto. É ideal para quando você deseja apenas bater o olho em

68

Page 69: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

alguma informação de algum arquivo de texto curto. Se você quer saber se os endereços dos repositórios

(servidores de pacotes) estão certos, você executará o seguinte comando:

amontoado:~# cat /etc/apt/sources.list deb http://www.repositorios.eparana.parana/debian lenny main contrib non-free deb http://www.repositorios.eparana.parana/celepar lenny main contrib non-free deb http://www.repositorios.eparana.parana/marillat lenny main deb http://www.repositorios.eparana.parana/security lenny/updates main contrib non-free amontoado:~#

Como você pode perceber, o arquivo de texto sources.list foi mostrado no shell. Você poderia ver

dois documentos ao mesmo tempo, como o /etc/hostname e o /etc/resolv.conf.

amontoado:~# cat /etc/hostname /etc/resolv.confamontoado domain celepar.parana search celepar.parana nameserver 10.15.16.6 nameserver 10.15.16.8

e você verificar cada arquivo, verá que o /etc/hostname tem apenas o conteúdo

amontoado, enquanto o /etc/resolv.conf tem as outras cinco linhas.STAC

Faz exatamente o inverso do cat. Ele inverte a ordem das linhas. A última linha passa ser a primeira,

a penúltima a segunda e assim por diante. E, assim como o cat, ele também concatena arquivos. Veja

abaixo o mesmo exemplo utilizado para o cat só que com o tac:

amontoado:~# cat /etc/hostname /etc/resolv.confecelepar91893 nameserver 10.15.16.8 nameserver 10.15.16.6 search celepar.parana domain celepar.parana

HEADQuando for necessário visualizar somente o início de um arquivo de texto ou então de uma lista vinda

da saída de um outro comando, o HEAD cai como uma luva. O padrão é mostrar as 10 primeiras linhas,

porém isso pode ser alterado com os parâmetros.

Digamos que o servidor SSH instalado na sua máquina não está na porta 22, que é a padrão. Você,

como um bom administrador, sabe que essa informação está no arquivo /etc/ssh/sshd_config. E não só isso,

sabe que a informação está no começo do arquivo. Então, para que sua tela não seja tomada por todas as

informações distribuídas em várias linhas, você utiliza o HEAD.

fcamargo@amontoado:~$ head /etc/ssh/sshd_config # Package generated configuration file

69

Page 70: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

# See the sshd(8) manpage for details

# What ports, IPs and protocols we listen for

Port 2012# Use these options to restrict which interfaces/protocols sshd will bind to

#ListenAddress ::

#ListenAddress 0.0.0.0

Protocol 2

# HostKeys for protocol version 2

Parâmetros Descrição

-n [número] Define um número diferente de linhas que serão apresentadas.Ex: head -n 1 /etc/passwd

-v É o modo “verbose”. Nele a primeira linha é reservada para o print na tela do endereço do arquivo.

TAILÉ a mesma coisa que o HEAD, só que o inverso. HEAD é cabeça, TAIL é rabo. E o que o inverso faz?

Inverte a saída. Em vez de termos as 10 primeiras linhas como resultado, temos as 10 últimas linhas, sendo

todas transpostas, ou seja, a última passa a ser a primeira, a segunda passa a ser a penúltima, e assim por

diante.

amontoado:~# tail /var/log/dmesg [ 10.182043] input: ImExPS/2 Generic Explorer Mouse as /class/input/input4 [ 10.248833] parport_pc 00:08: reported by Plug and Play ACPI [ 10.248833] parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE] [ 10.786889] Adding 1919756k swap on /dev/hda4. Priority:-1 extents:1 across:1919756k [ 11.078084] powernow: This module only works with AMD K7 CPUs [ 11.511270] kjournald starting. Commit interval 5 seconds [ 11.511270] EXT3 FS on hda1, internal journal [ 11.511270] EXT3-fs: mounted filesystem with ordered data mode. [ 11.598659] XFS mounting filesystem hda3 [ 11.708096] Ending clean XFS mount for filesystem: hda3

Parâmetros Descrição

-n [número] Define um número diferente de linhas que serão apresentadas.Ex: head -n 1 /etc/passwd

-v É o modo “verbose”. Nele a primeira linha é reservada para o print na tela do endereço do arquivo.

-f Mantém o comando tail aberto, sempre mostrando as últimas informações que foram inseridas ao arquivo. Ideal para logs que se deseja monitorar.

70

Page 71: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

MOREPermite que o administrador possa visualizar um arquivo ou a saída de um comando (este último em

conjunto do pipe) de forma paginada. Ou seja, a tela trava na primeira linha e depois vai percorrendo a tela

através do pressionamento da tecla <Enter>. Cada pressionada equivale a uma linha percorrida. Isto

permite uma leitura mais apurada do texto. No canto inferior direito, um controle diz quantos porcento do

documento já foi mostrado na tela. Só é possível percorrer o documento para baixo.

amontoado:/Curso# more /etc/ssh/sshd_config # Package generated configuration file # See the sshd(8) manpage for details

# What ports, IPs and protocols we listen for Port 22 # Use these options to restrict which interfaces/protocols sshd will bind to #ListenAddress :: #ListenAddress 0.0.0.0 Protocol 2 --More--(34%)

O <Espaço> faz com que a transição, em vez de linha em linha, seja de tela em tela.

LESSSimilar ao more, com a diferença que a navegação pelo documento é feita com as setas direcionais.

Isto permite que o documento posso seja navegado tanto para baixo quanto para cima. Na verdade, por

este motivo, este comando é uma versão do more melhorada.

O <Espaço> faz com que, em vez de linha em linha, a visualização seja de página em página, e o

<Esc> faz a mesma coisa, só que volta uma tela.

NLMostra o conteúdo de um arquivo com a numeração das linhas. Utilizando apenas o comando nl e

definindo o arquivo, a numeração é feita ignorando as linhas em branco. Usando o parâmetro “-ba”, todas as

linhas serão numeradas, inclusive as que estiverem em branco.

amontoado:~# nl /etc/network/interfaces -ba 1 # This file describes the network interfaces available on your system 2 # and how to activate them. For more information, see interfaces(5). 3 4 # The loopback network interface 5 auto lo 6 iface lo inet loopback 7 8 # The primary network interface 9 allow-hotplug eth0 10 iface eth0 inet dhcp

71

Page 72: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

COMANDOS PARA PESQUISAEstes comandos permitem que você pesquise arquivos e diretórios dentro da estrutura de arquivos

dos sistemas Debian. Os comandos, apesar de parecerem ser semelhantes, diferem ou na forma como

procuram arquivos, ou na forma como trazem os resultados, ou pelos critérios de pesquisa diferentes.

FINDProcura arquivos dentro da estrutura de diretórios ou então mostra o conteúdo do diretório

especificado recursivamente.

Sintaxe: find <a partir de que local> [parâmetro] <dados para os parâmetro>

Você pode usar quantos parâmetros desejar, refinando sua pesquisa. Só não esqueça de colocar o

diretório a partir do qual a pesquisa será iniciada. O find entrará nele e irá procurando até o último arquivo

do seu último subdiretório. É como se tivéssemos uma semireta que serveria de campo de pesquisa.

Podemos tornar essa semireta um segmento de reta (com um ponto inicial e um ponto final) através do

parâmetro -maxdepth. Se você desejar que a pesquisa seja feito em toda a estrutura de diretórios, você

poderá definir o ponto de partida como / (barra).

Parâmetros Descrição

-name <info> Procura um arquivo ou diretório que possua estritamente o mesmo nome com a mesma caixa dos caracteres (case sensitive).Exemplo: #find / -name “Tião Macalé” <ENTER>Se existir algum arquivo ou diretório com o nome “tião macalé”, não será mostrado no resultado.

-iname Procura um arquivo ou diretório que possua estritamente o mesmo nome, mas permite que a caixa dos caracteres seja diferente (não case sensitive).Exemplo: #find / -iname “Tião Macalé” <ENTER>Se existir algum arquivo ou diretório com o nome “tião macalé”, ele será mostrado no resultado.

-size Procura arquivos que possuam um determinado tamanho. Você pode definir o tamanho exato do arquivo (o problema é que, devido aos arredondamentos dos números reais, que são quebrados, é muito difícil você encontrar um arquivo pelo tamanho certo), ou definir se deverão ser mostrados arquivos maiores ou menores que o valor dado ao parâmetro.Exemplo: #find /boot -size +5M <ENTER>Você poderá procurar por KB (use o k minúsculo), MB (use o M) e o GB (use o G).

-maxdepth Define o número máximo de níveis que o comando find deverá descer para fazer sua pesquisa. O diretório que foi definido com ponto inicial assumirá o valor de nível 1. Cada nível abaixo deverá ser incrementado pelo número um.Exemplo: O arquivo oi.txt está dentro de /curso/1/2/3/4/.$find /curso/1 -maxdepth 4 -name oi.txt <ENTER> Irá encontrar/curso/1/2/3/4/oi.txt$find /curso/ -maxdepth 4 -name oi.txt <ENTER> Não irá encontrar, porque ele parará no diretório /curso/1/2/3.

-mindepth Define quantos níveis abaixo o comando find deverá descer a partir do local definido como ponto inicial da pesquisa. O número que você coloca ao lado do parâmetro é o número de níveis abaixo, contando um no diretório especificado, que o find deverá iniciar a pesquisa.

72

Page 73: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Parâmetros Descrição

Exemplo: agora temos o arquivo eita.txt dentro do diretórios /curso/1/2/.$find /curso/1 -mindepth 3 -name eita.txt <ENTER> Nada será encontrado.$find /curso/1 -mindepth 2 -name eita.txt <ENTER> Encontrará./curso/1/2/eita.txt

-type Permite que você pesquise arquivos que sejam somente do tipo que você venha a especificar, como diretórios, arquivos especiais de bloco, caracteres, links, socketes, etc. Você só poderá colocar uma letra por vez.b = arquivos especiais de blococ = arquivos especiais de caractered = diretóriosl = link simbólicos = arquivo especial de soquetep = arquivo especial de pipef = arquivos regulares (arquivos normais)Exemplo: No exemplo abaixo, pedimos ao find que procure todos os arquivos pipe do computador:# find / -type p /var/lib/gdm/.gdmfifo /dev/xconsole /dev/initctl

Listagem Recursiva

Na verdade, o que o find faz é listar recursivamente todos os arquivos e diretórios a partir de onde

você especificar. Conseguimos pesquisar com ele através dos filtros que utilizamos através dos parâmetros,

filtros esses que chamamos de critérios para a pesquisa. Então se não colocarmos nenhum critério, a

listagem recursiva será feita da mesma forma. Digite find seguido do diretório a partir do qual a listagem

recursiva será feita. Digamos que estajamos no diretório /curso e queiramos ver seu conteúdo e o conteúdo

de todos os seus subdiretórios. Basta executar o comando abaixo:

fcamargo@amontoado:~$ find /curso/ /curso/ /curso/arquivo1.txt /curso/arquivo2.txt /curso/arquivo3.txt /curso/Diretório /curso/Diretório/dorivalcaymmi.mp3

uando você usa um critério de string (iname ou name), só retornará exatamente os

arquivos ou diretórios que casem exatamente com o que você escreveu. Se você

pesquisa OI e só existir AOI, o find não trará o resultado. Para resolver esses problemas

você pode usar os coringas (*, ?, [n]), como explicado no início da apostila.

Q

LOCATEPesquisa arquivos através de uma lista criada pelo comando updatedb. É muito mais rápido que o

find, pois este varre toda a estrutura de diretórios em busca dos arquivos, enquanto o

locate deixa uma lista base pronta com todos os arquivos e diretórios indexados (como se fosse um cache)

pronto para trazer um resultado a você. Imagine duas casas. Você precisa de um inventário completo das

73

Page 74: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

duas. Ao executar o updatedb, você vai até as casas e faz o inventário (demora um pouco), mas se você

precisar novamente desta informação, não precisará ir até as casas novamente, e sim simplesmente pegar

o inventário que já está pronto e verificá-lo. Já o find irá às casas todas as vezes que for solicitado. A

vantagem do locate é que as pesquisas ficam bem mais rápidas, já a desvantagem é o fato de você ter que

rodar periodicamente o updatedb para que sua lista base não fique desatualizada.

petinhodavovoh@amontoado:/home$ locate feio/curso/muito-feio.jpg/curso/feio

locate não pesquisará estritamente o termo entregue a ele. Ele retornará também

termos que tenham incrementos antes ou depois da string usada como critério. Se

você quiser que ele busque apenas arquivos ou diretórios que casem exatamente com a

string colocada, use o parâmetro -w antes do termo. Exemplo: locate -w feio

O

GREPSintaxe: grep [parâmetros] <termo.a.ser.pesquisado> <arquivo.a.ser.pesquisado>

O grep é uma importante ferramenta que permite a pesquisa de strings (conjunto de caracteres, ou

termos) que estão dentro de um arquivo. A saída é mostrada na tela com o endereço absoluto dos

arquivos que contenham o termo e a linha completa de qual ele faz parte, separados por dois pontos(:).

Uma forma interessante de se usar o grep, é descobrir o nome e localização de arquivos que só se conheça

o conteúdo. Ao contrário dos outros comandos de pesquisa, ele não leva em consideração o nome dos

arquivos, mas sim o conteúdo.

Digamos que precisamos alterar um arquivo, mas esquecemos qual é o seu nome e sua localização.

A única coisa que lembramos é alguma coisa do seu conteúdo. Por exemplo: quero saber qual é o arquivo

que contém o nome da máquina utilizado pelo sistema. Sei que o arquivo está dentro do /etc, mas não sei

qual dos vários é o certo.

amontoado:~# grep amontoado /etc/* /etc/hostname:amontoado <PRIMEIRO ARQUIVO>/etc/hosts:127.0.1.1 amontoado.celeparsl amontoado <SEGUNDO ARQUIVO>/etc/motd:Linux amontoado 2.6.26-1-686 #1 SMP Fri Mar 13 18:08:45 UTC 2009 i686 <TERCEIRO ARQUIVO>

erceba que usamos o coringa, já que temos que passar arquivos para o comando. O

asterisco substitui os nomes. Caso coloque-se só o diretório, não irá funcionar.PEle é muito utilizado junto ao pipe. Lembra-se quando estudamos o pipe e tínhamos o comando

“garimpe” (página 42)? Agora que você já possui base suficiente em relação a teoria e comandos básicos,

substitua o garimpe pelo grep e você conseguirá entender bem a função dos dois em conjunto. Uma boa

utilidade para ele é mostrada abaixo:

# dpkg -l |grep broffice.org

ii broffice.org 1:3.0.1-7~bpo50+1 BrOffice.org office suite

74

Page 75: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

COMANDOS DIVERSOSExistem vários comandos que são necessários serem conhecidos por diversos motivos. O

administrador pode, com eles, gerenciar contas, redes, arquivos, ou seja, tudo que é inerente às suas

atividades. Então eles serão a caixa de ferramentas do administrador, um conjunto de ferramentas não

específicas para gerenciamentos, que servem como mão na roda em muitos casos.

ALIASSintaxe: alias apelido='comando [parâmetros]'

Permite que o usuário crie um apelido para comandos com, inclusive, parâmetros. Em vez de dar o

comando que desliga o computador “shutdown -h now”, pode ser criado um alias chamado “win.exe”.

Assim, o apelido chamará quem ele apelida.

amontoado:~# alias win.exe='shutdown -h now'amontoado:~# alias alias win.exe='shutdown -h now' amontoado:~# win.exe

Com o último comando do exemplo acima, o computador será desligado.

O apelido só terá validade dentro da sessão que o usuário estiver. Toda vez que um usuário inicia

uma sessão, as informações contidas no arquivo ~/.bashrc são carregadas. Com isso, qualquer

configuração utilizando o comando alias é sobrescrita. Se o usuário desejar inserir um alias permanente,

deve inserir nesse arquivo uma linha com as informações da mesma forma como mostrado acima, somente

sem o nome do comando na frente.

if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi win.exe='shutdown -h now'

e você abrir um novo terminal virtual (tty) ou então uma nova aba num terminal emulado

(pts), mesmo que a sessão que você tenha criado o alias através de linha de

comando estiver ativa, as variáveis de sistema serão restauradas de acordo com o arquivo

~/bashrc.

S

BADBLOCKSSintaxe: badblocks [parâmetros] /dev/disco

Discos de mídia possuem unidades de armazenamento que chamamos de blocos. Esses blocos são

compostos de vários setores (espaços criados por linhas radiais que cortam as trilhas dos discos). Estes

setores armazenam dados, se for uma mídia magnética, através da polarização de sua superfície (carga

positiva é igual a 1 e negativa é igual a 0). Se algum ponto da mídia perder sua polarização, ou seja, perder

a sua carga elétrica, ele não reagirá a cabeça de leitura e não será mais capaz de armazenar dados. Se

dados já estiverem nele, serão perdidos; se dados forem destinados a eles, não serão armazenados e serão

perdidos. O grande problema é que, quando algum desses setores perde sua capacidade de

75

Page 76: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

armazenamento, o sistema de arquivos não percebe e continua mandando dados. Somente será possível

perceber o problema se o comando badblocks quando, na recuperação de dados, o sistema de arquivos

perceber que faltam informações, dando a mensagem de que o arquivo está corrompido.

O comando badblocks permite que o administrador verifique se existe algum bloco com setores

defeituosos. Ele não corrige nada, somente alerta que há um problema, podendo então, o administrador

fazer algo para tentar contornar o problema.

amontoado:~# badblocks -v /dev/hda2 Checking blocks 0 to 19535039 Checking for bad blocks (read-only test): done Pass completed, 0 bad blocks found.

Parâmetro Descrição

-o <nome> Cria um arquivo com o nome definido pelo administrador com o registro de todos os blocos defeituosos do disco.

-i <nome> Ignora os blocos defeituosos que estiverem registrados no arquivo especificado. Isso torna o processo mais rápido, já que aqueles espaços com problemas já conhecidos não serão verificados novamente.

-v Mostra na tela o progresso da checagem dos blocos defeituosos. O padrão é fazer a checagem silenciosamente, ou seja, sem mostrar nada na tela.

Você pode executar o comando como usuário normal ou como superusuário. O comando acima foi

executado como superusuário, mas se você desejar executá-lo como usuário normal terá que passar o

caminho completo, já que não está dentro do path do usuário.

ath é o nome da variável que contém todos os diretórios nos quais são alocados os

comandos que o usuário consegue executar sem ter que informar o caminho completo

do seu binário. É como se fosse um DNS para comandos de cada usuário. Existem alguns

comandos que os usuários normais não conseguem executar somente chamando-o pelo

nome, como o ifconfig, mas se o caminho completo (/sbin/ifconfig) for fornecido o comando

é executado. Isso se deve ao fato desses comandos só estarem dentro do path do

superusuário.

P

CLEARSintaxe: clear

Limpa a tela inteira. Você precisará usar a linha de comando para a limpeza da tela. Se quiser limpar

a tela mantendo a linha de comando que já contenha alguma informação é mais interessante usar as teclas

de atalho <CTRL>+<L>.

DATESintaxe: date [+%parâmetro(s)]

Mostra a data do sistema.

76

Page 77: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

fcamargo@amontoado:~$ date Fri Jan 30 17:29:53 BRST 2009

Se você quiser criar um script e colocar nele uma opção para gravar a data do dia da execução do

comando em um log, você poderá colocar num formato diferente.

fcamargo@amontoado:~$ date +%d 30 fcamargo@amontoado:~$ date +%m 01 fcamargo@amontoado:~$ date +%Y 2009 fcamargo@amontoado:~$ date +%d%m%Y 30012009

Outras opções:

%d Dia do mês (00-31)%m Mês do ano (00-12)%Y Ano (2009-2010)%H Hora (00-24)%I Hora (00-12)%M Minuto (00-59)%j Dia do ano (1-366)%r Formato completo com o padrão 12 horas%T Formato completo com o padrão 24 horas%w Dia da semana

DFSintaxe: df [parâmetros]

Mostra a utilização de todos os discos que o sistema tem acesso.

amontoado:~# df -h Sist. Arq. Tam Usad Disp Uso% Montado em /dev/hda2 19G 3,3G 16G 18% / tmpfs 502M 0 502M 0% /lib/init/rw udev 10M 52K 10M 1% /dev tmpfs 502M 4,0K 502M 1% /dev/shm /dev/hda1 92M 26M 62M 30% /boot /dev/hda3 278G 29G 249G 11% /home //sceleparsmb03.celepar.parana/fcamargo 48G 22G 27G 45% /media/fcamargo

Teremos as seguintes colunas:

● Sist. Arq.: Todas as partições com sistemas de arquivos próprios os quais o sistema tem

acesso.

● Tam: Tamanho total da partição.

● Usad: Total da partição que já está sendo utilizada.

● Disp: Total da partição que está disponível.

● Uso%: Porcentagem de uso da partição.

● Montado em: Endereço do diretório que permite que exista acesso ao conteúdo da partição.

77

Page 78: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

DMESGSintaxe: dmesg

Durante a inicialização do computador, o kernel gosta de ficar falando tudo que faz. Esse “falar” é

exteriorizado em forma de registros num buffer (espaço dinâmico da memória) que o dmesg lê sempre que

executado. Ele é muito interessante para procurar algum problema que aconteceu na inicialização, como

uma placa de rede que não está funcionando, o servidor gráfico que não consegue subir. Para filtrar sua

pesquisa, é interessante utilizar junto a ele o grep.

amontoado:~# dmesg |grep eth0

ECHOSintaxe: echo <mensagem ou variável>

Ele mostra o valor de uma variável ou uma mensagem definida pelo usuário, na saída padrão, ou

então em uma outra saída definida através dos redirecionadores (visto na página 40).

amontoado:~# echo "Meu baralho" Meu baralho amontoado:~# echo "Meu baralho num arquivo" > oi.txt amontoado:~# cat oi.txt Meu baralho num arquivo amontoado:~# echo $USERNAME root amontoado:~# echo $USERNAME >> oi.txt amontoado:~# cat oi.txt Meu baralho num arquivo root

Coisas interessantes para se fazer com o echo:

● Visualizar valores de variáveis. Se você tiver com problemas na instalação de pacotes pode

ver se a variável $http_proxy tem algo configurado. Se tiver, zere as configurações para ver se

consegue instalar o pacote;

● Fazer alterações em arquivos de texto. Se você quiser adicionar suporte sudo a um

usuário, não é necessário nem entrar no arquivo. Como superusuário, use o echo “fcamargo

ALL=NOPASSWD:ALL” >> /etc/sudoers, que esta informação será inserida no fim do documento;

● Inserção de mensagens a usuários em scripts. As vezes, nos scripts, é interessante que

os comandos não rodem somente no nível de programa, mas que eles tragam alguma informação

ao usuário, como um diretório que foi criado pelo script, ou então um comando de erro, dizendo

exatamente o que houve de errado.

FREESintaxe: free [parâmetros]

Visualização da utilização da memória pelo sistema. O computador tá arriando? Então vá dar uma

olhada ver se não é problema de memória.

amontoado:~$ free -m total used free shared buffers cached Mem: 1003 945 58 0 0 423

78

Page 79: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

-/+ buffers/cache: 521 482 Swap: 1874 0 1874

É possível visualizar na primeira linha a utilização real da memória principal. Na segunda, o free

informa a quantidade de memória disponível para novos processos desconsiderando buffers cached. E a

terceira mostra as informações de Swap (memória virtual).

Buffers e caches podem ser entendidos como uma coisa só (somente por hora). Eles representam

espaços na memória que, apesar de terem dados armazenados, podem ser liberados a qualquer

necessidade. Sempre que algum programa é aberto, seus dados são carregados na memória principal; e

após seu encerramento, estes dados permanecem na memória para que o seu carregamento, numa

possível ressurreição do processo, seja feita rapidamente, já que ele já está carregado em segundo plano.

Isso ocupa a memória e é representado pela soma das colunas buffers e cached.

coluna shared é obsoleta. Veja o que diz o manual criado pelo próprio desenvolvedor

da ferramenta:A “The shared memory column should be ignored; it is obsolete.”

Agora podemos começar a entender os dados apresentados pelo comando free. Na primeira linha

temos, em ordem, o total de memória RAM disponível (já descontado o espaço reservado para o vídeo,

configurável na BIOS); em used é apresentado a soma do que está sendo usado por processos ativos com

os que já foram finalizados; depois o total que está completamente livre de dados; e, em buffers cached, é

possível ver a quantidade da memória que está sendo usada que poderá ser descarregada a qualquer

momento.

Na segunda linha temos as mesma informações que na primeira linha, porém ele desconta o buffers

cached da conta final. O total é o mesmo que da primeira linha. O used representa apenas aquilo que está

sendo usado por processos ativos, ou seja, que não podem ser descarregados da memória; e em livre

temos a soma do que está totalmente livre de dados mais o que pode ser descarregado a qualquer

momento.

Por fim, temos o swap. Swap é uma área dentro do HD que serve como uma extensão da memória

RAM, caso ela não consiga alocar todos os dados dos processos ativos, que não podem ser descarregados.

Obviamente que esta área, se utilizada, derruba o desempenho do sistema, por isso se ela começar a ser

usada, considere a ideia de se aumentar a quantidade de memória RAM do seu computador.

Entendendo a coluna cached

O cached (escondido em inglês) é quase igual ao cache dos processadores, porém ele é virtual e tem

seu tamanho variável, sempre limitado pelo tamanho da memória RAM. A memória RAM é muito mais

rápida que discos rígidos e barramentos de acesso a outras formas de armazenamento de dados. Quando

um processo é executado, pressupõe-se que ele é um processo popular, por isso, os sistemas operacionais

modernos, retém-no na memória mesmo após o seu encerrado. Isso é feito para que caso ele seja aberto

novamente já esteja na memória e seu carregamento total seja muito mais rápido do que se fosse

necessário buscá-lo nos dispositivos de armazenamento secundário novamente. Ou seja, os processos

frequentemente usados que são encerrados são mantidos na memória em segundo plano para que possam

79

Page 80: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

ser abertos mais rapidamente posteriormente.

Entendendo a coluna buffers

Buffers têm outra função. Eles servem como uma fila de dados que vêm de algum disco sem serem

solicitados explicitamente pelo sistema. Estes dados “bicões” na verdade têm uma grande probabilidade de

serem utilizados pelo seguinte motivo: um disco é composto por cilindros, trilhas e setores.

Toda vez que um setor é requisitado, a cabeça de leitura do disco posiciona-se sobre a trilha e a lê

inteira. Muitos setores compõe uma trilha, ou seja, muitos setores são lidos em apenas uma ação de leitura

da cabeça. Os sistemas operacionais têm um sistema de checagem de integridade de dados muito

exigente. Toda vez que um dado é requisitado, o sistema solicita à controladora do disco que entregue

apenas o primeiro setor correspondente àquele dado. Somente após a verificação deste setor, ele pede o

segundo, e assim por diante. Isso quer dizer que toda vez a cabeça lê a trilha inteira, mas só aproveita um

setor, depois tem que ler novamente a trilha inteira para aproveitar o segundo setor e assim por diante. Essa

leitura de toda trilha com baixo aproveitamento faz com que o desempenho do sistema caia muito. Os

buffers são dados armazenados numa área virtual, dinâmica e redimensionável, limitada pelo tamanho da

memória RAM, que recebe todos os setores de uma trilha mesmo que não solicitados. Como é quase

impossível alguma informação ocupar apenas um setor, é praticamente certo que o sistema usará estes

outros setores da trilha. Só que em vez de esperar o disco rígido, após verificar a integridade de um setor,

ele solicitará o próximo setor que já estará na memória RAM, agilizando o processo.

LNSintaxe: ln [parâmetros] <ponto-alvo> <nome-do-link>

Este comando irá criar links entre arquivos ou diretórios. Pode-se associar a ideia de link com atalhos

do Windows, mas nos sitemas unix-like o link é bem mais completo.

Existem dois tipos de link: softlink e hardlink.

80

Figura 11: Cilindros, trilhas e setores

Page 81: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Softlink ou Link Simbólico

É um arquivo especial que contém apenas o endereço do arquivo para qual aponta. Quando você

abre um arquivo que é link, na verdade ele solicita que o arquivo alvo seja aberto. Se o arquivo alvo for

apagado, o link simbólico passa a ser inutilizável, já que ele tentará abrir o arquivo inexistente.

Propriedades do softlink:

1. Podem ter como alvo tanto arquivos quanto diretórios;

2. O link simbólico e o arquivo alvo não precisam estar na mesma partição do disco;

3. Qualquer usuário pode criar ou excluir um link simbólico, respeitando as devidas permissões.

Hardlink

É atribuído somente a arquivos, nunca a diretórios. O hardlink funciona mais ou menos como um

espelho de um arquivo já existente, mas é um pouco mais complicado que isso. Imagine dados gravados

fisicamente no disco rígido que receberão o nome de Boeing. Boeing é acessado através de uma abstração

criada pelo sistema de arquivos, que é como se fosse uma lista de tudo que existe no disco. Quando o

sistema operacional quer acessar os dados físicos referentes a Boeing, ele não procura no disco

diretamente, mas sim vai até essa lista e procura o nome Boeing que está associado ao seu endereço no

disco. Após encontrá-lo, pede à controladora do disco que envie os dados do endereço encontrado. Quando

criamos um hardlink, criamos uma nova entrada nesta lista com outro nome, mas referenciando exatamente

o mesmo local. Digamos então que criamos um hardlink chamado Boneca. Então temos os dados Boeing

que podem, agora, ser encontrados pelo sistema operacional na lista tanto pelo nome Boeing, quanto pelo

nome Boneca. Cada um desses nomes é denotado na forma de um arquivo, ou seja, temos abstratamente

dois arquivos, porém fisicamente apenas um. Se apagarmos o arquivo Boeing, ele sai da lista do sistema de

arquivos, mas os dados armazenados fisicamente continuam acessíveis através do arquivo Boneca.

Somente após a exclusão do último arquivo que referencia os dados no disco rígido é que aquele espaço

será dado como disponível, podendo o sistema operacional utilizá-lo a qualquer momento. O arquivo deixou

de existir.

1. Só se pode criar um hardlink para um arquivo;

2. O link e o arquivo alvo devem estar na mesma partição;

3. Somente o superusuário pode criar e apagar um hardlink.

Exemplo de comparação

amontoado:/Curso# echo "Primeira Linha" > ALVO amontoado:/Curso# ln -s ALVO Link-Simbólico amontoado:/Curso# ls ALVO Link-Simbólico amontoado:/Curso# ls -l total 4 -rw-r--r-- 1 root root 15 Fev 19 16:59 ALVO lrwxrwxrwx 1 root root 4 Fev 19 16:59 Link-Simbólico -> ALVO amontoado:/Curso# cat Link-Simbólico Primeira Linha amontoado:/Curso# ln ALVO Hard-Link amontoado:/Curso# ls -l total 8 -rw-r--r-- 2 root root 15 Fev 19 16:59 ALVO

81

Page 82: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

-rw-r--r-- 2 root root 15 Fev 19 16:59 Hard-Link lrwxrwxrwx 1 root root 4 Fev 19 16:59 Link-Simbólico -> ALVO amontoado:/Curso# cat Hard-Link Primeira Linha amontoado:/Curso# echo "Segunda Linha" >> ALVO amontoado:/Curso# cat ALVO Primeira Linha Segunda Linha amontoado:/Curso# cat Link-Simbólico Primeira Linha Segunda Linha amontoado:/Curso# cat Hard-Link Primeira Linha Segunda Linha amontoado:/Curso# rm -f ALVO amontoado:/Curso# cat Hard-Link Primeira Linha Segunda Linha amontoado:/Curso# cat Link-Simbólico cat: Link-Simbólico: Arquivo ou diretório não encontrado amontoado:/Curso#

SUSintaxe: su - <usuário>

Assimilação: Switch Usuário – Troque de usuário!

Este comando irá trocar o usuário que está em primeiro plano no bash aberto. Se você está como

joao e der um “su – macale”, você passará a ser macale, logicamente que só se souber a senha. Se, como

macale, você usar o comando para encerrar a sessão, o usuário que estava logado antes voltará ao

primeiro plano, no caso o joao.

O “-” não é necessário, mas é importante, já que ele carrega todas as variáveis de ambiente

específicas do usuário.

TIMESintaxe: time [parâmetros]

E você começa a ficar habilidosa, adquirir competências, dentre elas desossar nos scripts. Cria um

script que é uma bíblia. Agora você quer saber em quanto tempo este novo script vai rodar. Dificilmente a

execução será feita num mesmo tempo todas as vezes, já que esta tarefa depende de processamento, que

envolve tráfego de dados e hardware. Mas os valores normalmente serão próximos. Aí você descobre uma

forma de tirar metade da fonte do seu script, e você acha que essa alteração vai tornar a execução dele

mais rápida. Como saber se essa sua proposição é verdadeira? Teste.

amontoado# time ./Script-que-nao-faz-nada real 0m27.110s user 0m2.748s sys 0m5.684s

Existem três linhas com valores diferentes. O real indicará o valor de espera do usuário, aquele que,

se cronometrarmos com nosso relógio velho de pulso, dará o mesmo tempo. O user indicará quanto

tempo o kernel dedicará somente ao seu processo (já que outros processos, chamadas de sistemas, entre

82

Page 83: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

outras coisas tomaram tempo do sistema); e sys indicará quanto tempo o processador se dedicará ao

processo (lembre-se que os sistemas baseados em Unix compartilham o processador).

TOUCHSintaxe: touch [parâmetros] <Arquivo/Diretório>

O touch permite que a data de modificação ou criação de um arquivo ou diretório seja alterado. Ele

possui uma segunda função, que é a criação de um arquivo de texto sem conteúdo. Ele só criará este novo

arquivo, se for especificado um nome de arquivo ou diretório que não exista.

amontoado:/Curso# ls -l total 0 amontoado:/Curso# touch Eita amontoado:/Curso# ls -l total 0 -rw-r--r-- 1 root root 0 Fev 26 09:56 Eita amontoado:/Curso# date Qui Fev 26 11:00:13 BRT 2009 amontoado:/Curso# touch Eita total 0 -rw-r--r-- 1 root root 0 Fev 26 11:00 Eita amontoado:/Curso# touch -t 01261200 Eita amontoado:/Curso# ls -l total 0 -rw-r--r-- 1 root root 0 Jan 26 12:00 Eita

Temos três formas diferentes de utilização do comando touch. O primeiro foi usado com um nome de

arquivo/diretório não existente. Isso fez com que fosse criado um arquivo novo com o nome especificado.

Depois, numa hora diferente, o touch foi usado com o arquivo que já existia. Isto fez com que a data de

modificação tenha sido alterada. Por último, a data e hora foi especificada com o parâmetro “-t”. A sintaxe é

a seguinte:

-t MÊS(Jan-Dez) | DIA(01-31) | HORA(01-23):MIN(01:59) Nome-do-arquivo/Diretório.

erceba que o resultado é igual às informações mostradas através do comando “ls -l”.

Então basta dar o “ls -l” e usar a cola. Copie, evite a fadiga de decorar.PUNAME

Sintaxe: uname [parâmetros]

Assimilação: Qual é “uname” do kernel?

Mostra informações do sistema, entre elas, informações sobre o kernel. As vezes, como um bom

administrador, você precisará instalar um pacote na unha, baixando pacotes e bibliotecas da internet, ou

então terá que compilar aplicações. Para fazer isso, será necessário que você saiba qual é o kernel (linux,

hurd, etc) e a release dele (2.6.26-1-686 por exemplo). Utilizando o parâmetro “-a” (all - tudo) é possível

visualizar várias informações do sistema.

amontoado# uname -a Linux ecelepar10160 2.6.26-1-686 #1 SMP Sat Jan 10 18:29:31 UTC 2009 i686 GNU/Linux

83

Page 84: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Informações em ordem:

Kernel Nome do computador Release do kernel …. Da Arquitetura Nome do grupo desenvolvedor do kernel

UPTIMESintaxe: uptime [parâmetros]

A principal função deste comando é informar ao administrador há quanto tempo o computador está

rodando. Além disso, podemos obter mais informações através dele.

felipe@amontoado:~$ uptime 11:49:03 up 2:25, 7 users, load average: 0.14, 0.09, 0.13

O primeiro campo informa qual foi a hora que o computador foi ligado. O segundo, após o termo up,

indica há quanto tempo o computador está ligado. Ele pode estar em horas ou então em dias (aparecerá o

número de dias seguido de days). Depois nós temos o “load average” (média de carga). O primeiro valor dá

a média da porcentagem de utilização do processador no último minuto, o segundo nos últimos cinco e o

terceiro nos últimos quinze minutos.

A média de carga indica qual é a média em porcentagem da utilização do processador por apenas

dois tipos de processos: (a) processos em execução; (b) processos esperando um recurso do computador

ou evento qualquer. Os processos em execução são aqueles que estão ou sendo processados pelo

processador ou estão na fila de processamento, somente aguardando a liberação do processador. Os

processos que esperam um evento ou recurso estão ativos, mas ociosos, pois estão esperando um recurso

do computador (dados de um disco, pendrive, rede, etc) ou um evento (confirmação do sistema, usuário,

conclusão de outro processamento, etc) para irem para a fila de processamento. Os valores estão no

formato 0.00, sendo que 1 significa 100%. O uptime não assume um valor de 200% caso se tenha um

processador de duplo núcleo. O que ele é faz é atribuir 50% da capacidade de processamento para cada

núcleo. Se temos um processador com núcleo duplo que está com média de 100% de utilização (1.00) e

você o troca por outro com mesmas especificações, só que com 4 núcleos, a média será de 50% (0.50), e

não 100% como antigamente. Faça uma regra de três tendo a soma dos núcleos igual a 1.00 para saber

como anda a utilização do seu processador. É possível se ter um valor maior que 100%, ou seja, maior que

1.00. Isso é possível porque além dos processos que estão em processamento, que podem vir a ocupar o

processador totalmente durante todo o tempo, fazendo com que média seja 1.00, contabiliza-se os outros

processos, mencionados acima, que estão na fila de processamento. Essa fila caracteriza o excesso,

representado pelo valor acima de 1.00, e é o que irá indicar em quanto o seu processador precisaria ser

aumentado para dar conta do recado.

WHATISSintaxe: whatis <comando-que-voce-nao-lembra-o-que-faz>

Ele fala mais do que concisamente o quê um comando faz. Conhece todos os comandos, mas

esqueceu o que exatamente um em específico faz? Use o whatis.

84

Page 85: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

dercy@amontoado:~$ whatis whatis whatis (1) - display manual page descriptions

WATCHSintaxe: watch <comando-que-será-”observado”-de-perto>

Precisa que um comando seja executado de 2 em 2 segundos para que você verifique o

comportamento de algum recurso o processo? O watch é a ferramenta certa. Ele sempre trabalha com um

comando, por isso se você precisar, por exemplo, assistir as alterações em um arquivo de log em tempo

real, será necessário utilizar um comando que mostre o conteúdo do arquivo, como cat, head, tail,

antecedido do watch.

$ watch tail /~/Curso/Arquivo-de-LogEvery 2,0s: tail /~/Curso/Arquivo-de-Log Wed Apr 15 09:19:26 2009

Agora será aberta uma nova aba, utilizando as teclas de atalho <CTRL>+<SHIFT>+<T>, e o

comando abaixo será executado:

$ echo “Serah que isto darah certo?” >> /~/Curso/Arquivo-de-Log

Ao voltar para a aba anterior, verificaremos que o watch terá pegado a alteração:

Every 2,0s: tail /~/Curso/Arquivo-de-Log Wed Apr 15 09:20:01 2009 Serah que isto darah certo?

Para sair do watch, utilizamos as teclas de atalho <CTRL>+<C>.

WHICHSintaxe: which <comando-que-voce-quer-descobrir-o-endereço-e-nome-do-binário>

E onde está o safado do binário do comando que você executa sem precisar passar o caminho, já

que ele está no seu path? O which lhe dirá, pode confiar.

tiao-galinha@amontoado:~$ which which/usr/bin/which

REBOOTSintaxe: reboot [parâmetros]

Reinicia o computador. Este comando na verdade irá fazer com que o computador mude de run level,

passando do corrente para o run level 1. Existem vários run level, e quando o sistema entra em um deles,

ele executa vários scripts inerentes a ele. Este assunto é bastante interessante e será abordado no curso

Debian Intermediário, então se acalmem. Por hora, iremos saber só o que acontece quando entra-se neste

run level. Os scripts sincronizam os dados da memória principal com a memória de massa. Isso nada mais é

do que criar referências na memória principal dizendo onde exatamente no disco os dados serão gravados.

Que dados? Configurações pessoais, variáveis de ambiente, arquivos de backup, etc. Depois será feita a

desmontagem dos dispositivos, momento em que os dados são gravados fisicamente nos discos e

dissociados do sistema. Então só resta descarregar todos os dados da memória e reiniciar o sistema. Em

85

Page 86: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

alguns casos, devido a configurações não padrões que não iremos abordar agora, pode ser que o reboot

não acione o init 1, sendo invocado no seu lugar o comando “shutdown -h now”, que faz a mesma coisa, só

que com comandos próprios.

HALTSintaxe: halt [parâmetros]

O halt (parar em inglês) fará a mesma coisa que o reboot, porém em vez de usar o init 1, ele usa o

init 0. A diferença está apenas no fato deste run level, em vez de reiniciar o sistema, acionar a chave que

interrompe a alimentação de energia do computador, desligando o computador.

SHUTDOWNSintaxe: shutdown [parâmetros] <momento-da-ação> <mensagem-opcional-broadcast>

Este comando é independente. Não trabalha com init nenhum. Com ele é possível tanto desligar o

computador (utilizando o parâmetro “-h” de halt), quanto reiniciá-lo (utilizando o parâmetro “-r” de reboot). O

legal do shutdown é que o administrador pode definir uma hora certa para que o computador seja desligado

ou reiniciado. Caso a ação deva ser executada ao pressionar do <Enter>, basta escrever now (agora em

inglês) após o comando e seu parâmetro.

amontoado:~# shutdown -r now (Irá reiniciar o computador imediatamente);amontoado:~# shutdown -hamontoado:~# shutdown -r 16:02 "O computador será reiniciado às 16:00"

Broadcast message from root@ecelepar10160 (pts/0) (Thu Feb 19 15:02:58 2009):O computador será reiniciado às 16:00 The system is going DOWN for reboot in 60 minutes!

No último exemplo, o administrador define uma hora para o reiniciamento do computador (16:02) e

uma mensagem que será enviada, para todos os usuários logados, uma hora antes da ação. No exemplo,

eu estava no pts/0. Veja o que aparece no pts/1 que estava logado como caiodarocha.

caiodarocha@amontoado:~$Broadcast message from root@ecelepar10160 (pts/0) (Thu Feb 19 15:02:58 2009):O computador será reiniciado às 16:00 The system is going DOWN for reboot in 60 minutes!

MONTAGEM DE DISPOSITIVOS (MOUNT E UMOUNT)O seu computador é composto por uma unidade central de processamento, dispositivos de entrada e

saída. Tudo que temos acesso através do comando cd, ls, cat, ou então aqueles diretórios e arquivos que

visualizamos como ícones no nosso gerenciador de arquivos são dados que estão dentro de dispositivos

físicos (hardware) que fazem parte de uma das unidades citadas acima. Estes dispositivos podem ser

memória RAM, disco rígido, pendrive, locais da rede, drives de dvd, etc. Todos estes dispositivos são

dispositivos de armazenamento de dados que podemos denominá-los como locais que temos acesso. A

partir do momento que eles são conectados ao computador, através de soquetes, slots ou cabos, eles

passam a ter acesso físico à unidade. Quando o sistema é ligado, se os módulos referentes a estes

dispositivos (como se fossem os drivers dos dispositivos) estiverem corretamente configurados, ativos e

86

Page 87: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

funcionando, os dispositivos serão reconhecidos e listados como nós de dispositivos. Mas estes nós de

dispositivos, como já visto anteriormente, são arquivos especiais que definem dentro da memória RAM

espaços destinados a troca de informações entre o sistema e os dispositivos. Se um dispositivo tiver como

informação um A, B e C gravadas fisicamente, dentro do espaço reservado na memória será criado um

espelho destas informações. Se o B for retirado de lá, após um comando de sincronia de dados, dentro do

dispositivo só existirá um A e um C. O grande problema dessa comunicação feita através dos nós de

dispositivos é que as informações estão em linguagem de máquina. Para que possamos acessar esta “área

de conversação” entre sistema e dispositivos dentro da memória RAM, é necessário que se crie um diretório

lógico que aponte para este espaço reservado. Os arquivos especiais são os dispositivos e os

diretórios que o usuário consegue interagir são os pontos de montagem. Após ter criado os diretórios,

devem ser associados aos arquivos especiais, fazendo com que o sistema saiba que sempre que um

arquivo ou diretório seja criado/excluído/modificado dentro de um ponto de montagem, as informações

devem ser enviadas àquele ponto reservado na memória e então, haverá a comunicação com o dispositivo.

Resumindo: montagem é associação de um espaço reservado na memória RAM, que corresponde ao

ponto de comunicação do sistema com um dispositivo, a um diretório lógico, para que os usuários consigam

receber e enviar dados para dispositivos que tenham acesso.

A montagem de dispositivos deve ser feita sempre pelo superusuário.

mount

Sintaxe: mount [parâmetros] <endereço-do-arquivo-especial> <ponto-de-montagem>

Vamos montar um disquete, que é um dispositivo simples:

amontoado:~# ls /media/floppy0amontoado:~# mount /dev/fd0 /media/floppy0/amontoado:~# ls /media/floppy0filepath.lst mainmenu.txt netrts_a.___ ntrpl nwserver readme.txt win2000 win98 linux netrts5.___ netrts.inf nwclient oemsetup.inf rset8139.exe Win95a winnt4

Perceba que o ponto de montagem é o /media/floppy0. Quando visualizado pela primeira vez, não

houve resultado, já que o disquete não tinha sido associado a ele. Após a execução do comando mount, o

arquivo especial foi associado ao ponto de montagem e agora os seus dados estavam acessíveis.

Quando o comando mount é executado sozinho, ele traz todos os locais que o sistema tem acesso,

dizendo qual é o ponto de montagem de cada um, seu sistema de arquivos e opções adicionais.

amontoado:~# mount/dev/sda2 on / type xfs (rw)tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)proc on /proc type proc (rw,noexec,nosuid,nodev)sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)procbususb on /proc/bus/usb type usbfs (rw)udev on /dev type tmpfs (rw,mode=0755)tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)

87

Page 88: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

/dev/sda1 on /boot type ext3 (rw)/dev/sda6 on /dados type xfs (rw)/dev/sda5 on /home type xfs (rw)none on /proc/fs/vmblock/mountPoint type vmblock (rw)//sceleparsmb03.celepar.parana/fcamargo on /media/fcamargo type cifs (rw,mand)//sceleparsmb03.celepar.parana/gga on /media/gga type cifs (rw,mand)//sceleparsmb03.celepar.parana/publico on /media/publico type cifs (rw,mand)//10.15.17.19/mpx$ on /media/mpx$ type cifs (rw,mand)/dev/fd0 on /media/floppy0 type vfat (rw)

aso um erro dizendo que o sistema de arquivos deve ser especificado, você terá que

utilizar o parâmetro “-t” de type, tipo em inglês, e o sistema de arquivo desejado. Ex:

mount -t vfat /dev/fd0 /media/floppy0.

C

umount

Sintaxe: umount [parâmetros]

Irá desassociar o arquivo especial e o ponto de montagem. Antes de fazer isso, o comando umount

irá fazer a sincronia de dados, ou seja, dar a ordem para que os dados gravados no espelho do dispositivo

na memória sejam gravados fisicamente nele.

amontoado:~# umount /media/floppy0amontoado:~# ls /media/floppy0

umount pode ser usado tanto informando o arquivo especial quanto o ponto de

montagem.O

88

Page 89: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

EXERCÍCIOS DE FIXAÇÃO (PARTE 3) 1.Crie um arquivo com o VIM chamado “Tudo Errado” que contenha várias linhas, cada uma com um

desses valores: “9” -” 66” -” 01” - “1” - “003” - “(espaço)4” -” 11”

A informação (espaço) não deve digitada literalmente. Pressione o <Espaço> do teclado.

2.Use um comando para organizar em ordem numérica (levando em consideração a magnitude dos

números, e não uma classificação simples da primeira casa ex: 002 – 3 - <espaço> 04) e, na mesma linha

de comando, grave o resultado em um arquivo de texto. Algum problema aconteceu?

3.Crie um único arquivo que contenha as informações dos seguintes arquivos

◦hostname◦fstab◦issue◦timezone

Nomeie esse novo arquivo como Concatenacao..

4.Execute um comando para assistir a atualização do comando dmesg. Depois disso, insira um

pendrive ou retire o cabo de rede do computador. Verifique o que aconteceu.

5.Encontre os seguintes arquivos e coloque os seus respectivos endereços absolutos:

“Aproveite para dar uma olhada nos arquivos”

a)debian_version (arquivo que mostra a versão do debian);

b)menu_lst (arquivo que possui as configurações do gerenciador de partida – GRUB);

c)fstab (arquivo que possui os pontos de montagem e seus sistemas de arquivos);

d)cpuinfo (arquivo que possui informações a respeito do processados);

e)(algum número) persistent-net-rules (arquivo com a associação do endereço MAC ao nome);

f)Encontre todos arquivos que possuam mais de 20MB no seu sistema.

g)Encontre todos arquivos especiais de soquete que estão dentro do /dev.

6.Qual é o diretório que está usando mais espaço em disco: /boot, /home ou /usr? Qual é o espaço

que cada um está utilizando?

7.Utilizando o comando “alias”, crie um comando chamado “Bom-Dia” que resulte numa mensagem

no terminal respondendo “Pra quem?”.

8.Qual é a partição e dispositivo (hda2, sdb6, etc) em que está alocado o diretório /usr/lib? Qual é o

tamanho total dessa partição e a porcentagem dela que está em uso pelo sistema? O diretório /usr/lib utiliza

quantos porcento da partição?

9.Execute o comando ifconfig como usuário normal. Como você fez isso?

10. Há quanto tempo o seu computador está ligado?

11. Agende para o computador desligar na hora que o instrutor informar.

12. Monte o disquete fornecido pelo instrutor primeiro no modo gráfico, desmonte-o, depois no modo

texto, desmonte-o. Se existir uma partição Windows no seu computador, monte-a no diretório

/home/<usuário que estiver usando>/Windows e faça com que essa partição seja montada no mesmo

diretório toda vez que o computador for iniciado.

13.Qual é a média da porcentagem de utilização do processador nos últimos 5 minutos?

89

Page 90: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

COMANDOS PARA GERENCIAMENTO DE REDEPara ser um bom administrador de redes, você precisará saber o que é uma rede. Afirmação óbvia,

porém muitos administradores não tem total domínio de uma rede simplesmente por não conhecerem

conceitos e elementos básicos dela.

INFORMAÇÕES BÁSICASIremos então, antes de começar a ver os comandos, entender um pouco alguns conceitos

necessários para uma boa administração de rede.

IP

É o número de identificação de uma interface de rede. Numa rede regida pelo protocolo TCP/IP, todos

os dispositivos que fazem algum tipo de interfaceamento com a rede recebem um número de identificação

denominado IP. Esse IP é composto por quatro sets de oito bits, sendo cada set denominado octeto. Bits

possuem valores binários. O menor valor de um octeto é 00000000 e o maior é 11111111. Para facilitar a

vida de nós humanos, resolveu-se trabalhar com números de decimais. Convertando 00000000 para

decimal, temos o valor 0, ou seja, 0 é o menor valor decimal de um dos quatro campos do IP; e 11111111

convertendo para decimal é igual a 255, ou seja, 255 o maior valor para um dos quatro campos do IP.

10.15.17.100 = 0000 1010 . 0000 1111 . 0001 0001 . 0110 0100

ara quem tiver curiosidade em saber como se converte números binários em

decimais e vice-versa, veja o anexo na página Erro: Origem da referência não

encontrada.

P

Redes e faixas disponíveis

Existem dois tipos de rede: a física e a lógica. A física é a interconexão de todos os computadores por

cabos ou rádio, com vários elementos de rede, como hubs, roteadores, switches, etc, que fazem com que

os dados cheguem nos lugares certos. A lógica é a divisão virtual de uma rede física. Podemos ter vários

computadores com acesso físico, mas em redes diferentes devido a configuração de redes lógicas.

Uma rede sempre será identificada com o primeiro IP existente na faixa que faz parte a ela. Digamos

que temos uma rede que vá da faixa 10.15.15.0 a 10.15.15.255. O primeiro IP, o 10.15.15.0, será o IP da

rede. O último, o 10.15.15.255, será o IP de broadcast. Ambos são endereços reservados que não podem

ser atribuídos a hosts (computadores clientes, os normais). Pode-se ter, então, 254 hosts (256, contando

com o zero, menos o IP de rede e de broadcast). E você sabe o que é broadcast? Sempre que alguma

solicitação deve ser feita a todos os computadores da rede, como por exemplo escanear se existe alguma

impressora na rede, envia-se a pergunta para o endereço de broadcast, que nada mais é do que enviar a

pergunta a todos os computadores que façam parte da rede.

90

Page 91: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Máscara de rede

É responsável por identificar, a partir do IP de uma máquina, qual é a sua rede. Digamos que temos

um computador cujo IP é 10.15.17.100. Se a máscara for 255.255.255.0, então a identificação da rede é

10.15.17.0. Para fazer esse cálculo, devemos contrapor os dois valores.

10.15.17.100 = 0000 1010 . 0000 1111 . 0001 0001 . 0110 0100 255.255.255.0 = 1111 1111 . 1111 1111 . 1111 1111 . 0000 0000Colocando a máscara de rede sob o IP, iremos riscar os valores que estiverem acima dos zeros:

10.15.17.100 = 0000 1010 . 0000 1111 . 0001 0001 . 0110 0100 255.255.255.0 = 1111 1111 . 1111 1111 . 1111 1111 . 0000 0000A rede será:10.15.17.0 = 0000 1010 . 0000 1111 . 0001 0001 . 0000 0000Se a máscara de rede for um número quebrado, como 255.255.252.0, teremos uma rede diferente:

10.15.17.100 = 0000 1010 . 0000 1111 . 0001 0001 . 0110 0100 255.255.252.0 = 1111 1111 . 1111 1111 . 1111 1100 . 0000 0000A rede será:10.15.16.0 = 0000 1010 . 0000 1111 . 0001 0000 . 0000 0000

Sempre a máscara terá que ter ou somente 0, ou então terá que ser composta por números uns sem

zeros a sua esquerda. Não existe máscara como 1110 1111 1111 ....., sempre terá que ser 1111 1111

1100 ...sequência de zeros. E qual é diferença entre as duas redes? Na primeira o número de redes

disponíveis é maior que na segunda, porém o números de hosts é menor. Para se saber o valor exato, basta

utilizar a fórmula 2n, onde n é o número de bits correspondentes à rede e aos hosts. Então teremos:

Com a máscara 255.255.255.0 pode-se ter:

○ Rede: 224 = 16.777.216 redes possíveis.

○ Host: 28 = 256 hosts possíveis.

Com a máscara 255.255.252.0 pode-se ter:

○ Rede: 222 = 4.194.304 redes possíveis.

○ Host: 210 = 1024 hosts possíveis.

Roteador e Gateway

Redes distintas podem se comunicar, mas é necessário que alguns dispositivos façam o meio de

campo entre elas. O roteador é o responsável por criar esse elo entre as redes. Ele normalmente possui

uma interface para cada rede que faz parte. Se existem três redes locais, normalmente o roteador possui

quatro placas de rede, uma para cada rede local e uma para conectar-se a internet. Quando um computador

precisa se conectar a um outro computador de uma mesma rede local, ele faz isso diretamente. Quando

precisa se conectar a um computador que está em outra rede, vai até o roteador que envia a requisição

para o computador servidor como se fosse dele, recebe a resposta e envia para o computador que fez a

solicitação. O IP da interface de rede do roteador recebe o nome técnico de gateway (portão, passagem).

Normalmente a identificação do gateway é o primeiro ou segundo IP disponível. Se a rede é 10.15.15.0, o IP

do gateway é 10.15.15.1 ou 10.15.15.2. Isso é o recomendado, mas não a regra.

91

Page 92: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Servidor de nomes (DNS)

Sempre que qualquer pessoa escreve no seu navegador www.orkut.com.br, o computador diz a si

mesmo “meu saci, o que isso quer dizer?”. Sabe por quê? Porque o computador só entende dois números:

zero e um. Então para que ele possa se conectar a um computador que possua as páginas que você deseja

acessar ele precisa do IP de um servidor web. Mas imagine decorar o IP do hotmail, gmail, orkut,

meubaralho, etc? Complicado. Para que nós possamos trabalhar com nomes em vez de números, existem

os servidores de nomes que resolvem nomes. Resolver um nome é converter um nome em um IP. Faça um

teste: abra o navegador web e escreva na caixa de endereço o seguinte IP: 67.15.114.118. Você será

remetido a página www.uglypeople.com. O DNS associa a nomes IPs, para que possamos ter a

comodidade de decorar nomes de servidores, e não esses números loucos.

IFCONFIGIfconfig é usado para configurar as interfaces de rede. Ele sempre é rodado na inicialização do

sistema para ativar as interfaces de rede definidas e configuradas nos arquivos de configuração de rede.

Após a inicialização, ele pode ser usado para que o administrador possa fazer alterações momentâneas em

alguma característica das interfaces. Sempre que o computador for reiniciado, as configurações dos

arquivos são restauradas.

macale@amontoado:~$ sudo ifconfig eth0 Link encap:Ethernet Endereço de HW 00:1d:7d:e1:77:2e inet end.: 10.15.17.26 Bcast:10.15.19.255 Masc:255.255.252.0 endereço inet6: fe80::21d:7dff:fee1:772e/64 Escopo:Link UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1 RX packets:1628218 errors:0 dropped:0 overruns:0 frame:0 TX packets:78780 errors:0 dropped:0 overruns:0 carrier:0 colisões:0 txqueuelen:1000 RX bytes:210596466 (200.8 MiB) TX bytes:13171490 (12.5 MiB) IRQ:221 Endereço de E/S:0x2000

lo Link encap:Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereço inet6: ::1/128 Escopo:Máquina UP LOOPBACKRUNNING MTU:16436 Métrica:1 RX packets:99896 errors:0 dropped:0 overruns:0 frame:0 TX packets:99896 errors:0 dropped:0 overruns:0 carrier:0 colisões:0 txqueuelen:0 RX bytes:19280980 (18.3 MiB) TX bytes:19280980 (18.3 MiB)

/ETC/NETWORK/INTERFACESEste é o arquivo de configuração da rede no Debian. Ele é bem fácil de se configurar. Vejamos dois

casos bastante utilizados.

Rede com IP dinâmico, ou seja, com servidor DHCP:

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

92

Page 93: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

allow-hotplug eth0

iface eth0 inet dhcp

A primeira informação que temos é o loopback. Loopback é um canal que envia dados para si

mesmo, afim de se testar algum dispositivo ou serviço, ou então acessar localmente algum recurso que

espera-se ser acessado remotamente. Então é uma interface virtual. O IP dessa interface é o 127.0.0.1 e,

normalmente, seu nome é localhost. Para saber se este nome foi atribuído a ele, você pode visualizar o

conteúdo do arquivo /etc/hosts.

amontoado:~# cat /etc/hosts

127.0.0.1 localhost

Depois temos uma placa de rede física chamada eth0 que está configurada para receber as

informações de um servidor DHCP. Veja cada parte do arquivo de configuração:

auto eth0

Quer dizer que o módulo referente à placa eth0 será carregada automaticamente na inicialização do

sistema. Se você quiser desabilitar a placa, tendo que levantar o módulo referente a ela na mão (ou seja,

por comando), basta tirar o auto e manter o nome da interface.

Existe uma outra opção que pode ser usada no lugar de auto, o allow-hotplug. Tem o mesmo

significado que o plugandplay do windows. Quando o sistema detecta o dispositivo físico, ele

automaticamente carrega o seu módulo referente. Mas daí você me pergunta qual é a diferença entre auto e

allow-hotplug. Simples: o primeiro sempre terá seus módulos carregados na inicialização, independente do

sistema encontrar ou não o dispositivo; o segundo só terá seus módulos carregados caso o sistema detecte

o dispositivo físico.

iface <nome da interface> inet <forma de definição de IP>

Em iface deve-se dizer qual é a inteface que está sendo configurada (o nome é dado pelo sistema e

não pode ser alterado) e inet é onde o administrador define se o IP será fixo ou fornecido por um servidor

DHCP. Existem outras opções, mas estas duas são as principais. Se for DHCP, é só fazer como o exemplo

anterior. Se for fixo, será necessário escrever static e definir manualmente todos os parâmetros da rede.

# The primary network interface allow-hotplug eth0

iface eth0 inet staticaddress 10.10.10.10netmask 255.255.255.0gateway 10.10.10.1

Apesar de ter que se escrever num arquivo de texto, é muito fácil. Não lembra os nomes address,

netmask? Use o “man interfaces” que você encontrará não só eles, como outros parâmetros, apesar que os

três citados acima já são suficientes.

93

Page 94: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

PINGAs vezes é necessário testar se algum computador da rede está respondendo. Com o ping, alguns

pacotes são enviados para um destino especificado solicitando apenas umas resposta. Se esta resposta

não chegar é porque alguma coisa está errada com a interface de rede do computador servidor. Não adianta

tentar entrar no site do repositório ou então tentar entrar remotamente em um computador se eles não

respondem a ping.

macale@amontoado:~$ ping www.repositorios.eparana.parana PING scelepar00031.eparana.parana (10.15.40.171) 56(84) bytes of data. 64 bytes from 10.15.40.171: icmp_seq=1 ttl=62 time=2.19 ms 64 bytes from 10.15.40.171: icmp_seq=2 ttl=62 time=1.97 ms ^C (cancelado através do <CTRL>+<C>)--- scelepar00031.eparana.parana ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1004ms rtt min/avg/max/mdev = 1.976/2.083/2.190/0.107 ms macale@amontoado:~$

O comando ping nunca pára, por isso, após finalizar seus testes, será necessário cancelar através do

comando <CTRL>+<C>.

ROUTESintaxe: route [parâmetros]

Permite que o administrador visualize a tabela de roteamento configurada no sistema. Sempre ao se

executar o comando, todas as regras de roteamento serão listadas em ordem de prioridade. A primeira linha

será atendida primeiramente e assim por diante. Se houver conflito de regras de roteamento, a linha mais

acima prevalecerá. Existem várias colunas com informações da tabela, vejamos o que cada uma significa.

amontoado:~# route -n Tabela de Roteamento IP do Kernel Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface 10.15.16.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0 0.0.0.0 10.15.16.1 0.0.0.0 UG 0 0 0 eth0

Primeiro vamos ver o que cada coluna significa e depois veremos um exemplo para ficar mais fácil o

entendimento.

Destino

É a coluna que contém o IP da rede ou computador remoto que é o destino das requisições de

serviços de rede. Quando o endereço é igual a 0.0.0.0, entenda isso como o coringa asterisco (*), ou seja,

qualquer rede ou computador que não esteja especificado em linhas acima.

Roteador

É o gateway. Todas as requisiões destinadas à rede ou computador remoto listando na coluna

Destino, deverão ser enviadas para o roteador especificado nesta coluna para que ele possa enviar para o

seu destino. Caso o valor seja 0.0.0.0, então a solicitação será feita através de broadcast, ou seja, o

computador vai enviar a solicitação para toda a rede e o computador que seja aquele requisitado é quem vai

se identificar.

94

Page 95: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

MáscaraGen

Permite que você defina se a regra de roteamento será aplicada a um computador ou a uma rede. Se

for a um computador específico, use o valor 0.0.0.0, porque desta forma qualquer endereço colocado na

coluna Destino será considerada integralmente.

ExemplosDestino 10.15.16.5 e MáscaraGen 0.0.0.0 → A regra de roteamento será aplicada a solicitações

feitas ao computador 10.15.16.5.Destino 10.15.16.5 e MáscaraGen 255.0.0.0 → A regra de roteamento será aplicada a solicitações

feitas a todos os computadores que fizerem parte da rede 10.0.0.0.

Opções

Alguma das opções que mais aparecem nesta coluna são essas:

U (Vem de UP, ou seja, a regra está no ar) H (Vem de HOST, e indica que o alvo é um computador cliente) G (Vem de GATE, indica que se está usando um roteador) ! (rota rejeitada)

Iface

Toda vez que uma solicitação for feita ao computador da coluna Destino, deve ser enviada à placa de

rede especificada nesta coluna, para que ela ou envie para toda rede através de broadcast (caso o roteador

esteja configurado como 0.0.0.0) ou então ao roteador definido.

Exemplo

amontoado:~# route -n Tabela de Roteamento IP do Kernel Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface 10.15.16.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0 0.0.0.0 10.15.16.1 0.0.0.0 UG 0 0 0 eth1

Irei acessar o computador 10.15.18.5 que está configurado com máscara 255.255.252.0 por ssh. A

primeira regra que vemos de roteamento diz que todos as solicitações que forem enviadas para a rede

10.15.16.0 devem ser enviadas para toda rede por broadcast através da interface eth0. Como o IP

10.15.18.5 confrontada à máscara 255.255.252.0 indica que ele está na rede 10.15.16.0, então a conexão

por ssh será feita obedecendo esta regra. Não haverá roteamento. Será feito broadcast para toda a rede e

o computador 10.15.18.5 deverá gritar dizendo “sou eu esse louco aí!”. Depois eu resolvo acessar o

www.uglypeople.com para ver que existem pessoais tão prejudicadas como eu no mundo. O IP deste site é

67.15.114.118. Mesmo sem saber qual é a sua máscara, é evidente que este computador não está na rede

10.15.16.0, então passaremos para a próxima regra. Ela diz que as requisições feitas a qualquer

computador no mundo devem ser enviadas para o roteador 10.15.16.1 através da interface de rede eth1.

Ele irá, então repassando a solicitação para vários roteadores até chegar ao computador 67.15.114.118, que

enviará aquelas coisas lindas para a sua tela.

NMAPSintaxe: nmap [parâmetros] <hosts>

É uma ferramenta de escaneamento das portas de um computador. Com ele, o administrador poderá

95

Page 96: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

conhecer uma série de informações a respeito dos serviços e versões de portas, tempo que o sistema está

ativo e qual é o sistema operacional que está rodando em determinado host.

$ nmap localhost

Starting Nmap 4.62 ( http://nmap.org ) at 2009-02-26 14:35 BRT Interesting ports on localhost (127.0.0.1): Not shown: 1709 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 139/tcp open netbios-ssn 445/tcp open microsoft-ds 631/tcp open ipp 5900/tcp open vnc

Nmap done: 1 IP address (1 host up) scanned in 0.095 seconds

Parâmetros Descrição

-sV Permite que descubra informações a respeito dos serviços e versões destes de um host.nmap -sV 10.15.15.15

-p Especifica qual porta deverá ser escaneada. Todas as outras serão ignoradas.nmap -p 22 10.15.15.15

-O Tenta descobrir qual é o sistema operacional de um host e há quanto tempo ele está ativo. Não é 100% confiável, mas é uma mão na roda. O sistema operacional é difícil de errar, mas a versão não é muito confiável.nmap -O 10.15.15.15

-A A de agressivo. Esta opção ativará vários outro parâmetros, fazendo com que a busca seja mais completa. As vezes algumas portas, por estarem sendo usadas por serviços não padrões delas, acabam sendo ignorados. Com esta opção é possível fazer uma pesquisa mais profunda de tudo que está acontecendo em cada porta. Se ela estiver ativa, com este parâmetro terá uma grande probabilidade de descobrir o que roda nela.nmap -A 10.15.15.15

É possível definir uma faixa de ip para escaneamento.

$ nmap 10.15.15.0-50

Starting Nmap 4.62 ( http://nmap.org ) at 2009-02-26 14:36 BRT Interesting ports on 10.15.15.1: Not shown: 1712 closed ports PORT STATE SERVICE 23/tcp open telnet 80/tcp open http 280/tcp open http-mgmt

Interesting ports on 10.15.15.37: Not shown: 1710 closed ports PORT STATE SERVICE 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 5800/tcp open vnc-http 5900/tcp open vnc

Interesting ports on 10.15.15.38: Not shown: 1709 closed ports PORT STATE SERVICE 135/tcp open msrpc

96

Page 97: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

139/tcp open netbios-ssn 445/tcp open microsoft-ds 912/tcp open unknown 5800/tcp open vnc-http 5900/tcp open vnc

Nmap done: 51 IP addresses (3 hosts up) scanned in 2.325 seconds

Se quiser, é possível usar coringas, como por exemplo 10.15.*.10-15. A faixa de IP inicia na faixa 10 e

vai até o 15. Interprete o “-” como a preposição a (do 10 a 15).

HOSTNAMESintaxe: hostname [parâmetros] <se-desejar-alterar-o-nome,defini-lo>

O hostname mostra o nome de um computador ou então altera este nome. Para apenas mostrar,

execute o comando sem nenhum complemento; para alterar o nome, defina um nome qualquer após o

comando hostname como superusuário.

# hostnamerobeta# hostname garotinho # hostname garotinho

pós alterar o nome do computador, é necessário reiniciar a sessão para que as

configurações tenham efeito. Caso isto não seja feito, os processos podem não

funcionar corretamente.

A

97

Page 98: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

EXERCÍCIOS DE FIXAÇÃO (PARTE 4) 1.Faça a associação das colunas:

A) IPB) GatewayC) RoteadorD) DNSE) MáscaraF) Endereço de redeG) Broadcast

I) Nó de rede (pode ser um computador ou um componente próprio para roteamento) responsável por realizar a conexão entre redes distintas.

II) IP reservado para identificar redes de computadores.

III) Serviço de resolução de nomes que faz associação entre estes e IPs.

IV) IP que, ao ser confrontado ao IP de um host, identifica a rede que este host pertence.

V) Número que identifica um computador em uma rede com o padrão 0.0.0.0, podendo os números variar de 0 a 255.

VI) IP reservado que ao ser o destino de pacotes faz com que estes sejam enviados a todos os computadores da rede.

VII) IP do roteador.

Resposta: A = ___ , B = ___ , C = ___ , D = ___ , E = ___, F = ___

2.Qual é a rede do computador 10.15.17.100 configurado com a máscara 255.255.252.0?

3.Sabendo-se que dois IPs devem ser reservador para um servidor de arquivos e um roteador com

as diretivas de segurança, quantos endereços estão disponíveis para hosts na rede acima?

4.Qual é o IP, endereço de broadcast e máscara da sua máquina?

5.Quais são os parâmetros essenciais para se fixar um IP em um computador? Qual é o arquivo em

que devemos inserir os parâmetros da rede? Dados os valores abaixo, simule a configuração do arquivo

citado anteriormente:

IP: 10.12.11.10

Rede: 10.12.11.0

IP do roteador: Segundo IP disponível da rede, em ordem crescente.

ão esqueça de colocar as informações iniciais, como nome do dispositivo e forma de

definição de parâmetros de rede. Se tiver dificuldades, abra o arquivo no seu

computador ou então execute o comando “man <nome-do-arquivo-de-configuração> (sem

o <>).

N

6.Qual é o IP do site www.bandacalcinhapreta.com.br/?

7.Digamos que você já é hacker em scripts e está criando um agora. Durante um determinado

momento na confecção, é necessário que você insira um comando no código para aparecer o nome do

computador que rodar o script, para este seja usado por outros comandos do script. Além disso, no fim do

script, você precisará inserir uma mensagem ao usuário dizendo “Meus parabéns, desta vez você não

estragou o computador”. Preencha as lacunas para que se tenha esse resultado.

“comando $louco ** que <> não &()-- faz nada=yes...`_______________` //(comando para

mostrar o nome do computador a ser usado no script) burns=informe if informe entra++ todos

saem-- *&% @@ | eita £¢ meu saci `____________________________________________`

(comando que irá mostrar a mensagem “Meus para.....”).

8.Existe a possibilidade de se conectar por ssh no seu gateway?

98

Page 99: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

COMANDOS DE GERENCIAMENTO DE CONTASTodos os sistemas baseados em Unix possuem usuários que iniciam sessões, armazenando suas

configurações pessoais em diretórios próprios. Além disso, todos o esquema de permissão, que garante a

grande confiabilidade nestes sistemas, é baseado em usuários e grupos. Iremos ver agora alguns

comandos essenciais para gerenciamento das contas que possuem acesso aos sistemas.

ARQUIVOS DE CONTAS DE USUÁRIOS E GRUPOSExistem algumas tarefas que podem ser realizadas ou através de comandos ou através da alteração

de arquivos. É imprescindível que um administrador saiba quais são os documentos envolvidos nesse

processo. /etc/passwdTodos os usuários locais conhecidos pelo sistema ficam dentro desse arquivo. Cada linha representa

um usuário, e cada linha é dividida em campos separados por uma vírgula.

amontoado:~# cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh ...parana:x:1000:1000:Desktop Parana,,,:/home/parana:/bin/bash ze:x:1001:1001:Ze Galinha,13,041 3456-78910,041 3456-78911,041 9999-99999:/home/doidao:/bin/bash macale:x:1002:1002:,,,:/home/macale:/bin/bash

Todas as colunas (informações) são separadas por “:”. Acima são perceptíveis 7 campos.

Coluna Descrição

1ª coluna (nome) É o login do usuário.

2ª coluna (senha) Aparece um “x”. Antigamente a senha era apresentada. Por motivos de compatibilidade com versões antigas, este campo foi mantido, porém a senha não aparece mais. Apesar de somente o superusuário poder acessar este arquivo, usuários colocavam senhas iguais a de e-mail, por exemplo, permitindo que o administrador acessasse dados não pertinentes a sua tarefa.

3ª coluna (UID) É o número de identificação do usuário. Não poderá se repetir. Ele existe para que o sistema trabalhe com aquilo que ele está mais habituado, que são números. Os usuários do sistema vão de 0 (que será do root SEMPRE) a 999. A partir do 1000 começam os usuários normais.

4ª coluna (GID) É igual ao UID, porém é o grupo principal do usuário. Se você alterar manualmente este campo, o grupo principal será alterado. Da mesma forma que acontece com o comando USERMOD, o usuário terá um novo grupo principal, porém deixará de fazer parte do grupo antigo (veja mais na página 100).

5ª coluna (info) Lembram-se das perguntas feitas ao se adicionar um usuário com o comando adduser? Neste campo é que elas são armazenadas. Em ordem: Nome Completo, sala, 1º telefone, 2º telefone e 3º telefone. Para visualizar estas informações, execute finger <nome do usuário>.

6ª coluna (home) Indica qual é a pasta pessoal do usuário. O administrador pode alterar esta informação normalmente (é igual ao usermod -d).

7ª coluna (Info) Indica o shell que é utilizado pelo usuário. Existem vários shells. O mais utilizado por quem adota o debian é o bash. Se o usuário quiser que outro shell seja o padrão, basta alterar este campo.

99

Page 100: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

/etc/group

Dentro deste arquivo fica registrado a lista de todos os grupos existentes no sistema.

amontoado:~# cat /etc/group root:x:0: daemon:x:1: diplomata:x:1002: feio-como-o-cao:x:1003:macale,zeengenheiro:x:1004: ze:x:1005: doidao:x:1006: ze

Assim como o passwd, este arquivo é dividido em colunas, só que com bem menos informações. A

primeira coluna é o nome do grupo, o segudo a senha do grupo, a terceira o GID e por fim os usuários que

fazem parte do grupo, exceto os que o tem como principal.

amontoado:~# id ze uid=1005(ze) gid=1005(ze) grupos=1003(feio-como-o-cao),1006(doidao),1005(ze)

O usurário ze faz parte dos grupos:

ze (principal)

feio-como-cao (secundário)

doidao (secundário)

Veja no arquivo /etc/group que ele aparece no último campo dos grupos secundários, mas não no

principal. Isso se deve ao fato de que o grupo principal já está especificado no arquivo /etc/passwd. Se o

administrador desejar adicionar um usuário a um grupo, pode simplesmente escrever o login dele nesse

último campo. Os usuários devem ser separados por vígula sem espaços.

/etc/shadow

O arquivo shadow foi criado para resolver o problema de segurança relacionado às senhas que eram

armazenadas no arquivo passwd. Elas ficam neste arquivo criptografadas. Além disso, este arquivo permite

que o administrador cancele a senha de um usuário ou então simplesmente visualize há quanto tempo a

senha foi alterada.

Veja quais são os campos contidos no arquivo.

amontoado:~# cat /etc/shadow ...macale:$1$QOP.HCE9$A2l7Kc6BX8i.SdYiMTJI/0:14280:0:99999:7::: doidao:$1$2eG.qb4i$2VMZzTiLYmD4tNnbPLUYu1:14280:0:99999:7:::

Coluna Descrição

1ª coluna (nome) Login do usuário.

2ª coluna (senha) Senha criptografada.

3ª coluna (1970) Número de dias, a partir do dia 1º de janeiro de 1970, que a senha não é alterada.

4ª coluna (tempo mínimo com Quantos dias, a partir do dia da criação de um conta, que o usuário ficará

100

Page 101: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Coluna Descrição

senha padrão) impossibilitado de alterar a senha.

5ª coluna (tempo máximo de alteração de senha)

Quantos dias o usuário terá para alterar a senha. Caso esse prazo seja transposto, a conta é expirada.

6ª coluna (alerta) Quantos dias antes de uma conta expirar, o usuário deve ser alertado.

7ª coluna (remoção de conta) Quantos dias após a conta ser expirada, ela deve ser removida do sistema.

8ª coluna (há quanto tempo) Número de dias, a partir do dia 1º de janeiro de 1970, que a conta foi removida do sistema.

ADDUSERSintaxe: adduser [parâmetros] <usuário>

Para adicionar um usuário no sistema, é necessário seguir um procedimento padrão de adição de

usuário, onde o administrador informa vários dados ao sistema.

# adduser lolita Adding user `lolita' ... Adding new group `lolita' (1008) ... Adding new user `lolita' (1008) with group `lolita' ... Creating home directory `/home/lolita' ... Copying files from `/etc/skel' ... Digite a nova senha UNIX: Redigite a nova senha UNIX: passwd: senha atualizada com sucesso Modificando as informações de usuário para lolita Informe o novo valor ou pressione ENTER para aceitar o padrão

Nome Completo []: Lolita de Castro Alcantara Número da Sala []: 171 Fone de Trabalho []: 2666-6666666 Fone Doméstico []: 3666-666666 Outro []: x

Is the information correct? [Y/n] Y # su - lolita lolita@amontoado:~$

USERDELSintaxe: userdel [parâmetros] <usuário>

Qual é o inverso de se adicionar um usuário? Removê-lo. Se é o inverso, inverta o comando

alterando o add por del.

101

Figura 12: Adduser x Userdel

Page 102: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Ao remover um usuário, todas as entradas que o referenciam são apagadas. Se o usuário faz parte

de vários grupos, deixará de fazer. Todos os vestígios do usuário serão apagadas do sistema. Apenas uma

coisa não será apagada, a pasta pessoal do usuário.

userdel -rf

Estes parâmetros são muito úteis para o administrador, pois ele resolve alguns problemas que o

userdel tem quando usado sozinho. O “r” remove o diretório e o spool de impressão de um usuário,

independente dele ter conteúdo ou não, e o “f” força a remoção, ignorando avisos do sistema que outros

usuários estão dentro do diretório do usuário ou usando a sua fila de impressão.

ADDGROUPSintaxe: addgroup <nome-do-grupo>

Sempre que você adiciona um usuário, um grupo com o mesmo nome também é adicionado, desde

que, através de parâmetros, o administrador especifique que o usuário será adicionado diretamente a um

grupo existente. Mas e se o administrador quiser criar apenas um grupo? Usa o addgroup. Depois é

possível adicionar usuários ao sistema de três formas nesse novo grupo:

Usando o comando adduser (página 101);

Usando o comando usermod (página 119);

Alterando o arquivo /etc/group (página 100).

# addgroup petinho Adding group `petinho' (GID 1009) ... Concluído. # tail -n 1 /etc/group petinho:x:1009:

GROUPDELSintaxe: groupdel <nome-do-grupo>

Remove o grupo do sistema. Caso exista algum usuário dentro do grupo, automaticamente ele

perderá todas as referências a esse grupo. Se o administrador tentar remover um grupo que seja o principal

de um usuário, a operação será cancelada.

amontoado:~# id eita uid=1007(eita) gid=1007(eita) grupos=1007(eita) amontoado:~# groupdel eita groupdel : não foi possível remover grupo primário do usuário.

Se um arquivo ou diretório tiver o grupo a ser removido vinculado em suas permissões, em vez do

nome do grupo, aparecerá o GID dele:

amontoado:/home/eita# id eita

uid=1007(eita) gid=1005(ze) grupos=1005(ze) amontoado:/home/eita# ls -l total 0

102

Page 103: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

-rw-r--r-- 1 eita eita 0 Fev 12 10:56 Arquivo-Inútil

amontoado:/home/eita# groupdel eita amontoado:/home/eita# ls -l total 0

-rw-r--r-- 1 eita 1007 0 Fev 12 10:56 Arquivo-Inútil

Isso quer dizer o quê? Quer dizer que o próximo grupo criado que se apossar do mesmo GID do

grupo antigo irá assumir o papel de grupo dos arquivos e diretórios que ficaram órfãos.

PASSWDSintaxe: passwd <nome-do-usuário>

Altera a senha do usuário ou do próprio superusuário distraído que esqueceu sua senha. Se o

comando for executado como um usuário normal, será necessário digitar a senha corrente e depois a nova.

Se for executado pelo superusuário daí a história é diferente, basta digitar a senha nova e acabou.

IDEste comando irá mostrar o ID do usuário e dos grupos que o usuário especificado fizer parte. Caso

nenhum grupo for definido, o sistema mostrará as informações do usuário corrente.

ze@amontoado:~$ id macale uid=1002(macale) gid=1002(diplomata) grupos=6(disk),24(cdrom),25(floppy),29(audio),29(audio),44(video),46(plugdev),60(games),104(lpadmin),108(messagebus),110(gdm),111(netdev),116(powerdev),1000(parana),1002(diplomata),1003(feio-como-o-cao)

GROUPSSintaxe: groups <usuário>

Quase igual ao comando id. A diferença está no fato dele ignorar os ID dos usuários e grupos. O

grupo principal sempre será o primeiro.

macale@amontoado:~$ groups diplomata disk cdrom floppy audio video plugdev games lpadmin messagebus gdm netdev powerdev parana feio-como-o-cao

GETENTSintaxe: getent [banco de dados]

É um “incursor” que traz de uma forma fácil informações de vários bancos de dados administrativos.

Estes bancos de dados fornecem informações a respeito de contas de usuários; serviços que estão rodando

no sistema; e protocolos e informações de rede.

Os bancos de dados que podem ser consultados por ele são:

➔ passwd;➔ group;➔ hosts;➔ services;➔ protocols;

103

Page 104: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

➔ e networks.

amontoado:~# getent networks default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 amontoado:~# cat /etc/networks default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0

Como pode ser visto acima, o getent buscou o arquivo que é responsável por informar ao sistema

quais são os nomes de algumas redes. Como o arquivo é o /etc/networks, a sua saída é igual a ele. Se

fosse outro arquivo, o getent buscaria automaticamente o certo, já que ele sempre pergunta ao sistema qual

banco de dados ele está utilizando. Este recurso é interessante quando se está trabalhando com o LDAP.

Este serviço é um servidor de diretórios que permite centralizar todos os usuários com suas respectivas

senhas, permitindo que um usuário possa logar em qualquer computador que esteja na mesma rede do

servidor e possua o cliente LDAP instalado. Mas como vimos anteriormente, o padrão do Debian é ter as

informações de usuários no arquivo /etc/passwd. Se o administrador instalar o cliente LDAP, configurá-lo e

ao usar o getent passwd, este retornar o arquivo /etc/passwd, é porque a configuração está errada. Estará

tudo certo quando o getent perguntar ao sistema e este responder que as informações de usuários estão

vindo do servidor LDAP. É perceptível a diferença, ainda mais quando a quantidade de usuários

cadastrados no servidor é bastante grande, como acontece na maioria das secretarias do estado.

104

Page 105: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

COMANDOS PARA GERENCIAMENTO DE PROCESSOSVocê já deu o seu “apt-get install pacote tal”, configurou o que foi preciso, caso tenha sido preciso, e

depois começou a utilizar com a maior alegria o seu mais novo pacote. Se for um aplicativo para usuário,

mais evidente é o resultado e mais alegria o usuário tem. Maravilha! Mas daí você olha torto para mim e

pergunta: quer dizer que quando eu abro o iceweasel para ver meu contra-”choque”, o que estou abrindo é

um pacote? Negativo. O pacote morreu. Mas não precisa chorar, porque existe vida pós-pacote.

O pacote é um emaranhado de arquivos necessários para a instalação. Dentro deles temos scripts,

binários, bibliotecas, imagens, ou seja, tudo que é necessário para a instalação de um programa. Após a

instalação, o administrador criva o sistema com vários arquivos, podendo, e isso é o normal, jogá-los em

vários lugares diferentes (todos estratégicos, como vimos na definição de natureza dos diretórios da raiz do

sistema).

Quando executamos um binário de um programa, ele é carregado na memória virtual, que é a

memória principal (normalmente a RAM), assim como todos os arquivos dos quais depende. Todos esses

arquivos recebem um número de identificação e podem ser acessados através de um diretório. Além desse

número, para facilitar o gerenciamento pelo administrador, esse agrupamento recebe um nome. O

agrupamento em si é chamado de processo; o número de identificação é chamado de PID (Process

Identification – Identificação do Processo); e o nome deste processo será, normalmente, igual ou parecido

ao nome do pacote que instala o programa.

Os diretórios que apontam para os espaços na memória que contêm os arquivos de um processo

ficam dentro do /proc. Cada processo possui um diretório específico.

amontoado:~# ls /proc

Visualize o diretório e veja que existem subdiretórios com números. Esses números são os PIDs. Se

você visualizar estes diretórios encontrará todos os arquivos utilizados pelo processo.

Resumindo. Processos são programas que estão carregadas na memória e estão utilizando os

recursos do sistema. Todos possuem PID, nome e um diretório que contém todos os arquivos necessários

para o seu funcionamento.

Fácil de identificá-los, então. Estes processos possuem estados, que é o status deles no sistema. Um

processo pode estar:

Em execução;

Pronto para execução;

Esperando algum evento ou recuso.

Por se tratar de um sistema multitarefa, vários processos podem rodar simultaneamente, mas a

utilização dos recursos da máquina são feitos um de cada vez. Por isso, se temos 3 processos ativos e

exigindo processamento, 1 deles estará em execução e 2 estarão prontos aguardando a sua vez. Existem

processos que ficam esperando dados de algum dispositivo de armazenamento, rede, periféricos, ou então

uma simples ordem do sistema operacional para ficar pronto e ir para execução. Esta comunicação é feita

através dos sinais. Os principais são:

105

Page 106: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Sinal Descrição

STOP Este sinal pára o processo.

CONT Continua o processo parado.

TERM Solicita a finalização do processo ao mesmo.

KILL Força a finalização do processo. Ideal para momentos críticos.

PSSintaxe: ps [parâmetros]

O comando PS permite que o administrador visualize várias informações sobre os processos. Os

principais parâmetros são os seguintes:

-a = ALL. Processos de todos os terminais abertos são listados. Sem este parâmetro, a listagem será

somente dos processos iniciados a partir do terminal em que o ps rodou.

-u = USER. Traz mais informações na listagem. Uma delas é o nome do usuário proprietário do

processo.

-x = NÃO SEI. Ao usar o ps, apenas os processos que foram iniciados a partir de um terminal são

listados. Se o administrador quiser listar os processos que não foram abertos a partir de um terminal, usa-se

este parâmetro. Estes são os processos abertos pelo kernel, como o gdm (interface gráfica), por exemplo.

São identificados por um ? Na coluna TTY.

Vejamos como é saída deste comando:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 1984 688 ? Ss 09:10 0:01 init [2] root 2 0.0 0.0 0 0 ? S< 09:10 0:00 [kthreadd] ...root 3091 0.0 0.1 14636 2004 ? Ss 09:10 0:00 /usr/sbin/gdm fcamargo 3743 0.0 0.4 7444 4472 pts/0 Ss 09:22 0:00 bash root 3763 0.0 0.2 10644 2192 pts/0 S 09:22 0:00 su root 3765 0.0 0.2 5664 2948 pts/0 S 09:22 0:00 bash

USER Nome do usuário proprietário do processo.

PID Número de identificação do processo.

%CPU Utilização do processador em porcentagem.

%MEM Utilização da memória em porcentagem.

VSZ Tamanho do espaço ocupado na memória virtual (normalmente RAM).

RSS Tamanho do espaço ocupado na memória permanente (normalmente HD).

TTY Terminal a partir de onde o processo se originou.

STAT Estado do processo. Eles podem ser:D: Está esperando um evento ou um recurso para passar para o estado R. Não pode ser interrompido.S: Está esperando um evento ou um recurso para passar para o estado R. Pode ser interrompido.R: Em processamento.T: Pausado.Z: Processo zumbi. Normalmente é um processo que dependia de outro, e esse outro foi finalizado. Ele também é finalizado, mas por não ter sido feito diretamente, não é descarregado da memória.

106

Page 107: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

START Hora do início do processo.

TIME Tempo total de execução do processo pelo processador.

COMMAND Nome do binário que abre o processo.

TOPSintaxe: top [parâmetros]

É similar ao ps, porém ele mostra as informações dos processos em tempo real. O tempo de

atualização é de dois segundos.

top - 11:28:06 up 2:17, 2 users, load average: 0.90, 0.42, 0.22 Tasks: 117 total, 4 running, 112 sleeping, 0 stopped, 1 zombie Cpu(s): 44.9%us, 11.9%sy, 0.0%ni, 42.6%id, 0.0%wa, 0.3%hi, 0.3%si, 0.0%st Mem: 1035008k total, 1021224k used, 13784k free, 156k buffers Swap: 1919756k total, 144k used, 1919612k free, 431112k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3590 fcamargo 20 0 120m 30m 18m R 100 3.0 1:01.11 pidgin 3108 root 20 0 556m 192m 10m S 8 19.1 7:29.09 Xorg 3667 fcamargo 20 0 247m 100m 28m S 3 9.9 3:23.97 firefox-bin

As informações são as mesmas do ps. Podem mudar um pouco de nome, mas são intuitivas. Para

sair do TOP, pressione a tecla <Q> do teclado (Q de Quit – SAIR).

lguns parâmetros podem ser usados, mas poucos são usuais, por isso, caso queira

conhecer alguns, utilize o top --help ou veja o manual do top (man top).AKILL

Sintaxe: kill -[parâmetros ou SINAIS] <processo>

Alguns processos não possuem modo gráfico para serem finalizados, ou então estão travados,

impossibilitando o encerramento na forma padrão. O KILL é o comando que envia sinais para os processos

indicando o que devem fazer. Ele pode enviar todos os sinais existentes, como vistos na página 105, mas se

não for explicitado, o KILL irá enviar o sinal TERM, que solicita a finalização do processo ao mesmo. Para

finalizar forçadamente um processo, utilize o parâmetro “-9”, que finaliza sem dó o processo,

descarregando-o completamente da memória. No exemplo abaixo iremos matar o processo GEDIT, que é o

editor de texto puro padrão do GNOME.

macale@amontoado:~$ gedit (pressione <CTRL+Z> para pausar o processo)^Z [1]+ Stopped gedit

Tente abrir a janela do gedit. Você perceberá que não haverá como.

macale@amontoado:~$ ps aux |grep gedit macale 4296 2.5 1.5 60184 16120 pts/0 T 11:54 0:00 gedit macale 4298 0.0 0.0 3260 752 pts/0 S+ 11:55 0:00 grep --color=auto gedit macale@amontoado:~$ kill -CONT 4296

107

Page 108: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

O CONT continua o processo que estava parado. Agora vamos ver outro exemplo, num caso mais

usual do KILL: “matando processos”.

macale@amontoado:~$ kill -9 4296

KILLALLSintaxe: killall <nome-do-binário-do-processo>

Caso um programa seja executado por vários usuários diferentes, cada usuário terá uma instância

própria, sendo que essas instâncias serão tratadas como processos diferentes, com PIDs diferentes. Se o

superusuário desejar matar todos os processos, independente do proprietário, ele pode usar o killall e não

precisará se preocupar com PIDs, pois bastará informar o nome do binário do processo.

Vejamos o exemplo a seguir. Existem várias pessoas utilizando o iceweasel (navegador de internet)

num mesmo computador. Cada um deles com seu próprio usuário, ou seja, sua própria instância. O

administrador resolve derrubar todas as instâncias de uma só vez.

amontoado:~# ps aux |grep firefox

fcamargo 12772 1.4 14.0 325712 145608 ? Sl Feb10 20:48 /usr/lib/iceweasel/firefox-bin -a iceweasel macale 15474 1.1 3.4 140360 35648 pts/2 Sl+ 10:49 0:01 /usr/lib/iceweasel/firefox-bin -a iceweasel parana 15588 1.6 3.4 140096 35700 pts/4 Sl+ 10:50 0:01 /usr/lib/iceweasel/firefox-bin -a iceweasel ze 15664 2.5 3.4 140552 35656 pts/6 Sl+ 10:50 0:02 /usr/lib/iceweasel/firefox-bin -a iceweasel root 15745 0.0 0.0 3264 812 pts/0 D+ 10:52 0:00 grep --color=auto firefox

Como você pode ver, os usuários fcamargo, macale, parana e ze estão usando o iceweasel, cujo

binário é o firefox-bin. Para matar todos os processos de uma só vez, basta executar o seguinte comando:

amontoado:~# killall firefox-bin amontoado:~# ps aux |grep firefox root 15966 0.0 0.0 3260 752 pts/9 S+ 11:07 0:00 grep --color=auto firefox

grep encontra ele mesmo procurando por firefox. É como se ele tivesse um scanner

na mão para fazer a busca e passasse sobre ele mesmo, já que durante a busca ele é

um processo.

O

JOBSSintaxe: jobs

Sempre que um processo está parado (pausado através do sinal STOP enviado pelo kill ou killall, ou

então através do <CTRL>+<Z>), ou então em segundo plano (quando usamos o & após o comando ou

então o comando BG, que será visto adiante), eles podem ser vistos através do ps como visto

anteriormente. Mas se você quiser ver apenas eles, você pode usar o jobs.

108

Page 109: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

macale@amontoado:~$ xcalc & [1] 16381 macale@amontoado:~$ Warning: Cannot convert string "calculator" to type Pixmap Warning: Cannot convert string "gray3?foreground=gray70&background=gray85" to type Pixmap

macale@amontoado:~$ jobs [1]+ Running xcalc & macale@amontoado:~$ ls -laR / > /dev/null ls: impossível abrir a pasta /boot/lost+found: Permissão negada ls: impossível abrir a pasta /etc/cups/ssl: Permissão negada ls: impossível abrir a pasta /etc/ssl/private: Permissão negada ^Z [2]+ Stopped ls --color=auto -laR / > /dev/null

macale@amontoado:~$ jobs [1]- Running xcalc & [2]+ Stopped ls --color=auto -laR / > /dev/null

Sempre que você digita um comando e o coloca em segundo plano, um número de identificação do

job é associado ao seu PID. O número de identificação do job fica entre colchetes ([1] por exemplo). Ao

executar o comando jobs serão listados os processos ou em segundo plano ou pausados. Depois foi

executado o comando “ls -laR / > /dev/null ”, que demora para ser finalizado. Durante o processamento, ele

foi interrompido através do <CTRL>+<Z>. Após ter feito isso, existirão dois processos na lista jobs: o que

está em processamento, mas em segundo plano (Running) e o que foi pausado e não pode ser utilizado até

que se envie um sinal para que ele continue.

FGSintaxe: fg [número de identificação do job]

FG vem de Fore Ground (plano de frente. Estranho? Lembre-se que fore quer dizer testa e testa fica

na frente, não?). Ou seja, com ele você consegue passar um processo que está em segundo plano para o

primeiro, ou então sinalizar para que um processo pausado volte a rodar.

macale@amontoado:~$ xcalc ^Z (ao pressionar o <CTRL>+<Z>)

[3]+ Stopped xcalc macale@amontoado:~$ fg xcalc xcalc

BGSintaxe: bg [número de identificação do job]

BG vem de Back Ground (plano de fundo). Ou seja, com ele você consegue passar um processo

que está em primeiro plano para o segundo. Vamos continuar usando o exemplo anterior do comando bg.

macale@amontoado:~$ fg xcalc

109

Page 110: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

xcalc ^Z (processo pausado através do <CTRL>+<Z>)[3]+ Stopped xcalc

macale@amontoado:~$ bg 3 [3]+ xcalc & macale@amontoado:~$

Primeiro o processo que estava em primeiro plano estava em primeiro plano. Ele foi pausado e então

foi enviado para segundo plano, liberando a linha de comando.

110

Page 111: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

COMANDOS PARA GERENCIAMENTO DE PERMISSÕESOs sistemas baseados no GNU/Linux podem ser enquadrados entre os sistemas mais seguros

existentes hoje em dia. E grande parte disso se deve ao fato desses sistemas terem um bem organizado

esquema de permissões.

PROPRIETÁRIOS, GRUPOS E OUTROS USUÁRIOSJá foi visto que no Debian existem usuários e grupos. Todo usuário do sistema deve,

necessariamente, ter pelo menos um grupo ao qual faça parte. Isso se deve ao fato de que toda vez que um

usuário cria um diretório ou arquivo, estes deverão ter um proprietário e um grupo associados a eles. O

proprietário será o usuário que criou o arquivo ou diretório, e o grupo será o grupo principal do mesmo

usuário.

Digamos que eu, logado com o usuário macale, faço parte dos grupos ostrapalhoesemreprise,

engenheiro e diplomata. Ao digitar o comando “id” recebo o seguinte resultado:

macale@amontoado:~$ id uid=1001(macale) gid=1001(diplomata) grupos=1001(diplomata), grupos=1002(engenheiro), grupos=1003(ostrapalhoesemreprise)

Podemos observar que o usuário macale, cujo UID é 1001, faz parte dos grupos diplomata,

engenheiro e ostrapalhoesemreprise, sendo que seus respectivos GID são 1001, 1002 e 1003, e que o seu

grupo principal é o diplomata. Sempre as duas principais informações serão UID do usuário e GID do grupo

principal, seguido de todos os outros grupos aos quais o usuário faz parte.

Toda vez que o usuário macale criar um diretório ou arquivo, ele mesmo será o proprietário e o grupo

será o seu principal no momento da criação.

macale@amontoado:~$ > EMOBIL macale@amontoado:~$ ls -l total 0

-rw------- 1 macale diplomata 0 Fev 2 10:48 EMOBIL macale@amontoado:~$ mkdir CATS macale@amontoado:~$ ls -l total 0

-rw------- 1 macale diplomata 0 Fev 2 10:48 EMOBIL

drwx------ 2 macale diplomata 6 Fev 2 10:49 CATS macale@amontoado:~$ mv EMOBIL CATS/

As informações apresentadas pelo comando “ls -l” já foram vistas na página 47.

TIPOS DE PERMISSÕESExistem três tipos de permissões que, dependendo do seu arranjo, podem criar uma série de regras

de acessos e gravações em diretórios e arquivos. Essas permissões ficam no INODE e podem ser vistas

com o comando “ls -l”. Toda vez que um tipo de permissão for ativada, a sua letra correspondente

aparecerá. Quando ela estiver desativada, aparecerá no seu lugar um hífen (-).

Além dos três tipos, existem três “sets” de permissões, cada um referente a uma espécie de usuário

diferente. Cada set é composto por três casas: rwx. Existem nove casas no total.

111

Page 112: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

O primeiro set é destinado ao proprietário do arquivo ou diretório; o segundo ao grupo ao qual ele

pertence; e, por último, o terceiro set é referente a qualquer usuário que não seja nem o proprietário, nem

faça parte do grupo.

-rwxr-xr-- 2 macale diplomata 6 Fev 2 10:49 EMOBIL

No caso acima, temos r,w e x para o proprietário macale, r e x para quem faz parte do grupo

diplomata e r para qualquer outro usuário.

leitura (r)

O r vem de Read, que significa LER em inglês.

escrita (w)

O w vem de Write, que significa ESCREVER em inglês.

execução (x)

O x vem de eXecute, que signifca EXECUTAR em inglês.

DIRETÓRIOSAs permissões não se comportam igual para arquivos e diretórios. Abaixo veremos como eles se

comportam nos diretórios.

Entrar

Para entrar em diretórios não basta ter apenas permissão de leitura. É necessário ter também

permissão de execução.

dr-------- 2 macale diplomata 19 Fev 2 10:50 CATS macale@amontoado:~$ cd CATS/ bash: cd: CATS/: Permissão negada

Com a permissão de execução, o proprietário conseguirá entrar no diretório CATS.

dr-x------ 2 macale diplomata 19 Fev 2 10:50 CATS

macale@amontoado:~$ cd CATS/

macale@amontoado:/home/macale/CATS$

Criar arquivos ou diretórios um nível abaixo

Temos aqui o seguinte endereço:

/home/macale/CATS

O diretório CATS está no quarto nível:

● 1º nível: / (raíz)● 2º nível: home● 3º nível: macale● 4º nível: CATS

112

Page 113: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Se você quiser criar um arquivo chamado Boeing dentro do diretório CATS, este arquivo ficará no quinto nível:

/home/macale/CATS/BoeingQuando você deseja criar algo no quinto nível, a permissão que deve ser observada é a do diretório

do quarto nível. O arquivo Boeing também terá permissões, mas elas só tem validade para o seu conteúdo,

não para o arquivo em si.

dr-x------ 2 macale diplomata 19 Fev 2 10:50 CATS macale@amontoado:~$ > CATS/Boeing

touch: impossível executar sobre `CATS/Boeing': Permissão negada macale@amontoado:~$ chmod u+w CATS/

macale@amontoado:~$ ls -l total 0

drwx------ 2 macale diplomata 19 Fev 2 10:50 CATS macale@amontoado:~$ > CATS/Boeing macale@amontoado:~$

ARQUIVOSOs arquivos podem ser normais ou binários. Todas as suas permissões são referentes apenas ao seu

conteúdo. Se você quiser remover, mover ou renomear um arquivo, terá que verificar as permissões do

diretório que o contém.

Ver conteúdo

Para que o conteúdo seja acessado, basta que o arquivo contenha a permissão de leitura.

macale@amontoado:~$ ls -l /etc/hostname

-rw-r--r-- 1 root root 14 Dez 4 08:46 /etc/hostname macale@amontoado:~$ cat /etc/hostname

amontoado

O usuário macale não é o proprietário nem faz parte do grupo root, ou seja, obedece ao terceiro set

de configuração (r--). Com essa permissão qualquer usuário poderá acessar o conteúdo do arquivo

hostname.

Alterar conteúdo

Para alterar um arquivo, é necessário que o usuário que deseja executar esta tarefa tenha permissão

de escrita (w). Usando o mesmo exemplo acima, vamos tentar alterar o conteúdo do arquivo.

macale@amontoado:~$ cat /etc/hostname amontoado

macale@amontoado:~$ echo celepar > /etc/hostname bash: /etc/hostname: Permissão negada macale@amontoado:~$ sudo su - amontoado:~# echo celepar > /etc/hostname amontoado:~# cat /etc/hostname celepar

O único usuário com permissão de alterar o arquivo é o superusário. Então, somente após logar como

113

Page 114: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

tal é possível fazer alguma alteração.

Criar arquivos binários

Os arquivos binários nada mais são do que arquivos de texto que possuem vários comandos que

devem ser executados por um interpretador de comandos, como o bash, por exemplo. Após ter criado o

arquivo com os comandos, para que o bash execute todas as linhas, é necessário que a permissão de

execução seja ativada.

Não cabe a nós estudarmos scripts neste momento, mas iremos criar um bem simples só para que

isso possa ficar bem entendido. Usando o VIM, crie o seguinte arquivo.

macale@amontoado:~$ vim Binário

Com o VIM aberto, insira o texo abaixo:

#!/bin/bashls /

Salve o arquivo.

macale@amontoado:~$ ls -l total 4 -rw-r--r-- 1 macale diplomata 16 Fev 2 14:41 Binário

Para executar um arquivo binário, basta você passar seu nome com seu caminho completo (pode ser

o endereço absoluto ou relativo).

macale@amontoado:~$ ./Bináriobash: ./Binário: Permissão negada

Não basta criar um arquivo válido, ainda é necessário adicionar permissão de execução para todos os

usuários que irão poder executá-lo.

-rwxr-x--x 1 macale diplomata 16 Fev 2 14:41 Binário

Agora qualquer usuário conseguirá executá-lo.

macale@amontoado:~$ ./Binário bin boot cdrom dev etc home initrd.img initrd.img.old lib media mnt nonexistent opt proc root sbin srv sys tmp usr var vmlinuz vmlinuz.old

CHOWNSintaxe: chown <usuário> <arquivo/diretório> OUSintaxe: chown <usuário>.grupo <arquivo/diretório>O comando chown permite que se altere o usuário proprietário de um arquivo ou diretório. Possui a

possibilidade de alterar o grupo junto ao proprietário, mas nunca somente o grupo.

CHGRPSintaxe: chgrp <grupo> <arquivo/diretório>

Muda o grupo do qual um arquivo ou diretório faz parte.

114

Page 115: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

CHMODSintaxe: chmod <permissões> <arquivo/diretório>

Muda as permissões de um arquivo ou diretório. Existem várias formas de se alterar as permissões,

escolha a que mais lhe agrada.

Modo octal

Neste modo, você terá que passar um valor de 0 a 7 para cada set (proprietário, grupo e outros).

Cada número representa uma sequência de permissões diferentes. Cada tipo de permissão possui um valor

fixo, e a soma dos três valores é o que deverá ser usado juntamente ao chmod para alterar as permissões

de cada set. No total, teremos três números de 0 a 7.

r – leitura w – escrita x – execução

4 2 1

Permissões Octal

- - - 0

- - x 1

- w - 2

- w x 3

r - - 4

r - x 5

r w - 6

r w x 7

Para alterar as permissões, basta usar a sintaxe “chmod <nnn> <arquivo e dir>”.

ecelepar10160:~# chmod 754 ARQUIVO-LOUCO ecelepar10160:~# ls -l total 0 -rwxr-xr-- 1 root root 0 Fev 3 16:31 ARQUIVO-LOUCO

embre-se que a primeira casa é destinada a exprimir o tipo de arquivo. O hífen denota

arquivo, o d diretório, o l link simbólico, e assim por diante.LModo alfabético

Além do modo octal, o usuário poderá alterar as permissões de um arquivo ou diretório através das

letras que representam os tipos de permissões.

A sintaxe será “chmod <proprietário-grupo-outros>[+, - ou =]<permissões>”

Vamos entender cada parte.

115

Page 116: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

<proprietário-grupo-outros>

Proprietário = u (u de usuário) Grupo = g (g de grupo) Outros = o (o de outros)

As permissões podem ser definidas de uma vez para todos eles, ou então somente para o set desejado. Se for somente para um set, use o nome deste; se for mais de um set, use os nomes juntos; e se todos os sets forem definidos com as mesmas permissões, use o a de ALL (todos em inglês).

Exemplos:u definição de permissões somente do proprietário;g definição de permissões somente do grupo;o definição de permissões somente de outras pessoas;ug definição de permissões do proprietário e do grupo;a definição de permissões de todos os sets;

[+, - ou =]Agora você terá que utilizar uma dessas conjunções para definir se as permissões serão adicionadas,

removidas ou se todo o set será alterado. Sempre que o usuário utilizar o “=”, ele terá que definir todas as

permissões. Quando utilizar o “+” ou “-”, poderá alterar apenas um tipo de permissão.

<permissões>

Em vez de números, o usuário terá que utilizar as letras das permissões. “r” para leitura, “w” para

escrita e “x” para execução. Se usado com “+” ou “-”, o usuário poderá adicionar ou remover um, dois ou

três tipos de permissões, sem alterar aquele que não for expressamente definido. Se for usado o “=”, todos

os tipo de permissões têm de ser definidos, caso contrário, aquele que não foi definido, será

desabilitado.Exemplos:

macale@amontoado:~$ ls -l total 0 -rwxrwxrwx 1 macale diplomata 0 Fev 3 16:31 ARQUIVO-LOUCO

macale@amontoado:~$ chmod o-x ARQUIVO-LOUCO macale@amontoado:~$ ls -l total 0 -rwxrwxrw- 1 macale diplomata 0 Fev 3 16:31 ARQUIVO-LOUCO

macale@amontoado:~$ chmod go-rw ARQUIVO-LOUCO macale@amontoado:~$ ls -l total 0 -rwx--x--- 1 macale diplomata 0 Fev 3 16:31 ARQUIVO-LOUCO

macale@amontoado:~$ chmod g+r ARQUIVO-LOUCO macale@amontoado:~$ ls -l total 0 -rwxr-x--- 1 macale diplomata 0 Fev 3 16:31 ARQUIVO-LOUCO

macale@amontoado:~$ chmod a=rx ARQUIVO-LOUCO macale@amontoado:~$ ls -l total 0 -r-xr-xr-x 1 macale diplomata 0 Fev 3 16:31 ARQUIVO-LOUCO

UMASKFaça um teste. Crie um arquivo e um diretório qualquer e veja quais permissões foram definidas por

padrão. Após execute o comando umask.

macale@amontoado:~$ > QUALQUER-COISA

116

Page 117: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

macale@amontoado:~$ mkdir DIRETÓRIO macale@amontoado:~$ ls -l total 0 drwx------ 2 macale diplomata 6 Fev 4 10:38 DIRETÓRIO -rw------- 1 macale diplomata 0 Fev 4 10:38 QUALQUER-COISA

macale@amontoado:~$ umask 0077

Sempre que o usuário for criar um arquivo ou diretório, uma máscara será confrontada com um valor

inicial fixo e, daí, surge o padrão de permissões.

O valor fixo é diferente para arquivos e diretórios. Os diretórios possuem o valor inicial 777 e os

arquivos 666. O sistema simplesmente irá subtrair desses valores a máscara que o usuário definiu e trará o

resultado. No caso anterior:

Diretório Arquivo

Valor Inicial Fixo 0777 0666

UMASK (valor a ser subtraído) 0077 0077

Valor Padrão 0700 0600

O valor nunca será negativo. Caso o resultado dê -1, o valor será 0.

Além de visualizar a máscara definida para o usuário logado, o comando umask também permite que

o usuário altere-a.

macale@amontoado:~$ umask 0077

macale@amontoado:~$ umask 0066 macale@amontoado:~$ umask 0066 macale@amontoado:~$ > oi macale@amontoado:~$ ls -l total 0 -rw------- 1 macale diplomata 0 Fev 4 11:11 oi

666 – 066 = 600 (6=rw- ; 0=---; 0=---)

NEWGRPSintaxe: newgrp <usuário> <arquivo/diretório>As vezes é preciso que o grupo principal de um usuário seja alterado temporariamente. Imagine que o

usuário macale faz parte do grupo diplomata, feio-como-o-cao e engenheiro, sendo o primeiro o principal.

Só que ele decide criar um diretório que o grupo feio-como-o-cao tenha acesso. Isso poderia ser feito

criando-se o diretório e depois alterando o seu grupo. Porém com o newgrp, durante toda a sessão, o

grupo principal será feio-como-o-cao, otimizando o tempo do usuário.

117

Page 118: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Exemplos:

$ mkdir SOH-PARA-OS-FEIOS $ ls -l

total 0

drwxrwx--- 2 macale diplomata 6 Fev 4 14:06 SOH-PARA-OS-FEIOS ***(O grupo é DIPLOMATA)$ rm -Rf SOH-PARA-OS-FEIOS/

$ newgrp - feio-como-o-cao $ mkdir SOH-PARA-OS-FEIOS $ ls -l total 0

drwxrwx--- 2 macale feio-como-o-cao 6 Feb 4 14:07 SOH-PARA-OS-FEIOS ***(O grupo mudou...)$ > SOH-PARA-OS-FEIOS/1 $ > SOH-PARA-OS-FEIOS/2 $ > SOH-PARA-OS-FEIOS/3

$ ls -lR . ***...durante toda a sessão).: total 0

drwxrwx--- 2 macale feio-como-o-cao 30 Feb 4 14:08 SOH-PARA-OS-FEIOS ./SOH-PARA-OS-FEIOS: total 0

-rw-rw---- 1 macale feio-como-o-cao 0 Feb 4 14:08 1 -rw-rw---- 1 macale feio-como-o-cao 0 Feb 4 14:08 2 -rw-rw---- 1 macale feio-como-o-cao 0 Feb 4 14:08 3 $ exit logout fcamargo@amontoado:~$ su - macale Senha:

$ > OI ***(Após reinciar o sistema, o grupo principal voltou a ser diplomata)$ ls -l total 0

-rw-r--r-- 1 macale diplomata 0 Fev 4 14:09 OI drwxr-xr-x 2 macale feio-como-o-cao 30 Fev 4 14:08 SOH-PARA-OS-FEIOS

“-” em frente ao grupo serve para carregar as variáveis de sistema do grupo que o

usuário está se conectando. Caso não seja colocado, as variáveis do grupo anterior

serão mantidas.

O

118

Page 119: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

USERMODSintaxe: usermod [parâmetros] <valores> <usuário>O comando newgrp altera o grupo principal do usuário temporariamente. Mas e se o usuário desejar

alterar o grupo principal permanentemente? Aí usamos o usermod, que irá modificar dados do usuário.

Esses dados são vários, e são definidos através de parâmetros e valores.

Parâmetro Descrição

-g (grupo) Altera o grupo principal do usuário. Ao executar este comando, o usuário deixará de fazer parte do grupo que era o principal.

-G (Grupo. Maior, ou seja, engloba MAIS grupos)-aG

Define todos os grupos secundários aos quais o usuário fará parte. Todos os grupos devem ser separados por vírgula e sem espaço. Este comando irá sobrescrever todas as informações anteriores, tendo que o administrador especificar todos os grupos secundários. Se a intenção for apenas adicionar um grupo, basta adicionar um “a” antes do G.Ex: usermod -aG miseraveis robsonpavan (o usuário robsonpavan foi adicionado ao grupo miseráveis sem alteração do grupo principal e nem sair de nenhum outro grupo. Se a opção -a não tivesse sido usada, o grupo principal manteria-se, porém o único grupo secundário seria miseraveis).

-d (diretório home)-md (move o home e o altera)

Altera o diretório home do usuário. Utilizando a opção “m” junto a este parâmetro, todo o conteúdo do home antigo é movido para o novo. Sem ela, todo o conteúdo do antigo diretório é apagado.Ex: usermod -md /home/feio andresp (o usuário andresp deixará de ter seu home em /home/andresp e passará para /home/feio. Todo o conteúdo do diretório antigo será transferido para o novo).

-l (login) Altera o nome do usuário, aquele utilizado para se fazer o login.

-L (locke)-U (unlocke)

O L bloqueia a conta de um usuário sem apagá-la. O U desbloqueia.

119

Page 120: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

EXERCÍCIOS DE FIXAÇÃO (PARTE 5) 1.Adicione os usuários chamados clotilde, madruga, jaiminho e zero-a-esquerda no sistema (as

senhas devem ser iguais aos nomes);

2.Crie um grupo chamado chegados-da-bruxa-do-71 e insira o usuário madruga a ele;

3.Crie outro usuário chamado presidente e, em vez de permitir que o sistema crie um grupo

presidente, faça com que seja criado e atribuído como grupo principal do usuário o grupo funcionarios-

dos-correios;

4.Agora crie os três diretórios abaixo:

a)/Curso/Permissoes/Ap-da-Bruxa-do-71;

b)/Curso/Permissoes/Pindamonhangaba;

c)/Curso/Permissoes/Correios.

5.Altere as informações de inode dos diretórios de acordo com a tabela abaixo:

Diretório Proprietário(Owner)

Grupo Principal(Group)

Permissões

Ap-da-Bruxa-do-71 clotilde chegados-da-bruxa-do-71 Owner ou Proprietário: TotalGroup ou Grupo: TotalUsers ou Outros: Nada

Pindamonhangaba jaiminho jaiminho Owner ou Proprietário: NadaGroup ou Grupo: TotalUsers ou Outros: Total

Correios presidente funcionarios-dos-correios Owner ou Proprietário: TotalGroup ou Grupo: TotalUsers ou Outros: Entrada

6.Agora crie os arquivos

.../Ap-da-Bruxa-do-71/Caldeirao com permissão total.

.../Pindamonhangaba/Mercearia com permissão total.

.../Correios/Sistema-dos-correios com permissão rwxrwx---.

7.Faça os testes abaixo e reporte um relatório sobre o comportamento do sistema.

a)Logue-se como jaiminho;

b)remova o arquivo caldeirao;

c)neste mesmo diretório crie um arquivo chamado Boca-livre tendo como grupo principal chegados-

da-bruxa-do-71 (use o newgrp);

d)adicione a frase “Dá um de tamarindo” dentro do arquivo Mercearia e adicione o horário de

entrada “Entrei às 11:30 da manhã” no arquivo Sistema-dos-correios.

e)Logue-se como madruga;

f)remova o arquivo caldeirao;

g)adicione a frase “Aulas de boxe com Madruga”;

h)após isso renomeie o arquivo Mercearia para Mercadinho;

i)veja a hora que o jaiminho iniciou sua dura jornada no sistema dos correios.

120

Page 121: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

8.O usuário jaiminho, para evitar a fadiga, acabou esquecendo de memorizar a sua senha. Existe a

possibilidade de recuperá-la? Altere a senha para 123456.

9.Remova o usuário presidente do sistema removendo todos os seus vestígios.

10.Temos um diretório /Oi com permissão 777 e um arquivo /Oi/Saci com permissão 000. É possível

remover esse arquivo como um usuário normal?

11.Qual processo está utilizando mais memória no seu computador?

12.Logue-se no terminal como madruga e abra o gedit em segundo plano, logue-se como jaiminho e

abra o gedit em segundo plano, logue-se como madruga e abra o gedit em segundo plano, agora visualize

todos os processos do gedit seu sistema. Quais são os PIDs deles? Mate todos utilizando apenas um

comando.

13.Abra o firefox pelo terminal. Pause o processo dele e verifique o que acontece com a janela do

firefox. Faça com que ele fique utilizável novamente.

14.Qual dos usuários abaixo não é um usuário padrão do sistema?

a)root

b)games

c)proxy

d)main

e)sync

15.Qual comando que, com determinado(s) parâmetros faz com que possamos visualizar os

processos que não estão vinculados a algum terminal?

16.O getent permite que visualizemos quais são as informações que o sistema está recebendo para

determinados recursos do sistema, como redes disponíveis, nomes definidos, usuários habilitados a utilizar

o sistema. Digamos que um usuário não consegue se logar no sistema. Como você verificaria se o usuário

está cadastrado e apto a logar?

17.Como fazemos para tornar um arquivo executável? Crie um arquivo utilizando o VIM com as

seguintes linhas:

#!/bin/bash

echo “Meu rapaz, você conseguiu! Seu arquivo de nada virou um executável”

Salve como Binário e torne-o um executável.

18.O chown permite alterar o usuário e grupo ao mesmo tempo? E o chgrp? Qual é a principal

diferença entre eles? Crie um diretório dentro do /tmp chamado Louco e altere o proprietário para clotilde e

o grupo para jaiminho.

19.Altere o diretório principal do usuário madruga para /home/saci. Depois de fazer isso, logue-se

como madruga e digite “cd”.

20.Altere o nome do usuário clotilde para bruxa-do-71.

21.Um arquivo “Oi“ possui permissões 665. Queremos tirar todas as permissões dos outros,

permissão de leitura do grupo e de alteração do proprietário, mas permiti-lo executar o arquivo. Qual destas

permissões não é a correta?

a)chmod u-w+x Oi; chmod g-r Oi; chmod o-rx Oi

b)chmod u=rx g=w o=x Oi

121

Page 122: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

INSTALAÇÃO DE IMPRESSORASA versão Zandor trás a ferramenta “Configuração da impressora” para facilitar a instalação, remoção e

gerenciamento de impressoras no sistema, assim como a gestão da fila de impressão. Vejamos como é fácil

a sua utilização.

ABRINDO O GERENCIADORNo menu Sistema, vá até o submenu Administração e selecione a opção “Impressão”. A seguinte

caixa de diálogo será aberta:

Nesta janela todas as impressoras instaladas aparecerão em formato de ícones com seus respectivos

nomes em baixo.

DEFININDO UMA IMPRESSORA PADRÃOA impressora padrão, ou seja, aquela que é utilizada preferencialmente por qualquer programa

instalado no sistema, é a que possui a marca . Para alterar a impressora padrão, clique com o botão

direito sobre a impressora que será o novo padrão e selecione “Set As Default” (Definir Como Padrão).

uando você abre o BrOffice.org e clica em imprimir, a impressora padrão é a que é

selecionada para ser utilizada automaticamente.Q

122

Figura 13: Caixa de diálogo "Configuração da impressora"

Figura 14: Definindo uma impressora padrão

Page 123: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

ADICIONAR UMA NOVA IMPRESSORAPara iniciar seus trabalhos de impressão, será necessário instalar uma impressora no

seu sistema. Esta tarefa é bem simples. Basta clicar sobre o botão que fica logo abaixo do

menu Arquivo. Também é possível clicar sobre Editar/Nova Impressora.

No painel “Selecionar Conexão”, você deverá indicar qual é a impressora a qual você deseja se

conectar, se, claro, ela for encontrada automaticamente. Caso isso não aconteça, então deverá ser indicado

a forma como o sistema se conectará a ela. As informações sempre serão apresentadas da seguinte forma:

Nome da impressora 0.0.0.0 (IP da impressora ou do servidor). Caso encontre-a, apenas selecione-a e

clique em <Avançar>. Caso ela não apareça, selecione a forma de conexão e informe os parâmetros

necessários na sessão que fica ao lado direito da caixa de diálogo.

unca instale uma impressora que esteja disponível nos dispositivos de “Selecionar

Conexão” e que estejam em computadores desconhecidos. Procure IPs que sejam ou

da impressora ou do servidor dedicado.

N

Tipo de impressora Device Parâmetros

Impressora local LPT #1 Nenhum parâmetro deverá ser definido.

Impressora com interface de rede

AppSocket / HP JetDirect

Será necessário informar o nome ou IP da impressora que irá ser instalada em “Nome da máquina” e o número da porta que será utilizada. A porta, por padrão, é 9100. Dificilmente será diferente disto. Caso não seja, verifique

123

Figura 15: Procurando o dispositivo

Page 124: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Tipo de impressora Device Parâmetros

o manual da impressora.

Impressora com interface de rede ou conectada a um servidor

Internet Printing Protocol (ipp)

Será necessário colocar o IP do servidor ou da impressora no campo “Nome da máquina”. Se usar o ip, você deverá deixar os parâmetros da seguinte forma:IP:631/printers/Nome-da-Impressora-no-Servidor

Impressora instalada em uma máquina Windows

Windows Printer via Samba

Será necessário passar os parâmetros exatamente da forma como explicado abaixo da caixa de texto “smb://” na sessão “Impressora SMB”. É possível ver um exemplo da configuração dos parâmetros na figura 16. Deve-se marcar a caixa de seleção “Set authentication details now” e inserir um nome de usuário e senha válidos do Windows. Clique em verificar antes de continuar para saber se a instalação será concluída ou não.

Impressora Virtual CUPS-PDF Uma impressora virtual é uma impressora que não existe fisicamente, somente logicamente. Toda vez que um trabalho de impressão for enviado a ela, a impressora virtual irá converter o trabalho em um arquivo PDF, e irá alocá-lo no diretório ~/PDF. Clique sobre o botão <Avançar> sem alterar nada.

Agora você deverá selecionar o driver da impressora. Normalmente o driver estará disponível no

sistema, tendo que apenas ser especificado o fabricante e seu modelo. Se você não tiver o arquivo ppd

(correspondente ao driver da impressora), deixe marcado “Selecionar impressora da base de dados”,

marque o fabricante e clique em <Próximo>. Se você tiver o ppd, selecione “Fornecer arquivo ppd”, clique

no botão ao lado direito da caixa de texto para navegar no seu sistema e indique onde e qual é o nome do

arquivo. Clique em <Avançar>.

124

Figura 16: Instalando uma impressora que esteja no Windows

Page 125: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Caso tenha selecionado procurar na base de dados, uma lista de modelos de impressoras do

fabricante definido que possuem suporte no Zandor será mostrada. Escolha a sua impressora e clique sobre

o botão <Avançar>.

Se ela não tiver suporte, clique sobre o botão <Avançar> entre no site www.linuxprinting.org e procure

o driver apropriado. Faça download do arquivo ppd recomendado e prossiga a instalação usando a opção

“Fornecer arquivo ppd”.

aso você esteja tentando instalar uma impressora virtual, escolha o fabricante

“Genérico” e o driver CUPS-PDF-Printer, Generic CUPS-PDF Printer [em]

(recomendado).

CApós indicar qual driver será instalado, você precisará definir um nome para a impressora. O nome é

um campo obrigatório e não pode conter espaços e caracteres especiais. Os campos “Localização” e

“Descrição” não são obrigatórios. Clique sobre o botão <Aplicar> e a impressora será instalada

corretamente.

REMOVER UMA IMPRESSORAClique como botão direito sobre a impressora que deseja remover

para que seja aberto o menu de contexto. Selecione a opção “Excluir”.

Confirme clicando sobre o botão <OK> e pronto, sua impressora terá sido

removida do sistema.

125

Figura 17: Instalando o driver da impressora

Figura 18: Menu de contexto para remover uma impressora

Page 126: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

SSHAcessos remotos são importantíssimos para administradores de redes, pois não é sempre que eles

têm a possibilidade de estar diante do computador que precisam configurar ou consertar. Vários serviços

permitem que haja conexão remota entre computadores, e o que iremos ver agora é o SSH.

SSH (Secure Shell Client – Cliente seguro do shell) é um serviço que, se instalado corretamente em

dois computadores, permite que eles acessem o sistema um do outro de uma forma muito segura. Segura

porque ele troca informações criptografadas e possui uma série de recursos para impedir que pessoas não

permitidas acessem os servidores ou mesmo interceptem os dados das transmissões. Para que ele

funcione, precisaremos sempre que um, pelo menos, tenha o servidor SSH instalado e que o outro tenha o

cliente.

INSTALANDO E INICIANDO O SERVIÇOOs pacotes que são necessários estar instalados para que a conexão exista são os seguintes:

Servidor openssh-server

Cliente openssh-client

Para instalar os dois, basta instalar o metapacote ssh, que instalará os dois pacotes acima:

amontoado:~# apt-get install -y ssh

Após ter o SSH instalado corretamente é necessário que o cliente tenha um usuário válido no

servidor.

ão é possível se conectar ao servidor usando um usuário do cliente. Se você não tiver

nem souber login e senha de nenhum usuário, não poderá se conectar.NPara iniciar a conexão, o daemon (gerenciador do serviço SSH) do servidor deverá estar rodando. É

ele que é responsável por escutar as solicitações, fazer as conexões, gerenciar e operar as transmissões de

dados. Após instalar o ssh, automaticamente o serviço já estará funcionando. Mas se isso não acontecer,

você poderá saber se o daemon está rodando verificando se a porta do SSH está aberta através do

seguinte comando:

amontoado:~# nmap localhost Starting Nmap 4.62 ( http://nmap.org ) at 2008-11-24 08:11 BRST Interesting ports on localhost (127.0.0.1): Not shown: 1711 closed ports PORT STATE SERVICE 22/tcp open ssh Nmap done: 1 IP address (1 host up) scanned in 0.074 seconds

Se a porta estiver aberta o ssh estará rodando na porta 22. Acontece que é possível que alguém

tenha alterado a porta manualmente e, caso isso tenha acontecido, a porta 22 não aparecerá aberta. O

nmap não conseguirá dizer qual é a porta em que o SSH está rodando caso ele não esteja na padrão

(somente com ajuda de alguns parâmetros, como o -A, que será visto mais à frente). Resta-nos visualizar

126

Page 127: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

através do comando ps se existe um processo do daemon. Para isso, execute o seguinte comando:

amontoado:~# ps aux |grep sshd root 2369 0.0 0.0 5236 984 ? Ss Nov21 0:00 /usr/sbin/sshd

Como você pode perceber, o processo sshd (SSH Daemon) existe e está ativo. Agora você poderá

acessar o servidor, desde que tenha permissão para isso.

Se nada for encontrado, você poderá iniciá-lo manualmente. Para isso, execute os seguintes

comando:

amontoado:~# /etc/init.d/ssh start * Starting OpenBSD Secure Shell server sshd

CONECTANDO-SE AO SERVIDORA conexão deverá ser feita através de comando que respeite a seguinte sintaxe:

ssh [parâmetros] <usuário>@<nome.da.máquina>

Veja abaixo um exemplo de como se conectar a um servidor. Este será o 10.15.17.30.

fcamargo@amontoado:~$ ssh [email protected] The authenticity of host '10.15.17.30 (10.15.17.30)' can't be established. RSA key fingerprint is 44:b7:01:cf:c3:14:14:76:4f:18:18:e2:8e:f9:dc:c5. Are you sure you want to continue connecting (yes/no)?

o caso acima, o usuário poderia ser suprimido. Se você não especificar um usuário, o

ssh irá completar esta informação com o usuário que você está logado no momento.

Caso não use este campo, retire também o @.

Ex: ssh 10.15.17.30

N

A primeira vez que você se conectar a um servidor será informado que não foi possível estabelecer

uma associação entre o IP e MAC da interface de rede verificada com o que consta no arquivo

~/.ssh/know_hosts. Isso é óbvio, já que é a primeira vez que você se conecta ao computador e não há

registros. Essa verificação é feita para que você tenha certeza que, a partir da segunda vez, o servidor o

qual está se conectando é o mesmo que o que você quer. Como pode o computador não ser o mesmo se

você colocou o mesmo IP? Ele pode ter sido reinstalado ou então um servidor DHCP pode ter enviado um

novo endereço para ele. Caso isso aconteça, um erro na conexão acontecerá, mas fiquei tranquilo, pois a

solução será fácil. Você só terá que abrir o arquivo know_hosts do usuário logado no shell, no computador

cliente, e então apagar a linha referente ao computador que você estiver com problemas. Se não souber

qual é a linha, apague todas.

Será perguntado se você te certeza que quer se conectar caso o registro do computador não exista.

Se isso acontecer digite “yes” e tecle <ENTER>. Então você poderá entrar com a senha (o que acontecerá

direto caso o servidor esteja registrado). Após você ter digitado a senha corretamente, a seguinte tela será

mostrada:

127

Page 128: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

amontoado:~# ssh [email protected] [email protected]'s password: Linux ecelepar91893 2.6.26-1-686 #1 SMP Thu Oct 9 15:18:09 UTC 2008 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Mon Nov 24 10:53:33 2008 from 10.15.15.8 fcamargo@pilintra:~$

Você está conectado ao sistema do computador 10.15.17.30, que tem o nome pilintra.

Parâmetros (opções)

Da forma como foi mostrado acima, a conexão será feita da forma padrão. Existem alguns

parâmetros que permitem que você tenha suporte a outros recursos do ssh, como por exemplo conectar-se

so servidor com suporte gráfico. Vejamos os principais:

Parâmetro Descrição

-X (maiúsculo)

Habilita o encaminhamento X11 (servidor gráfico). Com este parâmetro você poderá abrir aplicativos através do terminal e usá-lo no modo gráfico. Um exemplo de aplicativo que poderá ser executado é o Iceweasel (navegador da internet). O som não será ativado, por isso abrir um player de mp3 não será possível.Exemplo: $ssh -X [email protected] <ENTER>

-p(porta)

Permite que você altere a porta que o ssh irá tentar se conectar. Se você não especificar a porta, o comando sempre tentará se conectar à porta 22. Se a porta tiver sido alterada, uma mensagem dizendo que a conexão foi refutada será mostrada.Exemplo: $ssh -p 2222 [email protected] <ENTER>

COPIANDO COM O SSHAs vezes é necessário copiar algum arquivo ou diretório do cliente para o servidor ou vice-versa. Para

fazer isso, utilizaremos o comando scp que é instalado junto com o openssh-client. Não existe como você

logar num sistema e tentar copiar para o seu computador sem ser pelo scp. Mesmo que se conecte ativando

suporte ao modo gráfico e abra o nautilus (gerenciador de arquivos, similar ao internet explorer do

windows), perceberá que a função de colar e copiar ou arrastar e soltar não funcionará.

Então para realizar a cópia, você terá que usar o scp com a seguinte sintaxe:

scp [parâmetros] <arquivo_a_ser_copiado> <diretório_de_destino>

Um desses dois campos:

➔ <arquivo_a_ser_copiado>

➔ <diretório_de_destino>

será o caminho no cliente e o outro no servidor. O caminho que estiver no servidor deverá ser

precedido pelo nome de usuário com o qual irá se conectar, arroba, o IP do servidor e dois pontos.

Vejamos no seguinte exemplo como fazer isso na prática: um arquivo chamado marcius.jpg, que está

128

Page 129: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

armazenado em /tmp de um computador remoto, deve ser copiado para o seu. Você quer que o arquivo vá

pra o diretório /zoações. Considerando que o usuário logado no shell local também está instalado no

sistema remoto e que este possui o IP 10.15.15.30, o comando será o seguinte:

fcamargo@amontoado:~$ scp [email protected]:/tmp/marcius.jpg ~/zoações

Podemos concluir que o scp permite que em uma parte definamos um arquivo ou diretório no

computador local ou remoto, e na outra parte definamos um destino em outro computador.

Parâmetros (Opções)

Parâmetro Descrição

-r(recursivo)Para cópia de pastas.

Ativa a opção recursiva na cópia. Isso quer dizer que ao copiar diretórios, serão copiados os arquivos e subdiretórios de níveis mais abaixo a partir dele, depois os de um nível acima e assim por diante, até tudo ser copiado. Não é possível copiar diretórios sem que este parâmetro seja definido.Exemplo: $scp -r /tmp/Oi [email protected]:~ <Enter>

-p(porta)

Similar ao ssh.Exemplo: $scp -p 2222 /etc/* [email protected]:/tmp <Enter>

129

Computador remoto

Local

Page 130: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

ANEXO I (INSTALAÇÃO DO SISTEMA OPERACIONAL – DESKTOP PARANÁ 2.0 - ZANDOR)

PRIMEIRA ETAPA DA INSTALAÇÃO1.Verifique as configurações de setup (BIOS) do equipamento, deixando o CD-ROM como primeiro

dispositivo de boot.

2.Dê um boot com o CD do Desktop Paraná 2.0, faça o download no seguinte endereço:

http://www.repositorios.pr.gov.br/imagens/Desktop-Parana/2.0/desktop-parana_2.0r0_i386.iso

3.Selecione Instalar Desktop Paraná, como na imagem abaixo e aguarde o início da instalação.

4.Em seguida, escolha o layout do teclado adequado ao seu hardware.

5.O sistema de instalação irá dectar as unidades de disco, unidades ópticas, dispositivos USB e placa

de rede, após isso, tentará configurar a rede automaticamente via DHCP, se isso não for possível, você

deverá informar as configurações de rede manualmente.

6.Em seguida informe o nome da máquina: Algo como e[NOME DO ÓRGÃO][n° do patrimônio] (Em

letras minúsculas e com numeração de 5 dígitos).

7.Por exemplo: Se o número de patrimônio da máquina for 10136 e a máquina pertencente à

CELEPAR, então, o hostname da máquina deverá ser “ecelepar10136” (sem as aspas). Se for uma máquina

pertencente à SEAE, e o número de patrimônio for 129, então o hostname será “eseae00129” (sem as

aspas).

8.Forneça o nome do domínio, algo como [nome do órgão].parana (por exemplo: celepar.parana)

9.Em “Configuração do relógio” selecione o fuso horário para sua região.

10.Se tudo ocorrer bem, será iniciado o particionador de discos.

11.Após a carga do particionador, será exibido as informações de todos os discos conectados no seu

sistema, inclusive Pen Drives, Hds Externos ou algum outro dispositivo de armazenamento.

De preferência, você deverá criar 4 partições para o Desktop Paraná, de acordo com a tabela

abaixo:

Ponto de montagem Tamanho aproximados Método de uso

/boot 100MB Formatar a partição (ext3)

/ 10GB Formatar a partição (xfs)

swap 1GB Área de troca

/home Restante do espaço ou quanto for necessário para esta partição

Formatar a partição (xfs)

/boot – Partição onde ficarão os arquivos necessários para a carga do sistema, essa partição deve

ser criada apenas quando o Sistema Raiz (/) for formatado com o Sistema de Arquivos XFS, pois o

gerenciador de boot GRUB não consegue encontrar os arquivos necessários para a carga do sistema em

partições formatadas com XFS, a escolha do Ext3 se deve ao fato desse sistema se recuperar rapidamente

de falhas, fazendo com que o sistema sempre possa ser inicializado.

/ - Partição onde ficará o Desktop Paraná propriamente dito, esse partição deverá ter pelo menos

6GB de espaço livre para instalação, a escolha do XFS se deve ao fato desse sistema gerir um melhor

130

Page 131: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

cache dos arquivos em memória, fazendo com que o sistema fique mais responsivo, e além de ser um dos

Sistemas de Arquivos mais robusto existentes hoje em dia.

Swap – Partição onde ficará a área de troca do sistema, o tamanho dessa partição não deverá

ultrapassar 1GB, esse tamanho foi escolhido pelo fato que se um sistema estiver utilizando mais do que

1GB de área de troca, acrescentar mais espaço para essa área, fará com que o sistema fique cada vez

mais lento, quando isso ocorrer, o sugerido é acrescentar memória RAM e não aumentar a área de troca.

/home – Partição onde ficarão os arquivos dos usuários, o tamanho dessa partição não deve ser

menor que 5GB, e deverá ser formatado com XFS. A escolha do sistema de arquivos se deve ao que já foi

explicado na partição onde ficará o Sistema Raiz. Quando o sistema for instalado em um HD que seu

tamanho total seja menor que 15GB, é recomendado que essa partição não seja criada.

altamente recomendado que as informações acima sejam seguidas a risca para que a

Instalação fique padronizada, facilitando o suporte.É1.Um exemplo de como deve ficar o particionamento é mostrado na imagem abaixo:

2.Finalize as configurações de partição e grave as mudanças no disco. Será solicitado uma

confirmação. Selecione sim se você tiver realmente certeza.

3.Em seguida, será iniciada a cópia dos arquivos para o disco.

4.Apoś o término da cópia, será necessário informar o endereço do servidor proxy de sua rede, a

porta utilizada pelo proxy e suas exceções. Se a rede não possuir um servidor proxy ou não souber essa

informação, deixe em branco. Após a instalação, você poderá configurar o proxy executando no terminal

“dpkg-reconfigure web-browser-parana”.

5.Informe o nome do Domínio/Workgroup da sua rede.Informe os servidores NTP para sua rede, se a

rede não possuir servidores NTP, deixe em branco.

6.O Grub será instalado na MBR do seu disco, os scripts finais serão executados.

7.Finalizando a instalação, selecione continuar para reinicializar a máquina.

8.Retire o CD.

SEGUNDA ETAPA DA INSTALAÇÃOA primeira etapa da instalação está finalizada, porém, agora iremos entrar em outro processo que é a

configuração do sistema:

1.Logue-se com o usuário parana e a senha parana, execute o comando “sudo su –“ e entre com a

senha parana novamente.

2.Edite o /etc/apt/sources.list, com o editor de textos da sua preferência (vi, vim, nano, pico etc) e

descomente as linhas que apontam para o repositório interno se você estiver dentro da rede corporativa do

Estado do Paraná ou as linhas que apontam para o repositório externo se você estiver fora da rede

corporativa do Estado do Paraná.

3.Execute o seguinte comando:

131

Page 132: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

# apt-get update

Isso fará com que a lista de pacotes seja atualizada.

4.Para instalar o pacote Cliente-Ldap, execute o seguinte comando:

# apt-get install cliente-ldap

5.Informe o nome do servidor LDAP da sua rede, por exemplo: ldaps://ldap.eparana.parana/;

6.Informe a base de pesquisa do LDAP, por exemplo: ou=celepar,dc=pr,dc=gov,dc=br;

7.Selecione a versão do protocolo LDAP utilizada pelo seu servidor. Na maioria das vezes a versão

utilizada é a 3;

8.Em “Tornar a conta root local o administrador da base de dados”, selecione “Não”. Esta opção

só é válida quando o servidor LDAP está sendo executado na máquina local;

9.Em “A base de dados LDAP requer autenticação?”, selecione “Não” se o seu servidor permite

consultas anônimas;

10..Em “Conta LDAP para o root”, deixe em branco, essa opção é usada quando o Servidor LDAP

pode ser administrado por usuários das estações;

11.Informe o servidor WINS de sua rede;

12.Informe o nome do servidor onde se encontram os compartilhamentos dos usuários;

13.Informe o nome do compartilhamento para que ele seja montado no sistema. Deixe o padrão;

14.Informe o nome do grupo dos usuários que poderão logar via SSH;

15.Informe o nome do grupo dos usuários que terão poderes de SUDO;

16.Você poderá informar até 5 nomes de servidores e seus compartilhamentos;

17.Após isso, será mostrada uma mensagem com informações importantes, você deve lê-la;

18.Quando for solicitado para substituir os arquivos de configuração, você deve informar que todos os

arquivos devem ser substituídos.

132

Page 133: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

ANEXO II (ALSA)Alsa quer dizer Advanced Linux Sound Arquitethure – Arquitetura avançada de som do Linux. É um

sistema que provê suporte às mais variadas interfaces de som existentes. Com ele a instalação de uma

placa de som é muito fácil, já que ele tem vários módulos prontos para serem utilizados. Módulos são como

drivers do windows. Para usá-lo basta executá-lo e informá-lo qual é a sua placa de som de uma lista criada

por ele.

amontoado:~# alsaconf <Enter>

Se tudo estiver certo, sua placa já terá o módulo instalado e configurado. Agora é só colocar o som no

talo e aproveitar.

Now ALSA is ready to use. For adjustment of volumes, use your favorite mixer.

Have a lot of fun!

Agora o ALSA está configurado e pronto para ser usado.Para ajustar os volumes, use seu mixer favorito (use o que vem no próprio painel da área de trabalho.

Divirta-se!!!!!

EVENTUAIS PROBLEMASSe o sistema for local, o usuário precisa ter permissão para acessar a placa de som. Na verdade ele

sempre irá precisar de permissão, mas se a autenticação não for local, você ainda não está apto a resolver

esse problema. Mas não desanime, você está perto!

Você precisará verificar se o usuário está no grupo audio. No exemplo abaixo, iremos usar o comando

groups para verificar se o usuário doideira está no grupo audio.

# groups doideira doideira

Ele não está. Será necessário adicioná-lo ao grupo audio. Verifique o resultado do comando abaixo:

# ls -l /dev/audio crw-rw---- 1 root audio 14, 4 Abr 14 05:27 /dev/audio

Como podemos observar, somente o root e quem faz parte do grupo audio tem acesso ao arquivo

/dev/audio que é o nó de dispositivo responsável pela comunicação entre sistema e dispositivo. Precisamos

apenas adicioná-lo, então, da seguinte forma (forma esta que já foi vista neste curso, lembra-se?):

# adduser doideira audio Adding user `doideira' to group `audio' ... Adicionando usuário doideira ao grupo audio Concluído. ecelepar11940:~# groups doideira audio

133

Page 134: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

RESPOSTAS DAS LISTAS DE EXERCÍCIOS

PARTE 1

QUESTÃO 01a) Unix

QUESTÃO 02Criar uma alternativa livre para cada software proprietário.

QUESTÃO 03Não. GNU é o nome do projeto que a Free Software Foundation que pretende criar uma alternativa

livre para cada software proprietário. Linux é o kernel do sistema operacional, que cuida da gestão de recursos, processos, memória e sistema de arquivos. Ambos formam um sistema operacional completo para o usuário final, recebendo o nome de GNU/LINUX.

QUESTÃO 04As informações que definem uma partição primária ficam dentro da MBR (Master Boot Record), que é

o primeiro setor de um disco rígido. As informações que definem uma partição lógica ficam fora da MBR. Para que o sistema operacional saiba onde estão as informações a respeito das partições lógicas, uma partição estendida, dentro da MBR, deve indicar onde está a primeira lógica dentro de um dispositivo de armazenamento, e todas as outras partições lógicas são referenciadas em cadeia.

QUESTÃO 05a :IV ; b:I ; c:III ; d:II

QUESTÃO 06F - F - F - V

QUESTÃO 07Um bloco, que é definido pelo sistema de arquivos.

QUESTÃO 08a) arquivo de caracteres (serial)b) arquivo de blocos (paralelo)c) arquivo de blocos (paralelo)

QUESTÃO 09a) hdb7b) sdac) sdcd) fd0

QUESTÃO 10/media

134

Page 135: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

QUESTÃO 11A utilização de uma barra no início do endereço.

QUESTÃO 12usr (Unix Share) é um local onde as aplicações não necessárias ao sistema são armazenadas com

suas respectivas bibliotecas e documentação. Todos os usuário têm permissão de leitura, mas qualquer configuração feita em um aplicativo é gravada no diretório pessoal do usuário.

PARTE 2

QUESTÃO 01Terminal emulado é um processo que roda sobre o servidor gráfico e simula um terminal virtual.

Terminal virtual é o terminal em si, e é completamente independente.Terminal emulado: permite o acesso rápido a um terminal; permite personalização da janela;Terminal virtual: caso o servidor gráfico trave, este terminal não travará, já que ele é um processo

independente; é mais leve.

QUESTÃO 02Não. Sempre um usuário deve ser especificado para que o sistema possa saber quais são as

permissões a serem aplicadas, e para que as variáveis referentes ao usuário sejam carregadas.

QUESTÃO 03a) Cancela a execução de m processo;b) Limpa a tela mantendo a linha de comando intacta;c) Desconecta o usuário corrente do terminal;d) Abre uma nova aba num terminal emulado.

QUESTÃO 04Utilizando o recurso de autocompletar através da tecla <TAB>.

QUESTÃO 05a)

:/root# rm -rf A* //apaga só o que começa com A dentro do dir /root

:/root# rm -rf [A,a]* //apaga o que começa com A ou a dentro do dir /root

b)

:/root# mv *ana Baralho:/root# mv *[a,A]na Baralho

c)

:/root# rm -rf *ar?lho //perceba que o dir Carvalho não foi excluído

:/root# ls -l ?[a-l]*

135

Page 136: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

QUESTÃO 06Utiliza-se o parâmetro que ativa a recursividade na exclusão de um diretório. A recursividade fará com

que o rm vá até o último subnível do diretório explicitado, apaga todo seu conteúdo e vai subindo de um em um nível. Isto permite que, no fim, o diretório explicitado esteja vazio e possa ser removido.

QUESTÃO 07 (BASH - TERMINAL EMULADO)01 - <ALT>+<F2> (escrever: gnome-terminal);02 - <CTRL><ALT><T>;03 - <ALT><2> e who am i;04 - <ALT><1>07 - A saída do echo, que normalmente seria mostrada no terminal em que o comando foi executado,

foi redirecionada para o outro terminal (aba).

QUESTÃO 08Não. O pipe redireciona a saída de um comando para a entrada de outro. Uma pessoa com uma bola

de futebol, em vez de chutar para o gol, passa para outra pessoa que, aí sim, arrisca o abrir o marcador. O > redireciona a saída. Normalmente um jogador chuta a bola para o gol do adversário, mas com o redirecionador ele chuta no gol do seu time e marca contra.

QUESTÃO 09

$ vim sobrenome

O editor vim será aberto e editará o arquivo chamado “seu sobrenome”.a) <INSERT> escrever o solicitado;b) <ESC> <y><y><y><y>;c) Coloque o cursor do mouse sobre a segunda linha e pressione <d><d>;d) :wq! ou :x!

QUESTÃO 10

a) $ cd /etc/network$ ls

O conteúdo do diretório network, que está dentro do diretório etc, que está dentro do diretório barra é mostrado.

b) :/etc/network$ ls /root:/etc/network$ pwd/etc/network

O diretório corrente continua sendo /etc/network.

c) $ cd /boot/grub:/boot/grub$ cd /etc/samba:/etc/samba$ cd -:/boot/grub$ cd -:/etc/samba$

No diretório /etc/samba. Você volta sempre para o diretório anterior. Se você foi do diretório 1 para o 2, do 2 para o 3, do 3 para o 4, e usar cd - 4 vezes, você se encontrará no diretório 4.

d) :/etc/samba$ cd:~$

Basta utilizar o comando cd que o interpretador irá lhe levar ao diretório pessoal do usuário logado.

136

Page 137: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

e) $ls -l /dev$ ls -l /homedrwxr-xr-x 2 boi boi 54 Jul 30 11:32 boi

Proprietário: rwx (total) Grupo: r-x (entrar) Outros: r-x (entrar)

QUESTÃO 11

a) $ mkdir /tmp/Caneco

b) Existem duas formas de se fazer isso:

1 - $ cd /tmp/Caneco$ mkdir Jan Fev Mar Abr

2 - $ mkdir /tmp/Caneco/{Jan,Fev,Mar,Abr}

c) Caso você entre realmente no diretório caneco, nenhum erro acontece.

d) $ mkdir /tmp/caneco/1/2/3/4/5/6 -p

QUESTÃO 12

a) $ mkdir ~/Novo-Caneco$ cp /tmp/Caneco/* ~/Novo-Caneco

O asterisco indica que deve ser copiado o conteúdo de Caneco, e não o diretório caneco. Sempre o comando será executado sobre o arquivo, último diretório ou coringa, sendo o restante apenas o endereço de onde está o que vai receber a ação do comando.

b) $ cp /etc/samba/smb.conf /etc/samba/smb.conf.back

QUESTÃO 13

a) $ mkdir /tmp/a/b/c/d/e -p$ vim Saci

b) $ mv /tmp/a/b/c/d/e ~c) $ rm -Rf /tmp/a/b/cd) $ ls -lR /tmp/tmp/a: total 0 drwxr-xr-x 2 saci grupo-louco 6 Ago 14 11:33 b /tmp/a/b: total 0 e) $ mv /etc/samba/smb.conf.back /etc/samba/smb.conf

QUESTÃO 14O mv usa o cp. O processo é o seguinte: o mv cria uma cópia do original (utilizando o cp) e remove o

arquivo original (utilizando o rm).

QUESTÃO 15a) dpkg -l |grep broffice.orgb) dpkg -l |grep apache2

137

Page 138: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

c) dpkg -l |grep firefoxdpkg -l |grep iceweasel // é o firefox versão Debian

QUESTÃO 16a) apt-cache search web |grep server ------- apache2b) apt-cache search zip |grep compress ------- bzip2c) apt-cache search clipart |grep openoffice ------- openclipart-openoffice.orgd) apt-cache search “internet explorer” ------- ie6e) apt-cache search ocs |grep paranaf) **** apt-cache search rar |egrep ^rar (existem várias formas de se encontrar uma aplicação que

abra arquivos rar. Procure na internet, no site packages.debian.org, com o apt-cache show pacotes similares. O método acima consiste em usar o grep com a opção de expressão regular ativada, e indicar que o rar deve começar com ^)

QUESTÃO 17# wget http://www.skype.com/go/getskype-linux-deb # dpkg -i getskype-linux-deb # apt-get install <todos os pacotes que o comando acima mostra como dependência># apt-get install -fVerifique no seu menu se o aplicativo foi instalado.

QUESTÃO 18# apt-get install internet explorer 6

QUESTÃO 19a) O apt verifica dentro da lista local de pacotes se existe o pacote desejado nos repositórios. Se

existir, cria a lista de dependências necessária e faz a solicitação de todos os pacotes necessários aos repositórios. É feito o download de todas os pacotes. Estes são descompactados e o dpkg é invocado para execução do pré-inst e post-inst que fazem a instalação.

b) O pacote indicado é removido e o processo da letra (a) é repetido.c) O aplicativo é removido, mas os arquivos de configuração são da aplicação é mantida.d) O aplicativo e os seus respectivos arquivos de configuração são removidos.e) Atualiza a lista de pacotes e dependências local com a lista dos repositórios.f) Apaga todos os arquivos de instalação que foram recebidos em instalações com o apt. Estes

arquivos são removidos do diretório /var/apt/cache/archives.

QUESTÃO 20b) Não está instalado.c) /usr/bin/diffd) /usr/bin/filee) /sbin/ifconfigf) /usr/bin/iceweasel

QUESTÃO 21Durante a instalação do apache2 houve um problema (simulado pelas teclas de atalho <CTRL><C>),

interrompendo a execução do apt. Sempre que isto acontecer, um registro de que houve um problema na instalação é criado, e o apt aguarda um comando do administrador para que a instalação seja finalizada. Se o administrador tentar instalar qualquer coisa não conseguirá, pois o apt fica travado na instalação anterior. Para resolver o problema, basta executar o comando #dpkg --configure -a que irá reiniciar o processo de instalação de todos os pacotes que tiveram problemas na instalação.

138

Page 139: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

PARTE 3

QUESTÃO 01

$ vim “Tudo errado”

<Insert>digitar o texto....<Esc> :x!

QUESTÃO 02

$ sort -n “Tudo errado” >Arquivo.txt

QUESTÃO 03

$ sudo su - (ou loga-se como superusário da sua forma)# find /etc -iname hostname# find /etc -iname fstab# find /etc -iname issue# find /etc -iname timezone# logout$ cat hostname fstab issue timezone > Concatenacao

QUESTÃO 04

$ watch dmesg

Mensagens indicando que um novo dispositivo USB foi encontrado foram mostradas na tela.

QUESTÃO 05

a) $ find / -iname debian_version/etc/debian_versionb) $ find / -iname menu_lst/boot/grub/menu_lstc) $ find / -iname fstab/etc/fstabd) $ find / -iname cpuinfo/proc/cpuinfoe) $ find / -iname [0-9][0-9]-persistent-net.rules/etc/udev/rules.d/70-persistent-net.rulesf) $ sudo su -

# find / -size +20Mg) #find /dev -type s

QUESTÃO 06

# du -sh /boot /home /usr67G /home/

139

Page 140: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

20M /boot/ 3,1G /usr/

QUESTÃO 07

$ alias Bom-dia = 'echo Pra quem?'

QUESTÃO 08As informações abaixo vão variar de sistema para sistema. No meu caso, o diretório especificado está

dentro da partição /dev/sda2 (partição barra), esta possui 14GB e e está com 32% de sua capacidade em uso.

$ df -h /usr/libSist. Arq. Tam Usad Disp Uso% Montado em /dev/sda2 14G 4,4G 9,6G 32% / $ du -sh /usr/lib1,2G /usr/lib

Agora mostre suas habilidades com a aritmética. Total 14G - Diretório 1,2G - Porcentagem - 8,6% da partição

QUESTÃO 09

$ /sbin/ifconfig

QUESTÃO 10

$ uptime

15:44:32 up 2 days, 21:09, 4 users, load average: 0.32, 0.47, 0.35

QUESTÃO 11

$ shutdown -h 18:00 “Chega de trabalho e vamos tomar uma ampola”

QUESTÃO 12Para montá-lo, clique duas vezes sobre o ícone “Disquete 1” dentro do local “Computador”. Para

desmontar clique com o botão direito sobre o mesmo ícone ou sobre o ícone que foi criado na área de

trabalho e selecione “Desmontar Volume”. Por linha de comando faça o seguinte:

# mount /dev/fd0 /media/floppy0# umount /dev/fd0 /media/floppy0

QUESTÃO 13

$ uptime

140

Page 141: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

15:44:32 up 2 days, 21:09, 4 users, load average: 0.32, 0.47, 0.35

47%

PARTE 4

QUESTÃO 01A:V – B:VII – C:I – D:III – E:IV – F:II – G:VI

QUESTÃO 0210.15.17.100 xxxxxxxx-xxxxxxxx-0001-0001-xxxxxxxx255.255.252.0 11111111-11111111-1111-1100-00000000Rede: 10.15. 0001-0000 .0que resulta em: 10.15.16.0

QUESTÃO 03Classe B = 0.0.22.28 que é igual a 210 = 1024 hosts, sendo que dois estão reservados para indicação

da rede e de broadcast, e outros dois serão usados para DNS e roteador, sobram 1020 endereços para hosts.

QUESTÃO 04Executando o ifconfig como superusuário ou então /sbin/ifconfig como usuário normal, você poderá

visualizar as informações IP, BROADCAST e MÁSCARA.

# ifconfigeth0 Link encap:Ethernet Endereço de HW 00:22:15:9e:c1:10

inet end.: 10.15.19.100 Bcast: 10.15.19.255 Masc: 255.255.252.0

IP: 10.15.19.100 – Broadcast: 10.15.19.255 – Máscara: 255.255.252.0

QUESTÃO 05IP (address), rede (net), roteador (gateway).

e o administrador não definir uma máscara, automaticamente o padrão adotado será 255.255.255.0. O endereço de broadcast também é automático. Sempre será o último

endereço IP da rede, mas é possível definir manualmente.S

/etc/network/interfaces

auto eth0iface eth0 inet static

address 10.15.19.100network10.15.15.0netmask 255.255.252.0gateway 10.15.15.1

QUESTÃO 06

$ ping www.bandacalcinhapreta.com.br

141

Page 142: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

PING bandacalcinhapreta.com.br (187.16.19.36) 56(84) bytes of data. 64 bytes from server3.softhost.org (187.16.19.36): icmp_seq=1 ttl=50 time=931 ms

QUESTÃO 07hostname – echo “Meus parabéns, desta vez você não estragou o computador”

QUESTÃO 08

$ nmap <ip do seu gateway>// exemplo$ nmap 10.15.15.1

Starting Nmap 4.68 ( http://nmap.org ) at 2009-08-18 17:02 BRT Interesting ports on 10.15.15.1: Not shown: 1712 closed ports PORT STATE SERVICE 23/tcp open telnet 80/tcp open http 280/tcp open http-mgmt

A porta padrão do ssh não está aberta, logo, não existe a possibilidade de se conectar, com uma análise superficial e rápida, ao roteador por ssh.

PARTE 05

QUESTÃO 01

# adduser clotilde# adduser madruga# adduser jaiminho# adduser zero-a-esquerda

QUESTÃO 02

# addgroup chegados-da-bruxa-do-71# adduser madrugada chegados-da-bruxa-do-71

QUESTÃO 03

# addgroup funcionarios-dos-correios# adduser presidente --ingroup funcionarios-dos-correios

QUESTÃO 04

# mkdir /Curso/Permissoes/{Ap-da-bruxa-do-71,Pindamonhangaba,Correios} -p

142

Page 143: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

QUESTÃO 05Primeira linha

# chown clotilde /Curso/Permissões/Ap-da-bruxa-do-71# chgrp chegados-da-bruxa-do-71 /Curso/Permissões/Ap-da-bruxa-do-71ou ...# chown clotilde.chegados-da-bruxa-do-71 /Curso/Permissões/Ap-da-bruxa-do-71e ...# chmod 770 /Curso/Permissões/Ap-da-bruxa-do-71ou ...# chmod ug=rwx,o= /Curso/Permissões/Ap-da-bruxa-do-71

ara definir permissões diferentes a sets diferentes (proprietário, grupo e outros) utilizando o método de letras, pode-se fazer como no exemplo acima, separando os sets

por vírgulas.P

Segunda linha

# chown jaiminho /Curso/Permissões/Pindamonhangaba# chgrp jaiminho /Curso/Permissões/Pindamonhangabaou ...# chown jaiminho.jaiminho /Curso/Permissões/Pindamonhangabae ...# chmod 077 /Curso/Permissões/Pindamonhangabaou ...# chmod u=,go=rwx /Curso/Permissões/Pindamonhangaba

Terceira linha

# chown presidente /Curso/Permissões/Correios# chgrp funcionarios-dos-correios /Curso/Permissões/Correiosou ...# chown presidente.funcionarios-dos-correios /Curso/Permissões/Correiose ...# chmod 775 /Curso/Permissões/Correiosou ...# chmod ug=rwx,o=rx /Curso/Permissões/Correios

QUESTÃO 06Primeira linha

# cd /Curso/Permissões/:/Curso/Permissões# > Ap-da-bruxa-do-71/Caldeirao# chmod 666 Ap-da-bruxa-do-71/Caldeiraoou …# chmod a=rwx Ap-da-bruxa-do-71/Caldeirao

Segunda linha

# > Pindamonhangaba/Mercearia# chmod 666 Pindamonhangaba/Merceariaou …# chmod a=rwx Pindamonhangaba/Mercearia

143

Page 144: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Terceira linha

# > Correios/Sistema-dos-correios# chmod 770 Correios/Sistema-dos-correiosou …# chmod ug=rwx,o= Correios/Sistema-dos-correios

QUESTÃO 07

# su jaiminho - jaiminho@entulho:/Curso/Permissoes$ rm -f Ap-da-bruxa-do-71/Caldeirao rm: imposível remover `Ap-da-bruxa-do-71/Caldeirao': Permissão negada

Não é possível pois o diretório Ap-da-bruxa-do-71 não permite que ninguém além do proprietário e de quem faz parte do grupo chegados-da-bruxa-do-71 façam nada dentro dele. Solução para isso seria inserir o usuário jaiminho no grupo chegados-da-bruxa-do-71 ou então alterar as permissões do set “outros” do diretório Ap-da-bruxa-do-71.

jaiminho@entulho:/Curso/Permissoes$ newgrp chegados-da-bruxa-do-71 Senha : Invalid password.

Para se usar o comando newgrp é necessário que o usuário saiba a senha do grupo ou então que faça parte do grupo não o tendo como principal. Como o usuário jaiminho não está no grupo chegados-da-bruxa-do-71, teremos que adiciná-lo,

jaiminho@entulho:/Curso/Permissoes$ su - root# adduser jaiminho chegados-da-bruxa-do-71# <CTRL><D> ou logoutjaiminho@entulho:/Curso/Permissoes$ newgrp - chegados-da-bruxa-do-71 jaiminho@entulho:~$ cd /Curso/Permissoes/ jaiminho@entulho:/Curso/Permissoes$ > Ap-da-bruxa-do-71/Boca-livre jaiminho@entulho:/Curso/Permissoes$ ls -l Ap-da-bruxa-do-71/ total 0 -rw-r--r-- 1 jaiminho chegados-da-bruxa-do-71 0 Aug 21 10:49 Boca-livre -rw-rw-rw- 1 root root 0 Aug 21 10:33 Caldeirao

Iremos usar para jogar um conteúdo dentro de um arquivo em branco o echo para que uma mensagem seja gerada na tela, mas, utilizando um redirecionador, em vez da mensagem aparecer na tela, ela será enviada a um arquivo.

jaiminho@entulho:/Curso/Permissoes$ echo D um tamarindo > Pindamonhangaba/Mercearia -bash: Pindamonhangaba/Mercearia: Permission denied

Mesmo sendo jaiminho o proprietário do diretório Pindamonhangaba, aquele não tem direito de fazer nada neste. Como o interpretador de comandos (terminal, no nosso caso o bash) verifica qual set de permissões deve aplicar a um usuário sempre da esquerda à direita (proprietário, grupo e outro), ele para no primeiro set que casa com o usuário e aplica as permissões. Ou seja, mesmo jaiminho fazendo também parte do grupo jaiminho, as permissões do set “grupos” (que é total) não será aplicada a ele, já que o interpretador parará no set “proprietário” (que é zerada).

jaiminho@entulho:/Curso/Permissoes$ echo Entrei as 11:30 da manha > Correios/Sistema-dos-correios -bash: Correios/Sistema-dos-correios: Permission denied

Da mesma forma como no item anterior, não é possível alterar o arquivo, já que jaiminho não faz parte do grupo funcionarios-dos-correios. Uma forma simples de corrigir isso, seria adicionar o usuário jaiminho ao grupo, já que ele é, realmente, funcionário dos correios, e atribuir este grupo ao arquivo

144

Page 145: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Sistema-dos-correios:

jaiminho@entulho:/Curso/Permissoes$ su rootentulho:/Curso/Permissoes# chown funcionarios-dos-correios Correios/Sistema-dos-correiosentulho:/Curso/Permissoes# adduser jaiminho funcionarios-dos-correiosentulho:/Curso/Permissoes# exitjaiminho@entulho:/Curso/Permissoes$ exit

É necessário reinciar qualquer sessão anteriormente aberta. Por isso, saímos de todas as sessões. Isso se deve ao fato das variáveis responsáveis pelo armazenamento dos grupos os quais o usuário logado pertence já estarem carregadas. Para que elas sejam atualizadas é necessário reiniciar a sessão.

jaiminho@entulho:/Curso/Permissoes$ echo Entrei as 11:30 da manha >> Correios/Sistema-dos-correios jaiminho@entulho:/Curso/Permissoes$ cat Correios/Sistema-dos-correios Entrei as 11:30 da manha

Vamos ver como se sai o seu Madruga.

<qualquer usuário>@entulho:~$ su - madrugamadruga@entulho:~$ cd /Curso/Permissoes/ madruga@entulho:/Curso/Permissoes$ rm -f Ap-da-bruxa-do-71/Caldeirao madruga@entulho:/Curso/Permissoes$ echo Aulas de boxe com madruga >> Pindamonhangaba/Mercearia madruga@entulho:/Curso/Permissoes$ mv Pindamonhangaba/Mercearia Pindamonhangaba/Mercadinho madruga@entulho:/Curso/Permissoes$ cat Correios/Sistema-dos-correios cat: Correios/Sistema-dos-correios: Permissão negada

QUESTÃO 08

# passwd jaiminhoentulho:~# passwd jaiminho Digite a nova senha UNIX: Redigite a nova senha UNIX: passwd: senha atualizada com sucesso

QUESTÃO 09

# userdel -rf presidente

QUESTÃO 10Sim. O que importa em relação ao arquivo e seu inode são as permissões do diretório que o contém,

e não as permissões do arquivo em si. Desta forma, qualquer usário poderá apagá-lo e ninguém poderá editá-lo.

QUESTÃO 11

$ top

E verifique qual é o processo que está utilizando mais memória na coluna %MEM.

145

Page 146: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

QUESTÃO 12No lenny isto não é possível. Antes de realizar tal atividade, é necessário se digitar o seguinte

comando:

usuario-logado-no-modo-grafico@entulho:~$ xhost +$ su jaiminho (sem o menos “-”)$ gedit & (não esqueça do “e” comercial para abrir o programa em segundo plano)$ su presidente (novamente sem o menos)$ gedit &$ su - root# ps aux |grep geditjaiminho 28542 0.5 0.7 60496 15536 pts/2 S 14:40 0:00 gedit madruga 28617 0.5 0.6 27220 13328 pts/2 S 14:40 0:00 gedit # killall gedit

QUESTÃO 13

$ firefox &$ ps aux |grep firefoxparana 7755 0.9 6.9 332800 144256 ? Sl Aug20 14:16 /usr/lib/iceweasel/firefox-bin -a iceweasel $ kill -STOP 7755

A janela do firefox não fica acessível. Mesmo que tente que nem um louco abri-la, ela não se tornará um processo ativo. Com o comando abaixo é possível fazer com que o processo volte a ficar disponível ao usuário.

$ kill -CONT 7755

QUESTÃO 14

$ cat /etc/passwd |grep main (nada é retornado como resposta)

Após verificar todos os nomes, apenas o usuário da letra d não é padrão do sistema.

QUESTÃO 15

$ ps aux

QUESTÃO 16

$ getent passwd |grep “nome do usuário”

QUESTÃO 17

$ vim Binário...escreva o texto...$ chmod a+x Binário$ ./Binário

146

Page 147: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

Meu rapaz, você conseguiu! Seu arquivo de nada virou um executável

QUESTÃO 18O chown altera ou só o proprietário ou este e o grupo enquanto o chgrp altera somente o grudo de um

arquivo ou diretório.

# mkdir /tmp/Louco# chown clotilde.jaiminho /tmp/Loucoou# chown clotilde /tmp/Louco# chgrp jaiminho /tmp/Louco

QUESTÃO 19

# mkdir /home/saci# chown madruga.madruga /home/saci# usermod -md /home/saco madruga

QUESTÃO 20

# usermod -l clotilde bruxa-do-71

QUESTÃO 21Letra A.

147

Page 148: Debian in Ici Ante Lenny

Debian Básico - Desktop Paraná

REFERÊNCIAS BIBLIOGRÁFICASEste trabalho foi realizado pelo técnico Felipe Camargo de Pauli da Companhia de Informática do

Paraná. Foram utilizadas como fonte os livros e páginas da internet listadas abaixo, e o vasto conhecimento

técnico do grupo de suporte da CPPC, que esteve sempre presente com informações e sanamento de

dúvidas que apareceram inúmeras vezes ao longo deste projeto. Os integrantes da equipe que tiveram

participação neste projeto estão listados na página 3.

ERIBERTO MOTA FILHO, João. Descobrindo o Linux – 2ª EDIÇÃO – Revista e Ampliada. São Paulo:

Novatec Editora Ltda, 2006. 537.

NEMETH, Evi. Manual completo do Linux – Segunda Edição. Traduzido por Carlos Schafranski e

Edsib Furmankiewicz. São Paulo: Prentice Hall, 2007. 684.

http://pt.wikipedia.org/wiki/Nó_de_dispositivo

http://www.conectiva.com/doc/livros/online/10.0/servidor/pt_BR/ch05.html

http://www.gentoo.org

http://www.marvinlemos.net/site/noticia_completa/46

http://focalinux.cipsga.org.br

148