You are on page 1of 76

Gerência de Gestão de Ambientes – GGA

Coordenação de Planejamento, Pesquisa e Capacitação – CPPC

APOSTILA GNU/DEBIAN BÁSICO


APOSTILA GNU/DEBIAN BÁSICO

Documento Apostila de Debian Básico


Versão 2.2
Data da 01/11/2007
Revisão
Equipe Jonsue Trapp Martins
Técnica André Luiz de Souza Paula
David Alves França
Paulo César de Oliveira
Robson Alves Pavan
Páginas 76

PÁG.: 2
APOSTILA GNU/DEBIAN BÁSICO

Índice
1. 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
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
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
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
APOSTILA GNU/DEBIAN BÁSICO

Índice de Figuras
Figura 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
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
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
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
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
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):

/ Sistema raiz.

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

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

/cdrom Ponto de montagem de unidades de CD-ROM.

/dev Contém arquivos usados para acessar dispositivos existentes no


computador.

/etc Arquivos de configuração de seu computador.

PÁG.: 12
APOSTILA GNU/DEBIAN BÁSICO

/floppy Ponto de montagem de unidades de disquetes.

/home Diretórios contendo os arquivos dos usuários.

/lib Bibliotecas compartilhadas pelos programa do sistema e módulos do


kernel.

/media, /mnt Pontos de montagem de outros dispositivos e unidades de rede.

/proc 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.

/root Diretório do usuário root.

/sbin Diretório de programas usados pelo superusuário para administração e


controle do funcionamento do sistema.

/tmp Diretório para armazenamento de arquivos temporários criados por


programas.

/usr Contém maior parte de seus programas. Normalmente acessível somente


como leitura.

/var 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
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
APOSTILA GNU/DEBIAN BÁSICO

4.5. Saindo/Reiniciando do Sistema


Comando Descrição
É utilizado pelo usuário para encerrar as atividades de sua conta e
logout ou exit
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
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
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 << final
este arquivo
será mostrado
até que a palavra final seja
localizada no inicio da linha
final

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
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
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/arquivo
Diretório/arquivo que será listado.

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

Opções

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

-A, --almost-all
Lista todos os arquivos (inclusive os ocultos) de um diretório, exceto o diretório
atual e o de nível anterior.

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

--color=PARAM
Mostra 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, --directory
Lista os nomes dos diretórios ao invés do conteúdo.

-f
Não classifica a listagem.

-F
Insere 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-group
Oculta a coluna de grupo do arquivo.

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

PÁG.: 19
APOSTILA GNU/DEBIAN BÁSICO

-H
Faz o mesmo que -h, mas usa unidades de 1000 ao invés de 1024 para
especificar Kbytes, Mbytes, Gbytes.

-l
Usa o formato longo para listagem de arquivos. Lista as permissões, data de
modificação, donos, grupos etc.

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

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

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

-p
Mesma coisa que -F, mas não inclui o símbolo '*' em arquivos executáveis. Esta
opção é típica de sistemas Linux.

-R
Lista 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:
1
Se for um diretório, mostra a quantidade de sub-diretórios existentes dentro dele.
Caso for um arquivo, será 1.

marcius
Nome do dono do arquivo teste.

gga
Nome do grupo que o arquivo teste pertence.

8192
Tamanho do arquivo (em bytes).

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

4
Dia que o arquivo foi criado.

16:00
Hora 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.

teste
Nome do arquivo.

PÁG.: 20
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:

caminho
Caminho onde o diretório será criado.

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

PÁG.: 21
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:

caminho
Caminho do diretório que será removido.

diretório
Nome 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/arquivo
Localizaçã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-blank
Não mostra mais que uma linha em branco entre um parágrafo e outro.
-
Lê a entrada padrão.

PÁG.: 22
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:

caminho
Localização do arquivo que deseja apagar. Se omitido, assume que o arquivo
esteja no diretório atual.

arquivo/diretório
Arquivo que será apagado.

Opções
-i, --interactive
Pergunta antes de remover, esta é ativada por padrão.

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

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

-f, --force
Remove os arquivos sem perguntar.

-- arquivo
Remove 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
APOSTILA GNU/DEBIAN BÁSICO

onde:

origem
Arquivo que será copiado. Podem ser especificados mais de um arquivo para ser
copiado usando “Coringas”.

destino
O 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ções
i, --interactive
Pergunta antes de substituir um arquivo existente.

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

-r
Copia arquivos dos diretórios e subdiretórios da origem para o destino. É
recomendável usar -R ao invés de -r.

-R, --recursive
Copia arquivos e sub-diretórios (como a opção -r) e também os arquivos especiais
FIFO e dispositivos.

-v, --verbose
Mostra 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:

origem
Arquivo/diretório de origem.

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

PÁG.: 24
APOSTILA GNU/DEBIAN BÁSICO

Opções
-f, --force
Substitui o arquivo de destino sem perguntar.

-i, --interactive
Pergunta antes de substituir. É o padrão.

-v, --verbose
Mostra 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:
dispositivo
Representa 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-inicial
Indicam 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úmero
Este parâmetro define a quantidade de blocos que serão testados por vez. O
padrão é 64.

-i arquivo
Faz 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
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 arquivo
Cria 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úmero
Pode-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.

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

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

-v
Exibe 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.

-w
Realiza 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/hda2
Faz a checagem da segunda partição do primeiro disco IDE exibindo informações
sobre o progresso da verificação.

badblocks -n -v /dev/sdb
Realiza 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/hdc
Realiza 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
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: date
Se quiser mudar a Data para 25/12 e a hora para 08:15 digite: date 12250815
Para 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-readable
Mostra o espaço livre/ocupado em Mb, Kb, Gb ao invés de blocos.

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

-k
Lista em Kbytes.

-l
Somente lista sistema de arquivos locais.

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

Exemplos:
df

PÁG.: 27
APOSTILA GNU/DEBIAN BÁSICO

df -h
df -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:

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

link
Nome 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.

-v
Mostra o nome de cada arquivo antes de fazer o link.

-d
Cria 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
APOSTILA GNU/DEBIAN BÁSICO

du [opções]

onde:

Opções
-a, --all
Mostra o espaço ocupado por todos os arquivos.

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

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

-D
Não conta links simbólicos.

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

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

-k
Mostra o espaço ocupado em Kbytes.

-m
Mostra o espaço ocupado em Mbytes.

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

Exemplo:
du -h
du -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ório
Inicia 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
APOSTILA GNU/DEBIAN BÁSICO

-depth
Processa 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, -xdev
Nã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 – bloco
c – caracter
d – diretório
p – pipe
f - arquivo regular
l - link simbólico
s – 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
APOSTILA GNU/DEBIAN BÁSICO

-k
Mostra o resultado em Kbytes.

-m
Mostra o resultado em Mbytes.
-o
Oculta a linha de buffers.

-t
Mostra 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ão
palavra 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!

arquivo
Arquivo 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-filename
Não mostra os nomes dos arquivos durante a procura.

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

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

-U, --binary
Trata 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
APOSTILA GNU/DEBIAN BÁSICO

grep "capitulo" texto.txt


ps ax|grep inetd
grep "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.txt
head -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/passwd
nl -i 2 /etc/passwd

PÁG.: 32
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/passwd
cat /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/passwd
cat /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
APOSTILA GNU/DEBIAN BÁSICO

Opções
-b
Ignora linhas em branco.

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

-f
Ignora a diferença entre maiúsculas e minúsculas.

-r
Inverte o resultado da comparação.

-n
Caso 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úmeros
100
10
50

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


10
50
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
100
50

-c
Verifica se o arquivo já esta organizado. Caso não estiver, retorna a mensagem
"disorder on arquivo".

-o arquivo
Grava 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
APOSTILA GNU/DEBIAN BÁSICO

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

Exemplos:
tail teste.txt
tail -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 ls
time 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:

arquivos
Arquivos 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=atime
Faz o touch mudar somente a data e hora do acesso ao arquivo.

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

-m, --time=mtime
Faz 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
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
APOSTILA GNU/DEBIAN BÁSICO

-r
Informaçõ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]

hora
Momento 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.

mensagem
Mensagem 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.

-r
Reinicia o sistema

-c
Cancela 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
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
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 montagem
Você 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
APOSTILA GNU/DEBIAN BÁSICO

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

onde:

usuário/grupo
Nome 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-badname
Desativa 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.

--group
Cria 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.

--quiet
Não mostra mensagens durante a operação.

--system
Cria 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
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.

-f
Executa 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
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:

-r
Apaga 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
APOSTILA GNU/DEBIAN BÁSICO

comando
Comando 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.

senha
Senha para ter acesso ao grupo. Caso esteja utilizando senhas ocultas para
grupos, as senhas estarão em /etc/gshadow.

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

usuários
Lista 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
APOSTILA GNU/DEBIAN BÁSICO

onde:

usuário
Nome 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, --groups
Mostra a identificação de outros grupos que pertence.

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

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

-r, --real
Mostra 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
APOSTILA GNU/DEBIAN BÁSICO

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

Exemplo:
id
id –user
id -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.

Exemplo
groups
groups 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:

base
Significa 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
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, --idle


Mostra o tempo que o usuário está parado em Horas:Minutos.

-m, i am
Mostra o nome do computador e usuário associado ao nome. É equivalente a
digitar who i am ou who am i.

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

-T, -w, --mesg


Mostra 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ário
Nome 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@host
Nome 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
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:
finger
finger 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:

ls
Lista 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
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/dns
Endereç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.

-s
Permite especificar o tamanho do pacote em bytes, que ping enviará ao
computador remoto. O padrão é 56.

Exemplos:
ping 10.15.15.5
ping -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/dns
Endereço IP ou nome (DNS) do computador remoto que desejamos verificar o
estado das portas.

Opções

PÁG.: 48
APOSTILA GNU/DEBIAN BÁSICO

-P0
Nã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.

-O
Tenta descobrir o sistema operacional do computador remoto.

Exemplos:
nmap -p 80 10.15.15.5
nmap -O -p 22-80 10.15.15.5
nmap 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 -A
ps -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:
top
top -u marcius
PÁG.: 49
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 updatedb
bg 1
updatedb &

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 updatedb
fg 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
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 500
kill -9 500
kill %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
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).

grupo
Para 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
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 teste


Virou 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
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.

marcius
Nome do dono do arquivo teste.
user
Nome do grupo que o arquivo teste pertence.
teste
Nome 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
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.
marcius
Nome do dono do diretório exemplo.
user
Nome do grupo que diretório exemplo pertence.
exemplo
Nome 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
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 teste
3. digite ls -l
4. Veja que as permissões do arquivo não foram afetadas.
5. agora digite chmod o+x teste
6. 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 teste
8. digite ls -l
9. 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 teste
Ele 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 teste
12. 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
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/arquivo
Diretório ou arquivo que terá sua permissão mudada.

Opções:
-v, --verbose
Mostra todos os arquivos que estão sendo processados.

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

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

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

ugoa+-=rwxXst
ugoa - 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 octal


Dica: É 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
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:

grupo
Novo grupo do arquivo/diretório.

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

Opções
-c, --changes
Somente mostra os arquivos/grupos que forem alterados.

-f, --silent
Não mostra mensagens de erro para arquivos/diretórios que não puderam ser
alterados.

-v, --verbose
Mostra todas as mensagens e arquivos sendo modificados.

-R, --recursive
Altera 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.grupo
Nome do dono.grupo que será atribuído ao diretório/arquivo. O grupo é opcional.

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

Opções
-v, --verbose
Mostra os arquivos enquanto são alterados.

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

PÁG.: 58
APOSTILA GNU/DEBIAN BÁSICO

-c, --changes
Mostra somente arquivos que forem alterados.

-R, --recursive
Altera 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.txt
Muda o dono do arquivo teste.txt para joao.

chown joao.users teste.txt


Muda 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 = Executar
2 = Gravar
4 = Ler
Para 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
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
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
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.list
2. 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-free
deb http://www.repositorios.eparana.parana/celepar/ etch celepar

PÁG.: 62
APOSTILA GNU/DEBIAN BÁSICO

deb http://www.repositorios.eparana.parana/marillat/ etch main


deb 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
APOSTILA GNU/DEBIAN BÁSICO

Figura 1 - As informações dos pacotes do sistema obtidas com o uso do dpkg.

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
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
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/interfaces
Arquivo que deve conter os IP's de servidores acessados - /etc/hosts
Configuração de DNS - /etc/resolv.conf
Script 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/bashrc
Arquivo que será criado após o uso do adduser - /etc/skel/.bash profile
Usuários cadastrados no sistema- /etc/passwd
Grupos cadastrados no sistema- /etc/group

11.3. Xorg
Configuração do servidor gráfico - dpkg-reconfigure xserver-xorg
Arquivo que contém as informações da Interface Gráfica - /etc/X11/xorg.conf

PÁG.: 66
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/arquivo
Comando/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 ls
man 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
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 echo
help exit

PÁG.: 68
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>.

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

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
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.parana
13. 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
Tamanho Método de uso Flag inicializável Função
montagem
Formatar a Partição para arquivos de
/boot 128 MB ligado
partição (ext3) boot
Formatar a
/ 10 GB desligado Partição raiz
partição (xfs)
Área para swap de
swap 1 GB área de troca desligado
memória
Restante do Formatar a Partição para arquivos do
/home desligado
espaço partição (xfs) 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
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
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­free
deb http://www.repositorios.eparana.parana/celepar/ etch main contrib non­free
deb http://www.repositorios.eparana.parana/marillat/ etch main
deb 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ãs
apt-get --purge remove $(deborphan)

2. Limpando o cache de arquivos do APT


apt-get clean
apt-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
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).

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

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 Marca Tipo de Conexão Device
Impressora
Rede Qualquer Impressora conectada diretamente na rede, sem AppSocket/HP
estar conectada a um computador. JetDirect
Rede Qualquer Impressora compartilhada por uma máquina na Internet Printing
rede através do protocolo HTTP. Protocol (http)
Rede Qualquer Impressora compartilhada por uma máquina na Internet Printing
rede através do protocolo IPP. Protocol (ipp)
Rede Qualquer Filas de impressão remotas em servidores de LDP/LPR Host
impressão Linux/Unix/Solaris/BSD. Printer
Local Qualquer Impressora ligada a porta paralela. LPT# “x”
Local Canon Canon conectada a porta paralela. Parallel Port #
“x” (CANON)

PÁG.: 73
APOSTILA GNU/DEBIAN BÁSICO

Local Epson Epson conectada a porta paralela. Parallel Port #


“x” (EPSON)
Sem Nenhuma Impressões em arquivos, não em papel. Cria um Virtual Printer
impressora arquivo com a extensão ”.pdf”. (PDF Printer)
Rede Qualquer Impressora compartilhada através de uma estação Windows Printer
MS-Windows. 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:senha@10.10.10.50/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
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:

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

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@host
Permite informar o usuário e o endereço ou nome do computador remoto que deseja-se
conectar. Por exemplo, marcius@10.15.15.15 .

Opções:
-p
Permite fornecer uma porta alternativa para realizar a conexão ao invés da padrão (22).

Exemplo:
ssh paraiba@servidor
ssh -p 30 marcius@10.15.15.5

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
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 usuario@10.15.15.15:/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 usuario@10.15.15.15:/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

You might also like