Apostila_Debian_Basico

76
Gerência de Gestão de Ambientes – GGA Coordenação de Planejamento, Pesquisa e Capacitação – CPPC APOSTILA GNU/D EBIAN BÁSICO

Transcript of Apostila_Debian_Basico

Page 1: Apostila_Debian_Basico

Gerência de Gestão de Ambientes – GGACoordenação de Planejamento, Pesquisa e Capacitação – CPPC

APOSTILA GNU/DEBIAN BÁSICO

Page 2: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Documento Apostila de Debian Básico

Versão 2.2

Data da Revisão

01/11/2007

Equipe Técnica

Jonsue Trapp MartinsAndré Luiz de Souza PaulaDavid Alves FrançaPaulo César de OliveiraRobson Alves Pavan

Páginas 76

PÁG.: 2

Page 3: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Índice1. Introdução...............................................................................................................8

2. O que é o GNU/Debian............................................................................................9

2.1. Quando surgiu?............................................................................................................................9

2.2. Codinomes....................................................................................................................................9

2.3. Stable, Testing e Unstable...........................................................................................................9

2.3.1. Stable....................................................................................................................................10

2.3.2. Testing..................................................................................................................................10

2.3.3. Unstable...............................................................................................................................10

2.4. Main, Contrib e Non-Free...........................................................................................................10

2.5. Custo versus Benefício..............................................................................................................11

3. Partições, Sistema de Arquivos e Estrutura de Diretórios................................12

3.1. Partições......................................................................................................................................12

3.2. Sistema de Arquivos..................................................................................................................12

3.3. Estrutura de Diretórios..............................................................................................................12

3.4. Por que Criar Várias Partições ? ..............................................................................................13

4. Usuários e Grupos................................................................................................14

4.1. Usuário........................................................................................................................................14

4.2. Grupo...........................................................................................................................................14

4.3. Superusuário...............................................................................................................................14

4.4. Entrando no Sistema .................................................................................................................14

4.5. Saindo/Reiniciando do Sistema................................................................................................15

5. Conceitos Básicos de Utilização.........................................................................16

5.1. Terminais Virtuais (Consoles)...................................................................................................16

5.2. Background e Foreground........................................................................................................16

5.3. Automação na Console..............................................................................................................16

6. Redirecionamentos e Pipe...................................................................................17

6.1. Utilização do Redirecionador “>”.............................................................................................17

6.2. Utilização do Redirecionador “>>”...........................................................................................17

6.3. Utilização do redirecionador “<”..............................................................................................17

6.4. Utilização do redirecionador “<<”............................................................................................17

6.5. Uso do “|” (pipe).........................................................................................................................17

6.6. Diferença entre Pipe e Redirecionamento...............................................................................18

7. Comandos Básicos...............................................................................................19

PÁG.: 3

Page 4: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

7.1. Comandos para manipulação de diretório..............................................................................19

7.1.1. ls...........................................................................................................................................19

7.1.2. cd..........................................................................................................................................21

7.1.3. pwd.......................................................................................................................................21

7.1.4. mkdir.....................................................................................................................................21

7.1.5. rmdir......................................................................................................................................22

7.2. Comandos para manipulação de Arquivos..............................................................................22

7.2.1. cat.........................................................................................................................................22

7.2.2. rm..........................................................................................................................................23

7.2.3. cp..........................................................................................................................................23

7.2.4. mv.........................................................................................................................................24

7.3. Comandos Diversos...................................................................................................................25

7.3.1. badblocks.............................................................................................................................25

7.3.2. clear......................................................................................................................................26

7.3.3. date.......................................................................................................................................26

7.3.4. df...........................................................................................................................................27

7.3.5. ln...........................................................................................................................................28

7.3.6. du..........................................................................................................................................28

7.3.7. find........................................................................................................................................29

7.3.8. free........................................................................................................................................30

7.3.9. grep.......................................................................................................................................31

7.3.10. head....................................................................................................................................32

7.3.11. nl.........................................................................................................................................32

7.3.12. more....................................................................................................................................33

7.3.13. less.....................................................................................................................................33

7.3.14. sort......................................................................................................................................33

7.3.15. tail.......................................................................................................................................34

7.3.16. time.....................................................................................................................................35

7.3.17. touch...................................................................................................................................35

7.3.18. uptime.................................................................................................................................36

7.3.19. dmesg.................................................................................................................................36

7.3.20. echo....................................................................................................................................36

7.3.21. su........................................................................................................................................36

7.3.22. uname.................................................................................................................................36

7.3.23. reboot..................................................................................................................................37

7.3.24. shutdown............................................................................................................................37

7.3.25. mount..................................................................................................................................38

7.3.26. umount................................................................................................................................39

7.4. Comandos para Manipulação de Contas.................................................................................39

PÁG.: 4

Page 5: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

7.4.1. adduser.................................................................................................................................39

7.4.2. addgroup...............................................................................................................................40

7.4.3. passwd.................................................................................................................................41

7.4.4. newgrp..................................................................................................................................41

7.4.5. userdel..................................................................................................................................42

7.4.6. groupdel................................................................................................................................42

7.4.7. sg..........................................................................................................................................42

7.4.8. Adicionando o usuário a um grupo extra..............................................................................43

7.4.9. chfn.......................................................................................................................................43

7.4.10. id.........................................................................................................................................44

7.4.11. logname..............................................................................................................................45

7.4.12. users...................................................................................................................................45

7.4.13. groups.................................................................................................................................45

7.4.14. getent..................................................................................................................................45

7.5. Comandos de Rede....................................................................................................................46

7.5.1. who.......................................................................................................................................46

7.5.2. finger.....................................................................................................................................46

7.5.3. ftp..........................................................................................................................................47

7.5.4. whoami.................................................................................................................................47

7.5.5. hostname..............................................................................................................................48

7.5.6. ping.......................................................................................................................................48

7.5.7. nmap.....................................................................................................................................48

7.6. Comandos para Gerenciamento de Processos.......................................................................49

7.6.1. ps..........................................................................................................................................49

7.6.2. top.........................................................................................................................................49

7.6.3. bg..........................................................................................................................................50

7.6.4. fg...........................................................................................................................................50

7.6.5. jobs.......................................................................................................................................50

7.6.6. kill..........................................................................................................................................50

7.6.7. killall......................................................................................................................................51

8. Permissões de acesso a arquivos e diretórios..................................................52

8.1. Donos, grupos e outros usuários.............................................................................................52

8.2. Tipos de Permissões de acesso...............................................................................................52

8.3. Etapas para acesso a um arquivo/diretório.............................................................................53

8.3.1. Exemplos práticos de permissões de acesso......................................................................53

8.4. Permissões de Acesso Especiais.............................................................................................55

8.5. A conta root.................................................................................................................................56

8.6. Comandos para Manipulação de Permissões.........................................................................57

8.6.1. chmod...................................................................................................................................57

PÁG.: 5

Page 6: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

8.6.2. chgrp.....................................................................................................................................58

8.6.3. chown...................................................................................................................................58

8.7. Modo de Permissão Octal..........................................................................................................59

9. Como Instalar pacotes..........................................................................................61

9.1. O que é um Pacote ?..................................................................................................................61

9.2. Apt................................................................................................................................................61

9.2.1. Como encontrar pacotes que contém determinado arquivo................................................62

9.2.2. Reconfigurar a lista de pacotes............................................................................................62

9.2.3. Após reconfigurar a lista de pacotes....................................................................................63

9.2.4. Onde está a tal lista de pacotes para instalação?................................................................63

9.3. Dpkg.............................................................................................................................................63

10. Instalação do Sistema Operacional...................................................................65

11. Arquivos Importantes.........................................................................................66

11.1. Rede...........................................................................................................................................66

11.2. Administração de Usuários.....................................................................................................66

11.3. Xorg............................................................................................................................................66

12. Como Obter Ajuda..............................................................................................67

12.1. Páginas de Manual...................................................................................................................67

12.2. Info Pages..................................................................................................................................67

12.3. Help on line...............................................................................................................................68

12.4. help.............................................................................................................................................68

13. Anexos.................................................................................................................69

13.1. Instalação do Sistema Operacional GNU/Debian Desktop Paraná......................................69

13.1.1. Instalação e configuração dos meta-pacotes customizados..............................................72

13.1.2. Removendo pacotes desnecessários e finalizando a instalação.......................................72

13.2. Instalando uma impressora através do CUPS.......................................................................72

13.3. SSH.............................................................................................................................................75

PÁG.: 6

Page 7: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Índice de FigurasFigura 1 - As informações dos pacotes do sistema obtidas com o uso do dpkg.......................................64

Figura 2 - A tela inicial de instalação do GNU/Debian...............................................................................69

Figura 3 - A página principal de administração do CUPS – Aba “Home”..................................................73

Figura 4 - Exibindo as informações de uma impressora instalada no CUPS - Aba "Printers"..................75

PÁG.: 7

Page 8: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

1. Introdução

Este documento, foi elaborado especialmente para o curso de Debian básico ministrado pela Coordenação de Planejamento, Pesquisa e Capacitação - CPPC. O objetivo desta apostila, é fazer uma explanação básica com relação aos conceitos e ao uso das principais ferramentas que encontramos numa distribuição GNU/Linux, de maneira especial no GNU/Debian. Esta apostila foi gerada tendo como base o “Guia Foca GNU/Linux para Iniciantes”, de Gleydson Mazioli da Silva, que pode ser acessado em “http://focalinux.cipsga.org.br/guia/iniciante/index.htm#contents”.

A Gerência de Gestão de Ambientes – GGA, por meio da Coordenação de Planejamento, Pesquisa e Capacitação – CPPC, espera que você possa aproveitar o conteúdo deste material para ampliar mais o seu conhecimento do Sistema Operacional GNU/Linux, e em especial, da distribuição Debian.

PÁG.: 8

Page 9: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

2. O que é o GNU/Debian

“O Debian é um sistema operacional (SO) livre para seu computador. Um sistema operacional é um conjunto de programas básicos e utilitários que fazem seu computador funcionar. O Debian usa o kernel Linux, mas grande parte das ferramentas do sistema operacional vêm do projeto GNU, daí o nome GNU/Linux.

O Debian GNU/Linux é mais que um simples SO: ele vem com mais de 18733 pacotes contendo softwares pré-compilados e distribuídos em um bom formato, que torna fácil a instalação deles na sua máquina.”

A última versão estável do Debian é 4.0, codinome “etch”. A última atualização desta versão foi feita em 8 de Abril de 2007.

(fonte: http://www.debian.org)

2.1. Quando surgiu?

O Debian foi iniciado em agosto de 1993 por Ian Murdock, como uma nova distribuição que seria feita abertamente, no espírito do Linux e do projeto GNU. O Debian deveria ser feito cuidadosamente e consciensiosamente e ser mantido e suportado com cuidado similar. Ele começou como um grupo pequeno de desenvolvedores de Software Livre e cresceu gradualmente para se tornar uma comunidade grande e bem organizada de desenvolvedores e usuários.

Debian é pronunciado /de.bi.ən/. e o nome vem do nome de seu criador, Ian Murdock, e sua esposa, Debra.

2.2. Codinomes

Para saber sobre os nomes que cada uma das versões do Debian recebeu, leia esta referência:

http://www.debian.org/releases/

2.3. Stable, Testing e Unstable

O desenvolvimento da distribuição Debian segue um rígido controle de qualidade. A versão conhecida como estável (stable) é exaustivamente testada e corrigida. Quando o conjunto de pacotes atinge esta maturidade, eles são congelados (freeze) na versão em que estão, e uma nova versão estável é lançada.

O intervalo de tempo entre o lançamento de duas versões estáveis pode levar 1 ou até 2 anos. O compromisso é com a qualidade, ao contrário de outras distribuições que soltam “releases” incompletos, devido as pressões de mercado. Isto é motivo de alguma confusão para aqueles não habituados a utilizar o Debian. Quando uma nova versão de um pacote é lançada, digamos o GNOME 2.12, ele não é incluído na versão estável, que disponibiliza apenas a série 2.8 . Somente problemas graves, como um “bug” de segurança, é que permitem a alteração de um pacote da distribuição estável.

Digamos que a versão estável do Debian esteja utilizando o Apache 1.3.33. Se um “bug” de segurança for encontrado neste pacote, o time de desenvolvimento do Apache vai lançar a versão corrigida com o número 1.3.33, por exemplo. O time de desenvolvimento do Debian também vai corrigir o pacote, mas o número versão dele será alterado para 1.3.33-1, por exemplo. Alguém não habituado com o Debian pode achar que está usando uma versão errada. Na estrutura de diretórios do software a nova versão do Debian está nas “árvores” teste e instável. O time de desenvolvimento coloca seus pacotes na árvore experimental. Em seguida os pacotes são migrados para a instável e, após algum tempo, eles são migrados para a árvore teste.

PÁG.: 9

Page 10: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Isto significa que ele já teve um tempo suficiente para testes e não apresentou problemas. É possível fazer a instalação de um sistema com a árvore teste, mas isso exige conhecimento para resolver problemas com pacotes “jovens”.

A versão instável exige grande conhecimento e capacidade de resolver problemas de configuração e instalação.

O Debian tem sempre três versões em manutenção constante: “stable”, “testing” e “unstable”.

2.3.1. Stable

A distribuição “stable” contém a última distribuição oficialmente lançada pela Debian.

Essa é a versão de produção do Debian, ela é a recomendada primariamente.A distribuição “stable” do Debian GNU/Linux está atualmente na versão 4.0 e seu

codinome é etch. Ela foi lançada em 8 de Abril de 2007.

2.3.2. Testing

A distribuição “testing” contém pacotes que não foram aceitos numa versão “stable” ainda, mas eles já estão na fila para serem aceitos. A principal vantagem de usar essa distribuição é que ela tem versões mais novas dos programas.

A distribuição “testing” atual chama-se lenny.

2.3.3. Unstable

É na distribuição “unstable” que o desenvolvimento ininterrupto do Debian ocorre. Geralmente, os usuários dessa distribuição são os próprios desenvolvedores e pessoas que gostam de emoções fortes.

A distribuição “unstable” sempre possuí o codinome sid.

2.4. Main, Contrib e Non-Free

Todos os pacotes incluídos à distribuição oficial do Debian são livres de acordo com a Definição Debian de Software Livre (http://www.debian.org/intro/free). Isso assegura uso livre e redistribuição de pacotes com seu código fonte completo. A distribuição oficial do Debian é a que está contida na seção “main” do repositório do Debian.

Como um serviço para nossos usuários, provemos pacotes em seções separadas que não podem ser incluídas na distribuição “main” por causa de uma licença restritiva ou problemas legais.

Os pacotes podem ser classificados quanto ao tipo de Licença de Software que seguem. No site do Debian podemos encontrar a seguinte explicação:

• Contrib - Pacotes nessa área são livremente licenciados pelo detentor do copyright mas dependem de outros pacotes que não são livres.

• Non-Free - Pacotes nessa área têm algumas condições na licença que restringem o uso ou redistribuição do software.

• Non-US/Main - Pacotes nessa área são livres mas não podem ser exportados de um servidor nos EUA.

• Non-US/Non-Free - Pacotes nessa área têm algumas condições na licença que restringem o uso ou redistribuição do software. Eles não podem ser exportados dos EUA porque eles são pacotes de criptografia que não são reconhecidos pelo procedimento de controle de exportações, que é usado para os pacotes que estão no Main. Ou então eles não podem ser armazenados em um servidor nos EUA porque eles estão envolvidos com problema de patentes. Pacotes nessa área não necessariamente custam dinheiro, mas têm algumas condições onerosas na licença restringindo o uso ou distribuição do software.

• Non-US/Main e Non-US/Non-Free - Esses pacotes não podem ser exportados dos EUA,

PÁG.: 10

Page 11: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

eles são em sua maioria pacotes de software de criptografia ou software que está obstruído por problemas com patentes. A maioria deles é livre mas alguns são não-livres.

Note que os mesmos pacotes podem aparecer em muitas distribuições, mas com números de versão diferentes.

2.5. Custo versus Benefício

Para evitarmos alguns enganos ou incompreensões, precisamos falar do elevado tempo entre novas versões do Debian. Quando uma versão estável é liberada, ela não é alterada a menos que apareça algum bug. Quando isto ocorre, apenas o pacote problemático é corrigido e não atualizado para a versão mais recente.

Isso torna-se um incômodo principalmente quando se faz a instalação de uma estação de trabalho. Geralmente um usuário quer a versão mais recente de determinado programa, seja por melhorias no código, seja por novas características. Se você estiver usando a versão estável, a única forma de conseguir isso é instalar a versão mais recente. Isso pode exigir desde a recompilação do próprio programa, até a recompilação dele e de seus pré-requisitos. Você não vai conseguir isso fazendo o “apt-get install”.

Se a sua instalação for para um servidor, isso pode ser menos problemático. Na maior parte do tempo você estará suficientemente provido de bons pacotes. Um servidor também precisa de um administrador experiente e capaz de manter o sistema funcionando. Teoricamente ele seria capaz de instalar um pacote que não está na distribuição Debian. Em alguns casos, o CD de instalação pode não conter um “driver” para uma versão nova de controladora SCSI. Isso vai exigir mais do administrador para que ele consiga fazer a instalação do sistema operacional. Eventualmente, ele poderá gerar um disquete com os módulos necessários. Em casos como esse, as soluções começam a deixar de ser triviais. Com a intenção de utilizar versões mais novas de alguns pacotes, alguém pode ter a idéia de misturar a “árvore” estável com a teste ou pior, com a instável. Este procedimento pode gerar resultados imprevisíveis, e nem sempre você poderá encontrar ajuda por estar fazendo algo muito fora dos padrões.

Você deve saber isso antes de instalar um servidor ou uma máquina desktop. Se a versão estável pode ser “estável como uma rocha”, ela pode ser tão dura quanto se precisar de um programa novíssimo!

PÁG.: 11

Page 12: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

3. PARTIÇÕES, SISTEMA DE ARQUIVOS E ESTRUTURA DE DIRETÓRIOS

3.1. Partições

São divisões existentes no disco rígido que marcam onde começa onde terminam um sistema de arquivos. Por causa destas divisões, nós podemos usar mais de um Sistema Operacional no mesmo computador, ou dividir o disco rígido em uma ou mais partes para ser usado por um único Sistema Operacional.

Após criada e formatada, a partição será identificada como um dispositivo no diretório “/dev” e deverá ser montada para permitir seu uso no sistema.

No Linux, os dispositivos existentes em seu computador são identificados por um arquivo referente a este dispositivo no diretório “/dev”.

A identificação de discos rígidos no Linux é feita da seguinte forma:

/dev/hda1 | | | | | | | |__ Indica o número da partição do HD. | | |___ Letra que indica o HD (a=primeiro, b=segundo...). | |_____ Sigla que indica o tipo do HD (hd=ide, sd=scsi ou sata). |_________ Diretório onde são armazenados dispositivos do sistema.

3.2. Sistema de Arquivos

É criado durante a "formatação" da partição do disco. Após a formatação, toda a estrutura para leitura/gravação de arquivos e diretórios pelo Sistema Operacional estará pronta para ser usada. Normalmente este passo é feito durante a instalação de sua distribuição Linux.

Cada sistema de arquivos tem uma característica em particular mas seu propósito é o mesmo: Oferecer ao Sistema Operacional a estrutura necessária para ler/gravar os arquivos/diretórios.

3.3. Estrutura de Diretórios

O Linux acessa as partições existentes nos discos rígidos e disquetes através de diretórios. Os diretórios que são usados para acessar (montar) partições, são chamados de “Pontos de Montagem”. No DOS, cada letra de unidade (C:, D:, E:) identifica uma partição de disco. No Linux, os pontos de montagem fazem parte da grande estrutura do sistema de arquivos raiz.

O sistema GNU/Linux possui a seguinte estrutura básica de diretórios organizados segundo o FHS (Filesystem Hierarchy Standard):

/

/bin

/boot

/cdrom

/dev

/etc

Sistema raiz.

Contém arquivos programas do sistema que são usados com freqüência pelos usuários.

Contém arquivos necessários para inicialização do sistema.

Ponto de montagem de unidades de CD-ROM.

Contém arquivos usados para acessar dispositivos existentes no computador.

Arquivos de configuração de seu computador.

PÁG.: 12

Page 13: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

/floppy

/home

/lib

/media, /mnt

/proc

/root

/sbin

/tmp

/usr

/var

Ponto de montagem de unidades de disquetes.

Diretórios contendo os arquivos dos usuários.

Bibliotecas compartilhadas pelos programa do sistema e módulos do kernel.

Pontos de montagem de outros dispositivos e unidades de rede.

Sistema de arquivos do kernel. Este diretório não existe em seu disco rígido, ele é colocado lá pelo kernel e usado por diversos programas que fazem sua leitura, verificam configurações do sistema ou modificar o funcionamento de dispositivos do sistema através da alteração em seu arquivos.

Diretório do usuário root.

Diretório de programas usados pelo superusuário para administração e controle do funcionamento do sistema.

Diretório para armazenamento de arquivos temporários criados por programas.

Contém maior parte de seus programas. Normalmente acessível somente como leitura.

Contém maior parte dos arquivos que são gravados com freqüência pelos programas do sistema.

3.4. Por que Criar Várias Partições ?

Vamos citar apenas uma razão, que é justamente a segurança. Caso venha ocorrer algum tipo de corrupção do sistema de arquivos, somente aquela partição será afetada, e desta forma, você terá apenas que restaurar (através de backups que tenha feito) ou refazer aquela partição, não necessitando realizar qualquer tipo de ajustes em outras partes do sistema.

Hoje em dia, basicamente os usuários fazem pelo menos 4 partições:

/boot – partição para os arquivos de inicialização./ - partição para o sistema raiz.swap – partição para memória virtual./home – partição para os dados dos usuários.

Muitos usuários avançados, assim como empresas de médio e grande porte, se sentem mais seguros colocando os diretórios cruciais do sistema em partições separadas.

PÁG.: 13

Page 14: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

4. Usuários e Grupos

4.1. Usuário

Como o Unix foi concebido para que várias pessoas pudessem acessar a mesma máquina usando os seus recursos, foi criado o conceito de usuário para diferenciar o que cada pessoa estivesse fazendo e quais recursos ela pode utilizar.

A identificação do usuário é feita por um nome ou id, que é atribuído ao usuário durante a criação de sua conta no sistema. E para garantir que um usuários não acessem o trabalho de outro, ele deve informar uma senha que confirme a veracidade daquele id. Desta forma, o id + a senha é a chave de entrada para o usuário acessar o sistema.

4.2. Grupo

O Linux possui o conceito de grupo, que serve para agrupar vários usuários que compartilham das mesmas características, por exemplo, permissão de acesso a arquivos e dispositivos.

4.3. Superusuário

O superusuário é aquele que tem plenos poderes dentro do Linux. É o superusuário que pode criar novos usuários, alterar direitos, configurar e fazer atualizações no sistema. Somente ele tem direito a executar essas atividades.

É recomendado utilizar a conta de superusuário somente quando for necessário configurar algo no sistema e mesmo assim, sendo o mais cauteloso possível para evitar algum erro que danifique o mesmo.

O superusuário é identificado pelo nome de root.

4.4. Entrando no Sistema

Ao iniciar o Linux, um prompt semelhante ao ilustrado abaixo será mostrado:

localhost login:

Você deverá informar seu login (nome de usuário) e pressionar Enter. Logo a seguir será solicitado o seu password (senha).

Password:

Ao digitar a senha, não será apresentado nada, nem sequer os famosos asteriscos "*", pois desta forma o sistema garante o sigilo absoluto de seu password, pois nem a pessoa que está ao seu lado, saberá quantas teclas você digitou.

Ao pressionar o Enter, e se seus dados estiverem corretos, você acessará o prompt de comando:

teste@localhost:~$

Onde: • O teste é o nome do usuário; • O localhost é o nome da máquina; • O ~ significa que o usuário está navegando na pasta /home/teste (pasta pessoal do seu

usuário).

Agora você está pronto para utilizar o sistema.

PÁG.: 14

Page 15: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

4.5. Saindo/Reiniciando do Sistema

Comando Descrição

logout ou exit É utilizado pelo usuário para encerrar as atividades de sua conta e voltar para a tela de solicitação de login.

reboot ou shutdown -r É utilizado pelo usuário root para reiniciar o sistema.

shutdown -h now ou halt É utilizado pelo usuário root para desligar o sistema imediatamente.

Os comandos de reinicialização e de desligamento, somente podem ser utilizados pelo usuário root.

Há ainda uma alternativa para que qualquer usuário possa reiniciar o sistema, bastando usar a combinação das teclas <CTRL> + <ALT> + <DEL>, mas isto pode ser desabilitado no arquivo /etc/inittab.

PÁG.: 15

Page 16: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

5. Conceitos Básicos de Utilização

5.1. Terminais Virtuais (Consoles)

Terminal (ou console) é o conjunto de teclado e tela conectados em seu computador. O GNU/Linux, faz uso de sua característica “multi-usuária” usando os "terminais virtuais". Um terminal virtual, é uma segunda seção de trabalho completamente independente de outras, que pode ser acessada no computador local ou remotamente.

No Linux, em modo texto, você pode acessar outros terminais virtuais pressionando a tecla <ALT> e depois <F1> a <F6>. Cada tecla de função, corresponde a um número de terminal do 1 ao 6 (o sétimo é usado por padrão pelo ambiente gráfico X). O GNU/Linux possui mais de 63 terminais virtuais, mas apenas 6 estão disponíveis inicialmente por motivos de economia de memória RAM (cada terminal virtual ocupa aproximadamente 350 Kb de memória RAM).

Se estiver usando o modo gráfico, você deve segurar <CTRL> + <ALT> enquanto pressiona uma tecla de <F1> a <F6>.

5.2. Background e Foreground

O Linux gerencia seus processos (programas executando na memória) utilizando o conceito de “Background” e “Foreground”. De forma simplificada, “Foreground” significa que os programas serão executados em 1° plano, ou seja, o programa irá utilizar a console corrente de maneira interativa, não permitindo que o usuário use esta console para qualquer outra atividade. De forma contrária, “Background” significa que os programas serão executados em 2° plano, ou seja, eles serão executados de maneira não-interativa sendo que o console não ficará “ocupado” e o usuário poderá utilizá-lo para outras finalidades.

5.3. Automação na Console

Por padrão, o Debian utiliza um interpretador de comandos (shell) chamado “Bash”. O Bash inclui várias facilidades para o usuário, entre eles a auto-complementação e uma combinação de teclas de funcionalidades. Abordaremos neste tópico alguns recursos básicos que o usuário deverá possuir conhecimento para melhorar a sua experiência na utilização da console ou terminais virtuais:

Comandos Resultado

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

CTRL + Z Para (pausa) a execução de um programa que esteja sendo executado em 1° plano.

CTRL + L Limpa a tela.

CTRL + A Posiciona o cursor no inicio da linha.

CTRL + E Posiciona o cursor no final da linha.

CTRL + D Saí do sistema (logout).

CTRL + U Apaga as expressões a partir do ponto onde o cursor está até o inicio da linha.

CTRL + Y Insere o trecho apagado a partir da posição do cursor.

CTRL + R Realiza uma busca no histórico de comandos executados.

TAB Auto-complementação. Basta digitar parte de um nome de arquivo/diretório ou comando e pressionar <TAB> para que o Bash complete a expressão para usuário.

PÁG.: 16

Page 17: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

6. Redirecionamentos e Pipe

Esta seção explica o funcionamento dos recursos de redirecionamento de entrada e saída do sistema GNU/Linux.

6.1. Utilização do Redirecionador “>”

Redireciona a saída de um programa/comando/script para algum dispositivo ou arquivo em vez de enviar os dados para saída padrão (tela). Quando é usado com arquivos, este redirecionamento cria ou substituí o conteúdo do arquivo.

Por exemplo, você pode usar o comando “ls >listagem.txt” para enviar a saída do comando “ls” para um arquivo chamado “listagem.txt”, caso este arquivo exista, ele será sobrescrito com a saída de “ls”, caso contrário, será criado. Use o comando “cat” para visualizar o conteúdo do arquivo “listagem.txt”.

Você também poderá usar o redirecionador para enviar dados a dispositivos/recursos do sistema. É possível por exemplo, redirecionar a saída de um comando para o segundo console (“/dev/tty2”) do sistema, usando algo como “ls > /dev/tty2”, o resultado do comando “ls” neste caso, seria exibido no segundo console (pressione “CTRL” + “ALT” + ”F2” para mudar para o segundo console, e “CTRL” + “ALT” + ”F1”, para retornar ao primeiro).

6.2. Utilização do Redirecionador “>>”

Redireciona a saída de um programa/comando/script, para algum dispositivo do sistema ou acrescenta os dados ao final de um arquivo em vez de enviá-los à saída padrão (tela). A diferença entre este redirecionador e o explicado no tópico anterior, é que caso este seja usado com arquivos, ele manterá o conteúdo original do arquivo e acrescentará a saída do comando em questão ao final do arquivo em vez de substituir seu conteúdo. .

Por exemplo, você pode acrescentar a saída do comando “ls /” ao arquivo “listagem.txt”, usado como exemplo no tópico anterior, usando “ls / >> listagem.txt”.

6.3. Utilização do redirecionador “<”

Redireciona a entrada padrão de um arquivo/dispositivo para um comando. Este redirecionador atua de forma inversa ao redirecionador “>”.

Você pode por exemplo, usar o comando “cat < teste.txt” para enviar o conteúdo do arquivo “teste.txt” ao comando “cat” que mostrará seu conteúdo. É claro que o mesmo resultado, poderia ser obtido com “cat teste.txt”, mas este exemplo serviu apenas para mostrar a funcionalidade do redirecionador “<”.

6.4. Utilização do redirecionador “<<”

Este redirecionador serve principalmente para marcar o fim de exibição de um bloco. Ele é especialmente usado, em conjunto com o comando “cat”, mas também tem outras aplicações. Abaixo um exemplo auto-explicativo:

cat << finaleste arquivoserá mostradoaté que a palavra final seja localizada no inicio da linhafinal

6.5. Uso do “|” (pipe)

Um pipe, é responsável por enviar a saída de um comando para a entrada do próximo comando presente numa cadeia de processamento. O último comando da cadeia é quem

PÁG.: 17

Page 18: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

imprimirá o resultado do processamento.Um exemplo simples de utilização de pipes, pode ser obtido através do seguinte exemplo:ls -la / | more

Primeiramente, o comando “ls” faz uma listagem longa de arquivos e diretórios contidos no diretório raiz (“/”) que é enviada diretamente ao comando “more”, que tem a função de efetuar uma pausa na exibição dos resultados a cada 25 linhas mostradas na tela.

Você pode notar pelo exemplo acima, que ambos tanto “ls” quanto “more” são comandos, porque estão separados por um "|". Se um deles não existir ou for digitado incorretamente, será mostrada uma mensagem de erro.

Um resultado diferente seria obtido usando um ">" no lugar do "|"; A saída do comando “ls -la” seria gravada em um arquivo chamado “more”.

Outro exemplo para um melhor entendimento:find / -name teste | grep /home

Neste exemplo, procuramos em todos os diretórios do sistema por um arquivo/diretório chamado “teste”, o resultado deste comando, será enviado ao “grep”, para que seja filtrado exibindo apenas os resultados que contenham a expressão “/home”.

6.6. Diferença entre Pipe e Redirecionamento

A principal diferença entre redirecionamento e pipes, é que o último envolve processamento entre comandos, ou seja, a saída de um comando é enviado a entrada de outro, já os redirecionamentos apenas alteram o fluxo natural da saída/entrada de dados no sistema.

Também é importante que o leitor saiba, que podem ser utilizados mais de símbolo de redirecionamento ou pipe (“<”, “>”, “|”, etc) em uma mesma linha de execução de comandos.

PÁG.: 18

Page 19: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

7. Comandos Básicos

7.1. Comandos para manipulação de diretório

Abaixo comandos úteis para a manipulação de diretórios.

7.1.1. ls

Lista os arquivos de um diretório.

ls [opções] [caminho/arquivo] [caminho1/arquivo1] ...

onde:

caminho/arquivoDiretório/arquivo que será listado.

caminho1/arquivo1Outro Diretório/arquivo que será listado. Podem ser feitas várias listagens de uma só

vez.

Opções

-a, --allLista todos os arquivos (inclusive os ocultos) de um diretório.

-A, --almost-allLista todos os arquivos (inclusive os ocultos) de um diretório, exceto o diretório

atual e o de nível anterior.

-B, --ignore-backupsNão lista arquivos que terminam com ~ (Backup).

--color=PARAMMostra os arquivos em cores diferentes, conforme o tipo de arquivo. PARAM pode

ser:never - Nunca lista em cores (mesma coisa de não usar o parâmetro –-color).always - Sempre lista em cores conforme o tipo de arquivo.auto - Somente colore a listagem se estiver em um terminal.

-d, --directoryLista os nomes dos diretórios ao invés do conteúdo.

-fNão classifica a listagem.

-FInsere um caracter após arquivos executáveis ('*'), diretórios ('/'), soquete ('='), link

simbólico ('@') e pipe ('|'). Seu uso é útil para identificar de forma fácil tipos de arquivos nas listagens de diretórios.

-G, --no-groupOculta a coluna de grupo do arquivo.

-h, --human-readableMostra o tamanho dos arquivos em Kbytes, Mbytes, Gbytes.

PÁG.: 19

Page 20: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

-HFaz o mesmo que -h, mas usa unidades de 1000 ao invés de 1024 para

especificar Kbytes, Mbytes, Gbytes.

-lUsa o formato longo para listagem de arquivos. Lista as permissões, data de

modificação, donos, grupos etc.

-nUsa a identificação de usuário e grupo numérica ao invés dos nomes.

-L, --dereferenceLista o arquivo original e não o link referente ao arquivo.

-oUsa a listagem longa sem os donos dos arquivos (mesma coisa que -lG).

-pMesma coisa que -F, mas não inclui o símbolo '*' em arquivos executáveis. Esta

opção é típica de sistemas Linux.

-RLista diretórios e sub-diretórios recursivamente. Uma listagem feita com o comando ls -la normalmente é mostrada da seguinte

maneira:-rwxr-xr-- 1 marcius gga 8192 nov 4 16:00 teste

Abaixo as explicações de cada parte:-rwxr-xr--São as permissões de acesso ao arquivo teste. A primeira letra (da esquerda)

identifica o tipo do arquivo, se tiver um d é um diretório, se tiver um "-" é um arquivo normal. As outras informações são:

1Se for um diretório, mostra a quantidade de sub-diretórios existentes dentro dele.

Caso for um arquivo, será 1.

marciusNome do dono do arquivo teste.

ggaNome do grupo que o arquivo teste pertence.

8192Tamanho do arquivo (em bytes).

novMês da criação/última modificação do arquivo.

4Dia que o arquivo foi criado.

16:00Hora em que o arquivo foi criado/modificado. Se o arquivo foi criado há mais de

um ano, em seu lugar é mostrado o ano da criação do arquivo.

testeNome do arquivo.

PÁG.: 20

Page 21: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Exemplos do uso do comando ls:• ls - Lista os arquivos do diretório atual.• ls /bin /sbin - Lista os arquivos do diretório /bin e /sbin• ls -la /bin - Listagem completa (vertical) dos arquivos do diretório /bin inclusive os

ocultos.

7.1.2. cd

Entra em um diretório. Você precisa ter a permissão de execução para entrar no diretório.

cd [diretório]

onde:

diretório

Diretório que deseja entrar.

Exemplos:

Usando cd sem parâmetros ou cd ~, você retornará ao seu diretório de usuário (diretório home).cd / - retornará ao diretório raiz.cd - retornará ao diretório anteriormente acessado.cd .. - sobe um diretório.cd ../[diretório] - sobe um diretório e entra imediatamente no próximo (por exemplo, quando você está em /usr/sbin, você digita cd ../bin, o comando cd retorna um diretório (/usr) e entra imediatamente no diretório bin (/usr/bin).

7.1.3. pwd

Mostra o nome e caminho do diretório atual.

Você pode usar o comando pwd para verificar em qual diretório se encontra atualmente.

7.1.4. mkdir

Cria um diretório no sistema. Um diretório é usado para armazenar arquivos de um determinado tipo. O diretório pode ser entendido como uma pasta onde você guarda seus papeis (arquivos).

Como uma pessoa organizada, você utilizará uma pasta para guardar cada tipo de documento, da mesma forma você pode criar um diretório vendas para guardar seus arquivos relacionados com vendas naquele local.

mkdir [opções] [caminho/diretório] [caminho1/diretório1]

onde:

caminhoCaminho onde o diretório será criado.

diretórioNome do diretório que será criado.

PÁG.: 21

Page 22: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Opções--verbose

Mostra uma mensagem para cada diretório criado. As mensagens de erro serão mostradas mesmo que esta opção não seja usada.

-p, --parents Cria os diretórios de nível superior (diretórios “pai”) do diretório que está sendo

criado, caso eles não existão.

Para criar um novo diretório, você deve ter permissão de gravação. Por exemplo, para criar um diretório em /tmp com o nome de teste que será usado para gravar arquivos de teste, você deve usar o comando mkdir /tmp/teste.

Podem ser criados mais de um diretório com um único comando (mkdir /tmp/teste /tmp/teste1 /tmp/teste2).

7.1.5. rmdir

Remove um diretório do sistema. Este comando faz exatamente o contrário do mkdir. O diretório a ser removido deve estar vazio e você deve ter permissão de gravação para remove-lo.

rmdir [caminho/diretório] [caminho1/diretório1]

onde:

caminhoCaminho do diretório que será removido.

diretórioNome do diretório que será removido.

É necessário que esteja um nível acima do diretório(s) que será(ão) removido(s). Para remover diretórios que contenham arquivos, use o comando rm com a opção -r.

7.2. Comandos para manipulação de Arquivos

Abaixo, comandos utilizados para manipulação de arquivos.

7.2.1. cat

Mostra o conteúdo de um arquivo binário ou texto.

cat [opções] [diretório/arquivo] [diretório1/arquivo1]

diretório/arquivoLocalização do arquivo que deseja visualizar o conteúdo.

Opções-n, --number

Mostra o número das linhas enquanto o conteúdo do arquivo é mostrado.

-s, --squeeze-blankNão mostra mais que uma linha em branco entre um parágrafo e outro.

-Lê a entrada padrão.

PÁG.: 22

Page 23: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

O comando cat trabalha com arquivos texto. Use o comando zcat para ver diretamente arquivos compactados com gzip.

Exemplo:cat /usr/doc/copyright/GPL

7.2.2. rm

Apaga arquivos. Também pode ser usado para apagar diretórios e sub-diretórios vazios ou que contenham arquivos.

rm [opções][caminho][arquivo/diretório]

onde:

caminhoLocalização do arquivo que deseja apagar. Se omitido, assume que o arquivo

esteja no diretório atual.

arquivo/diretórioArquivo que será apagado.

Opções-i, --interactive

Pergunta antes de remover, esta é ativada por padrão.

-v, --verboseMostra os arquivos na medida que são removidos.

-r, --recursiveUsado para remover arquivos em sub-diretórios. Esta opção também pode ser

usada para remover sub-diretórios.

-f, --forceRemove os arquivos sem perguntar.

-- arquivoRemove arquivos/diretórios que contém caracteres especiais. O separador "--"

funciona com todos os comandos do shell e permite que os caracteres especiais como "*", "?", "-", etc. sejam interpretados como caracteres comuns.

Use com atenção o comando rm, uma vez que os arquivos e diretórios forem apagados, eles não poderão ser mais recuperados.

Exemplos:rm teste.txt - Apaga o arquivo teste.txt no diretório atual.rm *.txt - Apaga todos os arquivos do diretório atual que terminam com .txt.rm *.txt teste.novo - Apaga todos os arquivos do diretório atual que terminam com .txt e também o arquivo teste.novo.rm -rf /tmp/teste/* - Apaga todos os arquivos e sub-diretórios do diretório /tmp/teste mas mantém o sub-diretório /tmp/teste.rm -rf /tmp/teste - Apaga todos os arquivos e sub-diretórios do diretório /tmp/teste, inclusive /tmp/teste.rm -f -- --arquivo-- - Remove o arquivo de nome --arquivo--.

7.2.3. cp

Copia arquivos.

cp [opções] [origem] [destino]

PÁG.: 23

Page 24: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

onde:

origemArquivo que será copiado. Podem ser especificados mais de um arquivo para ser

copiado usando “Coringas”.

destinoO caminho ou nome de arquivo onde será copiado. Se o destino for um diretório,

os arquivos de origem serão copiados para dentro do diretório.

Opçõesi, --interactive

Pergunta antes de substituir um arquivo existente.

-f, --forceNão pergunta, substitui todos os arquivos caso já exista.

-rCopia arquivos dos diretórios e subdiretórios da origem para o destino. É

recomendável usar -R ao invés de -r.

-R, --recursiveCopia arquivos e sub-diretórios (como a opção -r) e também os arquivos especiais

FIFO e dispositivos.

-v, --verboseMostra os arquivos enquanto estão sendo copiados.

O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos origem e destino terão o mesmo conteúdo após a cópia.

Exemplos:cp teste.txt teste1.txt - Copia o arquivo teste.txt para teste1.txt. cp teste.txt /tmp - Copia o arquivo teste.txt para dentro do diretório /tmp. cp * /tmp - Copia todos os arquivos do diretório atual para /tmp. cp /bin/* . - Copia todos os arquivos do diretório /bin para o diretório em que nos encontramos no momento. cp -R /bin /tmp - Copia o diretório /bin e todos os arquivos/sub-diretórios existentes para o diretório /tmp. cp -R /bin/* /tmp - Copia todos os arquivos do diretório /bin (exceto o diretório /bin) e todos os arquivos/sub-diretórios existentes dentro dele para /tmp. cp -R /bin /tmp - Copia todos os arquivos e o diretório /bin para /tmp.

7.2.4. mv

Move ou renomeia arquivos e diretórios. O processo é semelhante ao do comando cp mas o arquivo de origem é apagado após o término da cópia.

mv [opções] [origem] [destino]

onde:

origemArquivo/diretório de origem.

destinoLocal onde será movido ou novo nome do arquivo/diretório.

PÁG.: 24

Page 25: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Opções-f, --force

Substitui o arquivo de destino sem perguntar.

-i, --interactivePergunta antes de substituir. É o padrão.

-v, --verboseMostra os arquivos que estão sendo movidos.

O comando mv copia um arquivo da ORIGEM para o DESTINO (semelhante ao cp), mas após a cópia, o arquivo de ORIGEM é apagado.

Exemplos:mv teste.txt teste1.txt - Muda o nome do arquivo teste.txt para teste1.txt. mv teste.txt /tmp - Move o arquivo teste.txt para /tmp. Lembre-se que o arquivo de origem é apagado após ser movido. mv teste.txt teste.new (supondo que teste.new já exista) - Copia o arquivo teste.txt por cima de teste.new e apaga teste.txt após terminar a cópia.

7.3. Comandos Diversos

Comandos de uso diversos no sistema.

7.3.1. badblocks

Realiza a procura por blocos defeituosos num dispositivo de armazenamento, comumente uma partição ou um disco rígido. Somente testes de leitura podem ser realizados em partições montadas (disponíveis para serem acessadas pelos usuários), já os testes que envolvem leitura/escrita, são obrigatoriamente feitos com as partições e discos desmontados.

badblocks [opções] dispositivo [bloco-final] [bloco-inicial]

Onde:dispositivoRepresenta o dispositivo que se deseja checar. Pode ser uma partição ou um disco

rígido. Por exemplo, “/dev/hdb” ou “/dev/hda2”.

bloco-final/bloco-inicialIndicam o bloco em que a checagem deve iniciar (bloco-inicial) e no qual deve

terminar (bloco-final). Caso estes parâmetros não sejam fornecidos, a checagem iniciará pelo primeiro bloco do dispositivo e terminará no ultimo.

opções:-b tamanho

Define o tamanho do bloco a ser utilizado na checagem, através do uso do argumento “tamanho”. O padrão é 1024.

-c númeroEste parâmetro define a quantidade de blocos que serão testados por vez. O

padrão é 64.

-i arquivoFaz a leitura de um arquivo que contém uma listagem de blocos defeituosos

previamente conhecidos. Isto otimiza a execução do comando badblocks que não perderá

PÁG.: 25

Page 26: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

tempo checando estas áreas. Todos os blocos contidos no arquivo, serão omitidos da checagem e da saída do comando.

-o arquivoCria um arquivo contendo os blocos defeituosos detectados pela execução do

comando badblocks. Se esta opção não for especificada, badblocks apenas mostra os resultados na saída padrão.

-p númeroPode-se definir o número de vezes que a checagem do dispositivo será repetida,

usando este parâmetro. O padrão é 0 (zero), ou seja, apenas uma checagem sem repetições.

-nRealiza o teste de leitura/escrita de modo não-destrutivo, preservando os dados no

dispositivo.

-sExibe o progresso da execução de badblocks, mostrando os blocos já processados.

-vExibe informações sobre a execução de badblocks. Por padrão, badblocks é

executado no modo silencioso, não permitindo que o usuário acompanhe o progresso da checagem.

-wRealiza o teste de leitura/gravação de modo destrutivo. Não utilize esta opção

caso você não possa destruir os dados no dispositivo de armazenamento. Esta opção é mais rápida que “-n”.

Exemplos:badblocks -v /dev/hda2Faz a checagem da segunda partição do primeiro disco IDE exibindo informações

sobre o progresso da verificação.

badblocks -n -v /dev/sdbRealiza a verificação no modo leitura/escrita não-destrutivo e exibe informações

sobre o progresso da checagem feita pelo programa, sobre o segundo dispositivo de armazenamento SCSI da maquina.

badblocks -w -s /dev/hdcRealiza o teste de leitura/escrita de forma destrutiva no primeiro disco da segunda

controladora IDE e exibe os blocos já verificados para o acompanhamento da verificação.

7.3.2. clear

Limpa a tela e posiciona o cursor no canto superior esquerdo do vídeo.

clear

7.3.3. date

Permite ver/modificar a Data e Hora do Sistema. Você precisa estar como usuário root para modificar a data e hora.

date MesDiaHoraMinuto[AnoSegundos]

PÁG.: 26

Page 27: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

onde:

MesDiaHoraMinuto[AnoSegundos]São respectivamente os números do mês, dia, hora e minutos sem espaços.

Opcionalmente você pode especificar o Ano (com 2 ou 4 dígitos) e os Segundos.

+[FORMATO]Define o formato da listagem que será usada pelo comando date. Os seguintes

formatos são os mais usados:

%d - Dia do Mês (00-31).%m - Mês do Ano (00-12).%y - Ano (dois dígitos).%Y - Ano (quatro dígitos).%H - Hora (00-24).%I - Hora (00-12).%M - Minuto (00-59).%j - Dia do ano (1-366).%p - AM/PM (útil se utilizado com %d).%r - Formato de 12 horas completo (hh:mm:ss AM/PM).%T - Formato de 24 horas completo (hh:mm:ss).%w - Dia da semana (0-6).

Outros formatos podem ser obtidos através da página de manual do date. Para maiores detalhes, veja a página de manual do comando date.Para ver a data atual digite: dateSe quiser mudar a Data para 25/12 e a hora para 08:15 digite: date 12250815Para mostrar somente a data no formato dia/mês/ano: date +%d/%m/%Y

7.3.4. df

Mostra o espaço livre/ocupado de cada partição.

df [opções]

onde:

Opções-a

Inclui sistemas de arquivos com 0 blocos.

-h, --human-readableMostra o espaço livre/ocupado em Mb, Kb, Gb ao invés de blocos.

-HIdêntico a -h mas usa 1000 ao invés de 1024 como unidade de cálculo.

-kLista em Kbytes.

-lSomente lista sistema de arquivos locais.

-mLista em Mbytes (equivalente a --block-size=1048576).

Exemplos:df

PÁG.: 27

Page 28: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

df -hdf -t vfat

7.3.5. ln

Cria links para arquivos e diretórios no sistema. O link é um mecanismo que faz referência a outro arquivo ou diretório em outra localização. O link em sistemas GNU/Linux faz referência reais ao arquivo/diretório podendo ser feita cópia do link (será copiado o arquivo alvo), entrar no diretório (caso o link faça referência a um diretório), etc.

ln [opções] [origem] [link]

onde:

origemDiretório ou arquivo de onde será feito o link.

linkNome do link que será criado.

Opções-s

Cria um link simbólico. Usado para criar ligações com o arquivo/diretório de destino.

-vMostra o nome de cada arquivo antes de fazer o link.

-dCria um hard link para diretórios. Somente o root pode usar esta opção.

Existem 2 tipos de links: simbólicos e hardlinks.O link simbólico cria um arquivo especial no disco (do tipo link) que tem como conteúdo o caminho para chegar até o arquivo alvo (isto pode ser verificado pelo tamanho do arquivo do link). Use a opção -s para criar links simbólicos.O hardlink faz referência ao mesmo inodo do arquivo original, desta forma ele será perfeitamente idêntico, inclusive nas permissões de acesso, ao arquivo original.

Ao contrário dos links simbólicos, não é possível fazer um hardlink para um diretório ou fazer referência a arquivos que estejam em partições diferentes.

Observações:Se for usado o comando rm com um link, somente o link será removido.Se for usado o comando cp com um link, o arquivo original será copiado ao invés do link.Se for usado o comando mv com um link, a modificação será feita no link.Se for usado um comando de visualização (como o cat), o arquivo original será visualizado.

Exemplos:ln -s /dev/ttyS1 /dev/modem - Cria o link /dev/modem para o arquivo /dev/ttyS1.ln -s /tmp ~/tmp - Cria um link ~/tmp para o diretório /tmp.

7.3.6. du

Mostra o espaço ocupado por arquivos e sub-diretórios do diretório atual.

PÁG.: 28

Page 29: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

du [opções]

onde:

Opções-a, --all

Mostra o espaço ocupado por todos os arquivos.

-b, --bytesMostra o espaço ocupado em bytes.

-c, --totalFaz uma totalização de todo espaço listado.

-DNão conta links simbólicos.

-h, --humanMostra o espaço ocupado em formato legível por humanos (Kb, Mb) ao invés de usar

blocos.

-HComo o anterior mas usa 1000 e não 1024 como unidade de cálculo.

-kMostra o espaço ocupado em Kbytes.

-mMostra o espaço ocupado em Mbytes.

-S, --separate-dirsNão calcula o espaço ocupado por sub-diretórios.

Exemplo:du -hdu -hc

7.3.7. find

Procura por arquivos/diretórios no disco. find pode procurar arquivos através de sua data de modificação, tamanho etc através do uso de opções. O find, ao contrário de outros programas, usa opções longas através de um "-".

find [diretório] [opções/expressão]

onde:

diretórioInicia a procura neste diretório, percorrendo seu sub-diretórios.

Opções/expressão-name [expressão]

Procura pelo nome [expressão] nos nomes de arquivos e diretórios processados.

-iname [expressão]Procura pelo nome [expressão] desconsiderando maiúsculas e minúsculas.

PÁG.: 29

Page 30: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

-depthProcessa os sub-diretórios primeiro antes de processar os arquivos do diretório

principal.

-maxdepth [num]Faz a procura até [num] sub-diretórios dentro do diretório que está sendo

pesquisado.

-mindepth [num]Não faz nenhuma procura em diretórios menores que [num] níveis.

-mount, -xdevNão faz a pesquisa em sistemas de arquivos diferentes daquele de onde o

comando find foi executado.

-size [num]Procura por arquivos que tiverem o tamanho [num]. [num] pode ser antecedido de "+"

ou "-" para especificar um arquivo maior ou menor que [num]. A opção -size pode ser seguida de:

b - Especifica o tamanho em blocos de 512 bytes. É o padrão caso [num] não seja acompanhado de nenhuma letra.c - Especifica o tamanho em bytes.k - Especifica o tamanho em Kbytes.

-type [tipo]Procura por arquivos do [tipo] especificado. Os seguintes tipos são aceitos:

b – blococ – caracterd – diretóriop – pipef - arquivo regularl - link simbólicos – sockete

A maior parte dos argumentos numéricos podem ser precedidos por "+" ou "-". Para detalhes sobre outras opções e argumentos, consulte a página de manual.

Exemplo:find / -name grep - Procura no diretório raiz e sub-diretórios um arquivo/diretório chamado grep.find / -name grep -maxdepth 3 - Procura no diretório raiz e sub-diretórios até o terceiro nível, um arquivo/diretório chamado grep.find . -size +1000k - Procura no diretório atual e sub-diretórios um arquivo com tamanho maior que 1000 kbytes (1Mbyte).

7.3.8. free

Mostra detalhes sobre a utilização da memória RAM do sistema.

free [opções]

onde:

Opções-b

Mostra o resultado em bytes.

PÁG.: 30

Page 31: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

-kMostra o resultado em Kbytes.

-mMostra o resultado em Mbytes.

-oOculta a linha de buffers.

-tMostra uma linha contendo o total.

-s [num]Mostra a utilização da memória a cada [num] segundos. O free é uma interface ao arquivo /proc/meminfo.

7.3.9. grep

Procura por um texto dentro de um arquivo(s) ou no dispositivo de entrada padrão.

grep [expressão] [arquivo] [opções]

onde:

expressãopalavra ou frase que será procurada no texto. Se tiver mais de duas palavras você

deve identifica-la com aspas "" caso contrário o grep assumirá que a segunda palavra é o arquivo!

arquivoArquivo onde será feita a procura.

Opções-A [número]

Mostra o [número] de linhas após a linha encontrada pelo grep.

-B [número]Mostra o [número] de linhas antes da linha encontrada pelo grep.

-f [arquivo]Especifica que o texto que será localizado, está no arquivo [arquivo].

-h, --no-filenameNão mostra os nomes dos arquivos durante a procura.

-i, --ignore-caseIgnora diferença entre maiúsculas e minúsculas no texto procurado e arquivo.

-n, --line-numberMostra o nome de cada linha encontrada pelo grep.

-U, --binaryTrata o arquivo que será procurado como binário.

Se não for especificado o nome de um arquivo ou se for usado um hífen "-", grep procurará a string no dispositivo de entrada padrão. O grep faz sua pesquisa em arquivos texto. Use o comando zgrep para pesquisar diretamente em arquivos compactados com gzip, os comandos e opções são as mesmas.

Exemplos:

PÁG.: 31

Page 32: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

grep "capitulo" texto.txtps ax|grep inetdgrep "capitulo" texto.txt -A 2 -B 2

7.3.10. head

Mostra as linhas iniciais de um arquivo texto.

head [opções]

onde:

Opções-c [numero]

Mostra o [numero] de bytes do inicio do arquivo.

-n [numero]Mostra o [numero] de linhas do inicio do arquivo. Caso não for especificado, o

head mostra as 10 primeiras linhas.

Exemplos:head teste.txthead -n 20 teste.txt

7.3.11. nl

Mostra o número de linhas junto com o conteúdo de um arquivo.

nl [opções] [arquivo]

onde:

arquivoÉ o arquivo ao qual se deseja exibir juntamente com a contagem das linhas.

Opções-b [opc]

Faz a filtragem de saída de acordo com [opc]:a

Numera todas as linhas. t

Não numera linhas vazias. n

Numera linhas vazias. texto

Numera somente linhas que contém o [texto].

-v [num]Número inicial (o padrão é 1).

-i [num]Número de linhas adicionadas a cada linha do arquivo (o padrão é 1).

Exemplos:nl -ba /etc/passwdnl -i 2 /etc/passwd

PÁG.: 32

Page 33: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

7.3.12. more

Permite fazer a paginação de arquivos ou da entrada padrão. O comando more pode ser usado como comando para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela é ocupada, o more efetua uma pausa e permite que você pressione Enter ou espaço para continuar avançando no arquivo sendo visualizado. Para sair do more pressione c.

more [arquivo]

onde:

arquivoÉ o arquivo que será paginado.

Para visualizar diretamente arquivos texto compactados pelo gzip .gz use o comando zmore.

Exemplos:more /etc/passwdcat /etc/passwd | more

7.3.13. less

Permite fazer a paginação de arquivos ou da entrada padrão. O comando less pode ser usado como comando para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela é ocupada, o less efetua uma pausa (semelhante ao more) e permite que você pressione Seta para Cima e Seta para Baixo ou PgUP/PgDown para fazer o rolamento da página. Para sair do less pressione a tecla <Q>.

less [arquivo]

onde:

arquivoÉ o arquivo que será paginado.

Para visualizar diretamente arquivos texto compactados pelo utilitário gzip (arquivos .gz), use o comando zless.

Exemplos:less /etc/passwdcat /etc/passwd | less

7.3.14. sort

Organiza as linhas de um arquivo texto ou da entrada padrão.

sort [opções] [arquivo]

onde:

arquivoÉ o nome do arquivo que será organizado. Caso não for especificado, será usado

o dispositivo de entrada padrão (normalmente o teclado ou um "|").

PÁG.: 33

Page 34: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Opções-b

Ignora linhas em branco.

-dSomente usa letras, dígitos e espaços durante a organização.

-fIgnora a diferença entre maiúsculas e minúsculas.

-rInverte o resultado da comparação.

-nCaso estiver organizando um campo que contém números, os números serão

organizados na ordem aritmética. Por exemplo, se você tiver um arquivo com os números1001050

Usando a opção -n, o arquivo será organizado desta maneira:1050 100

Caso esta opção não for usada com o sort, ele organizará como uma listagem alfabética (que começam de a até z e do 0 até 9)

10 10050

-cVerifica se o arquivo já esta organizado. Caso não estiver, retorna a mensagem

"disorder on arquivo".

-o arquivoGrava a saída do comando sort no arquivo.

Abaixo, exemplos de uso do comando sort:sort texto.txt - Organiza o arquivo texto.txt em ordem crescente.sort texto.txt -r - Organiza o conteúdo do arquivo texto.txt em ordem decrescente.cat texto.txt|sort - Faz a mesma coisa que o primeiro exemplo, só que neste caso a saída do comando cat é redirecionado a entrada padrão do comando sort.sort -f texto.txt - Ignora diferenças entre letras maiúsculas e minúsculas durante a organização.

7.3.15. tail

Mostra as linhas finais de um arquivo texto.

tail [opções]

onde:

Opções-c [numero]

Mostra o [numero] de bytes do final do arquivo.

PÁG.: 34

Page 35: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

-n [numero]Mostra o [numero] de linhas do final do arquivo.

Exemplos:tail teste.txttail -n 20 teste.txt.

7.3.16. time

Mede o tempo gasto para executar um processo (programa).

time [comando]

onde:

comandoÉ o comando/programa que deseja medir o tempo gasto para ser concluído.

Exemplo:time lstime find / -name crontab.

7.3.17. touch

Muda a data e hora que um arquivo/diretório foi criado. Também pode ser usado para criar arquivos vazios. Caso o touch seja usado com arquivos que não existam, por padrão ele criará estes arquivos.

touch [opções] [arquivos]

onde:

arquivosArquivos que terão sua data/hora modificados.

Opções-t [[SS]AA]MMDDhhmm[.ss]

Usa (AA) Anos, Mês (MM), Dias (DD), Horas (hh), minutos (mm) e (ss) segundos para modificação do(s) arquivos ao invés da data e hora atual.

-a, --time=atimeFaz o touch mudar somente a data e hora do acesso ao arquivo.

-c, --no-createNão cria arquivos vazios, caso os arquivos não existam.

-m, --time=mtimeFaz o touch mudar somente a data e hora da modificação.

-r [arquivo]Usa as horas no [arquivo] como referência ao invés da hora atual.

Exemplos:touch teste - Cria o arquivo teste caso ele não existir.touch -t 10011230 teste - Altera a data e hora do arquivo para 01/10 e 12:30.touch -t 120112301999.30 teste - Altera da data, hora ano, e segundos do arquivo para 01/12/1999 e 12:30:30.

PÁG.: 35

Page 36: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

touch -t 12011200 * - Altera a data e hora do arquivo para 01/12 e 12:00.

7.3.18. uptime

Mostra o tempo de execução do sistema desde que o computador foi ligado.

uptime

7.3.19. dmesg

Mostra as mensagens de inicialização do kernel. São mostradas as mensagens da última inicialização do sistema. Serve para localizar problemas na máquina.

dmesg

Dica: Utilize este comando em conjunto com o comando less, da seguinte forma:

dmesg | less

7.3.20. echo

Mostra mensagens. Este comando é útil na construção de scripts para mostrar mensagens na tela para o usuário acompanhar sua execução.

echo [mensagem]

A opção -n pode ser usada para que não ocorra o salto de linha após a mensagem ser mostrada.

7.3.21. su

Permite o usuário mudar sua identidade para outro usuário sem fazer o logout. Útil para executar um programa ou comando como root sem ter que abandonar a seção atual.

su [usuário]

onde:

usuárioÉ o nome do usuário que deseja usar para acessar o sistema. Se não digitado, é

assumido o usuário root.Será pedida a senha do superusuário para autenticação. Digite exit quando

desejar retornar a identificação de usuário anterior.

7.3.22. uname

Retorna informações sobre o sistema.

uname [opções]

onde:

Opções-a Exibe todas as informações.

PÁG.: 36

Page 37: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

-rInformações sobre a release (versão) do Kernel.

7.3.23. reboot

Reinicia o computador.

reboot

7.3.24. shutdown

Desliga/reinicia o computador imediatamente ou após determinado tempo (programável) de forma segura. Todos os usuários do sistema são avisados que o computador será desligado. Este comando somente pode ser executado pelo usuário root ou quando é usada a opção -a pelos usuários cadastrados no arquivo /etc/shutdown.allow que estejam logados no console virtual do sistema.

shutdown [opções] [hora] [mensagem]

horaMomento que o computador será desligado. Você pode usar HH:MM para definir a

hora e minuto, MM para definir minutos, +SS para definir após quantos segundos, ou now para imediatamente (equivalente a +0).

O shutdown criará o arquivo /etc/nologin para não permitir que novos usuários façam login no sistema (com excessão do root). Este arquivo é removido caso a execução do shutdown seja cancelada (opção -c) ou após o sistema ser reiniciado.

mensagemMensagem que será mostrada a todos os usuários alertando sobre o

reinício/desligamento do sistema.

Opções-h

Inicia o processo para desligamento do computador.

-rReinicia o sistema

-cCancela a execução do shutdown. Você pode acrescentar uma mensagem

avisando aos usuários sobre o fato.

O shutdown envia uma mensagem a todos os usuários do sistema alertando sobre o desligamento durante os 15 minutos restantes e assim permite que finalizem suas tarefas. Após isto, o shutdown muda o nível de execução através do comando init para 0 (desligamento), 1 (modo monousuário), 6 (reinicialização). É recomendado utilizar o símbolo "&" no final da linha de comando para que o shutdown seja executado em segundo plano.

Quando restarem apenas 5 minutos para o reinicio/desligamento do sistema, o programa login será desativado, impedindo a entrada de novos usuários no sistema.

O programa shutdown pode ser chamado pelo init pressionando as teclas <CTRL> + <ALT> + <DEL>. Alterando-se o arquivo /etc/inittab. Isto permite que somente os usuários autorizados (ou o root) possam reinicializar o sistema.

Exemplos:shutdown -h now - Desligar o computador imediatamente.shutdown -r now - Reinicia o computador imediatamente.shutdown 19:00 “A manutenção do servidor será iniciada às 19:00” - Faz o

PÁG.: 37

Page 38: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

computador entrar em modo monousuário (init 1) às 19:00 enviando a mensagem A manutenção do servidor será iniciada às 19:00 a todos os usuários conectados ao sistema.shutdown -r 15:00 “O sistema será reiniciado às 15:00 horas" - Faz o computador ser reiniciado (init 6) às 15:00 horas enviando a mensagem O sistema será reiniciado às 15:00 horas a todos os usuários conectados ao sistema.shutdown -r 20 - Faz o sistema ser reiniciado após 20 minutos.shutdown -c - Cancela a execução do shutdown.

7.3.25. mount

O comando mount, tem como objetivo disponibilizar recursos do sistema, como partições do disco ou dispositivos removíveis, como por exemplo pendrives, para que seja possível o acesso a estes dispositivos pelo usuário. Esta atividade também é conhecida como “montar” um dispositivo.

Para montar um dispositivo, também é necessário informar um “ponto de montagem”. Um ponto de montagem, é na verdade um diretório abaixo do diretório raiz “/”, que será utilizado para abrigar os dados do dispositivo que está sendo montado. Em geral, para esta finalidade utiliza-se algum diretório criado logo abaixo do diretório “/media”.

mount [dispositivo] [ponto de montagem] [opções]

Onde:

dispositivo Identificação da unidade de disco/partição que deseja acessar (como /dev/hda1

(disco rígido) ou /dev/fd0 (primeira unidade de disquetes). ponto de montagem Diretório de onde a unidade de disco/partição será acessado. O diretório deve

estar vazio para montagem de um sistema de arquivo. Normalmente é usado o diretório “/mnt” para armazenamento de pontos de montagem temporários.

Opções: -t [tipo] Tipo do sistema de arquivos usado pelo dispositivo. São aceitos os sistemas de

arquivos:

* ext2 - Para partições GNU/Linux usando o Extended File System versão 2 (a mais comum).

* ext3 - Para partições GNU/Linux usando o Extended File System versão 3, com suporte a journaling.

* reiserfs - Para partições reiserfs, com suporte a journaling. * vfat - Para partições Windows 95 que utilizam nomes extensos de arquivos e

diretórios. Também é utilizado para montar a maioria dos dispositivos removíveis. * msdos - Para partições DOS normais. * iso9660 - Para montar unidades de CD-ROM. É o padrão. * umsdos - Para montar uma partição DOS com recursos de partições EXT2,

como permissões de acesso, links, etc.

Para mais detalhes sobre opções usadas com cada sistema de arquivos, veja a página de manual mount.

-r Caso for especificada, monta a partição somente para leitura. -w Caso for especificada, monta a partição como leitura/gravação. É o padrão.

Existem muitas outras opções que podem ser usadas com o comando mount, mas

PÁG.: 38

Page 39: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

aqui procurei somente mostrar o básico para "montar" seus discos e partições no GNU/Linux (para mais opções, veja a página de manual do mount). Caso você digitar mount sem parâmetros, serão mostrados os sistemas de arquivos atualmente montados no sistema. Esta mesma listagem pode ser vista em “/etc/mtab”. A remontagem de partição também é muito útil, especialmente após reparos nos sistema de arquivos do disco rígido.

É necessário permissões de root para montar partições, a não ser que tenha especificado a opção user no arquivo “/etc/fstab”.

Exemplo de Montagem:

• Montar uma partição Windows (vfat) de /dev/hda1 em /mnt/win somente para leitura: mount /dev/hda1 /mnt/win -r -t vfat

• Montar a primeira unidade de disquetes /dev/fd0 em /floppy: mount /dev/fd0 /floppy -t vfat

• Montar um pendrive: mount /dev/sda1 /mnt/pen -t vfat• Remontar a partição raíz como somente leitura: mount -o remount,rw /• Remontar a partição raíz como leitura/gravação (a opção -n é usada porque o mount

não conseguirá atualizar o arquivo “/etc/mtab” devido ao sistema de arquivos “/” estar montado como somente leitura atualmente: mount -n -o remount,rw /

7.3.26. umount

O comando umount, faz a operação inversa do comando mount, ou seja, ele é utilizado para “desmontar” recursos disponibilizados pelo comando mount. Você deve ter permissões de root para desmontar um recurso.

umount [dispositivo/ponto de montagem]

Onde:

dispositivo/ponto de montagemVocê pode tanto usar umount /dev/hda1 como umount /media/dados para

desmontar um sistema de arquivos em “/dev/hda1” (dispositivo) montado em “/mnt/dados” (ponto de montagem).

Se o dispositivo estiver sendo utilizado, você não poderá desmontá-lo até que encerre todas as aplicações que estejam fazendo uso, mesmo que seja só exibindo o conteúdo, daquele dispositivo.

7.4. Comandos para Manipulação de Contas

Esta seção tem como objetivo, apresentar os comandos para manipulação de constas do sistema Linux. Mesmo em ambientes onde a autenticação é realizada via um serviço de rede específico (LDAP, NIS, etc), muitas vezes, é necessário criar usuários locais para utilização de algum tipo de serviço que é executado localmente na maquina do usuário.

7.4.1. adduser

Adiciona um usuário ou grupo no sistema. Por padrão, quando um novo usuário é adicionado, é criado um grupo com o mesmo nome do usuário. Opcionalmente o adduser também pode ser usado para adicionar um usuário a um grupo. Será criado um diretório pessoal com o nome do usuário (a não ser que o novo usuário criado seja um usuário do sistema) e este receberá uma identificação. A identificação do usuário (UID) escolhida será a primeira disponível no sistema especificada de acordo com a faixa de UIDS de usuários permitidas no arquivo de configuração /etc/adduser.conf. Este é o arquivo que contém os padrões para a criação de novos usuários no sistema.

PÁG.: 39

Page 40: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

adduser [opções] [usuário/grupo]

onde:

usuário/grupoNome do novo usuário que será adicionado ao sistema.

Opções:-disable-passwd

Não executa o programa passwd para escolher a senha e somente permite o uso da conta após o usuário escolher uma senha.

--force-badnameDesativa a checagem de senhas ruins durante a adição do novo usuário. Por

padrão o adduser checa se a senha pode ser facilmente adivinhada.

--groupCria um novo grupo ao invés de um novo usuário. A criação de grupos também

pode ser feita pelo comando addgroup.

-uid [num]Cria um novo usuário com a identificação [num] ao invés de procurar o próximo

UID disponível.

-gid [num]Faz com que o usuário seja parte do grupo [gid] ao invés de pertencer a um novo

grupo que será criado com seu nome. Isto é útil caso deseje permitir que grupos de usuários possam ter acesso a arquivos comuns.

Caso estiver criando um novo grupo com adduser, a identificação do novo grupo será [num].

--home [dir]Usa o diretório [dir] para a criação do diretório home do usuário ao invés de usar o

especificado no arquivo de configuração /etc/adduser.conf.

--ingroup [nome]Quando adicionar um novo usuário no sistema, coloca o usuário no grupo [nome]

ao invés de criar um novo grupo.

--quietNão mostra mensagens durante a operação.

--systemCria um usuário de sistema ao invés de um usuário normal.

Os dados do usuário são colocados no arquivo /etc/passwd após sua criação e os dados do grupo são colocados no arquivo /etc/group.

OBS: Caso esteja usando senhas ocultas (shadow passwords), as senhas dos usuários serão colocadas no arquivo /etc/shadow e as senhas dos grupos no arquivo /etc/gshadow. Isto aumenta mais a segurança do sistema porque somente o usuário root pode ter acesso a estes arquivos, ao contrário do arquivo /etc/passwd que possui os dados de usuários e devem ser lidos por todos.

7.4.2. addgroup

Adiciona um novo grupo de usuários no sistema. As opções usadas são análogas ao

PÁG.: 40

Page 41: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

comando adduser.

addgroup [usuário/grupo] [opções]

7.4.3. passwd

Muda a senha do usuário ou grupo. Um usuário somente pode alterar a senha de sua conta, mas o superusuário (root) pode alterar a senha de qualquer conta de usuário, inclusive a data de validade da conta etc. Os donos de grupos também podem alterar a senha do grupo com este comando.

passwd [usuário/grupo] [opções]

onde:

usuário Nome do usuário/grupo que terá sua senha alterada.

Opções:-g

Se especificada, a senha do grupo será alterada. Somente o root ou o administrador do grupo pode alterar sua senha. A opção -r pode ser usada com esta para remover a senha do grupo. A opção -R pode ser usada para restringir o acesso do grupo para outros usuários.

Procure sempre combinar letras maiúsculas, minúsculas, e números ao escolher suas senhas. Não é recomendado escolher palavras normais como sua senha pois podem ser vulneráveis a ataques de dicionários cracker. Outra recomendação é utilizar senhas ocultas em seu sistema (shadow password).

Você deve ser o dono da conta para poder modificar a senhas. O usuário root pode modificar/apagar a senha de qualquer usuário.

-fExecuta o comando chfn para que o usuário possa alterar as informações como

nome, telefone, etc do usuário em questão.

Exemplos:passwd root

7.4.4. newgrp

Altera temporariamente a identificação do grupo primário do usuário. Para retornar a identificação do grupo anterior, digite exit e tecle <Enter> ou rode o comando novamente sem parâmetros.

newgrp - [grupo]

onde:

grupoÉ o grupo que se deseja tornar o grupo primário do usuário, pode ser utilizado o

nome ou número do grupo que será utilizado.

-Se usado, inicia um novo ambiente após o uso do comando newgrp (semelhante a

um novo login no sistema), caso contrário, o ambiente atual do usuário é mantido.

Só podemos alterar o grupo primário do usuário, utilizando os grupos aos quais o usuário já faz parte, caso contrário, será requisitada uma senha do grupo que se deseja

PÁG.: 41

Page 42: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

acessar. Caso a senha do grupo esteja incorreta ou não exista senha definida, a execução do comando é negada. A listagem dos grupos a que o usuário pertence atualmente, pode ser exibida usando o comando id (veja a seguir).

7.4.5. userdel

Apaga um usuário do sistema. Quando é usado, este comando apaga todos os dados da conta especificado dos arquivos de contas do sistema.

userdel [-r] [usuário]

onde:

-rApaga também o diretório pessoal do usuário.

OBS: Note que uma conta de usuário não poderá ser removida, caso o usuário esteja utilizando o sistema, pois os programas podem precisar ter acesso aos dados dele (como UID, GID) presentes no /etc/passwd.

7.4.6. groupdel

Apaga um grupo do sistema. Quando é usado, este comando apaga todos os dados do grupo especificado dos arquivos de contas do sistema.

groupdel [grupo]

onde:

grupoÉ o grupo que se deseja remover.

Tenha certeza que não existem arquivos/diretórios criados com o grupo apagado através do comando find.

OBS: Você não pode remover o grupo primário de um usuário. Remova o usuário primeiro.

7.4.7. sg

Executa um comando com outra identificação de grupo. A identificação do grupo de usuário é modificada somente durante a execução do comando. Para alterar a identificação de grupo durante sua seção, use o comando newgrp.

sg [-] [grupo] [comando]

onde:

-Se usado, inicia um novo ambiente durante o uso do comando (semelhante a um

novo login e execução do comando), caso contrário, o ambiente atual do usuário é mantido.

grupo

Nome do grupo em que o comando deverá ser executado.

PÁG.: 42

Page 43: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

comandoComando que será executado. O comando será executado pelo bash.

Quando este comando é usado, deve-se informar um grupo do qual o usuário já faça parte, caso contrário, é requisitada a senha do grupo que deseja utilizar. Caso a senha do grupo esteja incorreta ou não exista senha definida, a execução do comando é negada.

Exemplo:sg root ls /root

7.4.8. Adicionando o usuário a um grupo extra

Para adicionar um usuário em um novo grupo e assim permitir que ele acesse os arquivos/diretórios que pertencem àquele grupo, você deve estar como root e editar o arquivo /etc/group com o comando “vigr” ou “vi /etc/group”. Este arquivo possui o seguinte formato:

NomedoGrupo:senha:GID:usuários

onde:

NomedoGrupoÉ o nome daquele grupo de usuários.

senhaSenha para ter acesso ao grupo. Caso esteja utilizando senhas ocultas para

grupos, as senhas estarão em /etc/gshadow.

GIDIdentificação numérica do grupo de usuário.

usuáriosLista de usuários que também fazem parte daquele grupo. Caso exista mais de um

nome de usuário, eles devem estar separados por vírgula.

Deste modo para acrescentar o usuário "marcius" ao grupo “audio” para ter acesso aos dispositivos de som do Linux, acrescente o nome no final da linha:

audio:x:100:marcius

Pronto, basta digitar logout e entrar novamente com seu nome e senha, você estará fazendo parte do grupo “audio” (confira com os comandos groups ou id).

Outros nomes de usuários podem ser acrescentados ao grupo “audio” bastando separar os nomes com vírgula. Você também pode usar o comando adduser da seguinte forma para adicionar automaticamente um usuário a um grupo:

adduser marcius audio

Isto adicionaria o usuário "marcius" ao grupo “audio” da mesma forma que fazendo-se a edição manualmente.

7.4.9. chfn

Muda os dados exibidos com o comando finger.

chfn [usuário] [opções]

PÁG.: 43

Page 44: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

onde:

usuárioNome do usuário.

Opções:-f [nome]

Muda o nome completo do usuário.

-r [nome]Muda o número da sala do usuário.

-w [tel]Muda o telefone de trabalho do usuário.

-h [tel]Muda o telefone residencial do usuário.

-o [outros]Muda outros dados do usuário.

Caso o nome que acompanha as opções (como o nome completo) contenha espaços, use "" para identifica-lo.

Exemplo:chfn -f "Nome do Usuário root" root

7.4.10. id

Mostra a identificação atual do usuário, grupo primário e outros grupos que este pertence.

id [opções] [usuário]

onde:

usuárioÉ o usuário que desejamos ver a identificação, grupos primários e

complementares.

Opções:-g, --group

Mostra somente a identificação do grupo primário.

-G, --groupsMostra a identificação de outros grupos que pertence.

-n, --nameMostra o nome do usuário e grupo ao invés da identificação numérica.

-u, --userMostra somente a identificação do usuário (user ID).

-r, --realMostra a identificação real de usuário e grupo, ao invés da efetiva. Esta opção

deve ser usada junto com uma das opções: -u, -g, ou -G.

PÁG.: 44

Page 45: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Caso não sejam especificadas opções, id mostrará todos os dados do usuário.

Exemplo:idid –userid -r -u.

7.4.11. logname

Mostra seu login (nome de usuário).

logname

7.4.12. users

Mostra os nomes dos usuários que estão usando atualmente o sistema. Os nomes de usuários são mostrados através de espaços sem detalhes adicionais. Para maiores detalhes sobre os usuários, veja os comandos id e who.

users

Os nomes de usuários atualmente conectados ao sistema são obtidos do arquivo /var/log/wtmp.

7.4.13. groups

Mostra os grupos que o usuário pertence.

groups [usuário]

onde:

usuárioÉ o usuário ao qual, queremos exibir os grupos a que ele pertence.

Exemplogroupsgroups root

7.4.14. getent

Apresenta uma lista de informações de acordo com o parâmetro “base”, sobre usuários, grupos, computadores, redes, serviços e protocolos do sistema, juntamente com suas informações complementares. A utilização deste comando é feita da seguinte forma:

getent [base]

onde:

baseSignifica a base a qual o comando irá consultar. Este parâmetro pode ser

configurado com os valores “passwd” (informações sobre usuários), “group” (informações sobre grupos), “networks” (informações sobre a rede), “hosts” (informações sobre resolução de nomes local), “services” (informações sobre serviços) e “protocols” (informações sobre protocolos de rede).

PÁG.: 45

Page 46: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

7.5. Comandos de Rede

Este capítulo traz alguns comandos úteis para uso em rede e ambientes multiusuário.

7.5.1. who

Mostra quem está atualmente conectado no computador. Este comando lista os nomes de usuários que estão conectados em seu computador, o terminal e data da conexão.

who [opções]

Opções-H, --heading

Mostra o cabeçalho das colunas.

-i, -u, --idleMostra o tempo que o usuário está parado em Horas:Minutos.

-m, i amMostra o nome do computador e usuário associado ao nome. É equivalente a

digitar who i am ou who am i.

-q, --countMostra o total de usuários conectados aos terminais.

-T, -w, --mesgMostra se o usuário pode receber mensagens via talk (conversação).

+ O usuário recebe mensagens via talk- O usuário não recebe mensagens via talk.? Não foi possível determinar o dispositivo de terminal onde o usuário está conectado.

7.5.2. finger

Mostra detalhes sobre os usuários de um sistema. Algumas versões do finger possuem bugs e podem significar um risco para a segurança do sistema. É recomendado desativar este serviço na máquina local.

finger [opções] [usuario] [usuario@host]

onde:

usuárioNome do usuário que deseja obter detalhes do sistema. Se não for digitado o

nome de usuário, o sistema mostra detalhes de todos os usuários conectados no momento.

usuario@hostNome do usuário e endereço do computador que deseja obter detalhes.

Opções-l

Mostra os detalhes de todos os usuários conectados no momento. Entre os detalhes, estão incluídos o nome do interpretador de comandos (shell) do usuário, diretório home, nome do usuário, endereço, etc.

-p

PÁG.: 46

Page 47: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Não exibe o conteúdo dos arquivos .plan e .project

Se for usado sem parâmetros, mostra os dados de todos os usuários conectados atualmente ao seu sistema.

Exemplo:fingerfinger root.

7.5.3. ftp

Permite a transferência de arquivos do computador remoto/local e vice versa. O FTP (File Transfer Protocol) é o sistema de transmissão de arquivos mais usado na Internet. É requerida a autenticação do usuário para que seja permitida a conexão. Muitos servidores ftp disponibilizam acesso anônimo aos usuários, com acesso restrito.

Uma vez conectado a um servidor ftp, você pode usar a maioria dos comandos do GNU/Linux para operá-lo.

ftp [ip/dns]

Abaixo alguns dos comandos mais usados no ftp:

lsLista arquivos do diretório atual.

cd [diretório]Entra em um diretório.

get [arquivo]Copia um arquivo do servidor ftp para o computador local. O arquivo é gravado,

por padrão, no diretório onde o programa ftp foi executado.

hash [on/off]Por padrão esta opção está desligada. Quando ligada, faz com que o caracter #

seja impresso na tela indicando o progresso do download.

mget [arquivos]Semelhante ao get, mas pode copiar diversos arquivos e permite o uso de

coringas.

send [arquivo]Envia um arquivo para o diretório atual do servidor FTP (você precisa de uma

conta com acesso a gravação para fazer isto).

prompt [on/off]Ativa ou desativa a pergunta para a cópia de arquivo. Se estiver como off assume

sim para qualquer pergunta.

Exemplo:ftp ftp.br.debian.org.

7.5.4. whoami

Mostra o nome que usou para se conectar ao sistema. É útil quando você usa várias contas e não sabe com qual nome entrou no sistema.

PÁG.: 47

Page 48: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

whoami

7.5.5. hostname

Mostra ou muda o nome de seu computador na rede. É necessário também, mudar alguns arquivos de configuração para trocar efetivamente o nome do computador, além de executar o hostname.

hostname

7.5.6. ping

O comando ping envia requisições ICMP para maquinas remotas. Útil para descobrir se uma determinada maquina da rede responde as requisições de rede (via ICMP) feitas a ela. Para que uma maquina possa responder a uma requisição feito por ping, ela deverá ter o protocolo IP configurado corretamente.

ping [opções] [ip/dns]

onde:

ip/dnsEndereço IP ou nome (DNS) do computador remoto que desejamos enviar

requisições ping.

Opções-c

Envia um determinado número de requisições.

-sPermite especificar o tamanho do pacote em bytes, que ping enviará ao

computador remoto. O padrão é 56.

Exemplos:ping 10.15.15.5ping -s 1024 10.15.15.5

7.5.7. nmap

Permite verificar os estados das portas utilizadas pelo protocolo TCP/IP em um determinado computador remoto. Cada porta pode representar um serviço de rede fornecido pela maquina remota. Os estados que as portas podem assumir são :

Open: Neste caso a porta esta aberta, permitindo conexão com o computador remoto através daquela porta.

Filtered: A porta está filtrada, provavelmente por um Firewall.Closed: A porta está fechada e o serviço inacessível.

nmap [opções] [ip/dns]

onde:

ip/dnsEndereço IP ou nome (DNS) do computador remoto que desejamos verificar o

estado das portas.

Opções

PÁG.: 48

Page 49: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

-P0Não realiza ping antes de realizar a verificação, necessário para alguns

computadores com implementações de segurança mais austeras.

-p [intervalo]Portas a serem verificadas. Pode-se fornecer apenas uma porta ou um intervalo no

padrão “1-1024” ou “80-8080” para se verificar.

-OTenta descobrir o sistema operacional do computador remoto.

Exemplos:nmap -p 80 10.15.15.5nmap -O -p 22-80 10.15.15.5nmap localhost

7.6. Comandos para Gerenciamento de Processos

Esta seção descreve as ferramentas Linux para gerenciamento de processos.

7.6.1. ps

Lista os processos do sistema. Este comando é muito útil para verificar o PID (número de identificação do processo) de um processo.

ps [opções]

onde:

Opções-A

Lista todos os processos existentes.-U [usuário]

Lista os processos de um determinado usuário.

-C [comando]Permite pesquisar um processo pelo nome do executável.

Exemplos:ps -Aps -U marcius

7.6.2. top

Lista os processos do sistema em tempo real. Informações sobre a carga do sistema, como uso de CPU e memória, também são providas por este comando. Voce pode pressionar a tecla <Q> para encerrar a execução do top.

top [opções]

Opções-u [usuário]

Lista os processos de um determinado usuário.

Exemplos:toptop -u marcius

PÁG.: 49

Page 50: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

7.6.3. bg

Faz com que um programa seja executado em background (2° plano). Você também pode usar o operador “&” ao final de um comando para executá-lo em 2° plano.

bg [id/comando]

onde:

id/comandoÉ o identificador de um processo que está parado (veja o comando jobs) ou o

nome de um comando que deverá ser executado em 2° plano.

Exemplos:bg updatedbbg 1updatedb &

7.6.4. fg

Faz com que um programa seja executado em foreground (1° plano).

fg [id/comando]

onde:

id/comandoÉ o identificador de um processo que está parado (veja o comando jobs) ou o

nome de um comando que deverá ser executado em 1° plano.

Exemplos:fg updatedbfg 1

7.6.5. jobs

Exibe o status dos processos que estão parados ou executando em background (2° plano).

jobs

O comando jobs exibirá uma lista com identificadores (a esquerda entre chaves) que poderão ser utilizados com os comandos fg e bg.

7.6.6. kill

Permite enviar um sinal a um comando/programa. Caso seja usado sem parâmetros, o kill enviará um sinal de término ao processo sendo executado.

kill [opções] [sinal] [número]

Onde:

número

PÁG.: 50

Page 51: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

É o número de identificação do processo obtido com o comando ps. Também pode ser o número após o sinal de % obtido pelo comando jobs para matar uma tarefa interrompida. Veja o comando jobs.

sinal Sinal que será enviado ao processo. Se omitido usa -15 como padrão.

Opções-9 Envia um sinal de destruição ao processo ou programa. Ele é terminado

imediatamente sem chances de salvar os dados ou apagar os arquivos temporários criados por ele.

Você precisa ser o dono do processo ou o usuário root para termina-lo ou destruí-lo. Você pode verificar se o processo foi finalizado através do comando ps.

Exemplos: kill 500kill -9 500kill %1

7.6.7. killall

Permite finalizar processos através do nome.

killall [opções] [sinal] [processo]

Onde:

processo Nome do processo que deseja finalizar

sinal Sinal que será enviado ao processo (pode ser obtido usando a opção -i).

Opções-i Pede confirmação sobre a finalização do processo.

-l Lista o nome de todos os sinais conhecidos.

-q Ignora a existência do processo.

-v Retorna se o sinal foi enviado com sucesso ao processo.

-w Finaliza a execução do killall somente após finalizar todos os processos.

Exemplo:killall -HUP inetd

PÁG.: 51

Page 52: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

8. Permissões de acesso a arquivos e diretórios

A permissão de acesso protege o sistema de arquivos Linux do acesso indevido de pessoas ou programas não autorizados.

A permissão de acesso do GNU/Linux também impede que um programa mal intencionado, por exemplo, apague um arquivo que não deve, envie arquivos para outra pessoa ou forneça acesso da rede para que outros usuários invadam o sistema. O sistema GNU/Linux é muito seguro e como qualquer outro sistema seguro e confiável impede que usuários iniciantes (ou mal intencionados) instalem programas enviados por terceiros sem saber para que eles realmente servem e causem danos irreversíveis em seus arquivos, seu micro ou sua empresa.

Esta seção pode se tornar um pouco difícil de se entender, então recomendamos ler e ao mesmo tempo praticá-la para uma ótima compreensão. Não se preocupe, também coloquei exemplos para ajuda-lo a entender o sistema de permissões de acesso do ambiente GNU/Linux.

8.1. Donos, grupos e outros usuários

O princípio da segurança no sistema de arquivos GNU/Linux é definir o acesso aos arquivos por donos, grupos e outros usuários:

donoÉ a pessoa que criou o arquivo ou o diretório. O nome do dono do arquivo/diretório é o

mesmo do usuário usado para entrar no sistema GNU/Linux. Somente o dono pode modificar as permissões de acesso do arquivo.

As permissões de acesso do dono de um arquivo somente se aplicam ao dono do arquivo/diretório. A identificação do dono também é chamada de user id (UID).

A identificação de usuário e o nome do grupo que pertence são armazenadas respectivamente nos arquivos /etc/passwd e /etc/group. Estes são arquivos textos comuns e podem ser editados em qualquer editor de texto, mas tenha cuidado para não modificar o campo que contém a senha do usuário encriptada (que pode estar armazenada neste arquivo caso não estiver usando senhas ocultas).

grupoPara permitir que vários usuários diferentes tivessem acesso a um mesmo arquivo (já

que somente o dono poderia ter acesso ao arquivo), este recurso foi criado. Cada usuário pode fazer parte de um ou mais grupos e então acessar arquivos que pertençam ao mesmo grupo que o seu (mesmo que estes arquivos tenham outro dono).

Por padrão, quando um novo usuário é criado, o grupo ele pertencerá será o mesmo de seu grupo primário (exceto pelas condições que explicarei adiante) (veja isto através do comando id). A identificação do grupo é chamada de GID (group id).

Um usuário pode pertencer a um ou mais grupos. Para detalhes de como incluir o usuário em mais grupos veja adicionando o usuário a um grupo extra.

outrosÉ a categoria de usuários que não são donos ou não pertencem ao grupo do arquivo.

Cada um dos tipos acima possuem três tipos básicos de permissões de acesso que serão vistas na próxima seção.

8.2. Tipos de Permissões de acesso

Quanto aos tipos de permissões que se aplicam ao dono, grupo e outros usuários, temos 3 permissões básicas:

r - Permissão de leitura para arquivos. Caso for um diretório, permite listar seu conteúdo (através do comando ls, por exemplo).w - Permissão de gravação para arquivos. Caso for um diretório, permite a gravação de arquivos ou outros diretórios dentro dele.Para que um arquivo/diretório possa ser apagado, é necessário o acesso a gravação.

PÁG.: 52

Page 53: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

x - Permite executar um arquivo (caso seja um programa executável). Caso seja um diretório, permite que seja acessado através do comando cd.

As permissões de acesso a um arquivo/diretório podem ser visualizadas com o uso do comando ls -la. As 3 letras (rwx) são agrupadas da seguinte forma:

-rwxrwxrwx marcius users testeVirou uma bagunça não? Vou explicar cada parte para entender o que quer dizer as 10

letras acima (da esquerda para a direita):• A primeira letra diz qual é o tipo do arquivo. Caso tiver um d é um diretório, um l um link a um

arquivo no sistema (veja ln para detalhes) , um “-” quer dizer que é um arquivo comum etc.• Da segunda a quarta letra (rwx) dizem qual é a permissão de acesso ao dono do arquivo.

Neste caso marcius ele tem a permissão de ler (r - read), gravar (w - write) e executar (x - execute) o arquivo teste.

• Da quinta a sétima letra (rwx) diz qual é a permissão de acesso ao grupo do arquivo. Neste caso todos os usuários que pertencem ao grupo users tem a permissão de ler (r), gravar (w), e também executar (x) o arquivo teste.

• Da oitava a décima letra (rwx) diz qual é a permissão de acesso para os outros usuários. Neste caso todos os usuários que não são donos do arquivo teste tem a permissão para ler, gravar e executar o programa.

Veja o comando chmod para detalhes sobre a mudança das permissões de acesso de arquivos/diretórios.

8.3. Etapas para acesso a um arquivo/diretório

O acesso a um arquivo/diretório é feito verificando primeiro se o usuário que acessará o arquivo é o seu dono, caso seja, as permissões de dono do arquivo são aplicadas. Caso não seja o dono do arquivo/diretório, é verificado se ele pertence ao grupo correspondente, caso pertença, as permissões do grupo são aplicadas. Caso não pertença ao grupo, são verificadas as permissões de acesso para os outros usuários que não são donos e não pertencem ao grupo correspondente ao arquivo/diretório.

Após verificar aonde o usuário se encaixa nas permissões de acesso do arquivo (se ele é o dono, pertence ao grupo, ou outros usuários), é verificado se ele terá permissão acesso para o que deseja fazer (ler, gravar ou executar o arquivo), caso não tenha, o acesso é negado, mostrando uma mensagem do tipo: Permission denied (permissão negada).

O que isto que dizer é que mesmo que você seja o dono do arquivo e definir o acesso do dono (através do comando chmod) como somente leitura (r) mas o acesso dos outros usuários como leitura e gravação, você somente poderá ler este arquivo mas os outros usuários poderão ler/grava-lo.

As permissões de acesso (leitura, gravação, execução) para donos, grupos e outros usuários são independentes, permitindo assim um nível de acesso diferenciado. Para maiores detalhes veja Tipos de Permissões de acesso.

Lembre-se: Somente o dono pode modificar um arquivo/diretório!Para mais detalhes veja os comandos chown e chgrp.

8.3.1. Exemplos práticos de permissões de acesso

Abaixo dois exemplos práticos de permissão de acesso: Exemplo de acesso a um arquivo e a Exemplo de acesso a um diretório. Os dois exemplos são explicados passo a passo para uma perfeita compreensão do assunto. Vamos a prática!

Exemplo de acesso a um arquivo

PÁG.: 53

Page 54: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Abaixo um exemplo e explicação das permissões de acesso a um arquivo no GNU/Linux (obtido com o comando ls -la, explicarei passo a passo cada parte:

-rwxr-xr-- 1 marcius user 8192 nov 4 16:00 teste

-rwxr-xr--Estas são as permissões de acesso ao arquivo teste. Um conjunto de 10 letras

que especificam o tipo do arquivo, permissão do dono do arquivo, grupo do arquivo e outros usuários. Veja a explicação detalhada sobre cada uma abaixo:

-rwxr-xr--A primeira letra (do conjunto das 10 letras) determina o tipo do arquivos. Se a letra

for um d é um diretório, e você poderá acessa-lo usando o comando cd. Caso for um l é um link simbólico para algum arquivo ou diretório no sistema (para detalhes veja o comando ln. Um - significa que é um arquivo normal.

-rwxr-xr--Estas 3 letras (da segunda a quarta do conjunto das 10 letras) são as permissões

de acesso do dono do arquivo teste. O dono (neste caso marcius) tem a permissão para ler (r), gravar (w) e executar (x) o arquivo teste.

-rwxr-xr--Estas 3 letras (da quinta a sétima do conjunto das 10 letras) são as permissões de

acesso dos usuários que pertencem ao grupo user do arquivo teste. Os usuários que pertencem ao grupo user tem a permissão somente para ler (r) e executar (x) o arquivo teste não podendo modifica-lo ou apaga-lo.

-rwxr-xr--Estas 3 letras (da oitava a décima) são as permissões de acesso para usuários

que não são donos do arquivo teste e que não pertencem ao grupo user. Neste caso, estas pessoas somente terão a permissão para ver o conteúdo do arquivo teste.

marciusNome do dono do arquivo teste.

userNome do grupo que o arquivo teste pertence.

testeNome do arquivo.

Exemplo de acesso a um diretório

Abaixo um exemplo com explicações das permissões de acesso a um diretório no GNU/Linux:

drwxr-x--- 2 marcius user 1024 nov 4 17:55 exemplo

drwxr-x---Permissões de acesso ao diretório exemplo. É um conjunto de 10 letras que

especificam o tipo de arquivo, permissão do dono do diretório, grupo que o diretório pertence e permissão de acesso a outros usuários. Veja as explicações abaixo:

drwxr-x---A primeira letra (do conjunto das 10) determina o tipo do arquivo. Neste caso é um

diretório porque tem a letra d.

drwxr-x---

PÁG.: 54

Page 55: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Estas 3 letras (da segunda a quarta) são as permissões de acesso do dono do diretório exemplo. O dono do diretório (neste caso marcius) tem a permissão para listar arquivos do diretório (r), gravar arquivos no diretório (w) e entrar no diretório (x).

drwxr-x--- Estas 3 letras (da quinta a sétima) são as permissões de acesso dos usuários

que pertencem ao grupo user. Os usuários que pertencem ao grupo user tem a permissão somente para listar arquivos do diretório (r) e entrar no diretório (x) exemplo.

drwxr-x---Estas 3 letras (da oitava a décima) são as permissões de acesso para usuários

que não são donos do diretório exemplo e que não pertencem ao grupo user. Com as permissões acima, nenhum usuário que se encaixe nas condições de dono e grupo do diretório tem a permissão de acessa-lo.

marciusNome do dono do diretório exemplo.

userNome do grupo que diretório exemplo pertence.

exemploNome do diretório. Para detalhes de como alterar o dono/grupo de um arquivo/diretório, veja os

comandos chmod, chgrp e chown.

Observações:• O usuário root não tem nenhuma restrição de acesso ao sistema.• Se você tem permissões de gravação no diretório e tentar apagar um arquivo que você

não tem permissão de gravação, o sistema perguntará se você confirma a exclusão do arquivo apesar do modo leitura. Caso você tenha permissões de gravação no arquivo, o arquivo será apagado por padrão sem mostrar nenhuma mensagem de erro (a não ser que seja especificada a opção -i com o comando rm).

• Por outro lado, mesmo que você tenha permissões de gravação em um arquivo mas não tenha permissões de gravação em um diretório, a exclusão do arquivo será negada.

Isto mostra que é levado mais em consideração a permissão de acesso do diretório do que as permissões dos arquivos e sub-diretórios que ele contém. Este ponto é muitas vezes ignorado por muitas pessoas e expõem seu sistema a riscos de segurança. Imagine o problema que algum usuário que não tenha permissão de gravação em um arquivo mas que a tenha no diretório pode causar em um sistema mal administrado.

8.4. Permissões de Acesso Especiais

Em adição as três permissões básicas (rwx), existem permissões de acesso especiais (stX) que afetam arquivos executáveis e diretórios:• s - Quando é usado na permissão de acesso do Dono, ajusta a identificação efetiva do

usuário do processo durante a execução de um programa, também chamado de bit setuid. Não tem efeito em diretórios.Quando s é usado na permissão de acesso do Grupo, ajusta a identificação efetiva do grupo do processo durante a execução de um programa, chamado de bit setgid. É identificado pela letra s no lugar da permissão de execução do grupo do arquivo/diretório. Em diretórios, força que os arquivos criados dentro dele pertençam ao mesmo grupo do diretório, ao invés do grupo primário que o usuário pertence.Ambos setgid e setuid podem aparecer ao mesmo tempo no mesmo arquivo/diretório. A permissão de acesso especial s somente pode aparecer no campo Dono e Grupo.

• S - Idêntico a s. Significa que não existe a permissão x (execução ou entrar no diretório) naquele lugar. Um exemplo é o chmod 2760 em um diretório.

• t - Salva a imagem do texto do programa no dispositivo swap, assim ele será carregado mais rapidamente quando executado, também chamado de stick bit.

PÁG.: 55

Page 56: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Em diretórios, impede que outros usuários removam arquivos dos quais não são donos. Isto é chamado de colocar o diretório em modo append-only. Um exemplo de diretório que se encaixa perfeitamente nesta condição é o /tmp, todos os usuários devem ter acesso para que seus programas possam criar os arquivos temporários lá, mas nenhum pode apagar arquivos dos outros. A permissão especial t, pode ser especificada somente no campo outros usuários das permissões de acesso.

• T - Idêntico a t. Significa que não existe a permissão x naquela posição (por exemplo, em um chmod 1776 em um diretório).

• X - Se você usar X ao invés de x, a permissão de execução somente é afetada se o arquivo já tiver permissões de execução. Em diretórios ela tem o mesmo efeito que a permissão de execução x.

Exemplo da permissão de acesso especial X:

1. Crie um arquivo teste (digitando touch teste) e defina sua permissão para rw-rw-r-- (chmod ug=rw,o=r teste ou chmod 664 teste).

2. Agora use o comando chmod a+X teste3. digite ls -l4. Veja que as permissões do arquivo não foram afetadas.5. agora digite chmod o+x teste6. digite ls -l, você colocou a permissão de execução para os outros usuários.7. Agora use novamente o comando chmod a+X teste8. digite ls -l9. Veja que agora a permissão de execução foi concedida a todos os usuários, pois foi

verificado que o arquivo era executável (tinha permissão de execução para outros usuários).

10. Agora use o comando chmod a-X testeEle também funcionará e removerá as permissões de execução de todos os usuários, porque o arquivo teste tem permissão de execução (confira digitando ls -l).

11. Agora tente novamente o chmod a+X teste12. Você deve ter reparado que a permissão de acesso especial X é semelhante a x, mas

somente faz efeito quanto o arquivo já tem permissão de execução para o dono, grupo ou outros usuários.

Em diretórios, a permissão de acesso especial X funciona da mesma forma que x, até mesmo se o diretório não tiver nenhuma permissão de acesso (x).

8.5. A conta root

Esta seção foi retirada do Manual de Instalação da Debian.A conta root é também chamada de super usuário, este é um login que não possui

restrições de segurança. A conta root somente deve ser usada para fazer a administração do sistema, e usada o menor tempo possível.

Qualquer senha que criar deverá conter de 6 a 8 caracteres (em sistemas usando crypto) ou até frases inteiras (caso esteja usando MD5, que garante maior segurança), e também poderá conter letras maiúsculas e minúsculas, e também caracteres de pontuação. Tenha um cuidado especial quando escolher sua senha root, porque ela é a conta mais poderosa. Evite palavras de dicionário ou o uso de qualquer outros dados pessoais que podem ser adivinhados.

Se qualquer um lhe pedir senha root, seja extremamente cuidadoso. Você normalmente nunca deve distribuir sua conta root, a não ser que esteja administrando um computador com mais de um administrador do sistema.

Utilize uma conta de usuário normal ao invés da conta root para operar seu sistema. Porque não usar a conta root? Bem, uma razão para evitar usar privilégios root é por causa da facilidade de se cometer danos irreparáveis como root. Outra razão é que você pode ser enganado e rodar um programa Cavalo de Tróia -- que é um programa que obtém poderes do super usuário para comprometer a segurança do seu sistema sem que você saiba.

PÁG.: 56

Page 57: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

8.6. Comandos para Manipulação de Permissões

8.6.1. chmod

Muda a permissão de acesso a um arquivo ou diretório. Com este comando você pode escolher se usuário ou grupo terá permissões para ler, gravar, executar um arquivo ou arquivos. Sempre que um arquivo é criado, seu dono é o usuário que o criou e seu grupo é o grupo do usuário (exceto para diretórios configurados com a permissão de grupo s, será visto adiante).

chmod [opções] [permissões] [diretório/arquivo]

onde:

diretório/arquivoDiretório ou arquivo que terá sua permissão mudada.

Opções:-v, --verbose

Mostra todos os arquivos que estão sendo processados.

-f, --silentNão mostra a maior parte das mensagens de erro.

-c, --changeSemelhante a opção -v, mas só mostra os arquivos que tiveram as permissões

alteradas.

-R, --recursiveMuda permissões de acesso do diretório/arquivo no diretório atual e sub-diretórios.

ugoa+-=rwxXstugoa - Controla que nível de acesso será mudado. Especificam, em ordem, usuário (u), grupo (g), outros (o), todos (a).+-= - + coloca a permissão, - retira a permissão do arquivo e = define a permissão exatamente como especificado.rwx - r permissão de leitura do arquivo. w permissão de gravação, x permissão de execução (ou acesso a diretórios).

O chmod não muda permissões de links simbólicos, as permissões devem ser mudadas no arquivo alvo do link. Também podem ser usados códigos numéricos octais para a mudança das permissões de acesso a arquivos/diretórios. Para detalhes veja

Modo de permissão octalDica: É possível copiar permissões de acesso do arquivo/diretório, por exemplo, se

o arquivo teste.txt tiver a permissão de acesso r-xr----- e você digitar chmod o=u, as permissões de acesso dos outros usuários (o) serão idênticas ao do dono (u). Então a nova permissão de acesso do arquivo teste.txt será r-xr—r-x.

Exemplos de permissões de acesso:chmod g+r * - Permite que todos os usuários que pertençam ao grupo dos arquivos

(g) tenham (+) permissões de leitura (r) em todos os arquivos do diretório atual.

chmod o-r teste.txt - Retira (-) a permissão de leitura (r) do arquivo teste.txt para os outros usuários (usuários que não são donos e não pertencem ao grupo do arquivo teste.txt).

PÁG.: 57

Page 58: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

chmod uo+x teste.txt - Inclui (+) a permissão de execução do arquivo teste.txt para o dono e outros usuários do arquivo.

chmod a+x teste.txt - Inclui (+) a permissão de execução do arquivo teste.txt para o dono, grupo e outros usuários.

chmod a=rw teste.txt - Define a permissão de todos os usuários exatamente (=) para leitura e gravação do arquivo teste.txt.

8.6.2. chgrp

Muda o grupo de um arquivo/diretório.

chgrp [opções] [grupo] [arquivo/diretório]

onde:

grupoNovo grupo do arquivo/diretório.

arquivo/diretórioArquivo/diretório que terá o grupo alterado.

Opções-c, --changes

Somente mostra os arquivos/grupos que forem alterados.

-f, --silentNão mostra mensagens de erro para arquivos/diretórios que não puderam ser

alterados.

-v, --verboseMostra todas as mensagens e arquivos sendo modificados.

-R, --recursiveAltera os grupos de arquivos/sub-diretórios do diretório atual.

8.6.3. chown

Muda dono de um arquivo/diretório. Opcionalmente pode também ser usado para mudar o grupo.

chown [opções] [dono.grupo] [diretório/arquivo]

onde:

dono.grupoNome do dono.grupo que será atribuído ao diretório/arquivo. O grupo é opcional.

diretório/arquivoDiretório/arquivo que o dono.grupo será modificado.

Opções-v, --verbose

Mostra os arquivos enquanto são alterados.

-f, --supressNão mostra mensagens de erro durante a execução do programa.

PÁG.: 58

Page 59: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

-c, --changesMostra somente arquivos que forem alterados.

-R, --recursiveAltera dono e grupo de arquivos no diretório atual e sub-diretórios.

O dono.grupo pode ser especificado usando o nome de grupo ou o código numérico correspondente ao grupo (GID).

Você deve ter permissões de gravação no diretório/arquivo para alterar seu dono/grupo.

Exemplos:chown joao teste.txtMuda o dono do arquivo teste.txt para joao.

chown joao.users teste.txtMuda o dono do arquivo teste.txt para joao e seu grupo para users.

chown -R joao.users *Muda o dono/grupo dos arquivos do diretório atual e sub-diretórios para joao/users (desde que você tenha permissões de gravação no diretórios e sub-diretórios).

8.7. Modo de Permissão Octal

Ao invés de utilizar os modos de permissão +r, -r etc, pode ser usado o modo octal para se alterar a permissão de acesso a um arquivo. O modo octal é um conjunto de oito números onde cada número define um tipo de acesso diferente.

É mais flexível gerenciar permissões de acesso usando o modo octal ao invés do comum, pois você especifica diretamente a permissão do dono, grupo, outros ao invés de gerenciar as permissões de cada um separadamente. Abaixo a lista de permissões de acesso octal:• 0 - Nenhuma permissão de acesso. Equivalente a -rwx.• 1 - Permissão de execução (x).• 2 - Permissão de gravação (w).• 3 - Permissão de gravação e execução (wx).• 4 - Permissão de leitura (r).• 5 - Permissão de leitura e execução (rx).• 6 - Permissão de leitura e gravação (rw).• 7 - Permissão de leitura, gravação e execução. Equivalente a +rwx.

O uso de um deste números define a permissão de acesso do dono, grupo ou outros usuários. Um modo fácil de entender como as permissões de acesso octais funcionam, é através da seguinte tabela:

1 = Executar2 = Gravar4 = LerPara Dono e Grupo, multiplique as permissões acima por x100 e x10.Basta agora fazer o seguinte:

• Somente permissão de execução, use 1.• Somente a permissão de leitura, use 4.• Somente permissão de gravação, use 2.• Permissão de leitura/gravação, use 6 (equivale a 2+4 / Gravar+Ler).• Permissão de leitura/execução, use 5 (equivale a 1+4 / Executar+Ler).• Permissão de execução/gravação, use 3 (equivale a 1+2 / Executar+Gravar).• Permissão de leitura/gravação/execução, use 7 (equivale a 1+2+4 / Executar+Gravar+Ler).

Vamos a prática com alguns exemplos:chmod 764 teste - Os números são interpretados da direita para a esquerda como

PÁG.: 59

Page 60: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

permissão de acesso aos outros usuários (4), grupo (6), e dono (7). O exemplo acima faz os outros usuários (4) terem acesso somente leitura (r) ao arquivo teste, o grupo (6) ter a permissão de leitura e gravação (w), e o dono (7) ter permissão de leitura, gravação e execução (rwx) ao arquivo teste.

chmod 40 teste - O exemplo acima define a permissão de acesso dos outros usuários (0) como nenhuma, e define a permissão de acesso do grupo (4) como somente leitura (r). Note usei somente dois números e então a permissão de acesso do dono do arquivo não é modificada (leia as permissões de acesso da direita para a esquerda!). Para detalhes veja a lista de permissões de acesso em modo octal no inicio desta seção.

chmod 751 teste - O exemplo acima define a permissão de acesso dos outros usuários (1) para somente execução (x), o acesso do grupo (5) como leitura e execução (rx) e o acesso do dono (7) como leitura, gravação e execução (rwx).

PÁG.: 60

Page 61: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

9. Como Instalar pacotes

Apresentaremos nesta seção, as ferramentas de instalação de pacotes do GNU/Debian.

9.1. O que é um Pacote ?

É freqüente falarmos em pacotes ao invés de programas quando o assunto é instalação. Isso vem da idéia de “empacotamento” de programas, que é a forma como cada distribuição organiza os programas que a constituem. No Debian, cada pacote termina com a extensão ”.deb”, nas distribuições derivadas do RedHat a extensão é ”.rpm”, assim por diante.

9.2. Apt

O principal instalador de pacotes que vamos utilizar no caso do Debian é o Apt. A maior parte das vezes em que precisarmos instalar ou remover um pacote será com ele.

Alguns pontos sobre como usar o Apt devem ser ressaltados:• Apenas o usuário root pode instalar ou remover pacotes.• Só uma instância do pode ser executada. A segunda tentativa de iniciar,

simultaneamente, a instalação de um pacote, vai gerar uma mensagem de erro.

Para instalar um pacote o Apt segue a seguinte ordem:1. Baixa Ele acessa o mirror que você configurou e faz o download do pacote para o seu

computador.O diretório /var/cache/apt/archives recebe os pacotes baixados.

2. Abre o arquivo: O pacote é ”aberto”para iniciar a instalação.3. Configura: Dependendo do pacote, antes de instalar, é necessário perguntar sobre algum

tipo de preferência ao usuário.4. Instala Todos os componentes do pacote são copiados para os diretórios devidos.

As principais ações que executaremos com este comando são:• apt-get update - Existe uma lista que contém uma descrição de todos os pacotes

disponíveis para o Debian. O apt-get não é um advinho! Ele consulta esta lista para saber o que pode instalar. Este comando faz uma comparação entre a lista que você tem armazenada e a lista que está no servidor de pacotes. Se a sua lista for mais velha, ele faz o download da mais recente. A atualização de um único pacote provoca o lançamento de um nova lista.

• apt-get upgrade - No caso de existir uma nova lista de pacotes, você deve verificar se, para algum programa que está instalado em seu sistema, existe uma versão mais recente. Ao executar o apt-get upgrade, se nenhum pacote for instalado, significa que o pacote que gerou a emissão da nova lista não está instalado em seu sistema. Caso contrário, a nova versão deste programa será instalada. Não é preciso dizer qual pacote você quer atualizar, independente de ser um ou dez, ele fará tudo sozinho.

• apt-get clean - Após a instalação de um pacote, não precisamos mais manter o arquivo ”.deb”em nosso sistema. O processo de instalação não remove os pacotes baixados! Se você não removê-los começará a acumulá-los no disco rígido. Com o passar do tempo isso pode causar um problema de falta de espaço.

• apt-get install NOME - Executamos este comando para instalar um pacote chamado “NOME”. Se queremos instalar mais programas, basta escrever todos os nomes, separados por espaço. Se um pacote precisa de outros para ser instalado, isto é, se ele tem pré-requisitos, eles também serão selecionados para instalar. Quando você pede para instalar um pacote que não tem dependências, o download começa imediatamente. Caso existam dependências, elas são mostradas para você e o programa espera a sua confirmação (Y/n) para continuar. Existem vários motivos para ele esperar por uma confirmação: a lista de dependências pode ser muito grande e você não quer instalar todos os pacotes, você não tem espaço em disco suficiente para instalar o programa e/ou suas dependências, o pacote é incompatível com outro já instalado e ele exige que este seja removido.

PÁG.: 61

Page 62: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

• apt-get remove NOME - Para remover um ou mais pacotes executamos este comando. Estaremos desfazendo a instalação, não removendo o pacote com a extensão “.deb”do disco rígido. Em alguns casos os arquivos de configuração do pacote são mantidos. Isso pode ser bom ou mal. Se você removeu um pacote por acidente, todo o seu trabalho de configuração dele ainda estará preservado. Preste atenção `as mensagens mostradas durante a remoção de um pacote para saber o que está acontecendo.

• apt-get --purge remove NOME - Para remover um pacote e seus arquivos de configuração

• apt-get install --reinstall NOME - Em algumas situações precisaremos reinstalar um pacotes já existente. Este é o comando que permite que isso aconteça. Tome o cuidado de fazer uma cópia dos seus arquivos de configuração para não ter surpresas. Esse comando será usado poucas vezes durante o curso. Se você seguir todos os passos nem precisará dele.

Você deve estar se perguntando como fazer para saber o que instalar, ou qual o nome de um determinado programa no Debian. Para responder a essas dúvidas vamos apresentá-los a três programas criados para resolver este problema:

• apt-cache search NOME - Para procurar por um pacote chamado NOME executamos este comando. Ele faz uma pesquisa na lista de pacotes disponíveis para instalar. A saída apresenta todos os pacotes que apresentam a palavra que você forneceu como argumento. Existem formas mais complexas de busca que podem ser mais claras ou mais específicas, geralmente a utilização do comando grep para filtrar a saída já é o suficiente.

• apt-cache show NOME - Uma vez descoberto o nome correto do pacote no Debian, você pode querer uma descrição dele.

• synaptic - interface gráfica para a instalação de pacotes . Ele também é utilizado em outras distribuições, a Conectiva é uma delas.

9.2.1. Como encontrar pacotes que contém determinado arquivo

Em algumas situações, tais como a compilação de um programa através do código fonte, faz-se necessário descobrir qual pacote possui determinado arquivo.

Imagine a situação em que, durante a etapa de “configure” do programa que você for compilar, receba uma mensagens de erro apontando a falta do arquivo glibconfig.h. Como fazer para descobrir, em qual das centenas de pacotes, o pacote está?

No link “http://www.debian.org/distrib/packages.pt.html”, ao final da página, você encontrará dois formulários.

O primeiro serve para procurarmos usando o nome, ou parte do nome, de um pacote.

Você encontrará nomes de pacotes que contém o texto que você forneceu ao formulário. Este tipo de pesquisa tem uma saída semelhante ao apt-cache search NOME.

O segundo formulário procura por arquivos dentro de pacotes.

9.2.2. Reconfigurar a lista de pacotes

Os pacotes que instalaremos em nosso sistema estão disponíveis em servidores ao redor do mundo. Estes servidores contém todos os pacotes disponíveis para o Debian. Eles são criados com uma técnica de espelhamento e, graças a isto, podemos baixar os pacotes do servidor mais próximo de nós, diminuindo o tempo de instalação.

A qualquer momento podemos reconfigurar a lista de servidores que utilizaremos através de uma das duas possibilidades abaixo:

1. Editar o arquivo de configuração /etc/apt/sources.list2. Executar o comando vim /etc/apt/sources.list

Neste curso nós iremos editar o arquivo para que ele fique igual ao mostrado na tabela abaixo:deb http://www.repositorios.eparana.parana/debian/ etch main contrib non-freedeb http://www.repositorios.eparana.parana /celepar/ etch celepar

PÁG.: 62

Page 63: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

deb http://www.repositorios.eparana.parana /marillat/ etch maindeb http://www.repositorios.eparana.parana/security/ etch/updates main contrib non-free

Acima estamos apontando o APT para os repositórios da Celepar.A ordem das linhas faz diferença, o primeiro servidor a ser consultado é o da

primeira linha e assim por diante. Assim, devemos colocar o que está mais próximo no início do arquivo. Também não pode haver espaço entre o início da linha e a palavra deb.

Cada linha representa uma lista que deverá ser copiada para o seu sistema.Se você encontrar alguma linha que comece com deb-src, poderá comentá-la, isto

é, acrescentar o sinal # no início da linha. Este tipo de linha serve para baixar o código fonte de um programa.

Lembre-se que os pacotes com extensão “.deb” já foram compilados para uma arquitetura específica, por isso, é só pegar e instalar. Quando você quer compilar um programa, precisa do seu código fonte.

deb-src http://www.repositorios.eparana.parana/debian etch main

9.2.3. Após reconfigurar a lista de pacotes

Todas as vezes que você alterar o arquivo /etc/apt/sources.list deverá atualizar a(s) lista(s) existentes no seu sistema, fazendo:

apt-get update

Se não fizer isso e, tentar instalar um novo pacote, receberá uma mensagem de erro.

9.2.4. Onde está a tal lista de pacotes para instalação?

A esta altura você já sabe que devemos manter a lista de pacotes disponíveis para instalação atualizada. Sempre que um bug de segurança é descoberto, esta lista é atualizada. Somente após a atualização da lista seremos capazes de descobrir se é preciso atualizar um pacote já instalado usando o comando apt-get upgrade.

Experimente ler a lista com o seguinte comando:less /var/lib/dpkg/available

9.3. Dpkg

É importante lembrar do comando dpkg. Ele também instala, remove e reconfigura pacotes. é menos usados para a instalação porque não traz as dependências (POR ISSO SÓ UTILIZE SE REALMENTE SOUBER O QUE ESTÁ FAZENDO). Se um pacote X tem os pacotes Y e Z como suas dependências, você teria que baixá-los em sua máquina e instalá-los antes do pacote X.

Imagine o problema que você pode enfrentar se os pacotes Y e Z tem dependências. E se as dependências destes também tem suas próprias dependências? Já percebeu onde isso leva, não é?

Podemos usar o dpkg para saber quais os pacotes temos instalados no sistema:

dpkg -l

Na imagem a seguir, temos uma demonstração da saída do comando dpkg -l :

PÁG.: 63

Page 64: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Outro uso muito importante do dpkg é quando a instalação para por algum problema de configuração. Este problema pode ter sido causado porque algum pacote em seu sistema está em um estado incorreto. Guarde-o bem em sua memória, ele poderá lhe ajudar muito.

dpkg --configure -a

Em outras palavras, você está pedindo para o dpkg verificar e corrigir a configuração de todos os pacotes. Se ele não conseguir “arrumar a casa” pode ajudar a identificar qual o pacote problemático.

PÁG.: 64

Figura 1 - As informações dos pacotes do sistema obtidas com o uso do dpkg.

Page 65: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

10. Instalação do Sistema Operacional

O procedimento de instalação do sistema GNU/Debian pode ser encontrado na seção “12. Anexos”, deste documento.

PÁG.: 65

Page 66: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

11. Arquivos Importantes

Vamos conhecer agora alguns arquivos importantes. Você poderá precisar saber encontrá-los em caso de problemas.

11.1. Rede

Interfaces de Rede - /etc/network/interfacesArquivo que deve conter os IP's de servidores acessados - /etc/hostsConfiguração de DNS - /etc/resolv.confScript de start/stop da interface de rede - /etc/init.d/

11.2. Administração de Usuários

Arquivo que será criado após o uso do adduser - /etc/skel/bashrcArquivo que será criado após o uso do adduser - /etc/skel/.bash profileUsuários cadastrados no sistema- /etc/passwdGrupos cadastrados no sistema- /etc/group

11.3. Xorg

Configuração do servidor gráfico - dpkg-reconfigure xserver-xorgArquivo que contém as informações da Interface Gráfica - /etc/X11/xorg.conf

PÁG.: 66

Page 67: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

12. Como Obter Ajuda

Dúvidas são comuns durante o uso do GNU/Linux e existem várias maneiras de se obter ajuda e encontrar a resposta para algum problema. O GNU/Linux é um sistema bem documentado, provavelmente tudo o que imaginar fazer ou aprender já esta disponível para leitura e aprendizado. Abaixo segue algumas formas úteis para encontrar a solução de sua dúvida, vale a pena conhece-las.

12.1. Páginas de Manual

As páginas de manual acompanham quase todos os programas GNU/Linux. Elas trazem uma descrição básica do comando/programa e detalhes sobre o funcionamento de opção. Uma página de manual é visualizada na forma de texto único com rolagem vertical. Também documenta parâmetros usados em alguns arquivos de configuração.

A utilização da página de manual é simples, digite:

man [seção] [comando/arquivo]

onde:

seçãoÉ a seção de manual que será aberta, se omitido, mostra a primeira seção sobre o

comando encontrada (em ordem crescente).

comando/arquivoComando/arquivo que deseja pesquisar.

A navegação dentro das páginas de manual é feita usando-se as teclas:• q - Sai da página de manual• PageDown ou f - Rola 25 linhas abaixo• PageUP ou w - Rola 25 linhas acima• SetaAcima ou k - Rola 1 linha acima• SetaAbaixo ou e - Rola 1 linha abaixo• r - Redesenha a tela (refresh)• p ou g - Inicio da página• h - Ajuda sobre as opções da página de manual• s - Salva a página de manual em formato texto no arquivo especificado (por exemplo:

/tmp/ls).

Exemplos:man lsman 5 hosts_access.

12.2. Info Pages

Idêntico as páginas de manual, mas é usada navegação entre as páginas. Se pressionarmos Enter em cima de uma palavra destacada, as info pages nos levarão a seção correspondente. As info pages são úteis quando sabemos o nome do comando e queremos saber para o que ele serve. Também traz explicações detalhadas sobre uso, opções e comandos.

Para usar a info pages, digite:

info [comando/programa]

Se o nome do comando/programa não for digitado, a info pages mostra a lista de todos os manuais de comandos/programas disponíveis. A navegação da info pages é feita através de nomes marcados com um "*" (hipertextos) que se pressionarmos Enter, nos levará até a seção correspondente. A info pages possui algumas teclas de navegação úteis:

• q - Sai da info pages

PÁG.: 67

Page 68: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

• ? - Mostra a tela de ajuda (que contém a lista completa de teclas de navegação e muitos outras opções).

• n - Avança para a próxima página• p - Volta uma página• u - Sobre um nível do conteúdo (até checar ao índice de documentos)• m - Permite usar a localização para encontrar uma página do info. Pressione m, digite o

comando e tecle Enter que será levado automaticamente a página correspondente.• d - Volta ao índice de documentos.

Existem muitos outras teclas de navegação úteis na info pages, mas estas são as mais usadas. Para mais detalhes, entre no programa info e pressione ?.

Exemplo:info cvs

12.3. Help on line

Ajuda rápida, é útil para sabermos quais opções podem ser usadas com o comando/programa. Quase todos os comandos/programas GNU/Linux oferecem este recurso que é útil para consultas rápidas (e quando não precisamos dos detalhes das páginas de manual). É útil quando se sabe o nome do programa mas deseja saber quais são as opções disponíveis e para o que cada uma serve. Para acionar o help on line, digite:

[comando] --help

onde:

comandoÉ o comando/programa que desejamos ter uma explicação rápida.

O help online não funciona com comandos internos (embutidos no bash), para ter uma ajuda rápida sobre os comandos internos, veja help.

Exemplo:ls –help

12.4. help

Ajuda rápida, útil para saber que opções podem ser usadas com os comandos internos do interpretador de comandos. O comando help somente mostra a ajuda para comandos internos, para ter uma ajuda similar para comandos externos, veja help on line. Para usar o help digite:

help [comando]

onde:

comandoÉ o comando/programa que desejamos ter uma explicação rápida.

Exemplo:help echohelp exit

PÁG.: 68

Page 69: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

13. Anexos

13.1. Instalação do Sistema Operacional GNU/Debian Desktop Paraná

1. 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 debian bussiness card, faça o download no seguinte endereço: http://www.repositorios.eparana.parana/images/debian/etch/i386/debian-40r0-i386-businesscard.iso

3. Escreva “linux vga=791 splash=silent” (sem as aspas) na tela inicial do CD do Debian (tela abaixo) e em seguida pressione <enter>.

4. Em seguida, em “Choose Language”, tecle <Tab> e selecione <Voltar>, você irá para o “Menu principal do instalador Debian”, selecione <Escolher idioma/Choose language> e, em seguida, escolha o idioma: <Português do Brasil>.

5. Escolha <Brasil>.

6. Na escolha do locale você verá 2 opções, (pt_BR.UTF-8 e pt_BR), escolha <pt_BR>.

7. Na tela para selecionar outros locales não selecione nenhum adicional, apenas tecle <Tab> e selecione <Continuar>.

8. Escolha o layout de teclado adequado ao seu hardware, ABNT2 (ç) ou Americano.

9. Será feita a detecção dos dispositivos e a configuração de rede via DHCP, se o instalador não encontrar o servidor DHCP da rede será solicitada a configuração manual. 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) .

PÁG.: 69

Figura 2 - A tela inicial de instalação do GNU/Debian.

Page 70: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

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).

10. Forneça o nome do domínio, algo como [nome do órgão].parana (por exemplo: celepar.parana)

11. Na tela Selecione um espelho do repositório Debian escolha < Fornecer informação manualmente>:

12. Nome da máquina espelho: www.repositorios.eparana.parana13. Diretório do repositório: /debian/14. Configuração do proxy: Deixe em branco (nenhum)

15. Se tudo ocorrer bem, será iniciado o particionador de discos. Certifique-se que não há nenhum dado importante no HD em que o sistema será instalado. Selecione a opção Manual.

16. Pressione <ENTER> sobre o disco para criar uma nova tabela de partições vazia e crie as seguintes partições:

Ponto de montagem

Tamanho Método de uso Flag inicializável Função

/boot 128 MB Formatar a partição (ext3)

ligado Partição para arquivos de boot

/ 10 GBFormatar a

partição (xfs)desligado Partição raiz

swap 1 GB área de troca desligado Área para swap de memória

/homeRestante do

espaçoFormatar a

partição (xfs)desligado

Partição para arquivos do usuário

A primeira partição que iremos criar é a partição /boot. Clique em criar uma nova partição. (Enter) Especificar o tamanho: 128 MB. Tipo da partição: Primária. Localização: Início. Configuração da partição: Esta etapa do particionamento é um pouco mais complexa,

entretanto, você verá que não é tão complicado como parece.

Usar como: Especifica o tipo de sistema de arquivos a ser utilizado. Utilizaremos o ext3.

Ponto de montagem: Utilizaremos o /boot e depois aperte enter

Opções de montagem: Iremos utilizar defaults. Você pode verificar outras opções apertando enter.

Rótulo: Seria equivalente ao label do windows.

Uso típico: Vai especificar como os será tratado o armazenamento dos arquivos.

Flag Inicializável: Se a partição é bootavel ou não, nesse caso marque sim.

Tamanho: ...........

Finalizar a configuração da partição (enter) Agora iremos criar a partição raiz: selecione ESPAÇO LIVRE e aperte enter > criar uma

nova partição.

PÁG.: 70

Page 71: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Especificar o tamanho da partição. No caso utilizaremos 10 GB. Tipo de partição: Selecione primária Localização: Início. Configurações da partição:

Usar como > selecione > tecle enter e selecione sistema de arquivos com journaling XFS > selecione finalizar a configuração da partição.

Agora iremos criar a partição de swap: selecione ESPAÇO LIVRE e aperte enter > criar uma nova partição.

Especificar o tamanho da partição. No caso do swap normalmente utilizamos 1 GB. Tipo de partição: Selecione primária Localização: Início. Configurações da partição:

Usar como > selecione > tecle enter e selecione área de troca (enter) > selecione finalizar a configuração da partição.

Agora repetiremos o mesmo processo que utilizamos para criar a partição raiz para criar a partição /home, onde ficam os diretórios e arquivos dos usuários, só não escolha a partição como inicializável, escolha como partição primária e utilize todo o espaço restante na partição.

Selecione Finalizar o particionamento e gravar as mudanças no disco. Será solicitado uma confirmação. Selecione sim se você tiver realmente certeza.

17. 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.

18. Em “Configuração do fuso horário” escolha: São Paulo

19. Entre a senha de root, geralmente utilizamos a senha “celepar”, em seguida digite novamente a mesma senha para verificação.

20. Escolha um nome completo para o novo usuário, por exemplo “CELEPAR”, escolha o nome de usuário para a conta: celepar. Em seguida escolha uma senha: celepar E depois digite-a novamente para confirmá-la.

21. Na tela “Configurar o gerenciador de pacotes”, você verá um aviso de que entradas comentadas para http://security.debian.org foram adicionadas ao /etc/apt/sources.list, apenas selecione <Continuar>

22. Na tela “Configurando popularity-contest”, selecione <Não>

23. A tela “Seleção de software” exibirá várias opções para escolha, as opções “Ambiente Desktop” e “Sistema básico” estarão selecionadas, desmarque estas opções, selecionando-as e utilizando a barra de espaço para desmarcar a opção, deixando nenhuma opção marcada, em seguida pressione <Tab> e selecione <Continuar>

24. Marque <Sim> na pergunta sobre instalar o GRUB no Registro de Inicialização Principal (MBR). O gerenciador de boot padrão no Debian GNU/Linux 4.0 “etch” é o GRUB.

25. Finalizando a instalação. Retire o CD do Debian e selecione <Continuar> para reinicializar a máquina.

A primeira etapa da instalação está finalizada, porém, agora iremos entrar em outro processo que é a configuração do sistema:

26. Logue-se como usuário root e a senha que você definiu anteriormente, provavelmente celepar.

PÁG.: 71

Page 72: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

27. Edite o /etc/apt/sources.list, com o editor de textos da sua preferência (vi, nano, pico etc) deixando-o da seguinte forma:

deb http://www.repositorios.eparana.parana/debian/ etch main contrib non­freedeb http://www.repositorios.eparana.parana/celepar/ etch main contrib non­freedeb http://www.repositorios.eparana.parana/marillat/ etch maindeb http://www.repositorios.eparana.parana/security/ etch/updates main contrib non­free

28. Execute o seguinte comando: apt­get update

13.1.1. Instalação e configuração dos meta-pacotes customizados

1. Instalação da customização Desktop Paranáapt-get install desktop-parana

2. Nome do Domínio/Grupo de Trabalho: celeparsl

3. Modifica smb.conf para usar as configurações WINS fornecidas via DHCP?: <Não>

4. Configurando sun-java5-bin: <Ok>

5. Do you agree with the DLJ license terms?: <Sim>

6. Modos de vídeo a serem utilizados pelo servidor X: Escolha o modo de vídeo mais adequado à máquina, na dúvida deixe o padrão, em seguida tecle <Tab> e <Enter> para continuar.

13.1.2. Removendo pacotes desnecessários e finalizando a instalação

1. Removendo as bibliotecas órfãsapt-get --purge remove $(deborphan)

2. Limpando o cache de arquivos do APTapt-get cleanapt-get autoclean

3. Reinicializando o computador. Para finalizar a instalação reinicialize o computador e ele estará pronto para a utilização:reboot

13.2. Instalando uma impressora através do CUPS

O CUPS (Common Unix Printing System) é um sistema gerenciador de impressão completo para GNU/Linux. A sua interface de administração, é toda baseada no formato Web, sendo necessário dessa forma, fazer uso de um navegador Internet para poder utilizar os recursos providos por esta interface.

Em várias distribuições GNU/Linux o CUPS vem instalado por padrão, como no caso do Debian Desktop Paraná (distribuição da CELEPAR), caso você necessite instalar o CUPS em seu sistema, poderá utilizar o comando abaixo:

apt-get install cupsys cupsys-client cupsys-bsd cupsys-driver-gimpprint-data foomatic-db foomatic-db-engine foomatic-filters gs gs-common hpijs python-foomatic gnome-cups-manager foomatic-db-gimp-print foomatic-filters-ppds foomatic-gui hpoj gs-gpl gsfonts smbclient

PÁG.: 72

Page 73: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Após instalado, você poderá acessar a interface de administração do CUPS através colocando o seguinte endereço em seu navegador Internet:

http://localhost:631

Através desta interface, você poderá instalar impressoras locais (conectadas diretamente em seu computador) e de rede (conectadas em outros computadores ou diretamente conectadas a rede).

Para instalar uma nova impressora, na aba principal “Home” da interface de administração, clique no botão <Add Printer>.

A seguir, na janela “Add New Printer”, será requisitado o preenchimento dos seguintes parâmetros:

Name = Nome da impressora (fila de impressão). Não poderão haver caracteres especiais nem espaços. Dê um nome significado como por exemplo, “HP695C” (sem aspas).

Location = Localização física da impressora. Exemplo: “Maquina da Ana” (sem aspas).Description = Uma descrição qualquer sobre a impressora.

Depois de preencher estes campos, pressione o botão <Continue>. A próxima janela vai questioná-lo sobre o tipo de conexão que deverá ser feito entre seu computador e a impressora. Veja a tabela abaixo para saber o que você deve selecionar:

Tipo de Impressora

Marca Tipo de Conexão Device

Rede Qualquer Impressora conectada diretamente na rede, sem estar conectada a um computador.

AppSocket/HP JetDirect

Rede Qualquer Impressora compartilhada por uma máquina na rede através do protocolo HTTP.

Internet Printing Protocol (http)

Rede Qualquer Impressora compartilhada por uma máquina na rede através do protocolo IPP.

Internet Printing Protocol (ipp)

Rede Qualquer Filas de impressão remotas em servidores de impressão Linux/Unix/Solaris/BSD.

LDP/LPR Host Printer

Local Qualquer Impressora ligada a porta paralela. LPT# “x”

Local Canon Canon conectada a porta paralela. Parallel Port # “x” (CANON)

PÁG.: 73

Figura 3 - A página principal de administração do CUPS – Aba “Home”.

Page 74: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

Local Epson Epson conectada a porta paralela. Parallel Port # “x” (EPSON)

Sem impressora

Nenhuma Impressões em arquivos, não em papel. Cria um arquivo com a extensão ”.pdf”.

Virtual Printer (PDF Printer)

Rede Qualquer Impressora compartilhada através de uma estação MS-Windows.

Windows Printer via Samba

Local Qualquer Impressora conectada a uma porta USB. USB Printer # “x”

Selecione a opção que se ajusta adequadamente a sua necessidade e pressione o botão <Continue>. Para cada opção citada na tabela anterior (coluna “Device”), existem configurações específicas a serem realizadas. Portanto, citaremos alguns exemplos neste tópico:

Se você está instalando uma impressora local paralela:Escolha a opção “LPT #” e clique no botão <Continue>.

Se você está instalando uma impressora local USB:Escolha a opção “USB Printer # x”, neste caso, “x” é o número da porta USB em que

sua impressora esta conectada. Você pode utilizar o comando lsusb, observando o parâmetro “BUS”, para descobrir em que porta sua impressora está conectada.

Se você está instalando uma impressora conectada diretamente a rede:Forneça o endereço IP e a porta de rede da impressora que deseja instalar,

utilizando o seguinte formato: socket://IP:Porta

Exemplo.:socket://10.10.10.25:9100

Geralmente, as impressoras de rede utilizam a porta “9100” para se comunicar.

Se você está instalando uma impressora compartilhada pelo MS-Windows:Forneça usuário, senha, IP ou nome da maquina e o nome do compartilhamento da

impressora que deseja utilizar, no seguinte formato: smb://usuario:senha@IP ou nome/Compartilhamento

Exemplo.: smb://usuario:[email protected]/HP820

Note, que este é um método um tanto perigoso em relação a segurança, já que expõem usuário e senha da maquina MS-Windows a qualquer pessoa que possa ter acesso aos arquivos de configuração do CUPS. Utilize de preferência com uma conta de usuário no MS-Windows que possua restrições de acesso ao sistema.

Se você está instalando uma impressora compartilhada por um servidor CUPS:Informe IP ou nome da maquina que está compartilhando a impressora e o nome da

fila de impressão, no seguinte formato : ipp://IP ou nome/diretório/fila de impressão

Exemplo.:ipp://10.10.10.51/printers/HP820

Por padrão, o CUPS compartilha as impressoras no diretório “printers”, como no exemplo citado, verifique se no seu caso isto também é verdadeiro.

Após fornecer todas as informações necessárias para conexão com a impressora, clique

PÁG.: 74

Page 75: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

no botão <Continue> para passar ao próximo passo. Neste próximo passo, é hora de informar ao CUPS qual o “driver” a ser utilizado pela impressora.

Na lista apresentada, escolha o fabricante da impressora e pressione <Continue>. Na próxima janela, selecione o modelo da impressora na lista que será apresentada e clique em <Add Printer>. Se tudo estiver correto, você poderá ver as informações sobre a impressora através da aba “Printers”, como mostra a figura a seguir:

13.3. SSH

Permite acesso a um computador remoto que esteja executando o serviço SSH. É necessário fazer autenticação com usuário e senha válidos na maquina remota para poder usar o computador remoto. Muito útil, mas deve-se tomar alguns cuidados ao disponibilizar este serviço, evitando expor seu computador a riscos de segurança.

ssh [opções] [usuario@host]

onde:

usuario@hostPermite informar o usuário e o endereço ou nome do computador remoto que deseja-se

conectar. Por exemplo, [email protected] .

Opções:-p

Permite fornecer uma porta alternativa para realizar a conexão ao invés da padrão (22).

Exemplo:ssh paraiba@servidorssh -p 30 [email protected]

O SSH também implementa uma ferramenta chamada “scp”, que permite trocar arquivos entre um computador que disponibilize o serviço SSH e outro que execute o cliente scp. O comando scp funciona da seguinte forma:

scp [opções][[usuário@]host1:]arquivo [[usuário@]host2:]arquivo

Vamos a um exemplo, para entender melhor o funcionamento deste comando: Suponha que você deseja transferir o arquivo “texto.txt” que está guardado no diretório “/home/usuario” da maquina com endereço IP 10.15.15.15 para sua maquina, você deseja ainda, que este arquivo

PÁG.: 75

Figura 4 - Exibindo as informações de uma impressora instalada no CUPS - Aba "Printers".

Page 76: Apostila_Debian_Basico

APOSTILA GNU/DEBIAN BÁSICO

seja salvo no diretório “/home/marcius/documentos” da sua maquina. Para isso você poderia executar o seguinte comando:

scp [email protected]:/home/usuario/texto.txt /home/marcius/documentos

Agora suponha que você quisesse fazer o contrário, ou seja, enviar o arquivo “texto.txt” que está salvo no diretório “/home/marcius/documentos” da sua maquina, para o diretório “/home/usuario/arquivos” da maquina com endereço IP 10.15.15.15. Neste cenário você poderia utilizar o seguinte comando:

scp /home/marcius/documentos/texto.txt [email protected]:/home/usuario/arquivos

Algumas opções interessantes para o comando scp são:-R Com esta opção, você copiar diretórios inteiros com todo o seu conteúdo para uma outra

maquina.

-P Permite especificar uma porta específica para efetuar a conexão com o serviço SSH. Esta

opção é obrigatória caso o serviço SSH da maquina a qual se deseja conectar esteja rodando em qualquer outra porta que não seja a padrão (22).

PÁG.: 76