You are on page 1of 160

Instituto Superior Politecnico de Viseu

Escola Superior de Tecnologia de Viseu

Manual de Linux
para iniciados

Ricardo Jorge de Loureiro Silva


Rui Jorge Martins Cabral

Copyright c 2001 Ricardo Silva e Rui Cabral.


All rights reserved.
Todo este documento foi escrito em LATEX
e pode ser distribudo gratuitamente e/ou alterado.
Caso seja utilizada alguma das partes deste documento, os autores
agradecem que seja colocada uma refer^encia aos mesmos e tambem
que seja enviada uma informac~ao sobre a publicac~ao e o autor da
mesma para ricardosilva@engineer.com ou ruicabral@engineer.com.

Acronimos
ARM
AT&T
AX.25
BIOS
CPU
CSR
DBM
DDP
DLL
EISA
FTP
FSSTND
GE
GIF
GNU
GPL
GUI
IDE
IEEE
IMP
IP
IPV4
IPX
ISA
JPEG
libnsl
libsocket
LILO
MIPS
MIT
MTA
NetBEUI
NetBIOS

Asynchronous Response Mode


American Telephone and Telegraph
Amateur (Radio version of) X.25
Basic Input/Output System
Central Processing Unit
Certi cate Signing Request
DataBase Management
Datagram Delivery Protocol
Dynamically Linked Library
Extended Industry Standard Architecture
File Transfer Protocol
Linux Filesystem Structure
General Electrics
Graphics Interchange Format
GNU's Not Unix
GNU General Public License
Graphical User Interface
Integrated Drive Electronics
Institute of Electrical and Electronics Engineers
Interface Message Processor
Internet Protocol
Internet Protocol Version 4
Internetwork Packet Exchange [Novell]
Industry Standard Architecture
Joint Photographic Experts Group
Name Services Library
Socket Services Library
LInux LOader
Million of Instructions Per Second
Massachusetts Institute of Technology
Mail Transfer Agent
NetBIOS Extended User Interface [IBM]
Network Basic Iput/Output System

ii

Acronimos

NFS
NIS
NIS+
NYS
PCI
PID
PNG
PPM
POSIX
RAM
RPC
RPM
RSA
YP
TGZ
TCP/IP
TIFF
UDP
UUCP
VLB
X.25
XPM

Network File System


Network Information Service
Network Information Service Plus
Network Information Service Plus + Yellow Pages
Peripheral Connection Interface
Process Identi cation Number
Portable Network Graphics
Product Portfolio Management
Portable Operating System Interface eXchange
Random Access Memory
Remote Procedure Call
RedHat Package Manager
Rivest, Shamir, Adelman [public key encryption algorithm]
Yellow Pages
Tarred and GZipped
Transmission Control Protocol/Internet Protocol
Tagged Image File Format
User Datagram Protocol
Unix-to-Unix Copy Program
VESA Local Bus
Packet Switch Control
XPixMap

Conteudo
Acronimos

1 Historia do Linux

1.1 O Unix . . . . . . . . . . . . . . . . . . . . . . .
1.2 O Linux . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Evoluc~ao do Linux em numeros . . . . .
1.2.2 Linux vs Sistemas Operativos Comerciais
1.3 Distribuic~oes . . . . . . . . . . . . . . . . . . .
1.3.1 Debian GNU/Linux . . . . . . . . . . . .
1.3.2 Mandrake . . . . . . . . . . . . . . . . .
1.3.3 Corel Linux . . . . . . . . . . . . . . . .
1.3.4 Slackware . . . . . . . . . . . . . . . . .
1.3.5 Red Hat Linux . . . . . . . . . . . . . .
1.3.6 SuSE Linux . . . . . . . . . . . . . . . .
1.3.7 Caldera OpenLinux . . . . . . . . . . . .
1.3.8 GNUware . . . . . . . . . . . . . . . . .
1.3.9 WholeLinux . . . . . . . . . . . . . . . .
1.3.10 Mini distribuic~oes . . . . . . . . . . . . .
1.4 Ambientes Gra cos . . . . . . . . . . . . . . . .
1.4.1 KDE . . . . . . . . . . . . . . . . . . . .
1.4.2 Gnome . . . . . . . . . . . . . . . . . . .
1.4.3 Window Maker . . . . . . . . . . . . . .
1.4.4 AfterStep . . . . . . . . . . . . . . . . .

2 Instalac~ao do Red Hat Linux 7.1


2.1
2.2
2.3
2.4
2.5
2.6
2.7

Escolha da lngua . . . . . . .
Con gurac~ao do teclado . . .
Con gurac~ao do rato . . . . .
Bem vindo ao Red Hat Linux
Opc~oes de instalac~ao . . . . .
Particionamento automatico .
Particionando o disco . . . . .
2.7.1 Variaveis das partic~oes

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

1
2
8
9
11
12
12
13
14
15
15
16
17
18
19
19
20
21
22
23

25

25
26
26
27
28
28
29
29

iv

Conteudo

2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18

2.19
2.20
2.21
2.22

2.7.2 Esquema recomendado de particionamento


2.7.3 Problemas a adicionar uma partica~o . . . .
2.7.4 Caractersticas do disco . . . . . . . . . .
2.7.5 Opc~oes do Disk Druid . . . . . . . . . . .
2.7.6 Adicionar partico~es . . . . . . . . . . . . .
2.7.7 Editar partico~es . . . . . . . . . . . . . . .
2.7.8 Apagar uma partica~o . . . . . . . . . . . .
Particionando com o Fdisk . . . . . . . . . . . . .
Formatar partico~es . . . . . . . . . . . . . . . . .
Instalar o LILO . . . . . . . . . . . . . . . . . . .
Con gurac~ao da rede . . . . . . . . . . . . . . . .
Con gurac~ao do rewall . . . . . . . . . . . . . .
Con gurac~ao do fuso horario . . . . . . . . . . . .
Selecc~ao da(s) lingua(s) . . . . . . . . . . . . . . .
Con gurac~ao de contas . . . . . . . . . . . . . . .
2.15.1 De nindo a password do root . . . . . . .
2.15.2 De nir contas para utilizadores . . . . . .
Con gurac~ao de autenticaco~es . . . . . . . . . . .
Escolha dos grupos de pacotes . . . . . . . . . . .
2.17.1 Seleccionar pacotes individuais . . . . . . .
2.17.2 Depend^encias . . . . . . . . . . . . . . . .
Con gurac~ao da componente gra ca . . . . . . . .
2.18.1 Con gurar a placa de video . . . . . . . .
2.18.2 Con gurar o monitor . . . . . . . . . . . .
2.18.3 Con gurac~ao pessoal . . . . . . . . . . . .
Preparac~ao para instalar . . . . . . . . . . . . . .
Instalando os pacotes . . . . . . . . . . . . . . . .
Criac~ao de uma disquete de arranque . . . . . . .
Instalac~ao terminada . . . . . . . . . . . . . . . .

3 Estrutura dos directorios do Linux


3.1
3.2
3.3
3.4
3.5
3.6

O sistema de cheiros raiz .


O directorio /etc . . . . . .
O directorio /dev . . . . . .
O sistema de cheiros /usr .
O sistema de cheiros /var .
O sistema de cheiros /proc

4 Conceitos basicos

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

4.1 A Shell . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Comandos basicos do Linux . . . . . . . . . . . . . .
4.2.1 Comandos e atalhos essenciais . . . . . . . . .
4.2.2 Comandos comuns de Informac~ao do Sistema

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

30
31
31
31
32
33
33
33
33
34
35
36
36
37
38
38
39
39
40
41
41
42
42
43
43
44
44
44
45

47

50
52
55
55
57
59

63

63
65
65
69

Conteudo

4.2.3 Operac~oes basicas . . . . . . . . . . .


4.2.4 Controlo de processos . . . . . . . . .
4.2.5 Comandos basicos de administrac~ao .
4.2.6 Detalhes sobre montagem (mounting)
4.2.7 Ferramentas de gest~ao de rede . . . .
4.3 Instalar o X . . . . . . . . . . . . . . . . . .
4.4 Criar utilizadores . . . . . . . . . . . . . . .
4.5 Con gurar uma impressora . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

5 Kernel

73
80
82
87
87
89
92
94

95

5.1 Construir um Kernel modularizado . . . . . . . . . . . . . . . . . . . . . . 95


5.2 Criar uma imagem do initrd . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.3 Construir um Kernel monoltico . . . . . . . . . . . . . . . . . . . . . . . . 100

6 Servicos

6.1 Automount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Tipos de automontagem . . . . . . . . . . . . . . . . . . . . . . .
6.1.2 Instalac~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.3 Con gurac~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.1 Montar um Servidor de NFS . . . . . . . . . . . . . . . . . . . . .
6.2.1.1 O portmapper . . . . . . . . . . . . . . . . . . . . . . .
6.2.1.2 Mountd e o nfsd . . . . . . . . . . . . . . . . . . . . . .
6.2.2 Montar o Cliente de NFS . . . . . . . . . . . . . . . . . . . . . . .
6.2.2.1 Optimizar o NFS . . . . . . . . . . . . . . . . . . . . . .
6.3 NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.1 NIS ou NIS+? . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.2 Como trabalhar . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.3 O que e necessario para con gurar o NIS? . . . . . . . . . . . . .
6.3.3.1 O RPC Portmapper . . . . . . . . . . . . . . . . . . . .
6.3.3.2 Determinar se se e um Servidor, Escravo ou Cliente . . .
6.3.3.3 O Software . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.3.4 Montar um Cliente de NIS que utiliza o NIS Tradicional
6.3.4 O que e preciso para montar o NYS? . . . . . . . . . . . . . . . .
6.3.4.1 Determinar se se e um Servidor, Escravo ou Cliente. . .
6.3.5 O Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.6 Con gurar um Cliente de NYS que usa o NYS . . . . . . . . . . .
6.3.7 O Ficheiro nsswitch.conf . . . . . . . . . . . . . . . . . . . . . . .
6.3.8 Con gurar um Servidor de NIS . . . . . . . . . . . . . . . . . . .
6.3.8.1 O Programa ypserv do Servidor . . . . . . . . . . . . . .
6.3.8.2 O programa do Servidor yps . . . . . . . . . . . . . . . .
6.3.8.3 O programa yppasswdd . . . . . . . . . . . . . . . . . .
6.3.9 Veri car a instalac~ao do NIS/NYS . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

101

101
101
102
102
103
104
104
104
105
106
107
108
108
109
109
109
110
110
112
112
113
113
113
114
114
115
115
115

vi

Conteudo

6.4 Samba . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1 Instalac~ao . . . . . . . . . . . . . . . . . . . . .
6.4.2 Con gurac~ao . . . . . . . . . . . . . . . . . . .
6.5 Sendmail . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5.1 Principais vantagens . . . . . . . . . . . . . . .
6.5.2 Exemplos de con gurac~ao do Servidor . . . . .
6.5.3 Con gurac~ao do servico . . . . . . . . . . . . .
6.5.4 Outros Servidores de Mail . . . . . . . . . . . .
6.6 Apache+SSL+PHP4 com a Interface de Webmail IMP
6.6.1 Instalac~ao do Apache com PHP e Mod-SSL . .
6.6.2 Criar certi cado para o Servidor . . . . . . . . .
6.6.3 Criar certi cados manualmente . . . . . . . . .
6.7 FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7.1 Controlar o acesso aos servicos . . . . . . . . . .
6.7.2 FTP Anonimo . . . . . . . . . . . . . . . . . . .
6.8 DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.8.1 Con gurac~ao . . . . . . . . . . . . . . . . . . .
6.8.2 Arrancar o named . . . . . . . . . . . . . . . . .
6.8.3 Resolvers . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

116
117
117
126
126
127
128
130
131
131
136
136
138
138
138
139
140
143
143

Lista de Tabelas
1.1 Comparativo das principais caractersticas . . . . . . . . . . . . . . . . . .
1.2 Filesystems suportados . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Aplicac~oes suportadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10
10
11

6.1 Variaveis dos par^ametros gerais do smb.conf . . . . . . . . . . . . . . . . . 125

Lista de Figuras
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15

Linus Torvalds . . . . . . . . . .
Linux Pinguim - TUX . . . . .
Logotipo do Debian . . . . . . .
Logotipo do Mandrake . . . . .
Logotipo do Corel Linux . . . .
Logotipo do Slackware . . . . .
Logotipo do Red Hat Linux . .
Logotipo do Suse Linux . . . .
Logotipo do Caldera OpenLinux
Logotipo do GNUware . . . . .
Logotipo do WholeLinux . . . .
Screenshot do KDE . . . . . . .
Screenshot do GNOME . . . . .
Screenshot do Window Maker .
Screenshot do AfterStep . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

2
7
12
12
13
14
15
16
16
17
18
21
22
23
24

2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18

Escolha da lngua . . . . . . . . . . . . .
Con gurac~ao do teclado . . . . . . . . .
Con gurac~ao do rato . . . . . . . . . . .
Opc~oes de con gurac~ao . . . . . . . . . .
Particionamento automatico . . . . . . .
Particionando o disco com o Disk Druid
Escolher as partic~oes a formatar . . . . .
Instalar o LILO . . . . . . . . . . . . . .
Con gurac~ao da rede . . . . . . . . . . .
Con gurac~ao do rewall . . . . . . . . .
Con gurac~ao do fuso horario . . . . . . .
Con gurac~ao da(s) lingua(s) . . . . . . .
Con gurac~ao de contas . . . . . . . . . .
Con gurac~ao de autenticac~oes . . . . . .
Escolha de grupos de pacotes . . . . . .
Escolha de pacotes individuais . . . . . .
Depend^encias . . . . . . . . . . . . . . .
Con gurac~ao da placa gra ca . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

25
26
27
28
29
30
34
35
35
36
37
37
38
39
40
41
42
42

Lista de Figuras

2.19
2.20
2.21
2.22

Con gurac~ao do monitor


Con gurac~ao do X . . .
Instalac~ao dos pacotes .
Disquete de arranque . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

43
44
45
45

3.1 Partes da arvore de directorios . . . . . . . . . . . . . . . . . . . . . . . . .

48

Captulo 1
Historia do Linux
O nome Linux surgiu da junc~ao de Linus com Unix. Linus vem de Linus Torvalds, criador do
embri~ao do Unix e uma das guras mais importantes em termos de criac~ao e converg^encia
dos esforcos do sistema, mas falaremos dele mais adiante. Para ja fazemos uma descric~ao
do que e o Unix e qual foi o seu desenvolvimento ao longo do tempo.

1.1 O Unix
A origem do Unix tem ligac~ao com o Sistema Operativo Multics, projectado em meados
dos anos 60. Este projecto foi realizado pelo Massachusetts Institute of Technology (MIT),
pela General Eletric (GE), pelos Laboratorios Bell (Bell Labs) e pela American Telephone
and Telegraph (AT&T). A ideia era que o Multics tivesse caractersticas de tempo partilhado, sendo o sistema mais arrojado da epoca. Em 1969, ja existia uma vers~ao primitiva
de tal sistema a correr num computador GE645.
Ora tempo partilhado e o mesmo que dizer que varios utilizadores podem partilhar os
mesmos recursos de uma mesma maquina. Antigamente, o que existia eram varios terminais que davam acesso a maquinas poderosas que prestavam servicos a este, havia pois
uma grande centralizac~ao de operac~oes.
Ken Thompson era um pesquisador do Multics e trabalhava na Bell Labs. Mesmo quando
essa empresa se resolveu retirar do projecto, ele continuou os seus estudos no novo sistema operativo, n~ao no sistema original em toda a sua plenitude, mas sim em criar algo
mais pequeno que conservasse as ideias basicas com dimens~ao proporcinal a sua empresa.
Comeca-se assim a saga do mundo Unix. Quem o baptizou foi Brian Kernighan, tambem
pesquisador da Bell Labs. O sistema foi lancado com a ideia inicial de proporcionar um
ambiente uni cado de programac~ao e desenvolvimento.

Captulo 1. Historia do Linux

Em 1973, Dennis Ritchie, outro pesquisador da Bell Labs, reescreveu todo sistema para
uma linguagem de alto nvel, chamada C (desenvolvida por ele), para um PDP-11 (computador muito popular na epoca). A situaca~o de ter um sistema escrito em linguagem de
alto nvel foi mpar e pode ter sido um dos motivos da aceitac~ao do sistema por parte dos
utilizadores externos a Bell.
No perodo de 1977 a 1981, a AT&T mexeu no sistema, fazendo algumas modi cac~oes
particulares e lancou o System III. Em 1983, apos diversas modi cac~oes, novidades e optimizac~oes do sistema, foi lancado o famoso Unix System V, comercial. Hoje, esse sistema e
parte do padr~ao internacional no mercado Unix, sendo comercializado por diversas empresas de grande porte que necessitam de tudo que um sistema operativo robusto como esse
pode oferecer.
O Unix e comercializado por diversas empresas de renome internacional, tais como IBM,
AT&T, Hewlett-Packard, DEC, Data General, Cray Research, Philips, Sun, Olivetti etc.
 o sistema operativo com mais longevidade de todo o mundo da informatica e ate hoje e
E
o sistema operativo para quem precisa de fazer trabalho mais exigente e complexo.
N~ao e utilizado por muitas empresas porque e comercial e custa algumas dezenas de milhares de contos, alem disso e fechado, n~ao permitindo personalizac~oes ou alterac~oes de
con gurac~ao. Logo, quem pode pagar por um sistema deste e quem realmente precisa dele
tal como e.

1.2 O Linux
Em Agosto de 1991, Linus Torvalds escrevia assim no newsgroup comp.os.minix:

Hello everybody out there using minix - i'm doing a (free) operating system (just
a hobby, won't be big and professional like gnu) for 386(486) AT clones.

Figura 1.1: Linus Torvalds

1.2. O Linux

O Minix e um clone do Unix, gratis, cujo codigo fonte esta disponvel. Foi feito com
o intuito estritamente educacional, para pessoas em geral que querem correr no seu computador um sistema compatvel com o Unix e aprender como e que o sistema operativo
funciona por dentro. Vale a pena frisar que ele foi escrito do zero e apesar de ser um clone
do Unix n~ao contem nenhum codigo da AT&T e por isso pode ser distribuido gratuitamente.
Linus Torvalds interessou-se bastante pelo Minix e decidiu desenvolver um sistema mais
poderoso que as limitac~oes e pretens~oes do Minix cujas caractersticas basicas s~ao:

 Ambiente de multiprogramaca~o completo;


 Funciona em plataformas 386, 486 e Pentium;
 Suporte para memoria extendida acima dos 16Mb no 386 e 4GB nos sucessores;
 Suporte a portas serie RS232 com emulaca~o de terminal, kermit, zmodem, etc.;
 Possibilidade de 3 utilizadores trabalharem simultaneamente na mesma maquina;
 Codigo fonte completo escrito em C totalmente disponvel (sistema operativo, utilitarios, bibliotecas etc.);

 Compilador compatvel ANSI C;


 Shell similar funcionalmente ao Bourne-Again Shell ;
 Suporte a redes TCP/IP;
 Varios editores de texto (emacs, vi, ex, ed), utilitarios (cat, cp, ed, grep, kermit,
1

ls, make, sort), bibliotecas (atoi, fork, malloc, read, stdio), dicionarios e paginas de
manual online.

Aqui ja se comecam a de nir as semelhancas com as potencialidades do Linux.


Contudo, o Linux alem de ser completamente livre e uma re-implementaca~o das especi cac~oes POSIX (padronizac~ao do IEEE - Institute of Electrical and Electronics Engineers)
para sistemas operativos, com extens~oes System V e BSD.
Isto de modo pratico quer dizer que o Linux parece Unix, mas n~ao vem do sitio, uma
vez que foi escrito de uma outra fonte que n~ao a do Unix). Esta disponvel tanto em
binarios (executaveis, ja prontos para serem usados) como em codigo fonte (para quem
desejar compila-los).
1 falado

a seguir no ponto 4.1 na p


agina 63

Captulo 1. Historia do Linux

As caractersticas mais fortes s~ao:

 Multi-tarefa Real
Varios programas podem ser executados ao mesmo tempo independentemente (ou n~ao), com areas de memoria protegidas umas das outras. O que
isso implica e que ha uma reduc~ao muito grande de bloqueios do sistema
pois caso um programa bloqueie n~ao afecta a execuc~ao dos outros e alem
disso n~ao compromete a estabilidade de todo o sistema.

 Multi-utilizador

A mesma maquina pode estar a ser utilizada por varios utilizadores ao


mesmo tempo, o que pode ser util para maquinas em redes ou maquinas
que s~ao usadas por mais que uma pessoa.

 Multi-processamento

Pode-se usar mais de um processador na mesma maquina e consequentemente aumentar bastante a performance de maneira e ciente e estavel.

 Leitura de cheiros so quando necessario

O sistema l^e do disco apenas o que esta a ser utilizado pelo programa,
n~ao sobregarregando o processamento com outros programas e aplicac~oes
futeis.

 Memoria Virtual (virtual memory)

Se um programa precisar de mais espaco em memoria e o computador


estiver com os seus recursos saturados (utilizaca~o maxima dos recursos da
maquina), o sistema operativo utilizara para o programa o espaco livre
no disco rgido como uma extens~ao da memoria RAM, emulando ser uma
continuac~ao dela.

 Suporte a varios sistemas de cheiros

Gracas a esta caracterstica podemos ver e/ou gravar numa serie de sistemas de cheiros de multiplos sistemas operativos.

 Suporte avancado do protocolo TCP/IP e diversos protocolos (IPv4, IPv6,


AX.25, X.25, IPX, DDP (Appletalk), NetBEUI)

O TCP/IP e o IP (IPv4) s~ao alguns dos protocolos de rede utilizados na


Internet. O Linux suporta-os da forma mais e ciente que os outros sistemas
operativos. O Linux pode ser um servidor de www, ftp, dns, base de dados
ou qualquer outro servico sem nenhuma di culdade.

1.2. O Linux

 Codigo fonte disponvel gratuitamente


No caso dos programadores ou somente nos interessados em estudar sistemas operativos e so abrir o editor de textos preferido e comecar a estudar
o codigo fonte.

 Distribudo sob a licenca GNU

Permite a instalac~ao gratuita em quantas maquinas quisermos e tambem


garante a manutenc~ao do codigo fonte.

 Multi-Plataforma

O Linux corre numa grande quantidade de plataformas, podemos citar


algumas nas quais ja funciona ou esta a ser implementado:
{ PCs 386/486/Pentium e superiores com suporte a ISA, EISA, PCI,
VLB (funciona em todas);
{ Motorola 680x0 (alguns Amigas, Ataris e VME);
{ DEC Alpha;
{ Sun Sparcs (funciona, Sun4c e Sun4m);
{ PowerPC;
{ MIPS and ARM.
Pensando em tudo o que foi dito anteriormente camos com ideia de que o Linux e um
sistema operativo di cil de utilizar mas isso n~ao e verdade pois muitas das coisas referidas
anteriormente podem ser ignoradas pois o seu objectivo era apenas de descrever o aparecimento do Linux e as suas caracteristicas tecnicas. Saber isso tudo e util a ttulo de cultura
geral para aqueles que n~ao trabalham com a informatica. Agora, para o utilizador comum
que utiliza o computador para:

 Usar uma folha de calculo;


 Escrever alguns textos;
 Fazer alguns desenhos;
 Ver algumas imagens e modi ca-las;
 Navegar na Web;
 Gravar programas por ftp;
 Ouvir musica (mp3, cd);
 Ver vdeos em tempo real;

Captulo 1. Historia do Linux

 Usar um programa de chat (irc, icq).


Entre muitas outras tarefas comuns, pode e deve-se utilizar o Linux. Mas se essas operac~oes
podem ser feitas com o Windows e com as suas aplicaco~es porqu^e mudar para o Linux?
Por uma raz~ao muito simples, e um sistema operativo:

 mais rapido que qualquer outro disponvel no mercado;


 gratuito;
 tem diversos aplicativos gratuitos;
 suporte tecnico muito e ciente;
 seguro;
 suporte a rede nativo;
 ambiente gra co avancado.
Para comprovar a sua rapidez temos duas formas: ou utilizando-o, ou medindo. O Linux
foi um sistema projectado de tal forma que optou por requesitos como qualidade tecnica e
performance em relac~ao a outras caractersticas.
Ser totalmente gratuito parece algo estranho, mas n~ao e. O objectivo do Linus quando
criou o sistema n~ao era ganhar dinheiro mas sim fazer para seu proprio uso e satisfac~ao
pessoal um sistema que fosse bom e pudesse atender a todas suas necessidades. O estilo
de desenvolvimento que foi adoptado foi o de colaboraca~o colectiva.
 mais ou menos como um trabalho no caos, so que existe uma organizaca~o no meio
E
desse ambiente que parece confuso para quem esta de fora. Milhares de pessoas contribuem gratuitamente com o desenvolvimento do Linux pelo prazer de ajudar a ter um
sistema melhor. Este modelo n~ao se tornou ine ciente por uma nova forma de se lidar com
o desenvolvimento de software, juntando esforcos, fazendo da comunidade parte integrante
e imprescindvel para sua realizac~ao.
Apesar da democracia no processo de desenvolvimento, em cada area existe um elemento
aglutinador, responsavel por coordenar e garantir que os esforcos est~ao a ir pelo caminho
desejado pela maioria. As decis~oes s~ao tecnicas. Por exemplo, na area do Kernel, ou nucleo
do sistema, quem coordena e o proprio Linus, que analisa e o cializa cada alterac~ao proposta.
Juridicamente falando, o Linux esta sob uma licenca de uso chamada GPL. Este tipo de
licenca permite que qualquer um possa usar indeterminadamente os programas que est~ao

1.2. O Linux

sobre ela com o compromisso apenas de n~ao tornar os programas fechados e comercializados.
De forma pratica, para o utilizador domestico, o facto de ser livre signi ca que n~ao precisa
se preocupar com a pirataria. Tudo que ele faz e legal: pode usar, distribuir, copiar, modi car, fazer o que quiser que estara sempre dentro dos limites da lei. E se isto acontece
com o utilizador domestico, a nvel empresarial as vantagens s~ao ainda maiores.
Existem hoje em dia diversos aplicativos gratuitos criados e ja operacionais para Linux.
Praticamente todas as tarefas imaginaveis ja tem software para Linux, totalmente gratuito.
Existem pacotes de aplicativos similares ou superiores aos de outras plataformas, com
folhas de calculo, editor de textos, gerador de html, agenda electronica entre outras coisas
(podemos citar o StarOce, Word Perfect, Koce). Para fazer desenhos e modi car imagens tambem existem diversos aplicativos utilizados pelos maiores webmasters/designers
do mundo (alguns exemplos s~ao o GIMP, Blender, etc.). Para navegar na Web existem
varios browsers disponveis com muitos dos plugins mais divulgados (como o Netscape,
Opera, Lynx). Para gravar cheiros por ftp, ouvir musica, etc, e tudo com o codigo fonte
testado e aprovado por milhares de pessoas.
O ambiente gra co e algo que tambem merece destaque. Um mito refere que o Linux
e um ecr~a preto com um cursor a piscar. Realmente e verdade mas so para quem desejar
utilizar a consola, pois alem disso tambem tem ambientes gra cos com janelas, bot~oes,
menus, cores, etc, mas os seus ambientes gra cos ser~ao abordados mais adiante no ponto
1.4 na pagina 19.

Figura 1.2: Linux Pinguim - TUX


O smbolo o cial do Linux e o pinguim, que foi escolhido por Linus Torvalds para
representar a imagem que se associa com o sistema operativo por si criado e por ser um
animal que ele gostava. Talvez as baixas temperaturas da Finl^andia tenham ajudado na
escolha...

Captulo 1. Historia do Linux

1.2.1 Evoluc~ao do Linux em numeros


Para terminar este capitulo da historia do Linux deixamos aqui alguns dos numeros da
evoluc~ao deste sistema operativo:

 1991

 1992

 1993

 1994
 1995

Utilizadores: 1
Tamanho: 10 000 linhas de codigo
Vers~ao: 0.01
Linus Torvalds, 21 anos, consegue sozinho fazer um sistema operativo a que
chama Linux (Lyn - ucks). Depois de anunciar num forum de discuss~ao
da Internet ele p~oe o programa a disposic~ao de quem o quiser copiar. Dez
pessoas fazem download do programa e cinco respondem com a reparaca~o
de bugs, melhorias de codigo e novas aplicaco~es. Em dezembro mais de 100
pessoas de todo o mundo juntam-se em mailing lists e newsgroups sobre
Linux.
Utilizadores: 1 000
Vers~ao: 0.96
Tamanho: 40 000 linhas de codigo
O Linux funciona perfeitamente nos PC's de secretaria (Desktop) e corre
em processadores Intel x86. O Interface gra co GUI e acrescentado.
Utilizadores: 20 000
Vers~ao: 0.99
Tamanho: 100 000 linhas de codigo
Mais de cem programadores contribuem com partes de codigo. Linus Torvalds delega a revis~ao do codigo para um nucleo duro de cinco pessoas.
Utilizadores: 100 000
Vers~ao: Linux 1.0
Tamanho: 170 000 linhas de codigo
Utilizadores: 500 000
Vers~ao: Linux 1.2
Tamanho: 250 000 linhas de codigo

1.2. O Linux

 1996

 1997

 1998

 modi cado de modo a correr em processadores da Intel, da Digital e nos


E
SPARC da Sun.
A circulac~ao do Linux Journal 2 e de 10 000 exemplares.
Utilizadores: 1 500 000
Vers~ao: Linux 2.0
Tamanho: 400 000 de linhas de Codigo
O Linux tem a capacidade de controlar varios processadores simultaneamente.
Utilizadores: 3 500 000
Vers~ao: Linux 2.1
Tamanho: 800 000 linhas de Codigo
Surgem revistas mensais sobre Linux no Jap~ao, Polonia, Alemanha, Iugoslavia, e no Reino Unido.
Ha uma nova vers~ao do Kernel todas as semanas.
Utilizadores: 7 500 000
Vers~ao: Linux 2.1.131 (131 actualizac~ao de 2.1)
Tamanho: 1.5 milh~oes linhas de Codigo
Cerca de 10 mil programadores envolvidos em newsgroups, testes e melhorias de codigo.

Actualmente estimam-se em aproximadamente 11 milh~oes de utilizadores do Linux segundo


o site The Linux Counter 3 .

1.2.2 Linux vs Sistemas Operativos Comerciais


As caractersticas anteriormente mencionadas ja apresentam algumas visveis vantagens
do Linux sobre outros sistemas comerciais, mas relembramos em especial: custo, disponibilidade de novas aplicac~oes, independ^encia, sistema aberto, adequac~ao a actividades
corporativas, etc...

2 http://www.linuxjournal.com

3 http://counter.li.org/linuxcounter

eng.html

10

Captulo 1. Historia do Linux

Neste primeiro quadro podemos ver uma comparac~ao entre as caractersticas e funcionalidades entre o Linux, OS/2 e Windows NT:
[Fonte: Thompson, B., Linux Journal, No 1 Maio 1994]

Linux
Padr~oes
Disco (Mnimo)
Disco (tpica)
Disco(completo)
Memoria
Tpico
Carga
Multitarefa
Multithreading
Multiprocessamento
Multiutilizador
Portabilidade simples
Cache din^amico
Memoria por process.
Protocolo de Rede

OS2/Warp

POSIX
15 MB
60 MB
90 MB
1 MB
16 MB
24 MB
Sim
Sim
Sim
Sim
Sim
Sim
3 Gb
TCP/IP, IPX

Windows
4.0

NT

OS/2 32 e 16 bits
Win32
20 MB
50 MB
32 MB
70 MB
40 MB
100 MB
16 MB
24 MB
32 MB
48 MB
Sim
Sim
Sim
Sim
Sim
Sim
N~ao
N~ao
N~ao
Sim
N~ao
Sim
512 Mb
2 Gb
TCP/IP,
IPX
e TCP/IP, IPX e
NETBIOS
NETBEUI
Tabela 1.1: Comparativo das principais caractersticas

No quadro seguinte podem-se observar as compatibilidades de lesystems suportados por


cada um deles.
[Fonte: Thompson, B., Linux Journal, No 1 Maio 1994]

Linux
FAT (DOS)
HPFS (OS/2)
NTFS (NT)
EXT2 (Linux)
ISO9660 (CDROM)
NFS
SysV,Xenix
Stacker

OS2/Warp

Sim
Sim
Sim
Sim
Sim
N~ao
Sim
N~ao
Sim
Sim
Sim
Sim
N~ao
Sim
Sim
Tabela 1.2: Filesystems suportados

Windows
4.0
Sim
Sim
Sim
N~ao
Sim
N~ao
N~ao

NT

11

1.3. Distribuic~oes

Neste ultimo quadro comparativo podemos ver que tipo de aplicac~oes poder~ao correr em
cada um deles:
[Fonte: Thompson, B., Linux Journal, No 1 Maio 1994]

Linux
DOS
Win16
OS/2-16
OS/2-32
Win32
POSIX
X-Windows

OS2/Warp

Sim
Sim
Sim
Sim
N~ao
Sim
N~ao
Sim
N~ao
N~ao
Sim
N~ao
Sim
N~ao
Tabela 1.3: Aplicaco~es suportadas

Windows
4.0

NT

Sim
Sim
Sim
N~ao
Sim
Sim
N~ao

1.3 Distribuic~oes
Como o Linux e essencialmente um software livre, pode-se fazer o seu download da Internet
sem infringir os direitos de copyright de ninguem. Em geral, os produtores de distribuic~oes
em CD-ROM colocam o conteudo das mesmas disponveis para download sem cobrar nada
por isto - mas claro que neste caso n~ao vamos ter direito a suporte, manual impresso e
outras comodidades oferecidas a quem paga um pouco mais pelo sistema.
Justamente por ser um software de livre alterac~ao e distribuic~ao, muitas pessoas e organizac~oes dedicam-se a criar pacotes contendo o kernel do Linux e uma serie de aplicativos,
utilitarios, manuais e programas de instalac~ao. Estes pacotes s~ao as chamadas distribuic~oes.
Existem distribuic~oes minusculas, que podem ser executadas a partir de disquetes, e existem distribuic~oes que ocupam 6 CDs ou mais. Cada uma tem os seus pontos fortes e fracos.
Uma pergunta muito comum entre os utilizadores e: "Qual a melhor distribuica~o de Linux?". Esta pergunta n~ao tem uma resposta unica - a melhor e a que atende as necessidades
de cada utilizador.
De seguida, vamos apresentar uma breve descric~ao de algumas distribuic~oes, para que
se possa tirar algumas duvidas.

12

Captulo 1. Historia do Linux

1.3.1 Debian GNU/Linux



A mais livre das distribuic~oes de Linux, o Debian leva o termo \free software" a letra. E
feito por uma equipa de programadores independentes, e distribudo por varios distribuidores tambem independentes.

Figura 1.3: Logotipo do Debian


O Debian n~ao se destaca pela sua facilidade de uso, mas em compensaca~o tem um
grande volume de recursos, tanto de software como de documentaca~o, para oferecer como
recompensa aos que se dedicarem a dominar esta distribuica~o completamente sui-generis.
O Debian tem obtido maior projecc~ao na imprensa ultimamente desde que a Corel divulgou
que estava a criar uma nova distribuic~ao baseada no Debian e no KDE. Esta distribuic~ao
ja foi lancada, mas n~ao se espera que venha a tirar utilizadores do Debian original: o seu
publico alvo e outro.

1.3.2 Mandrake
Ha menos de dois anos uma distribuic~ao pouco conhecida chegou ao mercado com grandes
esperancas. Dois anos depois, a MandrakeSoft faz uma das mais agradaveis distribuico~es
do Linux.

Figura 1.4: Logotipo do Mandrake


Aquela pouco conhecida distribuic~ao do Linux e o Mandrake. Na ultima vers~ao lancada,
a 8.0, tentou-se melhorar algumas coisas que eram um pouco rudimentares na vers~ao 7.1 e
ate mesmo adicionar muitas e novas caractersticas, tais como: Kernel 2.4.3-20mdk, Glibc
2.2.2, Gcc 2.96, Xfree86-4.0.3 optimizado para placa 3D, Cups - servidor de impress~ao
muito util e com varios drivers para impressoras, Gnome 2.4, KDE 2.1.1.
O Mandrake combina o suave desktop do KDE e Gnome com muitas caractersticas
amigaveis frequentemente chamadas de "O toque Mandrake". Este toque inclui uma sute
inteira de administrac~ao chamada DrakConf que inclui aplicativos como KPackage, RPM

13

1.3. Distribuic~oes

Drake, Hard Drake, System Services, Linuxconf, Network Con guration (via Linuxconf),
Drak Font e muitos outros. "O Toque"tambem inclui a habilidade de nos tornarmos superutilizadores com um mero clique do rato e uns toques no teclado.
O sistema de menus foi simpli cado, para que possa ser muito facil e detalhado achar
aplicativos. Ao inves de se car a procurar no meio de 100 aplicativos dentro do menu
utilitarios, os gestores de cheiros est~ao no seu proprio grupo, dentro de aplicativos, ferramentas de con gurac~ao est~ao em con gurac~ao e as consolas foram postos em shells.
Gael4 e companhia misturaram a olhos vistos o melhor de muitos sistemas operativos,
e ate mesmo colocaram o tema "Aqua"(para o Gnome e o KDE) para os f~as do OS X.
Todos estes esforcos fazem do Linux Mandrake muito facil de usar, bem como poderoso ao
mesmo tempo.

1.3.3 Corel Linux


O Corel Linux foi lancado recentemente, e tem vindo a despertar muito interesse por ser
uma distribuica~o voltada para o utilizador iniciante em Linux.

Figura 1.5: Logotipo do Corel Linux


Alguns destaques:

 Muitos dos problemas identi cados na vers~ao beta foram corrigidos a tempo da vers~ao
1.0 nal, o que indica que a Corel realmente leva a serio seu processo de desenvolvimento.

 O facto de ser baseada no Debian GNU/Linux e ao mesmo tempo voltada para o


"tpico utilizador de Windows"e uma aparente contradic~ao, mas a Corel realmente
conseguiu fazer a ponte entre os tecnicismos do Debian e a simplicidade excessiva do
Windows.

 O processo de instalac~ao e facil, descomplicado e automatico. Mas e recomendavel


que se leia atentamente a lista de hardware suportado antes de investir seu tempo...

 Toda a con gurac~ao de rede foi includa no KDE Control Center. Os utilizadores do

Windows v~ao espantar-se ao ver que podem trocar o seu IP atraves de uma familiar
interface gra ca, sem ter que reiniciar a maquina depois!

4 Ga
el

Duval - Vice-presidente e co-fundador da MandrakeSoft

14

Captulo 1. Historia do Linux

 Os utlizadores do Windows Explorer v~ao sentir-se plenamente em casa com o Corel


File Manager.

A desacelerac~ao do mercado de informatica mundial tem gerado efeitos nas principais


distribuic~oes comerciais internacionais. Segundo um artigo do ConsultingTimes5 , a Corel
vai transferir a sua distribuic~ao de Linux para uma empresa recem-fundada, chamada
Xandros. A intenca~o da Xandros e atingir o publico utilizador de desktop, nas empresas e
nos lares.

1.3.4 Slackware
Talvez a mais injusticada das distribuico~es, o Slackware criou uma fama de ser difcil de
instalar e manter, o que por um lado faria com que ele n~ao fosse uma boa escolha para
utilizadores iniciantes, e por outro daria aos seus utilizadores uma especie de 'atestado de
hacker'. Nada mais falso, entretanto.

Figura 1.6: Logotipo do Slackware


O Slackware e uma das mais antigas distribuic~oes que ainda se mantem actualizada e
activa. Criado por Patrick Volkerding (que ainda cuida da distribuica~o) a partir do antigo (e extinto) SLS Linux, o Slackware na sua vers~ao 8.0 inclui praticamente tudo que os
utilizadores se acostumaram a esperar das distribuic~oes modernas: XFree86 4.1.0, Linux
kernels 2.2.19 e 2.4.5, KDE 2.1.2, Gnome 1.4, glibc 2.2.3, e demais utiliarios.
Parte da fama de 'difcil' do Slackware deve-se ao facto de ele n~ao aderir ao padr~ao de
pacotes RPM, ao inves disso baseando-se nos tradicionalssimos pacotes tgz (ou .tar.gz).
Isto signi ca que quando se instala ou retira pacotes de software do seu Slack, n~ao se vai
poder contar com o apoio das veri caco~es de depend^encias do RPM, e muito provavelmente
vai-se ter que editar alguns arquivos manualmente para adaptar tudo em seus devidos lugares. Esta pode n~ao ser a melhor maneira de aprender Linux, mas com certeza, se se for
bem sucedido, vai-se aprender muito sobre como funciona o sistema.
A loso a do Slackware e ser o mais "UNIX-like"possvel. Isto as vezes signi ca tender a ser mais complexo, e as vezes signi ca atender a padr~oes que as outras distribuic~oes
de cunho mais comercial n~ao atendem.
5 http://consultingtimes.com/Xandros.html

15

1.3. Distribuic~oes

1.3.5 Red Hat Linux


O Red Hat Linux e com certeza a distribuica~o mais popular (embora isso n~ao signi que
necessariamente que ela seja a melhor). Conforme as suas vers~oes se sucedem, ele apresenta
maior numero de softwares uteis e maior facilidade de instalac~ao e con gurac~ao.

Figura 1.7: Logotipo do Red Hat Linux


O Red Hat e sem duvida a distribuic~ao comercial com maior penetrac~ao no mercado,
a ponto de gerar preocupac~oes de utilizadores "tradicionais"preocupados com um possvel
monopolio. Independente das preocupac~oes polticas, o facto e que a distribuic~ao Red Hat
Linux tem excelente qualidade, e aplica-se muito bem tanto ao mercado de utilizadores
domesticos (como workstation) quanto ao corporativo (como servidor).
O RedHat 7.1 inclui o kernel 2.4, XFree 4.0.3 e os outros pacotes comuns a quase todas as distribuic~oes de linux: Gimp, perl, apache, netscape, etc. Pela primeira vez o KDE
foi includo na distribuic~ao, mas o ambiente gra co default continua a ser o Gnome +
Enlightenment. A distribuic~ao o cial vem acompanhada de um manual de 410 paginas. A
instalac~ao e relativamente simples, mas exige alguns cuidados, que o manual explica muito
bem.
O RedHat usa pacotes padr~ao RPM - de facto, a Red Hat foi a criadora do padr~ao RPM. A
administrac~ao do sistema ca por conta do Linuxconf, uma poderosa ferramenta que ajuda
principalmente os administradores Linux de primeira viagem, mas pode ser util tambem
para os utilizadores experientes.
Ao lado do Caldera OpenLinux, o Red Hat 6.0 e a prova de que o Linux ja pode ser
usado por um utilizador comum. Embora a sequ^encia de instalac~ao e con guraca~o ainda
seja bastante complexa, apos superados estes estagios o uso do sistema revela-se bastante
simples e atraente.

1.3.6 SuSE Linux


A mais recente distribuic~ao alem~a SuSE Linux 7.2 reune uma serie de qualidades que a
fazem gurar entre as grandes distribuico~es comerciais. Talvez o maior destaque entre as
suas caractersticas seja o numero de pacotes de software que comp~oem a distribuic~ao: o

16

Captulo 1. Historia do Linux

pacote e composto por 7 CDs ou um DVD-ROM, a abrang^encia do conteudo e impressionante, comecando pelo software: os 2000 pacotes em formato RPM que incluem o kernel
2.4.4 (com suporte a USB para impressoras, teclados e mouses, ate 64 GB de memoria
RAM, suporte a ReiserFS, raw devices, Pentium 4, LFS e varias controladores RAID),
glibc 2.2.2, XFree 4.0.3 (com anti-aliasing de fontes TrueType, muito bom), KDE 2.1.2,
GNOME 1.4, StarOce 5.2, Samba 2.2, Kerberos 5, OpenLDAP 2, KDevelop 1.4, editores
HTML como o Blue sh e o Quanta+ e muito mais.

Figura 1.8: Logotipo do Suse Linux


Ao contrario da tend^encia de simpli car ao maximo a instalaca~o - que tem muito
merito, principalmente sob a optica do novo utilizador - a instalac~ao do SuSE conta com
um grande numero de opc~oes e possibilidades. Capaz de confundir utilizadores iniciantes
(principalmente os que tentam fazer tudo sem ler o manual), esta instalaca~o e o sonho do
utilizador experiente: a simplicidade dos pacotes baseados em RPM (padr~ao criado pela
Red Hat e seguido pela maior parte das distribuic~oes comerciais) aliada a uma quantidade
de opc~oes e exibilidade dignas do Slackware!

1.3.7 Caldera OpenLinux


O OpenLinux 2.4 eDesktop e a distribuica~o comercial mais recente e provavelmente a mais
facil de instalar. Com avancadas rotinas de detecca~o automatica de con gurac~ao de hardware, a instalac~ao e t~ao tranquila que inclui ate a opca~o de jogar Tetris enquanto se aguarda
a copia dos arquivos.

Figura 1.9: Logotipo do Caldera OpenLinux


Alem de incluir os mesmos pacotes de sempre (KDE, Real Audio 5.0, StarOce 5.1a,
kernel 2.2.14, Glibc 2.1.2-3, libc 5-1.0-2, XFree 3.3.8, etc.), o OpenLinux inclui o Partition
Magic, que simpli ca em muito a tarefa de instalar o Linux em maquinas que ja tenham
outros sistemas operativos instalados. O manual n~ao se limita a instalaca~o, dando tambem

17

1.3. Distribuic~oes

assist^encia no uso do KDE, incluindo a con guraca~o de acessos dial-up com o KPPP.
A ^enfase do OpenLinux e a operac~ao 100% gra ca, ent~ao desde a instalac~ao tudo ocorre
em ambientes gra cos, incluindo a a identi cac~ao do hardware, con gurac~ao do rato, teclado, rede, impressoras, etc. Utilizadores acostumados com o Windows n~ao dever~ao ter
di culdades para se ambientar no novo sistema.
A ferramenta de administrac~ao embutida e o COAS - Caldera's OpenLinux Administration
Software, 100% gra co. O sistema de administraca~o de pacotes e o RPM, e n~ao ha grandes
di culdades para quem ja esta acostumado a administrar maquinas utilizando o linuxconf
(que e a ferramenta default do Red Hat) ou o Yast (ferramenta padr~ao do SuSE).

1.3.8 GNUware
O GNUware n~ao e uma distribuic~ao no sentido tradicional da palavra. Trata-se de um
CD-ROM com centenas de pacotes de software, incluindo n~ao apenas aqueles que se esta
acostumado a encontrar nas distribuic~oes correntes de Linux, como ainda muitos outros.
 uma boa maneira de economizar tempo de download, e de ter sempre a m~ao todos os
E
programas de que se precisa com urg^encia nos momentos em que n~ao temos possibilidade
para fazer um download.

Figura 1.10: Logotipo do GNUware


Os pacotes est~ao no formato preferido pelos utilizadores avancados e tradicionais de
sistemas Linux e Unix em geral: codigo fonte compactado em formato tar.gz. Isto signi ca
que se precisara de um pouco mais de conhecimento para poder utilizar este CD, mas tem
varias vantagens, tais como:

 Podem-se utilizar os softwares em qualquer distribuic~ao de Linux, e ate mesmo noutras vers~oes de Unix - se se administra uma rede com varias arquitecturas diferentes,
e o CD ideal para deixar sempre montado em algum dos servidores...

 Podem-se compilar os softwares com as opc~oes que preferir, e n~ao tera que se contentar
com compilac~oes genericas feitas por terceiros.

 Podem-se gerar pacotes optimizados para a arquitectura de hardware que utiliza, e


n~ao se contentar com os pacotes padronizados para 386 que s~ao a maioria.

18

Captulo 1. Historia do Linux

Em compensac~ao, tera que se passar pelo trabalho de con gurar e compilar cada um dos
pacotes que se deseja usar. Administradores de sistemas experientes tendem a preferir passar por este trabalho, mas se ainda esta a comecar a trilhar os caminhos do Unix, talvez
deva considerar a ideia de tentar primeiro os pacotes pre-compilados (formato RPM ou
DEB, por exemplo).
Os pacotes est~ao organizados e classi cados entre os directorios do CD. O primeiro nvel
divide-se em Console, Desktops (KDE e Gnome), Internet, Kernel e X11. Cada um dos nveis
subdivide-se em varios subnveis. Por exemplo, o nvel console expande-se em: Adminis-

tration, Entertainment, Multimedia, Scienti c, Communication, File Management, Network,


Servers, Development, Graphics, Oce e System. Estes subnveis ainda t^em mais um nvel

de subdivis~ao dentro de si, e dentro de cada uma delas, encontramos as aplicaco~es, cujos
nomes dos arquivos exprimem claramente o nome original do pacote e a vers~ao.

1.3.9 WholeLinux
O WholeLinux n~ao e propriamente uma distribuic~ao de Linux, mas sim um conjunto de
aplicac~oes de software capazes de instalar o Linux numa con gurac~ao pre-de nida sem
necessidade de interacc~ao com o utilizador. E excelente para pessoas ou empresas que
estejam a pensar em criar aplicac~oes dedicadas baseadas na plataforma Linux, pois o utilizador nal pode simplesmente abstrair o processo de instalac~ao.

Figura 1.11: Logotipo do WholeLinux


O WholeLinux faz o seguinte: uma vez inserido o CD do WholeLinux numa maquina,
em pouco mais de 7 minutos temos uma instalac~ao completa do RedHat 6.0, com o KDE em
todo o seu poder, alem da placa de rede automaticamente reconhecida. A unica interac~ao
com o programa de instalac~ao e a necessidade de con rmar que realmente se deseja realizar a instalac~ao, sabendo que isto removeria todos os nossos dados em todas as partic~oes
existentes.

1.4. Ambientes Gra cos

19

O WholeLinux actualmente n~ao e um produto para utilizadores nais - ele n~ao oferece
nem permite nenhuma con gurac~ao durante a instalaca~o.

1.3.10 Mini distribuic~oes


As mini distribuic~oes s~ao pequenos pacotes baseados no kernel do Linux e voltados para
tarefas espec cas. N~ao devem ser instaladas para "ter uma ideia sobre o Linux", pois em
geral elas n~ao se parecem muito com as distribuic~oes voltadas para o uso desktop.

Linux Router Project - O Linux Router e uma distribuic~ao que cabe numa unica dis-

quete de 1,44MB e permite transformar um micro com duas interfaces de rede num router
de baixo custo e performance similar a de routers comerciais. Suporta uma serie de interfaces e protocolos.

LOAF (Linux on a oppy) - Distribuic~ao numa unica disquete, voltada para o uso
em rede. Inclui uma serie de clientes de rede (lynx, ssh, telnet...) e tem vers~oes espec cas
para as placas de rede mais comuns.

Mulinux - Distribuic~ao italiana que cabe numa disquete, e que vem com suporte a rede,
ppp, alguns servidores (http, at, fax...) e varios clientes, incluindo cliente de irc.

Pocket Linux - O Pocket Linux e uma distribuic~ao numa unica disquete voltada para ser
um cliente de rede (ssh, telnet, ftp...). Aceita placas de rede e modems.

Tomsrbt - O Tomsrbt e uma distribuica~o numa unica disquete, que contem ferramentas uteis para recuperar um computador que n~ao esteja a conseguir fazer o boot pelas vias
normais.

Trinux - Distribuic~ao voltada especi camente para tarefas de seguranca, vem com ferramentas para veri car (e tentar quebrar) a seguranca de redes locais. Ela e capaz de
transformar seu PC numa poderosa estac~ao de monitorizac~ao de rede, bastando para isso
reiniciar o computador com as suas duas (ou tr^es) disquetes.

1.4 Ambientes Gra cos


No incio os utilizadores do Linux tinham que se contentar com as linhas de comando em
modo texto. Mas desde logo se pensou uma soluca~o gra ca e surgiu o XFree tornou-se
disponvel, e comecaram a surgir os primeiros Window Managers para o Linux.

20

Captulo 1. Historia do Linux

Hoje os ambientes gra cos como o KDE e o Gnome ja s~ao capazes de colocar o Linux
ate na mesa dos utilizadores com pouca pratica no manuseamento de computadores. Recursos como clipboard integrada e drag drop deixaram de ser um sonho, e passaram a ser
realidade do dia a dia de todos.
De seguida apresentamos uma analise dos mais populares ambientes gra cos para Linux.

1.4.1 KDE
O KDE e um representante da nova gerac~ao de ambientes gra cos para Unix, que combina
facilidade de uso, funcionalidade capaz de rivalizar com qualquer ambiente contempor^aneo
e fenomenal design gra co. N~ao se limita a ser "apenas"um Window Manager, o KDE e
um ambiente gra co completo, capaz de acrescentar funcionalidades antes inimaginaveis
no mundo dos Free Unix, tais como drag drop integrado, gestor de cheiros integrado, e
uma serie de acessorios (como por exemplo a calculadora, o bloco de notas e o marcador
de acesso telefonico PPP) que rivalizam com os disponveis em ambientes comerciais como
por exemplo os da Microsoft.
O KDE foi construdo sem se basear no codigo fonte de outros sistemas, embora a sua
apar^encia e funcionalidade sejam muito semelhantes as do CDE. E embora o KDE inclua
um gestor de janelas, gestor de cheiros, barra de tarefas, painel de controle, help online e
tudo o mais que se espera de um Window Manager moderno, a sua verdadeira forca esta
na interoperabilidade de todos os seus componentes.
Por oferecer uma interface t~ao elegante, intuitiva e familiar, marcada por facilidade de
uso semelhante a do Windows, o KDE 1.1.1 coloca o poder do Linux ao alcance dos seus
utilizadores menos tecnicos. Em reconhecimento ao seu potencial, o KDE recebeu da PC
Magazine o ttulo de "Inovac~ao do ano 1998/1999"na categoria Software.
A vers~ao 1.1.1 do KDE apresenta algumas vantagens adicionais, como a integrac~ao com o
Palm Pilot, maiores facilidades na ligac~ao com a Internet e maior estabilidade.
Ate recentemente, o Red Hat Linux n~ao distribua o KDE. Na vers~ao 6.0, entretanto,
esta poltica mudou, e agora virtualmente todas as distribuico~es comerciais de Linux incluem este ambiente gra co. Algumas, como o SuSE e o Open Linux, chegam a coloca-lo
como ambiente padr~ao.
O KDE ja esta numa fase bastante avancada de internacionalizaca~o, e pode-se optar por
colocar todos os seus menus e cones em portugu^es.

21

1.4. Ambientes Gra cos

Figura 1.12: Screenshot do KDE

1.4.2 Gnome
O GNOME e o ambiente gra co que esta a ser desenvolvido pelo projecto GNU. O objectivo do Gnome e construir um desktop completo e amigavel baseado inteiramente em free
software. Este desktop consiste em utilitarios e aplicac~oes que compartilham apar^encia e
caractersticas consistentes.
Segundo a documentac~ao o cial, o Gnome e tudo o que se espera de um ambiente gra co
moderno, e neste sentido ele compara-se ao CDE, KDE, Mac OS e Windows. Mas o que o
diferencia de todos estes outros ambientes e o facto de ser 100% free software, sem nenhum
componente proprietario.
Assim como no KDE, n~ao se ca preso a nenhum window manager. Por exemplo, no Red
Hat 6.0 - que tem o Gnome como ambiente gra co default - o window manager associado
ao gnome e o Enlightenment.
O Gnome tambem tem suporte a drag and drop, cones na area de trabalho, barra
de tarefas totalmente con guravel, painel de aplicac~oes, e muito mais. A sua apar^encia
e bastante agradavel e 100% con guravel, inclusive atraves de temas. Ha uma serie de
aplicativos disponveis para o Gnome, e em geral n~ao se tem di culdades na instalac~ao
deles, ja que todos atendem a um mesmo padr~ao.
A equipa que mantem o Gnome e numerosa. Segundo Miguel de Icaza, coordenador do

22

Captulo 1. Historia do Linux

Figura 1.13: Screenshot do GNOME


projecto, "no momento da liberaca~o da vers~ao 1.0 tnhamos 250 pessoas autorizadas a pro-

mover mudancas no codigo-fonte. Esta equipa foi montada ao longo dos ultimos 20 meses
e ja ha mais 38 desde o lancamento do 1.0".

1.4.3 Window Maker


O Window Maker e um gestor de janelas para o X11 projectado tendo em mente o suporte
a aplicac~oes GNUstep. Ele apresenta a apar^encia e as caractersticas elegantes do ambiente
do NeXTSTEP, e bastante rapido, tem recursos avancados e e facil de con gurar e usar.
Algumas das caractersticas tecnicas do Window Maker diferenciam-no de outros gestores de janelas populares. Eis os destaques:

 Tratamento adequado a grupos de janelas pertencentes a uma mesma aplicaca~o;


 Menus acessveis tambem via teclado;
 Possibilidade de " xar"no ecr~a os menus popup;
 Menus recon guram-se automaticamente sempre que o arquivo de con guraco~es e
alterado (sem necessidade de reiniciar o ambiente);

 Multiplos ambientes de trabalho;

1.4. Ambientes Gra cos

23

 Suporte nativo a temas;


 Suporte nativo a imagens XPM, PNG, JPEG, TIFF, GIF e PPM;
 Utilitario de con gurac~ao embutido e completo - n~ao se precisa de editar arquivos de
con gurac~ao;

 Integrac~ao ao KDE e ao GNOME - pode-se usar o Window Maker em conjunto com


um destes ambientes.

Figura 1.14: Screenshot do Window Maker

1.4.4 AfterStep
O AfterStep e um Window Manager construdo originalmente para emular no X Window a apar^encia e funcionalidade do NeXtStep, mas que posteriormente ganhou "vida
propria"gracas a popularidade que alcancou, pela sua qualidade visual e facilidade de uso.
Alem das caractersticas visuais diferenciadas, incluindo a possibilidade de preencher as
barras de ttulos das janelas com varias texturas, o AfterStep apresenta o Wharf, uma
barra de cones , e que da suporte a muitas aplicaco~es, incluindo a possibilidade criar menus de cones em cascata, e de executar aplicac~oes directamente num cone (possibilitando,
portanto, exibir a sada de aplicac~oes simples - como relogios, e-mail noti ers, status de
modem - sem ter que criar uma janela espec ca).

24

Captulo 1. Historia do Linux

Figura 1.15: Screenshot do AfterStep


Os cheiros de con gurac~ao do AfterStep tem comandos semelhantes ao do tradicional
fvwm, alem de uma serie de comandos e opco~es espec cos.
Naturalmente, alem do Wharf, o Afterstep da suporte aos tradicionais menus de cascata
caractersticos de quase todos os Window Managers - apenas com um toque especial na
apar^encia.

Captulo 2
Instalac~ao do Red Hat Linux 7.1
Visto que a maioria dos comandos foram feitos no Red Hat Linux resolvemos optar por
explicar de um modo simples a instalaca~o desta distribuic~ao. Para isso recorremos ao
documento original "Red Hat Linux 7.1 Installation Guide".

2.1 Escolha da lngua


Utilizando o rato, escolha a lngua que prefere utilizar para a instalac~ao e que sera tambem
a de nida por defeito no sistema. A escolha da lngua vai ajudar o programa de instalaca~o

Figura 2.1: Escolha da lngua


a determinar o seu fuso horario num passo mais adiante da instalaca~o.

26

Captulo 2. Instalaca~o do Red Hat Linux 7.1

2.2 Con gurac~ao do teclado


Escolha o modelo do teclado que melhor se adequa ao seu sistema. Se acontecer o caso de
nenhum dos listados corresponder ao seu escolha o Generic mais parecido.
De seguida, escolha o melhor layout para o teclado (por exemplo US English). A es~ O
^ e outros, e feita com as "Dead Keys" que
crita de caracteres especiais, tais como C, N,
por defeito est~ao activadas. Se n~ao se pretender escrever nenhum dos caracteres especiais
desactiva-se esta opc~ao.
A area no nal do ecr~a serve para testar as con gurac~oes feitas anteriormente.
Nota: Para alterar a con gurac~ao do teclado depois de instalar o Red Hat Linux, como
root utiliza-se o comando /usr/sbin/kdbconfig ou em alternativa executa-se o comando
setup na prompt do root.

Figura 2.2: Con gurac~ao do teclado

2.3 Con gurac~ao do rato


Escolha o tipo de rato que corresponde ao que tem no seu sistema. Se por acaso na lista
n~ao estiver o seu rato escolha um que seja compativel.
Para determinar qual o tipo de interface do seu rato basta seguir o o ate ao computador e veri car onde e que este liga. Se a cha for rectangular tem um rato serie, caso
contrario e PS/2.

2.4. Bem vindo ao Red Hat Linux

27

Se a instalac~ao esta a ser feita num computador portatil, o tipo de rato e normalmente
PS/2.
Caso n~ao encontre um tipo de rato que seja de certeza compatvel com o seu sistema,
seleccione um dos Generic baseado no numero de bot~oes e interface. Se tiver um rato

Figura 2.3: Con gurac~ao do rato


PS/2 ou, no caso dos portateis incorporado, n~ao e necessario escolher uma porta. Se o rato
for serie, e necessario escolher a porta correcta onde ele esta ligado.
A opc~ao Emulate 3 Buttons permite-nos que tendo o nosso rato apenas 2 but~oes emular o terceiro premindo os dois ao mesmo tempo. O X-Window e mais facil de utilizar com
um rato com 3 but~oes, por isso convem activar esta opc~ao se for precisa.
Nota: Para alterar a con gurac~ao do rato depois de instalar o Red Hat Linux, como
root utiliza-se o comando /usr/sbin/mouseconfig na prompt do root.

2.4 Bem vindo ao Red Hat Linux


O ecra de boas vindas do Red Hat Linux n~ao tem nenhuma opc~ao em especial. A unica
de import^ancia tem a ver com o facto de se querer ou n~ao ver a ajuda a instalac~ao.
Para continuar a instalac~ao clica no Next.

28

Captulo 2. Instalaca~o do Red Hat Linux 7.1

2.5 Opc~oes de instalac~ao


Neste ecra vamos escolher o tipo de instalaca~o que pretendemos fazer. O Red Hat Linux permite-nos escolher o melhor tipo de instalac~ao para o nosso caso. As opco~es s~ao
Workstation, Server, Laptop, Custom e Upgrade.

Figura 2.4: Opc~oes de con gurac~ao

2.6 Particionamento automatico


O particionamento automatico do disco permite-nos fazer uma instalac~ao na qual n~ao
temos de nos preocupar com a operac~ao de fazer partico~es no nosso disco. Se n~ao nos
sentirmos a vontade com o facto de termos de fazer manualmente o particionamento do
nosso disco, o melhor sera mesmo optar pelo partionamento automatico.
Nota: Se a opc~ao de Automatic Partitioning n~ao aparece e porque n~ao temos espaco

su ciente para podermos optar por esta opc~ao. Temos ent~ao duas soluc~oes: ou sairmos
da instalaca~o e libertar mais espaco no disco; ou ent~ao optar pelo particionamento manual.
Nesta ecra podemos escolher ou o particionamento automatico, ou os particionamentos
manuais usando o Disk Druid ou o Fdisk. Temos ainda a opc~ao de voltar atras e escolher
outro tipo de instalac~ao.
Se n~ao quisermos perder dados a melhor opca~o sera fazer o particionamento manual.
Nota: Uma instalaca~o Workstation, Custom ou Laptop usando particionamento automatico

2.7. Particionando o disco

29

Figura 2.5: Particionamento automatico

ira remover todos os dados das partic~oes Linux existentes. Por outro lado, uma instalaca~o
Server ira remover todos os dados de todas as partic~oes de todas as drives.

2.7 Particionando o disco


Se escolheu a opca~o de Automatic Partitioning anteriormente passe para o ponto seguinte, caso contrario continue a ler. Se por outro lado a opc~ao escolhida foi Manually
partition with fdisk passe para o ponto 2.8.
Neste ponto e necessario dizer ao programa de instalac~ao onde e que ele deve instalar
o Red Hat Linux. Isto e feito de nindo pontos de montagem (mount points) para uma ou
mais partic~oes do disco no qual o Red Hat Linux vai ser instalado. Pode ser preciso criar
ou apagar partic~oes. A ferramenta do Red Hat Linux para fazer o particionamento dos
discos e o Disk Druid. Com algumas raras excepco~es, este programa pode tratar de todas
as operac~oes com partic~oes para a instalaca~o padr~ao do Red Hat Linux.

2.7.1 Variaveis das partic~oes


Cada linha da secc~ao partitions representa uma partica~o do disco. Cada linha nesta
secc~ao tem 5 variaveis diferentes:

 Mount Point - um mount point da-nos a localizaca~o contendo a hierarquia onde

um volume existe; o "volume" e montado aqui. A variavel indica-nos onde e que a


partic~ao vai ser montada. Se a partic~ao ja existe mas ainda n~ao esta con gurada e

30

Captulo 2. Instalaca~o do Red Hat Linux 7.1

Figura 2.6: Particionando o disco com o Disk Druid


preciso de nir o ponto de montagem. Basta fazer duplo clique na partica~o ou carregar
em Edit;

 Device - este campo indica-nos o nome do dispositivo da partica~o;


 Request - este campo da-nos o tamanho original da partic~ao. Para rede nir o tamanho de uma partic~ao e preciso apagar a actual e cria-la de novo utilizando o Add;

 Actual - este campo indica-nos o espaco alocado actualmente para a partica~o;


 Type - indica-nos o tipo de partic~ao (Linux, DOS, etc).
2.7.2 Esquema recomendado de particionamento

A menos que se tenha outra ideia, recomendamos que se se criem as seguintes partico~es:

 uma partic~ao swap (com pelo menos 32Mb, recomendamos 256Mb) - este tipo de

partic~oes servem para ajudar a memoria. Ou seja, quando n~ao existe memoria su ciente para executar determinada operac~ao, os dados podem ser escritos para a
partic~ao swap e esta ser utilizada como memoria virtual.

 uma partic~ao /boot (com no maximo 32Mb) - esta partic~ao contem o kernel do
sistema operativo (que permite que o Red Hat Linux arranque) e ainda os cheiros
utilizados durante o arranque.

 uma partic~ao root (1,2 a 2,4 Gb) - esta partica~o e onde se encontra o "/" (directorio
do root). Nesta con gurac~ao, todos os cheiros se encontram nesta partic~ao excepto

2.7. Particionando o disco

31

aqueles que est~ao na /boot. Com 1,2Gb podemos fazer uma instalaca~o workstation
apenas com alguns pacotes e com 2,4Gb temos hipotese de instalar todos os pacotes.

2.7.3 Problemas a adicionar uma partic~ao


Se tentarmos adicionar uma partic~ao e o Disk Druid n~ao puder fazer essa operaca~o, o programa mostra-nos uma lista de todas as partico~es que n~ao est~ao alocadas acompanhadas
da respectiva raz~ao porque n~ao puderam ser alocadas.
Para reparar esta situac~ao, a soluc~ao e mover a partic~ao para outro disco que tenha espaco
disponivel e fazer um redimensionamento da partic~ao para o espaco disponivel nesse disco,
ou apagar essa partic~ao.

2.7.4 Caractersticas do disco


Cada linha da secc~ao Drive Summaries representa um disco da nossa maquinas. Cada
linha tem as seguintes variaveis:

 Drive - da-nos o nome do dispostivo do disco;


 Geom [C/H/S] - da-nos o numero de cilindros, cabecas e sectores do disco;
 Total - indica-nos o espaco total em disco em Mb;
 Free - indica-nos o espaco em disco que ainda n~ao esta alocado em Mb;
 Used - indica-nos o espaco em disco que esta alocado em partic~oes em Mb e em
percentagem.

A secc~ao Drive Summaries so e mostrada como informaca~o ao utilizador sobre o seu disco
e sobre a forma como esta particionado.

2.7.5 Opc~oes do Disk Druid


O Disk Druid oferece-nos as seguintes opco~es:

 Add - utilizado para adicionar uma nova partic~ao. Quando esta opc~ao e seleccionada

aparece uma caixa de dialogo com alguns campos que devem ser preenchidos (tais
como o ponto de montagem e o tamanho);

32

Captulo 2. Instalaca~o do Red Hat Linux 7.1

 Edit - utilizado para modi car os atributos de determinada partica~o seleccionada na

secc~ao Partitions. Ao escolher a opc~ao Edit, vai aparecer uma caixa de dialogo que
nos permite alterar alguns dos dados sobre a partica~o dependendo se estes ja foram
escritos ou n~ao no disco;

 Delete - utilizado para remover partic~oes.

Por uma quest~ao de seguranca aparece


sempre uma caixa de dialogo para con rmac~ao ou n~ao desta operac~ao;

 Reset - serve para recolocar o Disk Druid no seu estado inicial. Todas as alterac~oes
feitas s~ao perdidas;

 Make RAID Device - serve para fornecer redund^ancia para uma ou para todas as
partic~oes do disco. So deve ser utilizado ser tivermos experi^encia com o RAID (Redundant Array of Independent Disks).

2.7.6 Adicionar partic~oes


Para adicionar uma partic~ao basta carregar em Add e logo uma caixa de dialogo ira aparecer.

Nota: Deve haver pelo menos uma partic~ao dedicada para o Red Hat Linux, ou em opc~ao
varias.
As opc~oes da caixa de dialogo s~ao:

 Mount Point - escolha e introduza o ponto de montagem da partic~ao. Por exemplo


para a partic~ao do root, introduz-se /;

 Size (Megs) - introduza o tamanho da partica~o em Mb;


 Use remaining space - quando esta opc~ao e seleccionada, a partic~ao ca com todo
o tamanho disponvel e que ainda n~ao foi alocada para mais nada;

 Partition Type - este campo contem diversas opc~oes tais como Linux Native ou
DOS. Escolha a que mais lhe convier;

 Allowable Drives - este campo contem todos os tipos de drives que temos na
maquina.

 Ok - clicamos aqui se ja zemos todas as modi caco~es que pretendamos e queremos
agora criar a partic~ao;

 Cancel - clicamos aqui se queremos cancelar todas as modi caco~es.

2.8. Particionando com o Fdisk

33

2.7.7 Editar partic~oes


Para editar um partic~ao basta clicar em Edit ou dar duplo clique numa partic~ao existente.
Nota: Se a partica~o ja existir no disco, so poderemos mudar o seu ponto de montagem.

Se quiseremos alterar qualquer outro parametro da partic~ao so podemos faz^e-lo apagando-a
e criando-a novamente.

2.7.8 Apagar uma partic~ao


Para apagar uma partic~ao basta escolh^e-la na secc~ao Partitions seguido do Delete. Por
uma quest~ao de seguranca e sempre pedida a con rmac~ao da operaca~o.

2.8 Particionando com o Fdisk


Caso a escolha para fazer as partic~oes do disco recaia sobre o Fdisk o ecra seguinte ira
pedir para indicarmos qual o disco a particionar. Depois de escolhermos o disco, aparecera
o ecra de comandos do Fdisk.
Se n~ao soubermos quais os comandos a utilizar, podemos ver as alternativas com o comando m no prompt. Depois de terminarmos de fazer as partic~oes, usamos o comando w
para gravar as alterac~oes e sair. Feita esta operac~ao voltamos ao ecra principal do Fdisk
onde podemos escolher outro disco ou continuar com a instalaca~o.
Se continuarmos com a instalac~ao temos de utilizar o Disk Druid para de nir os pontos de montagem para cada partic~ao.

2.9 Formatar partic~oes


Agora que temos as partic~oes criadas temos de as formatar. Para isso basta escolher quais
as que queremos formatar, tendo obrigatoriamente de formatar aquelas que foram criadas
agora no processo de instalac~ao. Ter em atenca~o que as partic~oes que contem as pastas
/home e /usr/local n~ao devem ser formatadas se quisermos guardar os dados que la
temos. Se quisermos fazer a veri cac~ao de erros aquando do processo de formatac~ao de
cada partica~o so temos de activar a caixa de Check for bad blocks while formatting.

34

Captulo 2. Instalaca~o do Red Hat Linux 7.1

Figura 2.7: Escolher as partic~oes a formatar

2.10 Instalar o LILO


Se estamos a fazer umaa instalac~ao do tipo Workstation, Server ou Laptop podemos
passar ja para o ponto 2.11.
Para que o Red Hat Linux possa arrancar e necessario instalarmos o LILO (ou LInux
LOader). O LILO pode ser instalado em dois sitios:

 no Master Boot Record (MBR) - e o sitio que recomendamos.


 no primeiro sector da partic~ao do root - so no caso de ja usarmos outro programa de
boot tal como o OS/2 Boot Manager.

Se escolhermos instalar o LILO, temos de escolher o sitio onde e que ele vai ser instalado
no nosso sistema. Se ja tivermos outro sistema operativo, e aconselhavel escolher colocar
o LILO no MBR pois durante o processo de arranque temos hipotese de escolher qual dos
sistemas operativos e que queremos utilizar.
Se decidirmos n~ao instalar o LILO, temos de mais adiante fazer uma disquete de arranque
porque sen~ao caremos sem acesso ao Red Hat Linux.
Podemos ainda neste ecra de con gurac~ao do LILO indicar algumas opc~oes, nomeadamente qual o sistema operativo que arrancara por defeito entre outras.

35

2.11. Con gurac~ao da rede

Figura 2.8: Instalar o LILO

2.11 Con gurac~ao da rede


Este ecra so e mostrado se tivermos uma placa de rede. A con gurac~ao serve para con gurarmos o nosso endereco IP para utilizar ou o DHCP (Dynamic Host Con guration
Protocol) ou com os valores introduzidos manualmente nos campos IP Address, Netmask,
Network e Broadcast. Temos ainda a opca~o de activar a placa de rede no arranque do

Figura 2.9: Con guraca~o da rede


Red Hat Linux na caixa Activate on boot.

36

Captulo 2. Instalaca~o do Red Hat Linux 7.1

2.12 Con gurac~ao do rewall


O Red Hat Linux oferece a possibilidade de uma protecc~ao com rewall para uma melhor
seguranca do sistema. Um rewall separa a nossa maquina da rede e determina a que recursos do nosso computador e que um utilizador pode aceder. Um rewall bem con gurado

Figura 2.10: Con guraca~o do rewall


pode aumentar e cazmente a seguranca do nosso sistema. Existe 3 niveis de seguranca e
para que se possa optar pelo melhor para o nosso caso, a descrica~o de cada pode ser vista
a seguir.

 High - se escolhermos este nvel de seguranca, o nosso sistema n~ao ira aceitar qualquer
ligac~ao que n~ao seja explicitamente de nida por nos.

 Medium - neste caso, o rewall vai impedir que maquinas remotas acedam a alguns
dos recursos do nosso sistema.

 No Firewall - esta opc~ao fornece total acesso ao nosso sistema e n~ao faz qualquer
tipo de veri cac~ao de seguranca.

2.13 Con gurac~ao do fuso horario


A con gurac~ao do fuso horario pode ser feita quer indicando ao programa a nossa localizac~ao fsica quer especi cando o nosso fuso horario no Coordinated Universal Time
(UTC). Na imagem podemos ver que temos dois separadores. No primeiro, que e o que
esta vsivel, especi camos clicando no mapa o local onde estamos, apos o que aparece um
X vermelho.

2.14. Selecc~ao da(s) lingua(s)

37

Figura 2.11: Con gurac~ao do fuso horario


Nota: Para alterar a con gurac~ao do fuso horario depois de instalar o Red Hat Linux,
como root utiliza-se o comando /usr/sbin/timeconfig na prompt do root.

2.14 Selecc~ao da(s) lingua(s)


O Red Hat Linux permite-nos ter instalados suportes para varias lnguas para o nosso
sistema. Devemos escolher uma para servir como lngua padr~ao. Contudo, mais tarde podemos altera-la para outra. Se so vamos utilizar uma lngua, basta escolhermos a desejada

Figura 2.12: Con gurac~ao da(s) lingua(s)

38

Captulo 2. Instalaca~o do Red Hat Linux 7.1

e avancarmos com a instalac~ao. No caso de queremos mais do que uma, isso ira re ectir-se
no espaco ocupado pelo Red Hat Linux.

2.15 Con gurac~ao de contas


Este ecra permite-nos con gurar a password de root. Adicionalmente podemos acrescentar
mais contas de utilizadores que podem fazer o log in na maquina depois da instalac~ao estar
concluda.

Figura 2.13: Con guraca~o de contas

2.15.1 De nindo a password do root


De nir a password do root e um dos mais importantes passos da instalac~ao. A conta de
root e similar a conta de administrador do Windows NT. Esta conta e utilizada para instalar pacotes, fazer upgrade de RPMs e executar as tarefas de manutenca~o do sistema. Fazer
o login como root da-nos o controlo total da maquina.
Deve-se usar a conta de root apenas para administraca~o e n~ao para trabalho, para este m
deve-se criar outra conta. A criac~ao de uma conta de trabalho evita que se zermos algum
comando errado vamos provocar algum problema no sistema.
Neste passo deve-se de nir uma password de root, caso contrario o programa de instalaca~o
n~ao nos deixa avancar.

2.16. Con gurac~ao de autenticac~oes

39

2.15.2 De nir contas para utilizadores


Se decidirmos criar uma conta de utilizador, ela ira car disponivel logo que a instalaca~o
seja concluda. Isto permite-nos fazer o log in no nosso sistema qem que tenhamos de ser
o root.
De nir uma conta de utilizador e bastante facil. Basta introduzir um username, depois
introduzir e con rmar uma password para esse username. Depois introduz-se o nome completo do utilizador e clica-se em Add. Estas informac~ao v~ao ser acrescentadas na lista de
utilizadores e os campos v~ao car limpos para o caso de querermos acrescentar mais utilizadores.
Pode-se ainda editar ou apagar utilizadores usando os bot~oes Edit e Delete respectivamente.

2.16 Con gurac~ao de autenticac~oes


Se estivermos a fazer uma instalac~ao Workstation, server ou Laptop, passe para a secc~ao
2.17. Podemos passar esta con gurac~ao se n~ao quisermos de nir passwords de rede. A me-

Figura 2.14: Con guraca~o de autenticaco~es


nos que estejamos a de nir autenticac~ao NIS, as caixas de dialogo activadas s~ao as que se
referem a passwords MD5 e shadow. Recomendamos que sejam usadas ambas se quisermos
tornar a nossa maquina mais segura.
As passwords MD5 permitem-nos utilizar passwords longas com ate 256 caracteres em vez
das normais oito letras ou menos. As passwords shadow fornecem-nos um metodo seguro

40

Captulo 2. Instalaca~o do Red Hat Linux 7.1

de guaradar as passwords. Estas s~ao guardadas em /etc/shadow directorio ao qual so o


root tem acesso.
Para activar a opc~ao Enable NIS temos de estar ligados a uma rede NIS. Caso contrario
passa-se adiante. Relativamente as outras opco~es pode-se consultar
http://www.europe.redhat.com/documentation/rhl7.1 ou ver no Manual.

2.17 Escolha dos grupos de pacotes


Depois de as partic~oes serem seleccionadas e con guradas para serem formatadas, estamos
prontos para seleccionar quais os grupos de pacotes que ser~ao instalados.
O KDE e o GNOME s~ao ambientes gra cos, dos quais ja falamos anteriormente. Para
ja basta escolher um deles ou os dois para serem instalados. So depois de utilizar cada um
deles e que podemos dizer qual deles e que preferimos. De seguida podemos escolher quais

Figura 2.15: Escolha de grupos de pacotes


os componentes a instalar, que podem ser desde grupos de pacotes, ate pacotes individuais,
por exemplo C Development, Networked Workstation entre outros. Para escolher basta
clicar no caixa de selecc~ao respectiva.
Para escolher pacotes individualmente clica-se em Select Individual Packages que aparece no fundo do ecra.

2.17. Escolha dos grupos de pacotes

41

2.17.1 Seleccionar pacotes individuais


Depois de escolher quais os componentes a instalar podemos seleccionar ou n~ao pacotes
individuais. No lado esquerdo do ecra temos um directorio que mostra os varios grupos de

Figura 2.16: Escolha de pacotes individuais


pacotes organizados por temas. Quando se expande umramo do directorio vemos do lado
direito quais os pacotes que fazem parte desse ramo.
Ter em atenc~ao que alguns dos pacotes s~ao indispensaveis para o funcionamento do Red
Hat Linux.

2.17.2 Depend^encias
Alguns dos pacotes de software, de modo a serem executados correctamente, depdendem
de outros pacotes que devem ser instalados. De modo a assegurar que o sistema tem
todos os pacotes que precisa, o Red Hat Linux veri ca todas as depend^encias dos pacotes
seleccionados que pretendemos instalar ou desinstalar. O ecra Unresolved Dependencies
so ira aparecer no caso de faltarem alguns pacotes necessarios para a execuc~ao de outros
que foram seleccionados para instalar. No fundo do ecra encontramos 3 opco~es. Em caso
de duvida escolhe-se Install packages to satisfy dependencies e o proprio programa
resolve todas as depend^encias.

42

Captulo 2. Instalaca~o do Red Hat Linux 7.1

Figura 2.17: Depend^encias

2.18 Con gurac~ao da componente gra ca


Se decidirmos instalar os pacotes do X-Window temos de con gurar um servidor X no
nosso sistema.

2.18.1 Con gurar a placa de video


O XConfigurator da-nos uma lista de todos as placas gra cas suportadas pelo sistema.
No fundo do ecra e depois de escolhida a placa gra ca temos de escolher a quantida de

Figura 2.18: Con gurac~ao da placa gra ca

2.18. Con gurac~ao da componente gra ca

43

memoria respectiva.

2.18.2 Con gurar o monitor


O programa de con gurac~ao da-nos uma lista de monitores suportados pelo Red Hat Linux.
O nosso monitor vai ser detectado pelo programa, e so no caso de n~ao corresponder e que
fazemos a escolha manual.

Figura 2.19: Con gurac~ao do monitor

2.18.3 Con gurac~ao pessoal


Depois de feitas as escolhas da placa gra ca e do monitor, temos agora de con gurar pormenores de visualizac~ao tais como a quantidade de cores, a resoluca~o e qual vai ser o nosso
ambiente de trabalho por defeito. Como podemos ver na gura este processo e bastante
simples, convem no entanto fazer Test Setting antes de prosseguir com a instalac~ao para
veri car se realmente as opc~oes escolhidas conseguem ser suportadas pelo nosso sistema.
O Test Setting vai abrir um ecra de teste das con gurac~oes, se por acaso n~ao conseguirmos ver as imagens que aparecem e porque escolhemos uma resoluca~o ou quantidade
de cores muito grande. Assim sendo clicamos em No e escolhemos outros valores.
Temos ainda a hipotese de indicar se queremos arrancar o Red Hat Linux em modo texto
ou gra co depois de terminada a instalaca~o. O arranque em modo gra co ca sempre
melhor que em modo texto mas cada utilizador e que sabe.

44

Captulo 2. Instalaca~o do Red Hat Linux 7.1

Figura 2.20: Con gurac~ao do X

2.19 Preparac~ao para instalar


E estamos quase a comecar a instalac~ao do Red Hat Linux. Depois de serem feitas todas
as con gurac~oes do nosso sistema temos agora a ultima hipotese de cancelar o processo de
instalac~ao no caso de querermos ainda fazer algumas alteraco~es nas con gurac~oes.
Clicando em Next o programa de instalac~ao vai escrever as partico~es e os pacotes comecam
a ser instalados.

2.20 Instalando os pacotes


Neste ponto da instalac~ao todos os procedimentos s~ao feitos pelo programa de instalac~ao
e por isso o utilizador n~ao precisa de fazer nada. O tempo de instalaca~o depende da quantidade dos pacotes que foram seleccionados anteriormente e da velocidade do computador.

2.21 Criac~ao de uma disquete de arranque


Se na secc~ao ?? optamos por fazer um arranque do Red Hat Linux por disquete temos
obviamente de a criar agora. Para isso basta introduzir uma dsquete formatada na drive e
clicar em Next.
Qualquer que tenha sido o modo de arranque que escolhemos, uma disquete de arran-

45

2.22. Instalac~ao terminada

Figura 2.21: Instalac~ao dos pacotes


que e sempre importante pois caso haja algum problema com a con gurac~ao do LILO
temos sempre a certeza que o sistema ira arrancar, quanto mais n~ao seja com a disquete.

Figura 2.22: Disquete de arranque

2.22 Instalac~ao terminada


E chegamos ao m do processo de instalaca~o! O programa de instalaca~o vai agora reiniciar
o sistema e por isso convem remover qualquer disquete ou CD dos respectivos dispositivos.

46

Captulo 2. Instalaca~o do Red Hat Linux 7.1

Se n~ao instalamos o LILO temos de introduzir a disquete de arranque. Depois do computador arrancar vai aparecer qualquer coisa como
LILO boot:
linux
windows98

na qual temos 3 opc~oes:

 Carregar em Enter - arranca o sistema operativo que tiver sido de nido como default;

 Escolher uma das opco~es seguido de Enter - faz o LILO arrancar com o sistema
operativo escolhido que esta representado pelo label;

 N~ao fazer nada - o LILO depois de um certo tempo arranca para o sistema operativo
de nido como default.

Aparece-nos ent~ao se tivermos de nido um modo gra co, um ecra de login em modo gra co.

Captulo 3
Estrutura dos directorios do Linux
Este captulo descreve a import^ancia dos componentes padr~ao da arvore de directorios do
Linux, a qual tem por base o Sistema de Ficheiros Padr~ao do Linux 1 . Ao mesmo tempo
e descrita a forma habitual de dividir a arvore de directorios em diferentes sistemas de
cheiros com diferentes nalidades, e atribuindo uma justi cac~ao para a adopca~o de cada
divis~ao. S~ao descritas ainda algumas opc~oes alternativas.
O padr~ao preconizado pelo FSSTND, tem por func~ao facilitar o desenvolvimento para
o Linux, bem como a administrac~ao de maquinas Linux, na medida em que tudo esta localizado em lugares espec cos.
N~ao existe a obrigatoriedade da adopc~ao deste padr~ao, nem nada que obrigue quem quer
que seja a utiliza-lo, alem do bom senso, uma vez que ele tem o apoio da maioria, sen~ao
da totalidade, das distribuic~oes do Linux.
No entanto, n~ao e aconselhavel alterar o padr~ao da arvore de directorios, a menos que
existam raz~oes que sejam muito fortes para serem realizadas essas alterac~oes.
O FSSTND, tenta manter os padr~oes antigos do Unix, conciliando-os com as novas solicitac~oes, fazendo com o que o Linux que mais familiar para aqueles com alguma experi^encia noutros Unix e vice-versa.
Este captulo, n~ao e t~ao detalhado como o FSSTND. Qualquer administrador de sistemas, deveria ler cada especi cac~ao para que o entendimento seja completo. Tambem foi
nossa opc~ao, n~ao descrever a totalidade dos cheiros com o maximo detalhe. A intenca~o,
e apresentar uma vis~ao geral, sob um determinado ponto de vista do sistema de cheiros.
Mais informac~oes sobre cada cheiro, podem ser encontradas nas paginas de manual on-line
do Linux presentes na maquina.
1 Linux

Filesystem Structure ou FSSTND

48

Captulo 3. Estrutura dos directorios do Linux

A arvore de directorios deve ser dividida em partes mais pequenas, cada uma com o seu
proprio disco ou partic~ao, facilitando dessa forma quest~oes como os limites do tamanho
de disco ou a criac~ao de copias de seguranca. Os sistemas de cheiros maiores s~ao a raiz
(root), /usr, /var e /home (ver a gura 3.1). Cada parte tem uma nalidade diferente.

Figura 3.1: Partes da arvore de directorios


O desenho da arvore foi idealizado para funcionar tambem em rede, tanto em maquinas
que necessitem de compartilhar partes do sistema de cheiros com autorizaca~o exclusivamente de leitura (por exemplo um CD-ROM), bem como em maquinas com sistemas de
cheiros de rede (NFS).
As regras para se obterem tais divis~oes, s~ao as seguintes:

 O sistema de cheiros raiz e espec co de cada maquina (geralmente esta armazenado

num disco local, apesar de poder estar presente num disco em memoria ou numa unidade de rede). Contem os cheiros necessarios para o boot do sistema e para permitir
o acesso aos restantes sistemas de cheiros. O conteudo da raiz deve ser o su ciente
ainda para que o sistema possa ser executado em modo mono-utilizador. Contem as
ferramentas para a resoluc~ao de possveis problemas e para a recuperaca~o de cheiros
a partir das copias de seguranca.

 O sistema de cheiros /usr contem:

comandos, bibliotecas, paginas de manuais e


cheiros imutaveis, necessarios para a normal operaca~o do sistema. Os cheiros localizados em /usr n~ao devem ser espec cos para uma determinada maquina e n~ao
devem ser alterados durante a utilizaca~o normal. Isso permite que estes cheiros possam ser compartilhados atraves da rede, o que pode ser bastante interessante pela
economia provavel de espaco em disco (o /usr pode conter algumas centenas de megabytes muito facilmente) e ao mesmo tempo faz com que a administrac~ao seja mais
simples (uma vez que so o /usr na maquina principal necessita de ser actualizado).
Mesmo que este sistema de cheiros se encontre localizado no disco local, deve ate

49
ser montado com permiss~ao exclusivamente de leitura, para diminuir a hipotese da
corrupc~ao de cheiros durante um eventual acidente.

 O sistema de cheiros /var contem os cheiros mutaveis, como os directorios dos

cheiros temporarios (spool ) para correio electronico, impress~oes, logs, paginas de


manual formatadas, etc... Tradicionalmente o conteudo do /var deveria estar em
algum lugar sob o /usr, porem isso torna impossvel montar o /usr com permiss~oes
so de leitura.

 O sistema de cheiros /home contem os directorios pessoais dos utilizadores, ou

seja, todas as informac~oes armazenadas por estes no sistema. Separar os directorios


pessoais na sua propria arvore de directorios ou sistema de cheiros, simpli ca a
criac~ao de copias de seguranca, uma vez que outras partes do sistema normalmente
n~ao necessitam ser copiadas com a mesma frequ^encia. Uma /home muito grande,
pode ser dividida em varios sistemas de cheiros que requerem um nvel adicional na
sua denominac~ao, como por exemplo /home/GEL ou /home/admin.

Apesar das diferentes partes ja descritas serem chamadas de sistemas de cheiros, n~ao ha
a obrigatoriedade de estas estarem assim separadas. Podem estar facilmente no mesmo
sistema, numa pequena maquina utilizada por um unico utilizador que deseje mant^e-las de
uma forma mais simpli cada.
A arvore de directorios pode estar dividida ainda em diferentes sistemas de cheiros, dependendo do tamanho de cada disco e da quantidade de espaco que for reservado para cada
nalidade. O importante a reter e que os nomes padr~oes devem ser mantidos e devem ser
utilizados de forma correcta.
A estrutura dos sistemas de cheiros Unix, prev^e um agrupamento de acordo com a nalidade. Ou seja, os comandos est~ao todos numa determinada area, todos os cheiros de
dados noutra, a documentac~ao numa terceira, e assim por diante. Uma alternativa seria
agrupar os cheiros de acordo com os programas a que eles pertencam, isto e, os cheiros
do Emacs estariam todos num unico directorio, todos os cheiros de TeX noutro, e assim
por diante.
O problema desta abordagem, reside no compartilhar de cheiros (um cheiro de programas contem todos os tipos de cheiros: estaticos, din^amicos, compartilhados e n~ao
compartilhados,...) e algumas vezes em encontrar alguns desse cheiros (por exemplo uma
man page a ser pesquisada num grande numero de directorios).

50

Captulo 3. Estrutura dos directorios do Linux

3.1 O sistema de cheiros raiz


O sistema de cheiros raiz, deve ser pequeno, desde que contenha so os cheiros fundamentais para o boot (inicio) e funcionamento do sistema. Um sistema pequeno e com poucas
modi cac~oes tem mais hipoteses de nunca ter problemas.
Um sistema de cheiros raiz corrompido, pode geralmente signi car que o sistema n~ao
possa ser inicializado, excepto atraves de medidas especiais (como por exemplo, por uma
disquete).
O directorio raiz, geralmente n~ao contem qualquer tipo de cheiro, excepto, talvez, a
imagem de inicializac~ao (boot) do sistema, normalmente chamada /vmlinuz. Todos os restantes cheiros est~ao em sub directorios da raiz.
/bin

Comandos necessarios durante o boot do sistema (inicializaca~o) que podem ser utilizados pelos utilizadores (provavelmente apos a activac~ao do sistema).
/sbin

Id^enticos ao /bin, no entanto os comandos n~ao s~ao destinados aos utilizadores comuns,
apesar de poderem ser utilizados por estes se tal for necessario.
/etc

Ficheiros de con gurac~ao espec cos da maquina.


/root

O directorio pessoal do administrador da maquina (root ).


/lib

Bibliotecas partilhadas necessarias aos programas residentes no sistema de cheiros

3.1. O sistema de cheiros raiz

51

raiz.
/lib/modules

Modulos din^amicos e que s~ao carregados pelo kernel, especialmente aqueles necessarios
ao arranque do sistema em caso de acidente (por exemplo, programas de controlo de sistemas de cheiros de rede ).
/dev

Ficheiros de controlo de dispositivos (devices ).


/tmp

Ficheiros temporarios. Programas que s~ao executados apos a activaca~o do sistema, devem usar o /var/tmp e n~ao o /tmp, na medida em que muito provavelmente v~ao encontrar
mais espaco disponvel naquele sistema de cheiros.
/boot

Ficheiros utilizados pelo carregador de boot (inicializac~ao) do sistema, por exemplo o


LILO 2 . As imagens do kernel, s~ao regra geral, aqui mantidas ao contrario de serem no
directorio raiz. No caso de existirem varias imagens, o directorio pode crescer muito facilmente, sendo aconselhavel mant^e-lo num sistema de cheiros a parte. Outra raz~ao, e ter
a plena certeza de que as imagens do kernel se encontrem localizadas nos primeiros 1024
cilindros de um disco IDE.
/mnt

Local para as montagens temporarias realizadas pelo administrador do sistema. Os


programas, regra geral, n~ao prev^eem a montagem automatica em /mnt. Este deve estar
dividido em sub directorios, como por exemplo /mnt/dosa (sendo uma unidade de disquetes utilizando um sistema de cheiros MS-DOS) e /mnt/exta (pode ser a mesma unidade,
mas com uma extens~ao ext2).
2 LILO

- LInux LOader, analizado no ponto 5.1 na pagina 97

52

Captulo 3. Estrutura dos directorios do Linux

/proc, /usr, /var e /home

Locais de montagem para outros sistemas de cheiros.

3.2 O directorio /etc


O directorio /etc contem varios cheiros. Alguns deles s~ao descritos a seguir. Muitos cheiros de con guraca~o de programas de rede est~ao localizados em /etc, como se encontra
descrito no Linux Networking Administrators' Guide 3
/etc/rc ou /etc/rc.d ou /etc/rc?.d

S~ao cheiros de batch (scripts) ou os directorios de cheiros de batch, os quais s~ao


executados no (boot) incio do sistema.
/etc/passwd

A base de dados dos utilizadores, cujos campos de nem nome do utilizador, nome real,
directorio pessoal, password cifrada e outras informaco~es espec cas de cada utilizador. O
formato esta documentado na pagina man passwd.
/etc/fdprm


A tabela de par^ametros de disquetes. Descreve os formatos diferentes disponveis. E
utilizada pelo programa setfdprm. Para maiores informac~oes veja a pagina man setfdprm.
/etc/fstab

Lista os sistemas de cheiros montados automaticamente, durante a inicializaca~o do


sistema, pelo comando mount -a (no etc/rc ou cheiro de inicializac~ao similar). Contem
ainda informac~oes sobre as areas de swap usadas automaticamente pelo comando swapon
3 Linux

Networking Administrators Guide, Olaf Kirch, O' Reilly & Associates, January 1995

3.2. O directorio /etc

53

-a. Veja a pagina man mount para maiores informaco~es.


/etc/group

Similar ao /etc/passwd, descreve grupos ao contrario de utilizadores. Veja a pagina


man group, para mais informaco~es.
/etc/inittab

Ficheiro de con guraca~o do init.


/etc/issue

Sada do programa getty antes do prompt de acesso ao sistema. Normalmente contem


uma descrica~o breve ou mensagens de boas vindas. O conteudo ca ao criterio do administrador do sistema.
/etc/magic

O cheiro de con gurac~ao para o comando le. Contem as descrico~es de varios formatos
de cheiros. Veja as paginas man magic e le para maiores informaco~es.
/etc/motd

A mensagem do dia (message of the day ), a qual e automaticamente apresentada apos


um acesso bem sucedido. Os conteudos s~ao ao criterio do administrador do sistema. Normalmente s~ao usadas para enviar informac~oes para os utilizadores, como por exemplo avisos
de manutenc~ao do sistema.
/etc/mtab

Listagem dos sistemas de cheiros montados. Inicialmente con gurado por programas
de batch e posteriormente actualizado pelo comando mount. Usado quando uma lista de

54

Captulo 3. Estrutura dos directorios do Linux

sistemas de cheiros e necessaria, como por exemplo, pelo comando df.


/etc/shadow

Ficheiros de seguranca de passwords em sistemas onde o software shadow password


esteja instalado. Esta opc~ao move as passwords cifradas de /etc/passwd para o cheiro
/etc/shadow, o qual so pode ser lido pelo administrador da maquina (root ). Isso da uma
seguranca maior as passwords dos utilizadores.
/etc/login.defs

Ficheiro de con guraca~o do programa de acesso ao sistema (login ).


/etc/printcap

Similar ao /etc/termcap, mas direccionado para as impressoras e com uma sintaxe diferente.
etc/pro le, /etc/csh.login, /etc/csh.cshrc

Ficheiros executados no acesso ou em tempo de boot do sistema pelos ambientes de


trabalho Bourne-Again Shell ou C Shell 4 . Permitem ao administrador utilizar padr~oes de
variaveis para todos os utilizadores. Veja as paginas de manual espec cas.
/etc/securetty

Identi ca quais os terminais seguros, ou seja, aqueles nos quais e permitido que o administrador da maquina tenha acesso ao sistema. Normalmente so as consolas virtuais s~ao
apresentadas, sendo muito difcil obter os privilegios de administrador do sistema atraves
da rede ou de uma ligac~ao via modem.
/etc/shells

Apresenta os ambientes de trabalho (shells ) autorizados. O comando chsh permite que


os utilizadores mudem o ambiente padr~ao durante o acesso ao sistema, porem so para aqueles listados neste cheiro. O ftpd, que e o servidor de processos que administra os servicos
4 Analizados

no ponto 4.1 na p
agina 63

3.3. O directorio /dev

55

de transfer^encia de cheiros numa maquina, ira veri car se o ambiente do utilizador esta
listado em /etc/shells e n~ao aceitara acessos que n~ao se encontrem la presentes.
/etc/termcap

Ficheiro de con gurac~ao do terminal. Descreve as diversas sequ^encias de "escape"para


os diversos terminais. Os programas ao contrario de escreverem directamente uma sequ^encia
que so iria funcionar em determinado tipo de terminal, devem buscar a sequ^encia correcta
para fazer o que quer que seja em /etc/termcap, resultando que devem funcionar na maioria dos terminais suportados. Veja as paginas de manual termcap, curs termcap e terminfo
para informac~oes mais detalhadas.

3.3 O directorio /dev


O directorio /dev contem os cheiros especiais (drivers) de controle de todos os dispositivos.
Estes cheiros utilizam uma denominac~ao especial descrita na lista Device. Os cheiros de controlo s~ao criados durante a instalac~ao, e posteriormente atraves do programa
/dev/MAKEDEV. O /dev/MAKEDEV.local e um programa de batch escrito pelo administrador do sistema e que cria so os cheiros de controle de dispositivos locais que n~ao
facam parte do padr~ao do MAKEDEV (como cheiros de controle para dispositivos especiais).

3.4 O sistema de cheiros /usr


O sistema de cheiros /usr normalmente tem um tamanho razoavel, uma vez que todos os
programas s~ao aqui instalados.
Todos os cheiros em /usr normalmente v^em com a distribuic~ao do Linux, sendo que
programas instalados localmente est~ao normalmente em /usr/local. Isso torna o processo
de actualizac~ao do sistema possvel para uma nova vers~ao da distribuica~o ou mesmo para
uma distribuic~ao completamente nova, sem que seja necessario instalar todos os programas
novamente.
Alguns dos sub directorios de /usr s~ao apresentados a seguir (outros menos importantes, podem ser encontrados no FSSTND para maiores informaco~es).

56

Captulo 3. Estrutura dos directorios do Linux

/usr/X11R6

Os cheiros do sistema X-Window. Para simpli car o desenvolvimento e a instalaca~o do


X, os seus cheiros n~ao foram integrados no resto do sistema. Ha uma arvore de directorios
sob /usr/X11R6 similar ao /usr.
/usr/X386

Similar ao /usr/X11R6 , mas destinado a vers~ao 5 do X11.


/usr/bin

Praticamente todos os comandos dos utilizadores. Outros podem ser encontrados em


/bin ou /usr/local/bin.
/usr/sbin

Comandos de administrac~ao do sistema que n~ao necessitem estar no sistema de cheiros


raiz, como por exemplo programas de servidores.
/usr/man, /usr/info, /usr/doc

Man pages, documentos GNU Info e diversos outros documentos, respectivamente.


/usr/include

Ficheiros header para a linguagem de programac~ao C. Este directorio deveria estar sob
/usr/lib, no entanto por tradic~ao tem sido suportado neste formato.
/usr/lib

Ficheiros estaticos de dados para programas e subsistemas, incluindo alguns cheiros


de con gurac~ao da totalidade do site. O nome lib vem de library (biblioteca), ja que ori-

3.5. O sistema de cheiros /var

57

ginalmente as bibliotecas de programaca~o eram armazenadas neste sub directorio.


/usr/local

O local para o software instalado localmente e outros cheiros.

3.5 O sistema de cheiros /var


O sistema de cheiros /var contem os dados que s~ao alterados quando o sistema esta em
 espec co de cada sistema, ou seja, n~ao e partilhado atraves da rede com
execuc~ao. E
outros equipamentos.
/var/catman

Uma cache para paginas de manual que s~ao formatadas sempre que solicitadas. Os
fontes para as paginas s~ao armazenados em /usr/man/man, sendo que algumas paginas
podem vir pre-formatadas, estando armazenadas em /usr/man/cat*. Outras paginas necessitam ser formatadas quando acedidas, sendo que a vers~ao nal ca armazenada em
/var/man fazendo com que outro utilizador caso necessite de uma vers~ao formatada, tenha esta pronta e disponvel. O directorio /var/catman e frequentemente esvaziado, da
mesma forma que os cheiros temporarios.
/var/lib

Ficheiros que mudam enquanto o sistema e executado normalmente.


/var/local

Dados variaveis para os programas que estejam instalados em /usr/local, por exemplo
programas que foram instalados pelo administrador do sistema. Note que, mesmo quando
instalados localmente, estes programas podem usar ainda outros directorios /var, como
por exemplo /var/lock.

58

Captulo 3. Estrutura dos directorios do Linux

/var/lock

Ficheiros de controlo. Muitos programas seguem uma convenca~o de criarem cheiros


em /var/lock para indicar que eles est~ao a utilizar um dispositivo em particular ou um
determinado cheiro. Outros programas percebem a exist^encia do cheiro de controlo e
n~ao tentar~ao utilizar o mesmo dispositivo ou cheiro enquanto o cheiro existir.
/var/log

Ficheiros de historicos dos varios programas, especialmente o de acesso (login) (var/log/wtmp,


o qual regista todas as entradas e sadas do sistema) e syslog (var/log/messages, o qual
contem as mensagens do kernel e os programas do sistema). Os cheiros em /var/log podem crescer inde nidamente com frequ^encia e podem requerer limpezas periodicas. Pode
ser utilizado o logrotate (rotaca~o de logs).
/var/run

Ficheiros que cont^em informaco~es sobre o sistema e que s~ao validas ate a proxima
inicializac~ao. Por exemplo, /var/run/utmp contem as informaco~es sobre os utilizadores
actualmente ligados.
/var/spool

Directorios de mensagens, notcias, las de impress~ao e outros trabalhos em la. Cada


funcionalidade tem o seu proprio sub directorio sob /var/spool. Por exemplo, as mensagens
de correio electronico est~ao armazenadas em /var/spool/mail.
/var/tmp

Ficheiros temporarios que sejam muito grandes ou que necessitem existir por um perodo
maior que o de nido para /tmp. Note-se que o administrador do sistema pode n~ao permitir
cheiros muitos antigos tambem em /var/tmp.

3.6. O sistema de cheiros /proc

59

3.6 O sistema de cheiros /proc


O sistema de cheiros /proc contem um conjunto de cheiros virtual. Na verdade, ele n~ao
existe num disco rgido, mas ao contrario e criado em memoria pelo kernel sendo utilizado
para fornecer informac~oes sobre o sistema (originalmente sobre os processos, da a origem
do seu nome). Alguns dos cheiros mais importantes e directorios s~ao detalhados abaixo.
Este sistema de cheiros e descrito com mais detalhe na pagina man proc.
/proc/1

Um directorio com as informac~oes do processo numero 1 (init ). Cada processo tem um


directorio em baixo de /proc, cujo nome equivale ao seu numero de identi cac~ao.
/proc/cpuinfo

Informac~oes sobre o processador, tais como tipo, fabricante, modelo, e performance.


/proc/devices

Lista de programas de controle de dispositivos con gurados no kernel que se encontram,


de momento, em execuc~ao.
/proc/dma

Mostra quais canais DMA est~ao a ser utilizados no momento.


/proc/ lesystems

Sistemas de cheiros con gurados no kernel.


/proc/interrupts

Mostra quais as interrupc~oes que est~ao em uso e quantas existem.

60

Captulo 3. Estrutura dos directorios do Linux

/proc/ioports

Apresenta quais as portas de entrada e sada que est~ao em uso num determinado momento.
/proc/kcore

Imagem da memoria fsica do sistema. Tem exactamente o mesmo tamanho da memoria


 criada de forma natural durante o acesso
fsica, mas n~ao ocupa a totalidade dessa area. E
por um determinado programa.
/proc/kmsg

Mensagens de sada do kernel. S~ao direccionadas tambem para o syslog.


/proc/ksyms

Tabela de smbolos para o kernel.


/proc/loadavg

A carga media do sistema. Contem tr^es indicadores da quantidade de trabalho que o


sistema esta a executar no momento.
/proc/meminfo

Informac~oes sobre o uso de memoria. Tanto fsica como da memoria virtual de troca
(swap).
/proc/modules

Descreve quais os modulos que est~ao carregados nesse momento.

3.6. O sistema de cheiros /proc

61

/proc/net

Informac~oes sobre a situaca~o dos protocolos de rede.


/proc/self

Uma ligac~ao simbolica para o directorio de processos (/proc). Quando dois processos
acedem /proc podem utilizar diferentes ligac~oes, o que e conveniente para programas que
utilizem este directorio como o seu directorio de processos.
/proc/stat

Diversas estatsticas sobre o sistema, como o numero de paginac~oes desde o seu incio,
I/O, processos executados, etc...
/proc/uptime

Tempo que o sistema esta activo.


/proc/version

Vers~ao do kernel do sistema.

Captulo 4
Conceitos basicos
Neste captulo iremos abordar o modo texto do Linux, que e composto basicamente da
shell e dos aplicativos que executam sobre ela, os principais comandos, como con gurar o
X e a impressora e nalmente como criar utilizadores.

4.1 A Shell
Mas a nal o que e uma shell? E um interpretador de comandos que analisa o texto introduzido na linha de comandos e executa esses comandos produzindo algum resultado.
Existem varios shells mas de entre todos podemos destacar 4 que s~ao sem duvida os mais
utilizados:

 Bourne Shell (sh)


Desenvolvido por Stephen Bourne, da Bell Labs (da AT&T, onde tambem
foi desenvolvido o Unix), o sh foi durante muitos anos a Shell por defeito
do sistema operativo Unix. E tambem chamada de Standard Shell por ter
sido durante muito tempo a unica.

 Korn Shell (ksh)

Desenvolvido por David Korn, tambem da Bell Labs, e um superset do sh,


isto e, possui todas as facilidades do sh e a elas agregou muitas outras. A
compatibilidade total com o sh alicia muitos utilizadores e programadores
de Shell a mudar para este ambiente.

64

Captulo 4. Conceitos basicos

 Bourne Again Shell (bash)


Este e a Shell mais moderna e cujo numero de adeptos mais cresce em todo
o mundo, seja por ser a Shell default do Linux, o seu sistema operativo
hospedeiro, seja pela sua grande diversidade de comandos, que incorporam
inclusive varios comandos caractersticos da C Shell.

 C Shell (csh)

Desenvolvido por Bill Joy, da Berkley University, e a Shell mais utilizada em


ambientes BSD e Xenix. A estruturac~ao de seus comandos e muito similar
a da linguagem C. O seu grande problema foi ignorar a compatibilidade
com o sh, seguindo por um caminho proprio.
A shell pode ser encarada como um ponto a partir do qual podemos iniciar todos os
comandos do Linux, inclusive o modo gra co. Podemos efectuar as mesmas classes de
aplicac~oes do modo gra co como, por exemplo, os editores de texto1 , e tambem modi car as con gurac~oes do sistema2 . A maior parte das diferencas existentes entre as shells
mais conhecidas, e referidas anteriormente, envolve facilidade de operac~ao e tipos de con gurac~ao.
Mas para usar uma shell precisamos primeiro que tudo entrar no modo texto do Linux.
Caso se esteja a utilizar o Linux em modo gra co devera pressionar-se 'Ctrl'+'Alt'+'F1'.
Onde esta escrito nome da maquina login: introduza o nome de utilizador e a seguir
o sistema ira solicitar a password respectiva com Password:. Introduza a password e
pressione Enter.
Deve aparecer no ecr~a qualquer coisa semelhante a:
[utilizador@nome_da_m
aquina direct
orio_actual]#

Este e o seu prompt de comandos.


O modo texto no qual entramos e composto por terminais. O que s~ao terminais? Um
terminal, ou consola, e o conjunto formado pelo teclado e o monitor, que constitui o dispositivo padr~ao de entrada e sada de dados. No Linux temos sete terminais virtuais nos
quais podemos estar a trabalhar ao mesmo tempo. Esses terminais s~ao muito uteis, pois
podemos estar a escrever um texto num terminal e a ler uma pagina do manual no outro.
1 como
2 com

o emacs, vi, joe


o linuxconf em modo texto

4.2. Comandos basicos do Linux

65

4.2 Comandos basicos do Linux


O Linux e um sistema operativo case-sensitive, ou seja, netscape, NETSCAPE e nEtScApE s~ao tr^es comandos distintos. Pela mesma raz~ao, o meu cheiro, O Meu Ficheiro e
o MEU FiChEiRo s~ao tr^es cheiros distintos. Os usernames e respectivas passwords s~ao
tambem case-sensitive. Isto advem do facto do sistema operativo Unix e a linguagem de
programac~ao C serem case-sensitive.
Os nomes dos cheiros podem ter um comprimento maximo de 256 caracteres e podem
conter letras, numeros, pontos ('.'), underscores (' '), hfens ('-'), alem de outros caracteres
n~ao recomendaveis.
Nomes de cheiros comecados pelo caracter '.' n~ao s~ao normalmente listados atraves dos
comandos ls ou dir. Pensem nestes cheiros como se fossem cheiros escondidos. Para os
visualizar, deve usar-se o comando ls -a (com opc~ao 'all').
 equivalente, em
A barra '/' e usada para a separac~ao entre directorios num caminho. E
DOS, a barra ' '.

Normalmente, num cheiro em Linux (por exemplo, cheiros de con gurac~ao), uma linha com o caracter '#' no nicio e um comentario.

4.2.1 Comandos e atalhos essenciais


'Ctrl' + 'Alt' + 'F1'

Muda para o primeiro terminal de texto. Em Linux podemos ter varios terminais abertos ao mesmo tempo, como foi referido anteriormente.
'Ctrl' + 'Alt' + 'Fn'

(n=1..6). Muda para o n-esimo terminal.


'Ctrl' + 'Alt' + 'F7'

Muda para o primeiro terminal GUI (se houver algum a correr nesse momento).

66

Captulo 4. Conceitos basicos

'Ctrl' + 'Alt' + 'Fm'

(m=7..12). Muda para o m-esimo terminal GUI (se houver um terminal GUI a correr
na sess~ao m-1).
'Tab'

Autocompleta o comando (num terminal). Este e um dos melhores atalhos em Linux.


Trabalha inclusivamente na prompt LILO.
'Seta para Cima' ou 'Seta para Baixo'

Lista um por um e permite edic~ao do historial de comandos executados. Carregue em


'ENTER' para executar o comando escolhido.
'Shift' + 'PgUp'

Visualiza as janelas anteriores do terminal. Trabalha inclusivamente na prompt de login, para podermos visualizar as mensagens de bootup.
'Shift' + 'PgDown'

Visualiza as janelas seguintes do terminal.


'Ctrl' + 'Alt' + '+'

(em X-window). Muda para a proxima resoluc~ao de X-server (se tivermos con gurado
o X-server para mais do que uma resoluca~o).
'Ctrl' + 'Alt' + '-'

(em X-window). Muda para a resoluca~o anterior do X-server.

4.2. Comandos basicos do Linux

67

'Ctrl' + 'Alt' + 'BkSpc'

(em X-window). Mata (kill ) o servidor X-window actual. Usa-se quando o X-window
bloqueia e n~ao podemos sair normalmente.
'Ctrl' + 'Alt' + 'Del'

Desliga o sistema e faz reboot. Executa o comando shutdown normal.


'Ctrl' + 'c'

Mata (kill ) o processo corrente.


'Ctrl' + 'd'

Sai da sess~ao actual.


'Ctrl' + 'd'

Envia End-of-File para o processo corrente.


'Ctrl' + 'l'

Limpa o ecr~a. Igual ao comando clear da shell.


'Ctrl' + 's'

Para a transfer^encia para o terminal.


'Ctrl' + 'q'

Retoma a transfer^encia para o terminal. Tentar este atalho quando o terminal deixar
de responder misteriosamente...

68

Captulo 4. Conceitos basicos

'Ctrl' + 'z'

Suspende a execuc~ao interactiva do processo corrente. O comando da shell fg retoma


a execuc~ao do processo em modo interactivo (em foreground). O comando bg retoma a
execuc~ao do processo em modo n~ao-interactivo (em background).
reset

Restaura um terminal estragado (com caracteres esquisitos) para as de nic~oes de defeito. Usa-se, por exemplo, quando se executa o comando cat num cheiro binario. Podemos n~ao ver o comando enquanto o escrevemos.
Bot~ao do Meio do Rato

Cola (paste ) o texto seleccionado noutro stio qualquer. Esta e a operac~ao copy-paste
normal em Linux (n~ao funciona no Netscape ou no WordPerfect, porque estes programas
usam o copy-paste tpico do Ms-Windows. Perfeito quando usado com um rato Linuxcompatvel de 3 bot~oes (Logitech ou algo no genero).


(til). Muda para a home directory. Por exemplo, cd /minha dir muda para o directorio
minha dir situada abaixo da nossa home directory. Escrever apenas cd e o equivalente ao
comando cd .
.

(ponto). Directoria actual. Por exemplo, ./meu programa executa o comando meu programa
situado no directorio corrente.
..

(dois pontos). Directoria-pai do directorio corrente.

4.2. Comandos basicos do Linux

69

4.2.2 Comandos comuns de Informac~ao do Sistema


pwd

Exibe o nome do directorio corrente.


hostname

Exibe o nome da maquina onde estamos a trabalhar (hostname ). Usa-se o comando


netconf para mudar o nome da maquina.
whoami

Exibe o nosso username (nome de login).


id username

Exibe o user id (uid), o group id (gid), id efectivo (se for diferente do uid) e todos os
grupos suplementares relacionados com o utilizador especi cado na variavel username.
date

Exibe ou modi ca a data e hora do sistema. Por exemplo, para mudar a data e hora
para 2000-12-31 23:57, usa-se o comando date com esta forma: date 123123572000 Para
modi car o relogio de hardware (hardware clock) a partir do relogio do sistema, usa-se o
comando setclock.
time

Determina o tempo que demora a completar um determinado processo, alem de outra


informac~ao. N~ao confundir com o comando date. Por exemplo, podemos saber quanto
tempo demora a exibir o conteudo de um directorio, usando o comando time da seguinte
forma: time ls
who

Exibe uma lista com os utilizadores que est~ao \logados" (logged in) a maquina.

70

Captulo 4. Conceitos basicos

rwho -a

Exibe uma lista com todos os utilizadores que est~ao ligados a nossa rede. O servico
rwho deve estar a correr de modo a este comando poder funcionar. Se n~ao estiver, corre-se
o comando setup como root para ligar o servico rwho.
nger username

Exibe informac~ao detalhada sobre um determinado utilizador, especi cado na variavel


username. Por exemplo, nger root da-nos toda a informac~ao sobre o utilizador root.
last

Exibe uma lista com os ultimos utilizadores que se ligaram (logged in) ao sistema. Se
usarmos o comando last em conjunto com less, podemos navegar nessa lista: last | less.
Se, por outro lado, usarmos o comando desta forma: last -n, obtemos uma lista com os
ultimos n logins ao sistema.
uptime

Tempo que passou desde o ultimo reboot.


ps

(= print status). Lista os processos que est~ao a correr neste momento pelo utilizador
corrente.
ps aux j more ou ps aux j less

Lista todos os processos que est~ao a correr na maquina neste momento, inclusivamente
aqueles que n~ao t^em controlo no terminal, juntamente com a informac~ao sobre o utilizador
que iniciou cada um deles.

4.2. Comandos basicos do Linux

71

ps aux j grep exemplo

Lista todos os processos chamados exemplo. O comando grep ltra o resultado do comando ps aux (atraves da pipe '|'), aparecendo so as linhas que cont^em o texto exemplo.
top

Exibe uma lista com os processos que est~ao a correr na maquina neste momento, ordenados decrescentemente por tempo de CPU gasto.
uname -a

Informac~ao sobre o servidor.


free

Informac~ao de memoria (em kilobytes).


df -h

(= disk free). Exibe informaca~o sobre os discos de todos os sistemas de cheiros ( lesystems), numa linguagem entendida pelos humanos...
du / -bh j more

(= disk usage). Exibe uma lista detalhada do uso do disco para cada subdirectoria,
comecando pelo directorio /, em linguagem legvel.
cat /proc/cpuinfo

Informac~ao sobre o CPU. Note-se que os cheiros no directorio /proc n~ao o s~ao na
realidade. Tratam-se somente de ganchos (hooks ) para visualizar informac~ao disponvel no

72

Captulo 4. Conceitos basicos

kernel.
cat /proc/interrupts

Exibe uma lista com os interrupts em uso.


cat /proc/version

Vers~ao do Linux e outra informac~ao.


cat /proc/ lesystems

Exibe uma lista com os sistemas de cheiros ( lesystems ) em uso neste momento.
cat /etc/printcap

Exibe o setup das impressoras ligadas ao sistema.


lsmod

(como root). Exibe uma lista com os modulos de kernel carregados neste momento.
set j more

Exibe o ambiente corrente do utilizador.


echo $PATH

Exibe o conteudo da variavel de ambiente PATH. Este comando tambem pode ser usado
para visualizar outras variaveis de ambiente. Use o set para ver todo o ambiente.
dmesg

Exibe as mensagens de boot (boot messages ). Na realidade, exibe o conteudo do cheiro


/var/log/dmesg.

4.2. Comandos basicos do Linux

73

4.2.3 Operac~oes basicas


comando {help j more ou comando {help j less

Exibe uma ajuda simples ao comando (aplica-se a maior parte dos comandos Linux). {
help e semelhante ao switch /h do DOS. As pipes more e less usam-se quando a informac~ao
ocupa mais do que um ecr~a, sendo que a opc~ao more permite ver pagina a pagina, sem no
entanto podermos voltar atras, e a opc~ao less, permite-nos navegar linha a linha, para a
frente e para tras.
ls

Exibe o conteudo do directorio corrente. Em Linux, o comando dir e um alias do comando ls. Muitos utilizadores utilizam o comando ls como um alias do comando ls {color.
ls -al j more

Exibe o conteudo do directorio corrente, todos os cheiros (inclundo aqueles que


comecam por .), e num formato longo.
cd directoria

(= change directory). Muda para uma determinado directorio. Usar so o comando cd
signi ca mudarmos directamente para a nossa home directory. O comando cd - leva-nos
para o directorio anterior a corrente e e um modo conveniente de navegaca~o entre duas
directorias.
cp fonte destino

Copia cheiros entre a fonte e o destino.


mcopy fonte destino

Copia um cheiro de / para um sistema de cheiros DOS (n~ao e necessario usar


previamente o comando mount ). Por exemplo, mcopy a:.bat /lixo. Usar o comando
man mtools para comandos relacionados, como por exemplo: mdir, mcd, mren, mmove,

74

Captulo 4. Conceitos basicos

mdel, mmd, mrd, mformat,....


mv fonte destino

Move ou altera o nome de cheiros. O mesmo comando e usado para mover ou alterar
nomes de directorias ou cheiros.
ln fonte destino

Cria um hard link chamado destino que aponta para o cheiro chamado fonte. O link
aparenta ser uma copia do cheiro original, mas na realidade, apenas uma copia do cheiro
e mantida, sendo que existem duas (ou mais) entradas para o cheiro no directorio. Qualquer alterac~ao ao cheiro fonte e imediatamente visvel no destino. Quando uma entrada
no directorio e removida, as outras mant^em-se. Limitac~oes dos hard links: os cheiros
t^em de estar obrigatoriamente no mesmo lesystem. E impossvel criar hard links para
directorios ou cheiros especiais.
ln -s fonte destino

Cria um link simbolico (symbolic link) chamado destino a apontar para o cheiro fonte.
O link simbolico apenas especi ca o caminho (path) para o cheiro fonte. Ao contrario dos
hard links, a fonte e o destino n~ao precisam de pertencer ao mesmo lesystem. Limitac~oes
dos symbolic links: Se o cheiro original for removido, o link parte-se (broken link). Os
symbolic links podem tambem criar refer^encias circulares (como as de bases de dados e
folhas de calculo).
rm cheiro

Remove (apaga) o cheiro especi cado na variavel cheiro.


mkdir homedogel

Cria um directorio chamado homedogel.


rmdir directoria

Remove o directorio especi cada na variavel directoria.

4.2. Comandos basicos do Linux

75

rm -r cheiros

(recursive remove). Remove cheiros, directorias e sub-directorias. Semelhante ao comando DOS deltree. Cuidado ao usar este comando como root: podemos apagar todo o
nosso sistema, se usarmos este comando no directorio /, e n~ao existe (ainda) um comando
undelete em Linux.
cat cheiro j more ou cat cheiro j less

Exibe o conteudo de um cheiro de texto chamado cheiro. Para cheiros demasiadamente longos, e conveniente usar os comandos head e tail , que exibem o princpio e o m
do cheiro em quest~ao. Se, por engano, tentarmos visualizar o conteudo de um cheiro
binario, e so aparecerem caracteres esquisitos, usa-se o comando reset para voltar ao normal.
less cheiro

Para navegar no conteudo de um cheiro de texto. Para terminar a nossa navegac~ao,


carrega-se na tecla q.
pico cheiro

Edita o cheiro denominado cheiro.


pico -w cheiro

 para
Edita um cheiro chamado cheiro, desactivando a opca~o long line wrap. Util
editar cheiros de con guraca~o, por exemplo, o cheiro /etc/fstab.
lynx cheiro.html

Exibe um cheiro html ou navega na internet a partir do modo texto.

76

Captulo 4. Conceitos basicos

tar -zxvf cheiro.tar.gz

Descompacta (untar) um cheiro (*.tar.gz ou *.tgz)3 , habitualmente retirado da internet.


tar -xvf cheiro.tar

Descompacta um cheiro (*.tar)4


gunzip cheiro.gz

Descompacta um cheiro zipado (*.gz ou *.z). Usa-se o gzip (ou o zip ou compress)
para compactar os cheiros.
bunzip2 cheiro.bz2

Descompacta um cheiro (*.bz2) compactado com o utilitario bzip2. Normalmente e


um metodo de compress~ao mais e ciente do que o obtido com o gzip.
unzip cheiro.zip

Descompacta um cheiro (*.zip) compactado com um utilitario compatvel com o pkzip


do DOS.
nd / -name "maquinas"

Procura o cheiro chamado maquinas a partir do directorio /. A variavel lename pode


conter wildcards (*, ?).
locate cheiro

Procura o cheiro que contem o texto cheiro. Mais facil de usar e mais rapido que o
3 *.tar.gz
4 *.tar

ou *.tgz - tarred and compressed tarball


- tarred but uncompressed tarball

4.2. Comandos basicos do Linux

77

comando nd.
pine

Um bom cliente de mail em modo texto. Outro cliente de mail excelente e o elm. Permite ler as mensagens enviadas, por exemplo, por um processo cron.
talk username1

Fala com outro utilizador ligado neste momento a nossa maquina (ou noutra maquina
atraves do comando talk username1@outramaquina ). Para o outro utilizador aceitar o convite, necessita digitar o comando talk username2. Para evitar que tentem falar connosco,
usa-se o comando mesg n para recusar os pedidos. Pode ser util o uso dos comandos who
e rwho para ver quem esta ligado ao sistema.
mc

Inicia o gestor de cheiros Midnight Commander.


telnet servidor

Conecta-se a outra maquina usando o protocolo TELNET. Use o nome da maquina


remota ou o seu endereco IP. O Telnet vai conectar-se a outra maquina, pedindo-nos um
login e uma password, de modo que temos de ter uma conta nessa maquina. Este comando
n~ao e muito seguro, uma vez que todas as transfer^encias de dados s~ao feitas em modo
texto, inclundo a nossa password!
rlogin servidor

(= remote login). Conecta-se a outra maquina. O login name da sess~ao corrente e usado
para entrar na maquina remota. Se se pretender entrar num outro username, adicona-se a
opc~ao -l username.
rsh servidor

(= remote shell). Uma outra maneira de nos ligarmos a uma maquina remota. Tal
como o comando rlogin, e usado o login name da sess~ao corrente, a menos que se use a

78

Captulo 4. Conceitos basicos

opc~ao -l.
ftp servidor

Acede a outra maquina via protocolo FTP. O FTP e bom para copiar cheiros para/de
um servidor. Deve-se tentar o utilizador anonymous (quando n~ao temos conta aberta no
sistema remoto). Os comandos principais s~ao: ls (exibir o conteudo do directorio corrente
do sistema remoto), ascii, binary (para mudar o modo de transfer^encia de cheiros para
texto ou binario), get (copia um cheiro do sistema remoto para o sistema local), mget
(copia varios cheiros ao mesmo tempo, do sistema remoto para o sistema local), put (copia um cheiro do sistema local para o sistema remoto), mput (copia varios cheiros, do
sistema local para o sistema remoto), bye (desconecta-se do sistema remoto).
minicom

Programa minicom (parecido com o Procomm for Linux).


./programa

Corre um executavel no directorio corrente, se esta n~ao estiver na variavel de ambiente


PATH.
xinit

Inicia um servidor barebone X-windows (sem o gestor de janelas).


startx

Inicia um servidor X-window, juntamente com o gestor de janelas por defeito.


startx

:1

Inicia outra sess~ao de X-windows no ecr~a 1 (por defeito, inicia no ecr~a 0). Podemos
ter varios terminais GUI a correr concorrentemente. Salta-se entre eles com as teclas

4.2. Comandos basicos do Linux

79

'Ctrl'+Alt'+'F7', 'Ctrl'+'Alt'+'F8', etc.


xterm

(no terminal X). Corre um terminal X-window simples. Use o comando exit para sair.
xboing

(no terminal X). Jogo para correr no ambiente X. Provavelmente, muitos jogos e programas parecidos est~ao instalados na nossa maquina.
gimp

(no terminal X). Editor de imagens poderoso. Demora algum tempo a aprender, mas
e excelente para artistas. Use o bot~ao do rato do lado direito para obter menus.
netscape

(no terminal X). Corre o browser Netscape (necessita de ser instalado antes).
netscape -display host:0.0

(no terminal X). Corre uma sess~ao de Netscape na maquina remota host na sess~ao 0
ecr~a 0. A nossa maquina deve ter permiss~ao para executar o netscape na maquina remota (podemos obter permiss~ao correndo o comando xhost maquina local no terminal X
da maquina remota).
shutdown -h now

(como root). Desliga o sistema e n~ao reinicializa.


shutdown -r now

(como root). Desliga e reinicializa o sistema. Pode, em alternativa, usar a combinac~ao


de teclas 'Ctrl'+'Alt'+'Del' para executar o comando na maquina.

80

Captulo 4. Conceitos basicos

halt ou reboot

(como root). Usado para desligar o sistema e n~ao reinicializar (halt) ou para fazer
um reboot ao sistema (reboot). Mais facil de usar (e decorar) do que os dois comandos
anteriores.
man topico

Exibe o conteudo das paginas do manual do sistema sobre o assunto topico. Tente
usar o comando man man primeiro. Carregue na tecla q para cancelar a visualizac~ao.
O comando info topic funciona aproximadamente como o comando man e pode conter
informac~ao mais actualizada. As paginas do manual podem ser de di cil leitura. Use o
comando topic {help para paginas de ajuda mais curtas e faceis de ler. Se necessitar de
mais ajuda, consulte o directorio /usr/doc.
apropos topico

Exibe uma lista de comandos que tenham alguma relaca~o com o topico.

4.2.4 Controlo de processos


ps

(= print status). Exibe uma lista com os processos activos no sistema com os respectivos identi cadores - PID (Process ID). Use ps -aux para exibir uma lista semelhante mas
com mais informac~ao - todos os processos e respectivos utilizadores. Use top para manter
a listagem visvel e online.
fg PID

Passa um processo que esta a correr em background para foreground.


bg PID

Processo inverso ao anterior: passa um processo para background.

4.2. Comandos basicos do Linux

81

kill PID

Forca o nal do processo. Para saber qual o PID do processo que queremos matar,
usa-se o comando ps.
killall nome programa

Mata programas pelo nome.


xkill

Usado num terminal x. Mata um processo GUI com o rato - aponte o cursor do rato a
janela com o processo que queremos matar e clique.
lpc

(como root). Veri ca e controla a(s) impressora(s).


lpq

Exibe o conteudo da la de impress~ao (queue ). Em KDE (X-Window), podemos usar


o Print Queue GUI disponvel nos utilitarios.
lprm job

Remove um trabalho de impress~ao da queue.


nice nome programa

Corre o nome programa ajustando a sua prioridade. Como a prioridade n~ao e especi cada neste exemplo, ela e ajustada com o valor 10 (o processo vai correr mais lentamente)
a partir do valor de defeito (usualmente o 0 - zero). Quanto mais baixo for o numero,
mais alta e a prioridade. Este numero pode variar entre -20 e 19, sendo que so o utilizador
root pode de nir prioridades com valores negativos. Use o comando top para exibir as

82

Captulo 4. Conceitos basicos

prioridades dos processos activos.


renice -1 PID

(como root). Muda a prioridade de um processo activo para -1. Utilizadores normais
so podem mudar valores de prioridade para os seus processos, e so para valores superiores
ao actual (tornando-os mais lentos).

4.2.5 Comandos basicos de administrac~ao


printtool

(como root num terminal X). Ferramenta de con gurac~ao de impressoras. As con gurac~oes cam no cheiro /etc/printcap.
setup

(como root). Con gura o rato, placa de som, teclado, X-windows e servicos de sistema.
alias ls="ls {color"

Cria um alias para o comando ls. Ponha o alias no cheiro /etc/bashrc se quiser que
esteja sempre disponvel para todos os utilizadores. O comando alias da-nos uma lista com
todos os aliases do nosso sistema.
adduser utilizador

(como root). Cria uma nova conta. Por exemplo, adduser barbara. N~ao esquecer de
de nir uma password para o utilizador como passo seguinte. O home-directory do utilizador passa a ser /home/utilizador. Ira estar associado a cada utilizador um identi cador UID (User ID).
useradd utilizador

(como root). Igual ao comando adduser.

4.2. Comandos basicos do Linux

83

userdel utilizador

(como root). Remove uma conta do sistema, n~ao apagando no entanto, o home-directory
e o mail n~ao entregue.
groupadd grupo

Cria um novo grupo de utilizadores do sistema. A este grupo, tal como a qualquer
utilizador, ira estar associado um identi cador - GID (Group ID).
passwd

Muda a password na conta actual. O utilizador root pode alterar a password de qualquer utilizador, usando o comando passwd utilizador.
chmod perm cheiro

(= change mode). Muda as permiss~oes de acesso a um cheiro e/ou directoria do utilizador actual (o root pode mudar permiss~oes de qualquer cheiro no sistema). Ha tr^es
tipos de acesso: leitura (read - r ), escrita (write - w ) ou execuc~ao (execute - x ) para tr^es
classes de utilizadores: dono (u), membros do grupo do dono (g), outros utilizadores no
sistema (o). Podemos ver quais as permiss~oes de determinado cheiro usando o comando
ls -l cheiro.
chown novo dono cheiro ou chgrp novo grupo cheiro

Muda o dono (chown = change owner ) ou grupo (chgrp = change group ) a que pertence
determinado cheiro. Deve-se usar estes dois comandos sempre que copiamos um cheiro
para ser usado por outra pessoa.
su

(= substitute user id). Assume a identidade do superuser root (pedindo-nos a respectiva


password). Escreva exit para voltar ao utilizador anterior. N~ao trabalhe habitualmente
como root numa maquina. Este utilizador serve para executar tarefas de administrac~ao e

84

Captulo 4. Conceitos basicos

o comando su serve para facilitar o acesso a este utilizador.


rpm -ivh cheiro.rpm

(= Red Hat Package Manager, como root). Instala o conteudo de um pacote rpm da
Red Hat e mostra informac~ao sobre o que foi feito.
rpm -qpi cheiro.rpm

L^e a informac~ao sobre o conteudo de um pacote rpm que ainda n~ao tenha sido instalado
no sistema.
rpm -Uvh cheiro.rpm

Faz o upgrade de um determinado pacote.


glint gnorpm kpackage

(num terminal X, como root). Frontend GUI para instalar pacotes rpm em ambiente
X-window.
kernelcfg

(como root num terminal X). Programa GUI para acrescentar/remover modulos de kernel. Pode-se fazer o mesmo da linha de comandos usando o comando insmod.
lsmod

Exibe uma lista dos modulos de kernel correntemente instalados no sistema.


modprobe -l  more

Exibe uma lista com todos os modulos disponveis para o kernel.

4.2. Comandos basicos do Linux

85

insmod parport ou insmod ppa

(como root). Insere modulos no kernel (um modulo e (mais ou menos) o equivalente aos
device drivers de DOS). Este exemplo demonstra como inserir os modulos para suportar
uma zip drive externa via porta paralela.
rmmod nome modulo

(como root). Remove o modulo nome modulo do kernel.


setserial /dev/cua0 port 0x03f8 irq 4

(como root). De ne uma porta serie com valores n~ao standard. O exemplo mostra
o valor standard para a primeiro porta serie (cua0 ou ttyS0). Os valores standard para
a segunda porta serie (cua1 ou ttyS1) s~ao: port 0x02f8 irq 3. A terceira porta serie:
port 0x03e8 irq 4. A quarta porta serie: 0x02e8 irq 3. Acrescente os valores no cheiro
/etc/rc.d/rc.local se quiser de ni-los no boot. Veja man setserial para mais informaco~es.
fdisk

(como root). Utilitario para criar partic~oes de disco duro do Linux (o DOS tem um
utilitario com o mesmo nome para a mesma func~ao, embora este so deixe criar partic~oes
para DOS).
depmod -a

(como root). Constroi a tabela de depend^encias dos modulos de kernel. Pode ser util,
por exemplo, depois de instalar um novo kernel. Use modprobe ou insmod para carregar
os modulos.
ldcon g

(como root). Re-cria os bindings e a cache para o carregador (loader) de bibliotecas


 por exemplo, depois de instalar novas DLL5 . Este
din^amicas (dynamic libraries - ld). Util,
5 DLL

- dynamic linked libraries

86

Captulo 4. Conceitos basicos

comando e executado no boot do sistema.

touch cheiro

Cria um cheiro vazio se n~ao existir.

Fdformat /dev/fd0H1440 ou mkfs -c -t ext2 /dev/fd0H1440

(= oppy disk format, como root - dois comandos). Executa uma formatac~ao em baixo
nvel de uma disquete no primeiro drive de disquetes do sistema (/dev/fd0 ) de alta densidade (1440 KB). Depois cria um sistema de cheiros Linux (-t ext2 ), veri cando/marcando
os blocos defeituosos (-c). Criar o sistema de cheiros e o equivalente a uma formatac~ao
de alto nvel.

badblocks /dev/fd01440 1440

(como root). Veri ca se uma disquete de alta densidade tem blocos defeituosos e exibe
os resultados no ecr~a. O par^ametro 1440 diz ao sistema para veri car 1440 blocos na disquete. Este comando n~ao modi ca a disquete.

fsck -t ext2 /dev/hda2

(= le system check, como root). Veri ca e repara um sistema de cheiros. O exemplo usa a partic~ao hda2 e o tipo ext2 de sistema de cheiros. Importante: n~ao se deve

veri car/reparar um sistema de cheiros que esteja montado. Deve-se sempre desmontar
previamente o sistema de cheiros a ser veri cado antes de se iniciar esta operac~ao.
dd if = /dev/fd0H1440 of = oppy image ou dd if = oppy image of = /dev/fd0H1440

(dois comandos). Cria uma imagem da disquete para um cheiro chamado oppy image
no directorio corrente. Depois copia essa imagem para outra disquete. Tem a mesma func~ao
do comandos diskcopy do DOS.

4.2. Comandos basicos do Linux

87

4.2.6 Detalhes sobre montagem (mounting)


mount -t auto /dev/fd0 /mnt/ oppy

(como root). Monta o drive de disquetes. o directorio /mnt/ oppy tem de existir, estar
vazia e n~ao ser o directorio corrente.
mount -t auto /dev/cdrom /mnt/cdrom

(como root). Monta o leitor de CDs. Pode ser necessario criar/alterar o cheiro
/dev/cdrom dependendo da localizac~ao do leitor. o directorio /mnt/cdrom tem de existir,
estar vazia e n~ao ser o directorio corrente.
mount /mnt/ oppy

Monta um drive de disquetes como um utilizador normal. O cheiro /etc/fstab tem


de estar preparado para aceitar este comando. o directorio /mnt/ oppy n~ao pode ser o
directorio corrente.
mount /mnt/cdrom

Monta um leitor de CDs como um utilizador normal. O cheiro /etc/fstab tem de estar
preparado para aceitar este comando. o directorio /mnt/cdrom n~ao pode ser o directorio
corrente.
umount /mnt/ oppy

Desmonta (unmount ) o drive de disquetes. o directorio /mnt/ oppy n~ao pode ser o
directorio corrente.

4.2.7 Ferramentas de gest~ao de rede


netconf

(como root). Um utilitario baseado em menus para a gest~ao (setup) da nossa rede.
Usado na distribuic~ao Red Hat.

88

Captulo 4. Conceitos basicos

linuxconf

(como root). Utilitario de con gurac~ao do nosso sistema linux. Usado na distribuic~ao
Red Hat.
setup ou netcon g

(como root). Ferramentas com a mesma func~ao das duas mencionadas acima, mas estas
s~ao usadas na distribuica~o Slackware de linux.
ping maquina

Veri ca a ligac~ao a outra maquina, podendo a variavel maquina ser o nome da maquina
ou o endereco IP. Para terminar, use o 'Ctrl'+'c'.
route -n

Exibe a tabela de routeamento (routing table ).


ipfwadm -F -p m

Con gura a poltica de reencaminhamentos de IPs da rewall para passar a fazer masquerading. N~ao e muito seguro mas e simples. A partir da vers~ao 2.2 do linux, deve-se
usar o ipchains, sendo necessario ter o kernel con gurado para suportar IP rewalls e que
o routing de IP esteja activado.
ifcon g

(como root). Exibe informac~ao sobre os interfaces de rede correntemente activos (ethernet, ppp, etc). A primeira interface ethernet deve ser a eth0, a segunda a eth1, etc. A
primeira interface ppp (modems) e a ppp0, a segunda a ppp1, etc. A interface lo e a
loopback only com o endereco 127.0.0.1 que deve estar sempre activa. Usa a opc~ao ifcon g

4.3. Instalar o X

89

{help para mais informac~oes sobre como con gurar as interfaces.


ifup interface

Acciona uma interface de rede. Exemplo: ifup eth0 ou ifup ppp0. Utilizadores normais
so podem accionar ou desactivar uma interface de rede se tiverem permiss~oes para isso e
so as interfaces ppp (use o comando netconf ).
ifdown interface

Desactiva uma interface de rede.


netstat

 more ou netstat  less

Exibe informac~ao sobre o estado da nossa rede.

4.3 Instalar o X
Antes de comecar a con gurar o X e necessario recolher todas as informac~oes sobre a placa
gra ca, do monitor e do rato. Depois de termos estas informaco~es vamos ao directorio onde
esta instalado o ambiente X Window. Normalmente, ca em /usr/x11r6/bin. Executa-se
o comando
xf86config

que nos conduz a uma sequ^encia de perguntas:


1. Mouse. Enter a protocol number.
Normalmente os ratos podem ser de dois tipos ou serie (opc~oes 1 ou 2) ou PS/2
(opc~ao 4).
2. Do you want to enable ChordMiddle?
Caso o rato tenha 3 bot~oes podemos de nir o comportamento do bot~ao do meio.

90

Captulo 4. Conceitos basicos

3. Do you want to enable Emulate3Buttons?


Caso o rato so tenha 2 bot~oes e pretendemos emular o terceiro pressionando os dois
ao mesmo tempo respondemos yes.
4. Mouse device:
O rato ja tem normalmente um link default para /dev/mouse. Por defeito basta
premir enter, a n~ao ser que seja um rato PS/2, pois neste caso e preciso mudar para
/dev/psaux

5. Do you want to enable these bindings for the Alt keys?


Normalmente responde-se no.
6. hsync in kHz; monitor type with characteristic modes
1 - 31.5; Standard VGA, 640x480 @ 60 Hz
2 - 31.5 - 35.1; Super VGA, 800x600 @ 56 Hz
3 - 31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz int. (no 800x600)
4 - 31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz int., 800x600
5 - 31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz
6 - 31.5 - 48.5; Non-Int. SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz
7 - 31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz
8 - 31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz
9 - 31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz
10 - 31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz
11 - Enter your own horizontal sync range

Procure no seu manual do monitor a frequ^encia que se melhor adapta ao seu monitor
ou introduza 11 para de nir a frequ^encia vertical e horizontal.
1
2
3
4
5

50-70
50-90
50-100
40-150
Enter your own vertical sync range

Id^entico para a vertical.

4.3. Instalar o X

91

7. Enter an identifier for your monitor definition:


Enter the vendor name of your monitor:
Enter the model name of your monitor:

Coloque a identi caca~o que mais lhe convier.


8. Do you want to look at the card database?
Introduza Yes, e procure a sua placa gra ca no menu.

9. 1 - The XF86 Mono server. This a monochrome server that should work

VGA-compatible card, in 640x480 (more on some SVGA chipsets).


2 - The XF86 VGA16 server. This is a 16-color VGA server that should work
any VGA-compatible card.
3 - The XF86 SVGA server. This is a 256 color SVGA server that supports
a number of SVGA chipsets. It is accelerated on some Cirrus and WD chipsets;
it supports 16/32-bit color on certain Cirrus configuratio.
4 - The accelerated servers. These include XF86 S3, XF86 Mach32, XF86 Ma,
XF86 8514, XF86 P9000, XF86 AGX, XF86 W32 and XF86 Mach64.Which one of these
screen types do you intend to run by default (1-4)?

Pode optar por uma destas opco~es pre-de nidas, ou se quiser car com toda a sua
con gurac~ao feita anteriormente introduza 5
10. Do you want me to set the symbolic link?
Introduza yes para de nir os links simbolicos ao cheiro de con gurac~ao XF tipo de acelerador
para o seu startx.
11. How much video memory do you have on your video card:
1
2
3
4
5
6

256K
512K
1024K
2048K
4096K
Other

Basta dizer quanta memoria tem a sua placa gra ca.

92

Captulo 4. Conceitos basicos

12. Enter an identifier for your video card definition:

You can simply press enter here if you have a generic card, or want to
describe your card with one string.
Enter the vendor name of your video card:
Enter the model (board) name of your video card:

Coloque a identi cac~ao que mais lhe convier.


13. 1 - Chrontel 8391 (uncertain at the time of writing)

2 - ICD2061A and compatibles (ICS9161A, DCS2824)


3 - ICS2595
4 - ICS5342 (similar to SDAC, but not completely compatible)
5 - S3 GenDAC (86C708) and ICS5300 (autodetected)
6 - S3 SDAC (86C716)
7 - STG 1703 (autodetected)
8 - Sierra SC11412
9 - TI 3025 (autodetected)
10 - TI 3026 (autodetected)
11 - IBM RGB 514 (autodetected)
12 - IBM RGB 524 (autodetected)
13 - IBM RGB 525 (autodetected)
14 - IBM RGB 528 (autodetected)
Just press enter if you don't want a Clockchip

Carregue em enter
E pronto, a con guraca~o do X Window esta concluda. Agora para comecar a utilizar o
ambiente x basta executar o comando
startx

4.4 Criar utilizadores


Para comecar a utilizar o sistema e necessario antes de mais criar uma conta de utilizador
que n~ao a do root. Cada utilizador devera ter a sua conta por uma quest~ao de personalizac~oes e privacidade de cada um.
E porque n~ao utilizar a conta do root? Porque esta conta e somente para admnistrac~ao
do sistema e por isso mesmo tem todos os tipos de privilegios e pode aceder a todos os

4.4. Criar utilizadores

93

cheiros do sistema. Se formos iniciantes no Linux n~ao e aconselhavel utilizar a conta do


root pois poder-se-a muito facilmente escrever incorrectamente um comando e apagar sem
querer cheiros, dani car o sistema de cheiros, etc. Apenas se deve utilizar a conta do
root para con gurac~oes, adicionar hardware, instalar software, etc.
Para um uso normal, deve-se criar uma conta do utilizador padr~ao. Os sistemas Unix
tem uma seguranca pre-de nida que impedem que os utilizadores apaguem os cheiros
dos outros utilizadores, dani cando recursos importantes como os cheiros de con guraca~o
do sistema e assim por diante. Isto acontece principalmente com os utilizadores sem experi^encia em administrac~ao do sistema Unix.
Muitas distribuico~es Linux fornecem ferramentas para criar novas contas. Estes programas
s~ao chamados geralmente de useradd ou adduser. Como root, quando se executa um
destes comandos devera ver-se o resumo do uso do comando e criar uma nova conta devera
ser bastante simples.
Se tudo mais falhar, pode-se criar uma conta manualmente. Geralmente, tudo o que e
necessario para criar uma conta e:
1. Editar o cheiro /etc/passwd para acrescentar o novo utilizador.
2. Editar, opcionalmente, o cheiro /etc/shadow para especi car os atributos da password correspondente para o novo utilizador.
3. Criar o directorio pessoal do utilizador.
4. Copiar os cheiros de con gurac~ao da estrutura (como o .baschrc) para o directorio
pessoal do novo utilizador. Eles podem ser encontrados, algumas vezes, no diretorio
/etc/skel.
Lembre-se de que para de nir ou alterar a senha na conta do utilizador, usa-se o comando
passwd. Por exemplo: para alterar a password de um utilizador com o nome duck,
executa-se o seguinte comando:
# passwd duck

Isso ira de nir ou alterar a senha duck. Se executar o comando passwd como root,
n~ao sera pedida a password original. Assim, se perdemos ou nos esquecemos da antiga
password, poderemos ligarmos como root, para rede ni-la.

94

Captulo 4. Conceitos basicos

4.5 Con gurar uma impressora


Descrevemos de uma forma simples de con gurar uma impressora em geral sem ser necessario usar utilitarios de con gurac~ao como o LinuxConf, printtool ou o Yast. As impressoras que precisam de drivers espec cos precisam de detalhes adicionais n~ao descritos
aqui. Nota: se a distribuic~ao que instalou disp~oe de utilitarios de con gurac~ao, n~ao e pre-

ciso passar por toda esta complexidade.

Para con gurar a impressora basta seguir os passos seguintes:


1. ls /dev/lp* - Nessa listagem devem aparecer no minimo, normalmente, tr^es devices
de impressora ( /dev/lp0; /dev/lp1; /dev/lp2 ).
2. Faca o reboot da maquina para veri car se a distribuic~ao instalada reconhece a porta
de impress~ao. Procure na inicializac~ao, algo do tipo lp* at 0x378 (N~ao e realmente
necessario reinicializar a maquina, pode-se obter o mesmo resultado utilizando apenas
o comando
dmesg

3. Para criar uma impressora com o nome de impressora. Abra com qualquer editor de
texto o cheiro /etc/printcap
4. Escreva o seguinte:
impressora:\
:sd=/var/spool/lpd/impressora:\
:mx#0:\
:lp=/dev/lp*:

5. Depois desta operac~ao basta gravar, sair do editor de texto e criar o directorio
/var/spool/lpd/impressora com o comando mkdir /var/spool/lpd/impressora
6. Muda-se o grupo e a permiss~ao do directorio criado, atraves dos comandos
chgrp lp /var/spool/lpd/impressora
chmod 755 /var/spool/lpd/impressora

7. Teste a impressora, usando o comando lpr.


lpr -Pimpressora qualquerdocumento.txt

Captulo 5
Kernel
Com a introduc~ao do kernel(nucleo do sistema) modularizado no Linux 2.0.x surgiram
importantes mudancas na construc~ao de kernels personalizados. Antes era necessario compilar o kernel caso se desejasse aceder a determinado hardware ou sistema de cheiros em
particular.
Para alguns hardwares o tamanho do kernel poderia atingir um certo nvel de criticidade.
O suporte ja embutido no kernel poderia ser uma soluc~ao ine ciente sob o ponto de vista
de utilizac~ao de recursos do sistema.
Com as facilidades disponibilizadas no kernel 2.0.x, caso haja algum componente de hardware ou do sistema de cheiros pouco usado, os drivers e modulos s~ao carregados somente
quando necessarios, melhorando a performance e optimizando a utilizac~ao de recursos do
sistema.

5.1 Construir um Kernel modularizado


Esta operac~ao assume que todos os headers do kernel e pacotes com os fontes est~ao localizados no directorio /usr/src/linux. E importante comecar a construca~o do kernel com a
arvore de fontes em condic~oes bem conhecidas. Para isso pode-se utilizar o comando make
mrproper o qual remove todos os cheiros de con guraca~o de reconstruc~oes anteriores que
estejam residentes nas arvores de directorios.
Apos isto e necessario criar o cheiro de con gurac~ao que ira determinar quais os componentes que ser~ao includos no kernel. Dependendo do hardware e das prefer^encias pessoais
pode-se optar por um dos tr^es metodos disponveis:
1. make config Um programa texto interactivo, onde os componentes s~ao apresentados

96

Captulo 5. Kernel

um a um. Basta pressionar Y (sim), N (n~ao) ou M (modulo).


2. make menuconfig Um programa gra co, composto por menus, onde os componentes
s~ao apresentados em listas de categorias, sendo possvel seleccionar os componentes
desejados da mesma maneira que s~ao apresentados no programa de instalac~ao do Red
Hat Linux. Basta seleccionar o elemento correspondente ao item desejado: Y (sim),
N (n~ao) ou M (modulo).
3. make xconfig Um programa X Windows, onde os componentes s~ao listados em diferentes nveis de menus e os componentes s~ao seleccionados utilizando-se o rato. Mais
uma vez as opc~oes possveis s~ao Y (sim), N (n~ao) e M (modulo).

NOTA: Para poder utilizar Kerneld e modulos de kernel e obrigatorio responder Y


(sim) ao suporte do Kerneld e vers~
ao modular (CONFIG MODVERSIONS) durante
a con gurac~ao do sistema.
Se se estiver a construir um kernel para maquinas com processadores clones do Intel (Cyrix,
AMD,...), e recomendado escolher 386 como tipo de processador.
Se se desejar construir um kernel com um cheiro de con guraca~o /usr/src/linux/.con g
previamente criado com um dos metodos anteriores, pode-se omitir o comando mrproper
e make config utilizando somente o comando make dep seguido de make clean para preparar os fontes para a reconstruc~ao do kernel.
O proximo passo consiste na compilac~ao dos fontes seleccionados numa maquina que possa
ser utilizada para reinicializar-se com o novo kernel. O metodo aqui descrito e o mais simples para recuperac~ao em caso de algum problema ocorrer. Outras formas de recuperac~ao
podem ser encontradas no Make le em /usr/src/linux.
1. Reconstroi-se o kernel com make boot.
2. Constroi-se quaisquer modulos con gurados com o comando make modules.
3. Move-se o antigo conjunto de modulos atraves dos seguintes comandos
rm -rf /lib/modules/2.0.29-old seguido de
mv /lib/modules/2.0.29 /lib/modules/2.0.29-old

Instalam-se os novos modulos (mesmo que n~ao tenha sido construdo nenhum) atraves do
comando make modulos install.
Se o sistema possuir um driver modular para adaptador SCSI, constroi-se uma nova image
do initrd. Porem ha poucas raz~oes para se construir um driver de kernel modular para
adaptadores SCSI.

5.1. Construir um Kernel modularizado

97

Para ter disponvel o kernel anterior a m de evitar problemas, caso o novo kernel tenha
algum tipo de erro, e recomendavel manter a con gurac~ao original. Adicionar um novo
kernel ao LILO e muito simples. Basta seguir as seguintes operaco~es:
1. mv /boot/vmlinuz /boot/vmlinuz.old
2. cp /usr/src/linux/arch/i386/boot/zImage /boot/vmlinuz
3. editar /etc/lilo.conf
4. executar /sbin/lilo

Como con gurar o LILO


O programa LILO (abreviatura de LInux LOader) e o carregador padr~ao do Linux.
Este programa e a mais exvel das rotinas de inicializac~ao do Linux.
O LILO pode ser con gurado para residir no sector de inicializac~ao principal do disco
rgido ou no sector de inicializac~ao de uma partic~ao do disco rgido. O utilizador vai ter
de tomar essa decis~ao no momento de instalar o Linux; dependendo do seu sistema, uma
ou outra opc~ao vai funcionar melhor.
As maquinas da actualidade inicializam quase da mesma forma que as maquinas de 1980.
Entretanto, o hardware mudou tanto que o processo de inicializac~ao requer que o sistema
operativo e a rotina de inicializac~ao para o sistema operativo estejam verdadeiramente
conscientes dos varios rodeios que foram implementados nos PCs para suportarem itens
tais como os grandes discos rgidos da actualidade.
O procedimento de partida para cada PC e relativamente directo quando visto a dist^ancia.
Ele funciona da seguinte forma:

 Quando a maquina e ligada, o processador inicia a execuca~o do codigo na BIOS.

Esse codigo dimensiona a memoria, testa o processador e o hardware e inicializa o


hardware para um estado conhecido;

 A BIOS vai ent~ao a procura da unidade de disco de inicializac~ao, regra geral uma

disquete ou disco rgido. A BIOS l^e o sector de inicializac~ao principal e executa-o.


Esse sector de inicializac~ao principal, regra geral instalado pelo MS-DOS ou pelo
Windows9x, realiza a procura da primeira partic~ao activa e, depois, tenta carregar
esse sector de inicializac~ao;

 O sector de inicializac~ao da partic~ao contem as instruco~es sobre como carregar a


rotina de inicializac~ao. As limitaco~es de tamanho imp~oem aqui as suas restric~oes,
obrigando a rotina de inicializac~ao a ser pequena. O MS-DOS em si mesmo e pequeno

98

Captulo 5. Kernel

o su ciente para se poder encaixar a. Assim, para um sistema MS-DOS, o processo
de inicializac~ao e nalizado. Outros sistemas v~ao ter a um programa que carrega o
kernel do sistema operativo e o inicializa, tal como o LILO que carrega o kernel do
Linux, descompacta-o e, depois, o inicializa. A memoria que a rotina de inicializac~ao
usa e ent~ao, regra geral, reclamada pelo sistema operativo que foi inicializado.

 As opc~oes do LILO s~ao de nidas e con guradas enquanto o Linux esta em execuc~ao,

o que signi ca que se o LILO n~ao inicializa o Linux, o utilizador deve usar os seus
discos de inicializac~ao de emerg^encia para aceder ao disco rgido do sistema e, depois,
con gurar e instalar (executando o /sbin/lilo) o LILO. Talvez o utilizador tenha de
experimentar para determinar se o LILO funciona melhor no sector de inicializac~ao
principal do disco rgido ou no sector de inicializaca~o da sua partic~ao de inicializac~ao

NOTA: Se o utilizador se encontra a utilizar o System Commander ou o Manager


Boot da IBM, ou ate mesmo as ultimas vers~oes do Partition Magic para inicializar
multiplos sistemas operativos, estes tambem podem ser utilizados para inicializar o
Linux e, depois, con gure o boot de inicializac~ao para inicializar essa partic~ao como
sendo uma partic~ao DOS.
O LILO l^e a con gurac~ao a partir de um cheiro que se encontra no directorio /etc do
sistema chamado lilo.conf. Esse cheiro indica ao LILO o sistema operativo para o qual
ele se deve con gurar e onde se deve instalar a si proprio. A situaca~o mais simples e um
cheiro lilo.conf que indica ao LILO para inicializar somente um sistema operativo, como
e mostrado a seguir
boot=/dev/hda4
map=/boot/map
install=/boot/boot.d
prompt
timeout=50
image=/boot/vmlinuz-2.0.36
label=linux
root=/dev/hda4
read-only

Este cheiro informa ao LILO para se instalar no sector de inicializaca~o da partica~o


/dev/hda4 (boot=/dev/hda4 ), para esperar cinco segundos pela entrada do utilizador no
prompt LILO: (timeout=50 ) e para inicializar o kernel vmlinuz-2.0.36 no directorio /boot
(image=/boot/vmlinuz-2.0.36 ) da partica~o /dev/hda4 (root=/dev/hda4 ). O LILO exibe
um prompt e espera cerca de cinco segundos por uma entrada antes de iniciar a primeira
imagem no cheiro lilo.conf. Repare que o valor do tempo de espera para cinco segundos

5.1. Construir um Kernel modularizado

99

e 50 (decimos de segundo ) - o LILO mede o tempo em incrementos de 0,1 segundo.

Mas porque e que o Kernel tem o nome de vmlinuz?


A letra "z"no m, esta ali para indicar que a imagem do kernel esta comprimida para
reduzir a quantidade de espaco de disco ocupado usando um metodo em tudo similar ao
gzip; a imagem e descompactada durante a inicializac~ao. O nome tem sido a convenc~ao por
algum tempo e o script de instalac~ao para o kernel adopta este nome. Se o utilizador realmente quiser, pode altera-lo - basta ter a certeza de que o LILO aponta para o cheiro certo!
Tambem e possvel optar entre varios kernels do Linux com base nos quais pode inicializar o sistema; isso e bastante pratico se esta a tentar o mais recente mas quer ter sempre
a opc~ao de inicializar o mais antigo, so por precauca~o. Vale a pena o esforco em fazer essa
de nic~ao, porque o utilizador pode evitar muita frustraca~o se um kernel novo apresentar
problemas.

Alterar o boot padr~ao?


A primeira entrada no cheiro lilo.conf e a con guraca~o de boot padr~ao, a qual e inicializada pelo LILO quando o valor de tempo de espera for atingido. Alterar a ordem de
boot e uma tarefa bastante simples, sendo uma quest~ao de copiar e colar, usando o seu
editor de textos preferido e, depois, executando novamente o /sbin/lilo para instalar o novo
sector de inicializac~ao. Se n~ao e conveniente realizar estas alteraco~es no cheiro lilo.conf,
acrescente a directiva default = <label> (onde <label> e o texto no "rotulo"da imagem que
o LILO deve inicializar por defeito).
O LILO usa os labels para permitir a inicializac~ao de multiplos sistemas operativos ou
diferentes kernels do Linux. De seguida altera-se o lilo.conf para varios sistemas operativos:
boot=/dev/hda4
map=/boot/map
install=/boot/boot.d
prompt
timeout=50
image=/boot/vmlinuz-2.0.36
label=linux
append="ether=0,0,eth0 ether=0,0,eth1"
root=/dev/hda2
read-only
image=/vmlinuz.old
label=old
root=/dev/hda2

100

Captulo 5. Kernel

other=/dev/hda1

read-only
label=dos
table=/dev/hda

Agora quando o sistema for inicializado, basta pressionar Tab e o prompt do LILO mostrara
duas opc~oes:
LILO boot:
linux
old

dos

Para testar o novo kernel basta reinicializar o equipamento e veri car as mensagens geradas
pelo sistema, assegurando-se de que o hardware foi detectado adequadamente.

5.2 Criar uma imagem do initrd


Uma imagem do initrd e necessaria para carregar modulos SCSI durante a inicializaca~o do
sistema. O shell script /sbin/mkinitrd pode gerar uma imagem do initrd adequada para
o sistema desde que as seguintes condic~oes sejam satisfeitas:
- dispositivo de loopback da unidade esteja disponvel;
- o cheiro /etc/conf.modules tenha uma linha para o adaptador SCSI, como por exemplo alias scsi hostadapter BusLogic.
Para construir uma nova imagem do initrd, execute /sbin/mkinitrd /boot/novoinitrd-image
2.0.12 onde /boot/novoinitrd-image e cheiro utilizado para a nova imagem e 2.0.12 e o
kernel cujos modulos (a partir de /lib/modules ) devem ser usados na criac~ao da imagem
do initrd (n~ao e necessariamente o mesmo da vers~ao actualmente em uso pelo kernel).

5.3 Construir um Kernel monoltico


Para construir um kernel monoltico observe os seguintes passos:
1. Durante a con gurac~ao do kernel responda Y (sim) ou N (n~ao) a todas as quest~oes
(sem utilizar a opc~ao M - modulo).
2. N~ao executar os passos: make modules, make modules install. Finalmente editar
o cheiro /etc/rc.d/rc.sysinit e comentar a linha depmod -a, inserindo um # no
incio da linha. endenumerate

Captulo 6
Servicos
6.1 Automount
O automount (mount automatico) e o processo onde a montagem (e desmontagem) de
certos sistemas de arquivos e feita automaticamente por um programa residente. Se o sistema de arquivos esta desmontado, e um utilizador tentar aceder, ele sera automaticamente
(re)montado. Isto e especialmente util em grandes ambientes de rede e para montagens de
sistemas de arquivos entre varias maquinas (especialmente aquelas que nem sempre est~ao
ligadas). Isto tambem pode ser muito util para dispositivos amovveis por motivos obvios.

6.1.1 Tipos de automontagem


Ha dois tipos de automontagem no Linux: AMD e autofs.
O AMD e o programa residente que faz a automontagem, e supostamente funciona como o
 implementado no espaco do utilizador, o que signi ca que n~ao faz parte
AMD do SunOS. E
do kernel. N~ao e necessario para o kernel entender a automontagem se a sua montagem do
NFS para a maquina local passa pelo programa residente do AMD, que faz as rotas de todos os tra cos de sistemas de arquivos automaticamente montados atraves do sistema NFS.
O autofs e um sistema auxiliado pelo kernel, o que signi ca que o codigo do sistema
de arquivos do kernel sabe onde est~ao os pontos de montagem do automount, diferente de
um sistema de arquivos subjacente, e o programa de montagem automatica transfere isto
do kernel.

102

Captulo 6. Servicos

6.1.2 Instalac~ao
Devido ao facto de o autofs ser implementado no espaco do kernel, o seu kernel deve ter
o suporte incorporado. Nos kernels 2.0.xx isto e uma opca~o experimental, mas parece ser
estavel. Nos 2.1.xx (e presupostamente nos 2.2.xx) n~ao e experimental.
O programa de montagem automatica e os seus arquivos de con guraca~o tambem s~ao
necessarios; usar os RPMs (da RedHat, como parte da instalaca~o) e um bom metodo.
O programa de montagem automatica deve ser inicializado por um guia rc no diretorio
/etc/rc.d/init.d. O RPM faz isto, mas deve-se ter a certeza que ele e inicializado, fazendo
uma ligac~ao do diretorio rc?.d, usando o painel de controle da Red Hat, ou conseguindo
fazer a inicializac~ao de algum modo noutra distribuica~o.

6.1.3 Con gurac~ao


Depois de fazer a instalac~ao dos RPMs com o comando rpm -i autofs-3.1.7-14.i386.rpm
sendo autofs-3.1.7-14.ie86.rpm o cheiro que contem o autofs, como root e necessario con igurar os cheiros no directorio /etc, um e chamado de auto.master e outro de auto.misc.
De seguida apresentamos um exemplo do que poderia ser o cheiro auto.master :
/auto

/etc/auto.misc

--timeout 60

A primeira entrada n~ao e o ponto de montagem, e sim onde os pontos de montagem (indicados na segunda entrada) car~ao. A terceira opc~ao diz que os sistemas de arquivos
montados podem-se tentar desmontar 60 segundos depois de usados. E claro que eles n~ao
se podem desmontar se estiverem a ser usados.
O auto.misc e um "arquivo mapa". Arquivos de mapas multiplos podem ser de nidos
no auto.master. De seguida temos um exemplo do auto.misc :
kernel
cd
zip
floppy

-ro,soft,intr
-fstype=iso9660,ro
-fstype=auto
-fstype=vfat

ftp.kernel.org:/pub/linux
:/dev/cdrom
:/dev/hdd4
:/dev/fd0

A primeira coluna (a "chave") e o ponto de montagem. Neste caso sera /mnt/ oppy ou
outra coisa. No meio s~ao as opc~oes; deve ler-se a pagina do manual do mount para saber
mais detalhes a respeito destes par^ametros. E a ultima coluna especi ca de onde vem o
sistema de arquivos. A entrada do kernel supostamente deve ser uma montagem do NFS.
O ":"em todas as outras linhas signi ca que s~ao dispositivos locais.

103

6.2. NFS

Uma quest~ao que se pode colocar e: 60 segundos, e bastante tempo de espera pelo ejectar
de uma disquete... Antes de mais, pode-se mudar o tempo de espera. Porem isto pode
ser um pouco ine ciente; dizer ao sistema para desmontar as coisas depois de 15 segundos
ou diferente. Actualmente ha uma maneira de perguntar pela desmontagem ao programa
de montagem automatica. Se se mandar (com o programa kill) o sinal SIGUSR1 para o
processo de montagem automatica, ele ira desmontar tudo o que puder.
O processo de montagem automatica e executado pelo admnistrador da maquina, e so
ira aceitar comandos seus. 50% do motivo pelo qual provavelmente se usa a montagem
automatica e o facto de poder fazer montagens e desmontagens sem se ser o administrador
da maquina. Seria facil fazer um programa em C com transic~ao para administrador da
maquina, que zesse isto. Todavia, usando o comando sudo e possvel permitir que utilizadores possam mandar o proprio sinal de kill. O unico problema e que o sudo n~ao nos
deixa usar "' "para processar subcomandos, o que se teria de fazer tendo em conta o PID
corrente. Deve-se ter um programa chamado killall, que ira permitir fazer isto:
ALL

ALL=NOPASSWD:/usr/bin/killall -USR1 automount

Por outro lado, teria que se permitir aos utilizadores o envio do -SIGUSR1 para todos os
processos. O que poderia provocar varios efeitos em programas tais como: apenas fazer
um refresh nos gestores de janelas ou um kill ao xemacs.
Tentamos fazer uma traduc~ao do manual da AMD, mas devido ao facto de este ter uma
linguagem bastante tecnica foi de todo impossivel fazer uma coisa facilmente compreensivel
e explcita sem ter de recorrer a esse tipo de linguagem. Mas para os interessados em saber
mais sobre isso deixamos os links para o Tutorial do Autofs1 e para o do AMD 2 .

6.2 NFS
O NFS (Network File System) - Sistema de Ficheiros de Rede e um meio de partilhar
cheiros entre maquinas, como se estivessem num disco local. O Linux pode ser tanto um
servidor como um cliente NFS, o que signi ca que se pode exportar sistemas de cheiros para outros sistemas, assim como montar sistemas de cheiros exportados de outras
maquinas.
1 http://www.linuxhq.com/lg/issue24/nielsen.html
2 http://www.cs.columbia.edu/

ezk/am-utils

104

Captulo 6. Servicos

6.2.1 Montar um Servidor de NFS


Para montar um servidor de NFS e necessario antes de mais ter uma rede montada na qual
e possivel efectuar uma ligac~ao vis Telnet entre o servidor e a maquina cliente.

6.2.1.1 O portmapper
O portmapper em Linux e chamado de portmap ou rpc.portmap. Este servico encontra-se
no diretorio de /usr/sbin (em algumas maquinas e chamado de rpcbind). Agora que ja sabemos onde se encontra temos de ter em atenc~ao pois este servico precisa de ser recomecado
de cada vez que se faz o boot maquina. Para que arranque de cada vez que se faz o boot
da maquina e necessario editar o script de rc que pode normalmente ser encontrado em
/etc/rc.d, /etc/init.d ou /etc/rd.c/init.d.
Para veri car se o portmap esta a ser executado usa-se o seguinte comando:
ps -aux

6.2.1.2 Mountd e o nfsd


De seguida e necessario executar mais dois programas: mountd e nfsd. Mas primeiro
precisamos de editar outro cheiro. O /etc/exports. Por exemplo, se quisermos partilhar a
pasta /homesta existente na maquina gel para estar disponvel na maquina viseu teriamos
que indicar ostp no /etc/exports do gel :
/homestaff

viseu(rw)

A linha de comando acima da a maquina viseu possibilidade de ler/escrever (read/write)


na maquina gel em /homesta . Em vez de rw poderia dizer-se ro, ou seja so as permiss~oes
de leitura. Ha outras opc~oes que se podem usar e que ser~ao indicadas mais a frente no
ponto da seguranca.
Podem ser usados em vez de maquinas, grupos de utilizadores possibilidade dada se estivermos a executar NIS (ou NYS). Agora pode-se comecar a con gurar o mountd (ou talvez
chamar rpc.mountd e ent~ao o nfsd (que pode ser chamado em rpc.nfsd ). Ambos ir~ao ler
o cheiro de exportac~ao (exports). Se for editado o cheiro /etc/exports temos que fazer
com que o nfsd e mountd saiba que os cheiros foram mudados. Na maioria dos sistemas
baseados em Unix o comando e exportfs. Se usarmos o exportfs-less podemos instalar este
script:
#!/bin/sh

105

6.2. NFS
killall -HUP /usr/sbin/rpc.mountd
killall -HUP /usr/sbin/rpc.nfsd
echo re-exported file systems

Gravamos em /usr/sbin/exportfs, e n~ao podemos esquecer de usar o chmod a+rx. Agora,


sempre que se mudar o cheiro de exportaco~es, temos de executar o exportfs como root.
Para con rmar se aquele mountd e o nfsd est~ao a ser executados correctamente executamos primeiro o rpcinfo -p cujo resultado deve ser semelhante a:
program vers proto
100000
2
tcp
100000
2
udp
100005
1
udp
100005
1
tcp
100003
2
udp
100003
2
tcp

port
111
111
745
747
2049
2049

portmapper
portmapper
mountd
mountd
nfs
nfs

Como se pode ver o portmapper indica que o mountd e o nfsd est~ao a ser executados, ou
seja, o servidor de NFS esta activo.

6.2.2 Montar o Cliente de NFS


As vers~oes mais recentes do Linux ja instalam os modulos necessarios a con gurac~ao do
cliente de NFS. Continuando o exemplo anterior onde pretendemos montar o /homesta
do gel executamos no prompt do root, o comando:
mount -o rsize=1024,wsize=1024 gel:/homestaff /mnt

Os dois par^ametros que aparecem rsize e wsize ser~ao descritos adiante.


Interessa agora veri car que o sistema de cheiro esta disponvel debaixo do /mnt e podemos executar um cd, ou ls, e listar os cheiros individualmente.
Este sistema n~ao e t~ao rapido como um sistema de cheiro local, mas e muito mais conveniente que o ftp. Se, em vez de montar o sistema de cheiro, o mount produzir uma
mensagem de erro como:
gel:/homestaff failed

e a raz~ao dada pelo servidor f^or:

106

Captulo 6. Servicos

Permission denied

ent~ao o cheiro de exportac~oes esta errado, ou ent~ao o exportfs n~ao esta a ser executado
depois de ter sido editado o cheiro de exportaco~es.
Para desligar o sistema de cheiro podemos usar
umount /mnt

Para fazer o sistema montar um sistema de cheiro de nfs no boot precisamos de editar o
cheiro /etc/fstab da maneira normal. Para o nosso exemplo e feito da seguinte forma:
# device
gel:/homestaff

mountpoint
/mnt

fs-type options
nfs
rsize=1024,wsize=1024

dump
0

fsckorder
0

De seguida vamos ver como optimizar o NFS para obter um melhor desempenho do sistema.

6.2.2.1 Optimizar o NFS


Geralmente, se n~ao for especi cado nenhum rsize ou wsize, o NFS l^e e escreve em blocos
muito grandes de 4096 ou 8192 bytes. Mas pode acontecer que quer o Kernel quer a propria
placa de rede n~ao aguente determinado uxo de informac~ao e por isso torna-se necessario
que nos experimentemos um valor para o rsize e para o wsize que funcione e seja t~ao rapido
quanto o possvel.
Podemos testar a velocidade das opc~oes com alguns comandos simples. Por exemplo:
time dd if=/dev/zero of=/mnt/testfile bs=16k count=4096

Isto cria um cheiro de 64Mb de bytes contendo zeros. De seguida fazemos uma tabela
 o chamado Elapsed ou Wall clock. Depois
para registo dos tempos e calcular a media. E
podemos testar o desempenho de leitura lendo o cheiro anterior com o comando:
time dd if=/mnt/testfile of=/dev/null bs=16k

fazemos este procedimento varias vezes e calculamos a media.


Seguidamente fazemos o umount, e montamos novamente com um rsize maior e o wsize,
cujo valor deve ser multiplo de 1024, e provavelmente n~ao superior a 16384 bytes, dado
que os blocos grandes reduzem a velocidade de acesso.

6.3. NIS

107

Se o valor de rsize/wsize e muito grande os sintomas s~ao muito estranhos e n~ao s~ao 100%
obvios. Um tpico sintoma e o facto de aparecerem listas de cheiro incompletas quando
fazemmos ls sem mensagens de erro. Ou fazer a leitura de cheiros que falham misteriosamente sem surgirem mensagens de erro.
Depois de estabelecer os valores correctos para trabalhar com o rsize/wsize podemos fazer
o teste de velocidade novamente.
Sistemas diferentes tais como SunOS e Solaris e supostamente muito mais rapidos com
blocos de 4096 bytes que com qualquer outro.

NOTA: Devemos sempre editar o /etc/fstab para re etir o rsize/wsize que pretendemos
Um truque para aumentar o desempenho de escrita do NFS e incapacitar o sncronismo de
escrita do servidor. O que acontece normalmente com os estados de especi caca~o do NFS
e que os pedidos n~ao s~ao considerados antes de serem totalmente escritos no disco. Isto
restringe bastante o desempenho de escrita, e a escrita assncrona fara o NFS funcionar
mais depressa.

6.3 NIS
As proximas tr^es linhas s~ao citac~oes do Manual de administraca~o de System Network
Sun(tm)
"NIS era conhecido antigamente como Paginas Amarelas da Sun (YP) mas
o nome Paginas amarelas(tm) e uma marca registrada no Reino Unido pela
Telecom plc brit^anica e n~ao podia ser usada sem permiss~ao".
NIS representa o Servico de Informac~ao de Network. Tem como objectivo fornecer informac~ao que tem que ser conhecida ao longo da rede por todas as maquinas na rede. A
informac~ao provavel a ser distribuda pelo NIS e:

 login names/passwords/home directorios (/etc/passwd )


 informaca~o de grupos (/etc/group )
Por exemplo, se sua password e registada na password do banco de dados do NIS, sera
capaz de fazer o login em todas as maquinas na rede em que tenha o programa cliente de

108

Captulo 6. Servicos

NIS a funcionar.
Cada vez mais, s~ao instaladas maquinas Linux como parte de uma rede de computadores.
Simpli car a administrac~ao de rede, na maioria das redes (principalmente redes baseadas
em Sun) e correr o Servico de Informac~ao de Rede. As maquinas Linux podem tirar proveito do NIS existente ou fornecer NIS completamente. As maquinas Linux tambem podem
(com a biblioteca do NYS) agir como clientes de NIS+ limitados.

6.3.1 NIS ou NIS+?


A escolha entre NIS e NIS+ e facil - Usa-se NIS, se n~ao se tem usa-se o NIS+ ou se tem
necessidade de seguranca elevada. NIS+ e muito mais problematico de administrar (e facil
de usar no cliente, mas do lado do servidor e horrvel).
Outro problema e que o apoio para o NIS+ dentro do Linux ainda esta a ser criado
- um ponto principal e a falta do apoio a encriptac~ao/autenti cac~ao de dados que e um
ponto principal para qualquer utilizador que quiser usar o NIS+...

6.3.2 Como trabalhar


Dentro de uma rede deve-se ter uma maquina que funcione como um NIS pelo menos um
servidor. Pode-se ter varios servidores de NIS, cada servico NIS diferente de "domnios- ou
pode-se ter cooperac~ao entre os servidores de NIS, onde a pessoa e dita mestre do servidor de NIS, e todos os outros s~ao escravos denominados servidores NIS (para um certo
"domnio"de NIS, que s~ao!) - ou pode-se ter uma mistura deles...
So os servidores escravos (slave ) t^em copias dos bancos de dados do NIS e recebem estas
copias do servidor mestre (master ) do NIS sempre que as mudancas s~ao feitas no banco de
dados do mestre. Dependendo do numero de maquinas na sua rede e da con abilidade da
sua rede, pode-se decidir instalar um ou mais servidores escravo. Sempre que um servidor
de NIS demora ou esta muito lento para responder a pedidos, um cliente de NIS conecta
ao servidor e tenta achar um ou o mais rapidamente.
Bancos de dados de NIS est~ao em formato denominado DBM, derivado de bancos de
dados ASCII. Por exemplo, os cheiros de /etc/passwd e /etc/group podem ser directamente convertidos em formato DBM usando um software de traduc~ao ASCII-para-DBM
(makedbm, e includo com o software do servidor). O servidor mestre NIS deve ter ambos,
os bancos de dados em ASCII e os bancos de dados em DBM.
Ser~ao noti cados os servidores escravo de qualquer mudanca para o mapa NIS, (atraves do

109

6.3. NIS

programa yppush ), e automaticamente actualiza o necessario das mudancas para sincronizar os bancos de dados. Os clientes de NIS n~ao fazem parte disto, eles encontram-se sempre
em conversac~ao com o servidor de NIS para ler a informac~ao armazenada nos bancos de
dados DBM.
O autor dos clientes de YP para linux informou-nos que o mais recente ypbind (em ypclients.tar.gz ) pode ser adquirido no cheiro de con guraca~o do servidor - assim n~ao e
necessario usar o broadcast (que e inseguro - devido ao facto que qualquer um pode instalar um servidor de NIS e pode responder as quest~oes de broadcast...)

6.3.3 O que e necessario para con gurar o NIS?


6.3.3.1 O RPC Portmapper
Para correr qualquer dos softwares abaixo mencionados precisa-se de executar o programa /usr/sbin/rpc.portmap. Algumas distribuic~oes do Linux ja o t^em no codigo do
/etc/rc.d/rc.inet2 para comecar este daemon. Tudo o que se precisa fazer e descomentar
e reiniciar a sua maquina de Linux para activa-lo.
O RPC portmapper (portmap(8c)) e um servidor que converte programas de RPC em
numeros de TCP/IP (ou UDP/IP) numeros de protocolos para porta. Deve ser executado
para chamar o RPC (que e o que o software cliente de NIS faz) para servidores de RPC
(como um servidor de NIS) naquela maquina.
Quando um servidor de RPC e inicializado, diz ao portmap qual o numero da porta esta a
escutar. Quando um cliente deseja fazer com que um RPC chame um determinado numero
de programa, contactara o portmap primeiro na maquina do servidor para determinar o
numero da porta onde deve ser enviados os pacotes de RPC. Normalmente, servidores de
RPC padr~ao s~ao comecados por inetd(8C), assim o portmap deve ser iniciado antes do
inetd ser invocado.

6.3.3.2 Determinar se se e um Servidor, Escravo ou Cliente


Para responder a esta pergunta a que considerar dois casos:
1. A sua maquina vai ser parte de uma rede com servidores NIS existente
No primeiro caso, so se precisa do programa cliente (ypbind, ypwhich,
ypcat, yppoll, ypmatch ). O programa mais importante e o ypbind. Este
programa tem que estar a correr a todo momento, isto e, deve sempre aparecer na lista de processos. E denominado processo daemon e precisa de

110

Captulo 6. Servicos

ser comecado atraves do startup do cheiro do sistema (eg. /etc/rc.local ).


Logo como ypbind estiver a correr, o seu sistema torna-se um cliente de
NIS.
2. N~ao existe nenhum servidor de NIS na network
No segundo caso, se n~ao existe nenhum servidor de NIS, ent~ao tambem se
precisa de um programa servidor de NIS (normalmente chamado ypserv ).
Tambem ha outro servidor de NIS gratis disponvel, chamado yps, escrito, por Tobias Reber
na Alemanha que suporta o conceito mestre-escravo, mas tem outras limitac~oes.

6.3.3.3 O Software
A biblioteca do sistema /usr/lib/libc.a (vers~ao 4.4.2 e ou melhor) ou a biblioteca de compartilhamento /usr/lib/libc.sa e sua DLL relacionada que cont^em todas as chamadas necessarias ao sistema para o sucesso para compilar o cliente NIS e o software do servidor.
Algumas pessoas informaram que somente o NIS trabalha com o /usr/lib/libc.a vers~ao
4.5.21 e ou melhor, assim se se quiser utilizar n~ao se deve usar um libc mais antigo. O
software cliente NIS pode ser obtido em:
Local
ftp.uni-paderborn.de
ftp.funet.fi
ftp.lysator.liu.se

Diretorio
/linux/local/yp
/pub/Linux/BETA/NYS/clients
/pub/NYS/clients

Nome do Ficheiro
yp-clients-2.2.tar.gz
yp-clients-?.?.tar.gz
yp-clients-?.?.tar.gz

Uma vez obtido o software, segue-se as instruc~oes que v^em com o software.

6.3.3.4 Montar um Cliente de NIS que utiliza o NIS Tradicional


Assumindo que se teve sucesso na compilaca~o do software e que esta-se pronto para instalar o software. Um lugar satisfatorio para o daemon de ypbind e o diretorio /usr/sbin.
Precisa-se fazer isto obviamente como root. Os outros binarios (ypwhich, ypcat, yppoll,
ypmatch ) devem estar num diretorio acessvel por todos os utilizadores, por exemplo
/usr/etc ou /usr/local/bin. Poderia ser uma boa ideia testar o ypbind antes de colocalo no /etc/rc.d/rc.inet2. Para se testar o ypbind faz-se o seguinte:
1. Corre-se seguramente se se tem o seu conjunto de nome de domnio. Se n~ao e,
con gure para emitir o comando:

111

6.3. NIS
/bin/domainname-yp nis.domain

~ de na com a associc~ao do nome de


onde nis.domain deve ser alguma string, NAO
domnio da sua maquina! A raz~ao para isto e di cultar um pouco mais a invas~ao da
maquina para obter o banco de dados de password do seu servidor de NIS. Se n~ao se
sabe p^or o nome de domnio de NIS em sua rede, pergunte ao seu administrador de
sistema/rede.
2. Inicialize o /usr/sbin/rpc.portmap se ja n~ao estiver a correr.
3. Crie um diretorio /var/yp se n~ao existir.
4. Inicialize o /usr/sbin/ypbind
5. Use o comando rpcinfo -p localhost para conferir se o ypbind foi capaz de de nir o
seu servico no portmapper. O rpcinfo deve produzir algo como:
program vers proto
100000
2
tcp
100000
2
udp
100007
2
udp
100007
2
tcp
300019
1
udp

port
111
111
637
639
660

portmapper
portmapper
ypbind
ypbind

6. Pode-se tambem executar rpcinfo -u localhost ypbind. Este comando deve produzir
algo como:
program 100007 version 2 ready and waiting

Finalmente, n~ao esquecer de colocar os lookups do host, que t^em que ser con gurados por
si nis para o lookup na linha order do seu cheiro de /etc/host.conf. Para maiores detalhes
de ler-se o manpage resolv+.8 para maiores detalhes. Neste momento deve-se poder usar
os programas cliente NIS como ypcat, etc... Por exemplo, ypcat passwd que dara por inteiro
o banco de dados do NIS para passwd.

Importante: Se se saltou o procedimento de teste ent~ao tem de se ter a certeza que se


con gurou o nome de domnio, e criou o diretorio:
/var/yp

Este diretorio tem que existir para que o ypbind possa comecar com sucesso.
Se o seu trabalho de teste acabou agora pode-se querer mudar os cheiros /etc/rc.d/rc.M
e /etc/rc.d/rc.inet2 que ser~ao executados no seu sistema de forma que o ypbind durante o tempo de boot do seu sistema aja como um cliente de NIS. Edita-se o cheiro

112

Captulo 6. Servicos

/etc/rc.d/rc.M e procura-se os comandos que con guram o nome de domnio. Muda-se o


nome de domnio no nome do seu domnio. Tambem, se edita o cheiro /etc/rc.d/rc.inet2, e
comenta-se as linhas que comecam o daemon de rpc.portmap, e soma-se as linhas seguintes
logo apos o lugar onde rpc.portmap e inicializado:
#
# Start the ypbind daemon
#
if [ -f \${NET}/ypbind -a -d /var/yp ]; then
echo -n " ypbind"
\${NET}/ypbind
fi

6.3.4 O que e preciso para montar o NYS?


6.3.4.1 Determinar se se e um Servidor, Escravo ou Cliente.
Para respondendo a esta pergunta tem-se que considerar dois casos:

 Que a sua maquina vai ser parte de uma rede com servidores NIS
 Que n~ao se tem nenhum servidor de NIS na rede
No primeiro caso tem-se duas escolhas:
1. Pode-se voltar a ligar todo o cliente e programa daemon com a biblioteca NYS
libnsl.so. Isto seria acrescentrar a seguinte linha:
LIBS=-lnsl

no seu make le signi ca que se quer unir os Servicos de Biblioteca para Netowrk.
Basicamente todos os daemons da rede e o programa de login seria necessario ser
recompilado.
2. Ou pode-se recompilar a biblioteca C padr~ao libc para incluir a biblioteca NYS de
cliente para que a biblioteca libc normal funcione, e ent~ao voltar a ligar todos os links
estastisticos de programas (o link din^amico une programas automaticamente e pode
ser adquirido nas novas vers~ao de libc).
Semelhante ao caso do NIS tradicional, se n~ao se tem servidores NIS, ent~ao tambem se
precisa de um programa servidor de NIS (normalmente chamado de ypserv ) e tem que se
designar um das maquinas em sua rede como servidor mestre de NIS. Novamente, pode-se
querer de nir mais de um servidor escravo tambem.

113

6.3. NIS

6.3.5 O Software
Precisa-se de arranjar e compilar a biblioteca libnsl.so do NYS. Se n~ao se tem as ferramentas
de DLL instaladas pode-se obter uma pre-compilada, estatica e sub biblioteca no mesmo
site mencionado abaixo. Porem, note que a vers~ao pre-compilada pode ser (e provavelmente
e) mais antiga que o codigo fonte mais recente lancado.
A biblioteca do NYS (fonte e vers~ao pre-compiladas) pode ser obtido em:
Site
ftp.lysator.liu.se
ftp.lysator.liu.se

Diretorio
/pub/NYS/libs
/pub/NYS/binaries/lib

Nome do Ficheiro
nys-0.27.4.tar.gz
libnsl.so.1.0.a26

A pre-compilac~ao do "login"e "su"tambem podem ser obtida em:


Site
ftp.lysator.liu.se
ftp.lysator.liu.se

Diret
orio
/pub/NYS/binaries/bin
/pub/NYS/binaries/bin

Nome do ficheiro
login
su

Semelhante aos cheiros de con gurac~ao do exemplo podem ser obtidos em:
Site
ftp.lysator.liu.se
ftp.funet.fi

Diret
orio
/pub/NYS/binaries/etc
/pub/Linux/BETA/NYS/etc

Nome do ficheiro
*conf
*conf

Para a compilac~ao da biblioteca nsl, segue-se as instruc~oes que v^em com o software. Se
se desejar compilar a biblioteca de partilha DLL tem que se ter as ferramentas de DLL
instaladas no lugar da padr~ao (standard ) (/usr/dll ). As ferramentas de DLL (o pacote
tools-2.11.tar.gz ou superior) podem-se encontrar em muitos sites.

6.3.6 Con gurar um Cliente de NYS que usa o NYS


 diferente do NIS tradicional, n~ao nenhuma requer nenhuma con gurac~ao para o cliente
E
NIS. Tudo o que e necessario e a con gurac~ao do cheiro do NIS (/etc/yp.conf ) para o
serveridor(es) correcto para sua informac~ao. Tambem, a con gurac~ao do cheiro Name
Server Switch (/etc/nsswitch.conf ) deve ser con gurado corretamente.

6.3.7 O Ficheiro nsswitch.conf


O cheiro do Servidor de Rede de Nomes /etc/nsswitch.conf determina em ordem de
lookups quanto a execuc~ao uma certa parte de informaca~o e pedida, so com o cheiro

114

Captulo 6. Servicos

/etc/host.conf que determina o modo como ser~ao executados os lookups do host. Novamente, observe-se o cheiro de exemplo contido na distribuic~ao de fonte. Por exemplo, a
linha
hosts: nis files dns

especi ca as funco~es de lookup do host que devem em primeiro lugar fazer um lookup ao
NIS, de seguida ao cheiro local /etc/hosts e nalmente o servico verdadeiro de domnio
(/etc/resolv.conf e o named ) ao qual se n~ao for encontrado nada sera devolvido um erro.

6.3.8 Con gurar um Servidor de NIS


6.3.8.1 O Programa ypserv do Servidor
Esta parte so descreve como con gurar o ypserv do servidor de NIS. O yps do servidor
e semelhante, mas n~ao exactamente o mesmo, logo tem que se ter cuidado se se tentar
aplicar estas instruc~oes para o yps !
O software de servidor de NIS pode ser obtido em:
Site
ftp.lysator.liu.se
ftp.uni-paderborn.de

Diret
orio
/pub/NYS/servers
/pub/linux/local/yp

Nome do Ficheiro
ypserv-1.1.2.tar.gz
ypserv-1.1.2.tar.gz

A con gurac~ao do servidor e a mesma para NIS tradicional e para o NYS. Compile o
software para gerar o ypserv e programas makedbm. Primeiramente, determina quais os
cheiros que exigem para estar disponvel para o NIS e ent~ao adiciona-se ou remove as
entradas apropriadas para o ypMake le. Instala-se o cheiro ypMake le em /var/yp como
o cheiro Make le. Constroi-se o cheiro DBM com o comando:
\% cd /var/yp; make

Tem de se ter a certeza que o portmapper (rpc.portmap) esta a correr, e inicializa-se o


servidor ypserv. O comando
\% rpcinfo -u localhost ypserv

deve produzir algo como


program 100004 version 2 ready and waiting

E e isto, o seu servidor esta a correr.

115

6.3. NIS

6.3.8.2 O programa do Servidor yps


Monta-se o servidor de NIS yps referente ao captulo anterior. A con gurac~ao do servidor
yps e semelhante, mas n~ao exactamente o mesmo, logo tem que se ter cuidado se se tentar
aplicar as instruc~oes do ypserv para o yps !

O software de servidor de NIS yps pode ser obtido em:


Site
ftp.lysator.liu.se
ftp.funet.fi

Diret
orio
/pub/NYS/servers
/pub/Linux/BETA/NYS/servers

Nome do Ficheiro
yps-0.21.tar.gz
yps-0.21.tar.gz

6.3.8.3 O programa yppasswdd


Sempre que os utilizadores mudam as passwords deles, o banco de dados de passwords do
NIS e provavelmente outros bancos de dados do NIS que dependem de banco de dados de
password do NIS, devem ser actualizados. O programa yppasswdd e um servidor que controla as mudancas de password e tem a certeza que a informac~ao do NIS vai ser actualizado
adequadamente. O software para yppasswdd pode ser encontrado em:
Site
ftp.lysator.liu.se
ftp.funet.fi

Diretorio
/pub/NYS
/pub/Linux/BETA/NYS/servers

Nome do Ficheiro
yppasswdd-0.7.tar.gz
yppasswdd-0.7.tar.gz

Uma vez obtido o software, segue-se as instruc~oes que v^em com o software.

6.3.9 Veri car a instalac~ao do NIS/NYS


Se tudo esta bem (como deveria ser), pode-se veri car a sua instalaca~o com alguns comandos simples. Por exemplo, assumindo que o seu cheiro de password esta a ser provido
pelo NIS, o comando,
\% ypcat passwd

deve dar-lhe os conteudos do cheiro de password do NIS. O comando


\% ypmatch userid passwd

116

Captulo 6. Servicos

(onde userid e o login de um utilizador arbitrario) deve dar a entrada do utilizador no


cheiro de password do NIS. O ypcat e ypmatch devem ser includos nos programas da sua
distribuic~ao de NIS tradicional ou NYS.

6.4 Samba
O SAMBA e uma aplicac~ao que utiliza o protocolo SMB (no Linux, os "server daemons"
SMBD e NMBD) permitindo compatibilidade com redes que utilizam este protocolo, principalmente redes NetBios da Microsoft.
As mais recentes distribuic~oes ja trazem o SAMBA como padr~ao, mas o seu download
e actualizac~oes est~ao disponveis em http://us4.samba.org/samba/download.html.
Com o SAMBA e possvel partilhar directorios, impressoras, ter acesso a cheiros na rede,
exactamente como em redes Microsoft. Mas neste caso, o servidor e com o sistema operativo Linux a correr uma aplicac~ao espec ca. O Windows NT e o 2000 (assim como o
NetWare 5 e outros presentes no mercado) s~ao reconhecidos mundialmente pela sua seguranca e escalabilidade, mas o SAMBA possui muitas vantagens que se podem transformar
em soluc~oes e economia para uma empresa. Por exemplo:

 Permite compatibilidade com estaco~es Windows (de Workstation a 2000) e servidores

WinNT 4.0 e 2000. Entre servidores e estac~oes Linux (com Interface Gra ca, por
exemplo) a compatibilidade e total.

 O SAMBA e 100% con guravel, com a grande vantagem de centralizar esta con-

gurac~ao num unico cheiro, o smb.conf. Sem duvida e muito interessante ter a
possibilidade de restaurar toda a con guraca~o que disponibiliza o seu Servidor de Ficheiros (inclusive as permiss~oes de acesso) atraves do backup de apenas um cheiro,
em casos de desastre. Porem isto n~ao quer dizer que n~ao seja necessario o backup de
outros cheiros de con gurac~ao...

 Todo o servidor SAMBA pode ser con gurado remotamente, alem de receber por
email informac~oes do estado do servidor (bastando utilizar um script espec co que
faca a pesquisa de informac~oes nos cheiros de log e crie um cheiro que pode ser
enviado por email).

 Quanto a economia n~ao ha o que discutir: o Linux e o SAMBA est~ao disponveis
para download na Internet sem custos com licencas ou actualizaco~es para qualquer
utilizador comum ou empresa que se interesse em utiliza-lo.

 O suporte esta disponvel 24h por dia, o ano todo: alem de no proprio site do SAMBA

existirem milhares de sites e listas de discuss~ao dedicadas ao assunto, entre outras

117

6.4. Samba

documentac~oes e artigos em sites de renome por Administradores e Engenheiros de


Redes Linux.

6.4.1 Instalac~ao
Se a distribuic~ao que deseja utilizar ja traz o SAMBA, a instalac~ao n~ao e necessaria. Se
deseja actualiza-lo ou iniciar a instalac~ao, devem seguir-se os seguites passos:
1. Para instalar o SAMBA e necessario antes de mais saber se o pacote esta no formato
RPM ou .tar (.tgz ou .tar.gz).

 Se o pacote for um RPM, executa-se o seguinte comando


rpm -ivh samba-2.0.x-i386.rpm

Substituindo o x pelo numero relativo a vers~ao do pacote ou o nome correcto


do pacote dependendo da sua distribuic~ao. Para actualizar o SAMBA actual,
substitui-se a sintaxe -ivh por -Uvh.

 Se o pacote for no formato tar.gz, executa-se o comando


tar -zxvf samba-2.0.x-i386.tar.gz

Vai ser criado um directorio com o nome samba-2.0.x.


2. Entra-se neste directorio e em seguida no subdirectorio source. Para iniciar a instalac~ao executa-se ./configure seguido do comando make
Os binarios do SAMBA ser~ao criados. Quando terminar executa-se make install
Agora os binarios e paginas do manual ser~ao instalados. Aguarda-se o processo
e quando terminar pode consultar-se o directorio /usr/doc/samba-2.0.x/docs para
informac~oes sobre o SAMBA.

6.4.2 Con gurac~ao


Toda a con gurac~ao do SAMBA e centralizada no cheiro smb.conf, que deve ser guardado
no directorio /etc. Nele s~ao descritos as partilhas, permiss~oes de acesso, impressoras, dentre
outras con gurac~oes disponveis. Quando instalado, o SAMBA disponibiliza os seguintes
componentes:

 smbd - O servidor SAMBA


 nmbd - O Servidor de nomes NetBios

118

Captulo 6. Servicos

 smbclient - Cliente SMB para sistemas Unix


 smbpasswd - Alterar passwords de utlizadores smb
 smbprint - Cliente para envio de impress~ao a sistemas Linux
 smbstatus - Apresenta a situac~ao actual das ligaco~es SMB no Host
 testparm - Veri ca o cheiro smb.conf (con gurac~ao do SAMBA)
 testprns - Veri ca a comunicac~ao via rede com as impressoras
O smb.conf e dividido basicamente em tr^es partes:

 a con gurac~ao do servidor SAMBA (par^ametros na secc~ao [global]);


 a con gurac~ao dos directorios/pastas pessoais dos utilizadores (par^ametros na secc~ao
[homes];

 e as demais secc~oes que correspondem aos directorios partilhados.


Cada secc~ao e representada entre parentesis rectos [teste], e os par^ametros s~ao seguidos
do sinal de igual = e o valor ou termo correspondente. De seguida pode-se observar um
exemplo do smb.conf seguido da explicac~ao de cada par^ametro presente nas secc~oes:
[global]
comment = Servidor SAMBA
workgroup = MCT
security = user
os level = 100
announce as = NT Server
domain logons = yes
logon script = \%U.bat
logon path =\%L\\Profiles\%U
domain master = yes
local master = yes
preferred master = yes
guest account = nobody
wins support = yes
keep alive = 20
debug level = 3
winpopup command = csh -c 'xedit \%s;rm \%s' &
log file = /var/log/samba_log.\%u

6.4. Samba
null passwords = no
unix password sync = yes
socket options = IPTOS_LOWDELAY TCP_NODELAY
printing = bsd
printcap name = /etc/printcap
load printers = yes
hosts allow = 192.168.2.
hosts deny = 192.168.0.3 192.168.0.4
[homes]
comment = Pastas dos Utilizadores
public = no
browseable = yes
writeable = yes
hosts deny = 192.168.0.250
[printers]
comment = Impressoras Linux
public = no
browseable = yes
printable = yes
read only = yes
create mode = 0700
path = /var/spool/samba
admin users = admin, utilizador1
[netlogon]
comment = Partilha de Scripts
path = /etc/scripts
public = no
browseable = yes
writeable = no
[users]
comment = Utilizadores comuns
path = /home/comuns
public = yes
browseable = yes
writeable = yes
write list = @comuns
read list = @comuns
force create mode = 0777

119

120

Captulo 6. Servicos
force directory mode = 0775
max disk size = 200
[oculto\$]
comment = S
o para Admnistradores
path = /home/admin/oculto
copy = homes
max connections = 1

A secc~ao [global] de ne as con gurac~oes globais do SAMBA. A tabela seguinte apresenta


a explicac~ao dos par^ametros do exemplo:

comment

Comentario para este host na rede

workgroup

Especi ca o domnio ou workgroup a que este host pertence na rede

security

Por padr~ao o SAMBA utiliza a seguranca a nvel do utilizador (security = user), mas
existem outras opc~oes:

 security = share - Ser~ao solicitadas passwords por cada recurso partilhado e n~ao por

utilizador, ou seja, cada directorio ou impressora podera ter uma password unica
conhecida apenas pelos utlizadores autorizados.

 security = user - As permiss~oes s~ao dadas de acordo com o login do utilizador, ou


atraves dos grupos (@grupo).

 security = server - O SAMBA tentara validar a password do utilizador enviando

os dados para outro servidor SMB, como outro servidor SAMBA ou um servidor
Windows. Deve-se incluir o par^ametro .password server = x.x.x.x. na secc~ao [global]
do smb.conf.

 security = domain - Usado se o Host for adicionado a um domnio Windows atraves

do comando smbpasswd. Neste caso as informac~oes do utilizador e password ser~ao


enviadas para o PDC da rede, exactamente como o servidor NT faria. De notar
que e necessario que a conta do utilizador exista tanto no Linux quanto no servidor
primario

os level

Este par^ametro n~ao e obrigatorio se n~ao se possui um servidor Windows na rede, mas deve
ser usado caso se tenha um ou mais. A variavel e um numero de 1 a 255, onde 65 e a

6.4. Samba

121

mesma variavel utilizada pelo servidor Windows. Deve-se utilizar um numero maior que
este (como 100 por exemplo) para garantir que o servidor SAMBA seja eleito na escolha
de validac~ao do login das estac~oes

announce as

Permite especi car o tipo de servidor NetBios (nmbd) que sera divulgado na rede. As
opc~oes aceites pelo SAMBA: "NT Server", "NT Workstation", "Win95"ou "WfW"

domain logons

Usado para validar o login na rede, apenas para estac~oes Windows

logon script

Indica qual cheiro de logon cujo script sera executado para os utilizadores. A variavel
%u corresponde ao utilizador na rede. Deve tambem ser criado uma partilha de nome
[netlogon] apontando para o directorio dos scripts

logon path

Indica o caminho do per l remoto do utilizador. A variavel %L corresponde ao nome do


servidor NetBios (que pode ser o proprio SAMBA). O logon path e util quando utilizadores
costumam efectuar logon em mais de um Host na rede, pois o seu per l e trazido com o
logon. No caso do exemplo, o directorio "Pro les"deve conter os scripts (em formato Microsoft usando NET USE e etc) e os scripts devem ser criados com o notepad do Windows
por exemplo, a m de conservar o formato do cheiro

domain master

Indica se o Host sera o Domain Master Browser de toda a rede (WAN)

local master

Indica se o Host sera o Master Browser da rede local

preferred master


Este par^ametro forca a eleic~ao do SAMBA como Master Browser para o workgroup. E
recomendavel utilizar este par^ametro em conjunto com o .domain master = yes. para garantir a eleicao.

Nota: se se possuir uma rede com servidores Windows e SAMBA e tambem possuir um
servidor como Domain Master, n~ao se usa esta opc~ao e deixa-se o par^ametro .os level =
65. para haver equilbrio

guest acount

O SAMBA trabalha melhor em redes Microsoft com a exist^encia de uma conta guest (visitante em ingl^es). Por padr~ao a conta usada e nobody...

122

Captulo 6. Servicos

wins server

Indica qual o servidor de Wins da rede. Se o proprio Host for o servidor de Wins ent~ao
n~ao se utiliza este par^ametro, pois havera um loop e o sistema para!

wins support

Permite ao SAMBA ser o servidor de Wins na rede. Isto signi ca que o SAMBA tera uma
tabela com o ambiente completo da rede, garantindo que as estac~oes tenham acesso a estas
informac~oes e ganhem em velocidade para encontrar e aceder as partilhas e impressoras.
O Wins Server deve ser especi cado na con guraca~o de rede (TCP/IP) das estac~oes, que
e o endereco IP do servidor

keep alive

Como as maquinas que correm Windows tendem a bloquear de tempos a tempos, este
par^ametro e usado para veri car o estado da ligac~ao, evitando trafego desnecessario na
rede. Tambem pode ser usado para estaco~es Linux

debug level

Par^ametro usado para dar exibilidade a con guraca~o do sistema. Permite ao SAMBA
trabalhar correctamente com algumas situac~oes de erro, por exemplo

winpopup command

Especi ca qual e o comando que sera executado quando o servidor receber mensagens
Winpopup. Aqui, muitas opc~oes podem ser usadas de acordo com a prefer^encia do Administrador. Se a sua rede utiliza mensagens deste tipo, e interessante de nir um comando
para o par^ametro, evitando assim possveis mensagens de erro para quem enviou a mensagem ao servidor

log le

Indica o cheiro de log do SAMBA. A variavel %u corresponde ao nome de logon do utilizador

null passwords

Indica se sera ou n~ao possvel que alguns utilizadores tenham password nula de logon (logon sem password)

unix password sync

Se este par^ametro for activado (= yes) ent~ao clientes SMB (como estac~oes Windows) poder~ao alterar a sua password de login

socket options

Este par^ametro permite con gurac~oes extras para o protocolo, possibilitando uma melhor
performance do servidor em lidar com os pacotes na rede

6.4. Samba

123

printing

Indica qual o sistema de impress~ao padr~ao utilizado pelo Linux

printcap name

Indica o cheiro para procura das de nic~oes das impressoras

load printers

Disponibiliza as impressoras para a rede

hosts allow

Indica quais as maquinas que tem acesso ao servidor SAMBA. Pode-se utilizar o endereco
IP ou o nome da maquina. Para garantir acesso a toda uma rede por exemplo, escreva:
"hosts allow = 172.16.90."

hosts deny

Como em "hosts allow", mas para restringir o acesso ao servidor SAMBA

A secc~ao [homes] de ne os par^ametros para as pastas pessoais dos utilizadores na rede


(home dir):

comment

Comentario para esta partilha

public

Tambem conhecido como .guest ok., permite ou n~ao acesso de outros utilizadores

browseable

De ne se a partilha sera ou n~ao visvel para o Ambiente de Rede. Estaco~es Windows95


vers~ao 4.00.950-C n~ao aceitam esta opc~ao, onde uma possvel soluc~ao e utilizar o nome da
partilha seguido de $ (teste$ por exemplo), como se faz no Windows

writeable

Indica se o utilizador podera ou n~ao escrever na sua pasta pessoal (home dir)

As demais secc~oes correspondem a partilhas presentes na rede. Os par^ametros seguintes s~ao apenas alguns dos possveis:

comment

Comentario para esta partilha

124

Captulo 6. Servicos

path

Caminho do directorio mpartilhado

writeable

Indica se sera ou n~ao possvel criar ou excluir cheiros ou directorios da partilha

public / guest ok

Indica se sera ou n~ao permitido o acesso de outros utilizadores

browseable

De ne se a partilha sera ou n~ao visvel para o Ambiente de Rede

write list

De ne os utilizadores e/ou grupos com acesso de escrita na partilha. Para mais de um


utilizador, separa-se os nomes por vrgula (user1, user2, etc) e para grupos utiliza-se @
antes do nome do grupo

read list

Como em \write list", mas de ne quem tera permiss~ao de apenas leitura

force create mode

Diz ao SAMBA para forcar o tipo de permiss~ao dos cheiros criados (o mesmo que usar o
chmod). Esta permiss~ao tem menor prioridade que os par^ametros write list e read list

force directory mode

O mesmo que .force create mode., mas para os directorios criados na partilha

admin users

Indica quais s~ao os utilizadores com permiss~ao completa para a partilha (permiss~ao de root)

copy

Permite copiar os par^ametros de outra secca~o, como um template por exemplo, util se se
utiliza partilhas semelhantes. Para alterar par^ametros basta informa-los na secc~ao actual

hosts allow

Indica quais as maquinas que podem aceder a partilha. Pode-se utilizar o endereco IP ou
o nome da maquina. Para garantir acesso a toda uma rede classe C por exemplo, escreva:
"hosts allow = 172.16.90."

hosts deny

Como em "hosts allow", mas para restringir o acesso a partilha

125

6.4. Samba

max connections

Permite especi car o numero maximo de ligac~oes simult^aneas a partilha

max disk size

Permite especi car qual o limite de espaco em disco que a partilha pode utilizar. Este
valor e de nido em Mb (megabytes)
De seguida apresentam-se as variaveis que podem ser usadas em par^ametros e a respectiva
func~ao:
Variaveis Func~oes
%S
Nome do Servico (partilha) actual
%u
Nome do utilizador
%g
Nome do grupo
%H
Nome do directorio pessoal do utilizador
%m
Nome da maquina cliente fornecido pelo NETBIOS
%L
Nome do servidor NETBIOS, permite que a con gurac~ao desejada
seja alterada de acordo com o cliente que vai aceder ao sistema
%M
Nome Internet da maquina cliente
%a
Sistema operativo da maquina remota, onde os reconhecidos s~ao
WfW, WinNT e Win95
%I
O endereco IP da maquina cliente
%T
Data e horario
Tabela 6.1: Variaveis dos par^ametros gerais do smb.conf
Agora que o smb.conf esta con gurado o melhor e fazer um teste para saber se esta tudo
correcto, com o comando testparm > teste config samba
Sera criado o cheiro teste con g samba. Confere-se este cheiro e caso exista alguma
mensagem de erro (ERROR...) volta-se e corrige-se o problema. Feitas as con gurac~oes,
deve-se activar o SAMBA com o comando /etc/rc.d/init.d/smb start
Se se quiser veri car se o SAMBA esta a funcionar, executa-se o comando anterior mas
substitui-se o "start"por "status". Para que o SAMBA seja iniciado sempre apos a inicializac~ao do servidor, executa-se o ntsysv e marca-se o SMB. Tambem se pode escrever a
linha de "start"do smb no cheiro /etc/rc.d/rc.local, da seguinte forma:
1. Executa-se vi /etc/rc.d/rc.local
2. Tecla-se i para editar e corre-se ate ao nal do cheiro

126

Captulo 6. Servicos

3. Escreve-se a seguinte linha: /etc/rc.d/init.d/./smb start


4. Tecla-se Esc e em seguida : e depois wq
A partir de agora, sempre que o computador for reinicializado o SAMBA sera activado
automaticamente.

6.5 Sendmail
A primeira vers~ao foi escrita em 1979, por Eric Allman e desde ent~ao tem sido includo
em todas as distribuic~oes Unix. Ficou um pouco "esquecido"pelo autor entre 1982 e 1990
e por este e outros motivos, os diversos fabricantes de Unix (IBM, HP, Sun) trataram de
expandir e melhorar o sendmail original. O resultado desse processo foi o aparecimento de
inumeras vers~oes incompatveis entre si.
Em 1994, Eric comecou a trabalhar na vers~ao 8.7 do sendmail, que incorporou a maioria das extens~oes apresentadas pelos UNIX's comerciais. Assim, o sendmail passou a ser
novamente um programa unico. A vers~ao actual do sendmail e a 8.9.2, que foi lancada no
nal de 1998.

6.5.1 Principais vantagens

 Padr~ao da Internet

Mais de 70% dos servidores de e-mail utilizam o sendmail como MTA (Mail Transfer
Agent). O QMail ainda detem um setimo lugar em utilizac~ao na Internet, atras do
Exchange Server da Microsoft e de outros.

 Documentac~ao

Existe uma quantidade razoavel de documentac~ao sobre o sendmail na Internet; existem HOWTOs dedicados a certos aspectos da con gurac~ao do sendmail; e caso tudo
isto falhe, sempre ha o livro Sendmail3, mais conhecido pelos ntimos como BatBook.
Ainda n~ao existe um livro para o QMail, e a documentaca~o sobre o mesmo na Internet ainda e pouca. A documentaca~o on-line e su ciente porem esparsa, ainda pode
melhorar bastante.

 Con gurac~ao poderosa/ exvel

A exibilidade de con gurac~ao do sendmail e impressionante, bem superior a do


QMail. Essa exibilidade e heranca de uma epoca onde redes TCP/IP, UUCP e
outras tinham de conviver em harmonia. Hoje, com o monopolio do TCP/IP e

3 Sendmail,

2nd Edition, Brian Costales with Eric Allman, O' Reilly & Associates, January 1997

6.5. Sendmail

127

da uniformizac~ao da Rede, essa vantagem do sendmail ja n~ao e um diferencial tao


importante.

 Suporte comercial

A Sendmail Inc., empresa fundada pelo proprio Eric Allman, vende vers~oes comerciais do sendmail com front-end gra co de con guraca~o. Isto pode ser interessante
para aqueles que precisam de suporte comercial ou fazem quest~ao da con gurac~ao
facilitada em modo gra co. No caso do QMail, o que existe s~ao empresas que d~ao
suporte comercial ao QMail, sem vinculac~ao directa com o autor.

 Vers~ao para NT

Uma das vers~oes comerciais e para a plataforma Windows NT. N~ao existe vers~ao do
QMail para Windows.

6.5.2 Exemplos de con gurac~ao do Servidor


A maioria de nos tem maquinas ligadas a Internet por conex~ao dial-up. A princpio, isso
tira o merito de correr um servidor de e-mail. Mas nos queremos um servidor de e-mail
so nosso. Os exemplos de con gurac~ao a seguir abordam esse caso, e est~ao a funcionar no
nosso servidor.
O nosso servidor de Internet: estv.ipv.pt
Demos a nossa maquina o nome gel.estv.ipv.pt (o no e gel, o dominio e estv.ipv.pt).
Executamos o comando cat /etc/hosts e devemos ter um resultado parecido com
\# For loopbacking.
127.0.0.1
localhost
127.0.0.1
gel.estv.ipv.pt gel

de seguida fazemos cat /etc/HOSTNAME e obtemos algo como


gel.estv.ipv.pt

Este nome da maquina - gel - n~ao esta registado no DNS do nosso servidor, portanto
ninguem do mundo exterior chegara a nossa maquina usando esse nome. Ele so e reconhecido localmente.
Utilizadores no sistema local: Ricardo Silva e Rui Cabral. Poderiam haver mais.
Caixa postal no servidor de e-mail do servidor de Internet: ricardosilva@gel.estv.ipv.pt (Os

128

Captulo 6. Servicos

programas de envio de e-mail devem estar con gurados com este nome de caixa postal,
para que os diversos campos do e-mail, como "Return-Path:"e outros estejam preenchidos
com um e-mail valido. A n~ao observ^ancia deste facto fez com que o nosso servidor aceitasse
todos os nossos e-mails mas n~ao entregasse nenhum...)
Devera ser possivel mandar e-mails entre utilizadores locais sem que esses e-mails sejam
repassados ao servidor da ESTV. Obviamente, devera ser possvel mandar e-mails para
outras caixas postais da ESTV.
E-mails para sites remotos devem ser simplesmente passados adiante ao servidor de email da ESTV. Por que n~ao entregar directamente no site de destino ? Pois isto pode
tomar muito tempo se o site for distante e lento (imagine, mandar um arquivo enorme
para quem@hotmail.com). Queremos entregar rapidamente o e-mail para a ESTV e ela
que se encarregue de manda-lo adiante.
Como o nome gel.estv.ipv.pt n~ao e conhecido na Internet queremos que os nossos correspondentes remotos mandem replys para ricardosilva@estv.ipv.pt, e n~ao para ricardosilva@gel.estv.ipv.pt. Isto implica em que nosso servidor de e-mail modi que o endereco
do remetente, tirando fora o "gel".

6.5.3 Con gurac~ao do servico


O primeiro passo e instalar o sendmail. A maioria, se n~ao a totalidade das distribuic~oes
Linux vem com o sendmail; basta instalar o respectivo TGZ ou RPM. A propria instalaca~o
ja activa o servico na porta 25, basta reiniciar a maquina.
Con gurar directamente o arquivo /etc/sendmail.cf seria uma aventura a parte. Aqui,
utilizaremos um processador de macros (m4) para gerar o arquivo de con guraca~o. Quem
quiser pode usar o di para ver em que pontos o /etc/sendmail.cf padr~ao sera modi cado.
cd /usr/src/sendmail/cf/cf

Crie um arquivo de con gurac~ao com este conteudo:


include(` ../m4/cf.m4 )
VERSIONID(`versao EPX para workstations dial-up)dnl
OSTYPE(linux)
FEATURE(nouucp)dnl
FEATURE(masquerade\_envelope)
FEATURE(genericstable, `hash -o genericstable)
GENERICS\_DOMAIN\_FILE(`/etc/genericsdomain)

129

6.5. Sendmail
define(`SMART\_HOST,`estv.ipv.pt)
define(`ALIAS\_FILE,`/etc/aliases)
MAILER(local)dnl
MAILER(smtp)dnl

A feature masquerade envelope indica que queremos mascarar o remetente. De facto, queremos que ricardosilva@gel.estv.ipv.pt saia como ricardosilva@estv.ipv.pt para o mundo
externo.
A de nic~ao SMART HOST permite-nos dizer para que servidor de e-mail devemos passar
adiante as mensagens n~ao locais. N~ao queremos entrega-las nos mesmos, pois isto demoraria muito e ocuparia muito tempo de uma cara linha telefonica. Se fossemos um servidor
Internet, n~ao usaramos este recurso.
Depois executa-se o comando
m4 epx.mc > /etc/sendmail.cf

Agora, vamos ao directorio /etc, criar algumas tabelas.


cd /etc
echo "" > genericstable
echo "ricardosilva ricardosilva@estv.ipv.pt" >> genericstable
echo "root ricardosilva@estv.ipv.pt" >> genericstable
makemap -r hash genericstable.db < genericstable

A func~ao desta tabela e determinar que os enderecos da primeira coluna - no caso, enderecos
locais - ser~ao convertidos para os enderecos a direita. Quem eventualmente responder a
um de nossos e-mails, mandara a resposta para a caixa postal do servidor de Internet, que
atende 24h por dia e esta registada no DNS.
echo "gel.estv.ipv.pt> genericsdomain

Os domnios constantes neste arquivo ser~ao considerados locais. Pelo menos no nosso
caso, basta inserir o nome da nossa propria maquina.
echo "postmaster:
newaliases

ricardosilva> aliases

A func~ao desta tabela e passar adiante os e-mails de certos utilizadores para outros. Todo
o servidor de e-mail deve aceitar mensagens para o utilizador postmaster, ent~ao no nosso
caso passaremos estas mensagens adiante para um utilizador real.

130

Captulo 6. Servicos

killall -1 sendmail

Ordenamos ao sendmail que releia os nossos arquivos de con gurac~ao, e a temos o nosso
proprio servidor de e-mail.

6.5.4 Outros Servidores de Mail


O QMail foi escrito por D. J. Bernstein. A primeira vers~ao publica (beta, 0.7) foi lancada
em Janeiro de 1996.
Por ser um programa recente, levou em conta desde o incio quest~oes como seguranca,
que se tornaram crticas apos a difus~ao explosiva da Internet. Tambem levou em conta os
problemas e complexidades do proprio sendmail; e procurou mimi car todos os seus recursos. Disto resultou um programa que e o principal concorrente free-software do sendmail.
A vers~ao atual do QMail e a 1.03, lancada em Junho de 1998. O site do QMail e
http://www.qmail.org.
As suas principais vantagens s~ao:

 Velocidade

Segundo o autor, o QMail e ate 100 vezes mais rapido que o sendmail em determinadas
tarefas.

 Seguranca

O QMail foi projectado desde o incio para ser seguro. O autor chegou a oferecer
um premio de US$ 1.000 para quem conseguisse invadir uma maquina por meio de
uma fraqueza do QMail. Ninguem conseguiu, e o dinheiro acabou ser doado a Free
Software Foundation.
Enquanto o sendmail e um programa monoltico (um unico executavel que faz tudo)
corendo com permiss~oes de administrador da maquina, o QMail e dividido em diversos executaveis, dos quais apenas um (o que faz a gest~ao da la) tem permiss~ao
de administrador da maquina. Mesmo que um invasor remoto consiga tomar conta
de um dos programas de comunicaca~o, n~ao tera permiss~ao para fazer muita coisa.
Por outro lado, se ele tomar conta do sendmail, tera permiss~oes de administrador da
maquina.
Outro aspecto interessante do QMail e que ele usa uma biblioteca propria, diferenciada, para lidar com strings. Isto praticamente elimina as hipoteses de ocorrer um
crash do bu er, que e o defeito mais comum explorado na invas~ao de um programa.

 Facilidade de con gurac~ao

A forma de armazenamento dos par^ametros de con guraca~o e directa, honesta, em

6.6. Apache+SSL+PHP4 com a Interface de Webmail IMP

131

arquivos claramente nominados, e incrivelmente facil de entender e manter. A con gurac~ao via macros e relativamente facil, mas depois que se tenha uma boa noc~ao
do funcionamento geral do sendmail, e isso e di cil obter.

 Adopc~ao bem-sucedida por grandes utilizadores de e-mail

Empresas como Red Hat e outras substituram o sendmail pelo QMail com sucesso.

6.6 Apache+SSL+PHP4 com a Interface de Webmail


IMP
Muitos ISP (Internet Services Provider), faculdades e entidades ligadas a Internet necessitam de um servico de Webmail para os seus utilizadores. Atraves de uma interface intuitiva
as pessoas t^em acesso a sua conta de e-mail, lendo e escrevendo novas mensagens, armazenando contactos, entre outras utilidades. Devido a grande facilidade e utilizac~ao, os
servicos de Webmail s~ao de grande popularidade na Internet. Grandes empresas oferecem
este servico de forma gratuita para os utilizadores da Internet, podemos citar o Hotmail,
Yahoo e Portugalmail como exemplos da grande procura e utilizac~ao deste servico.
No mundo Unix temos diversos aplicativos que oferecem um interface de Webmail para
os utilizadores. Desde soluc~oes gratuitas e comercias. Uma das distribuic~oes de Webmail
mais utilizadas e o IMP da Horde (http://www.horde.org). Este pacote tem uma grande
aceitac~ao devido ao seu interface amigavel, facilidade de con gurac~ao e instalaca~o.
De seguida vamos explicar como instalar um servidor Web com suporte a SSL, PHP e
a interface de Webmail IMP. Vamos utilizar a instalaca~o padr~ao da maioria dos pacotes,
que pode ser ajustada de acordo com as necessidades desde que se tenha os requisitos
necessarios para o servico de Webmail funcionar. Caso ja se possua algum dos pacotes
envolvidos instalados, pode-se remov^e-los ou saltar a parte da instalaca~o dos mesmos e
mudar as opc~oes de instalac~ao de acordo com as necessidades.

6.6.1 Instalac~ao do Apache com PHP e Mod-SSL


No exemplo seguinte a instalac~ao do PHP, como do MOD-ssl v~ao ser instaladas estaticamente junto com apache. Se tem um servidor de Apache instalado, com suporte a PHP4
(Suportando Mysql e IMAP) pode saltar esta parte e ir directo para a instalac~ao do IMP.
Download dos seguintes pacotes:

 Apache - http://httpd.apache.org/dist/apache 1.3.14.tar.gz

132

Captulo 6. Servicos

 PHP - http://www.php.net/do download.php?download le=php-4.0.3.tar.gzsource


site=www.php.net

 IMAP - ftp://ftp.cac.washington.edu/imap/
 Mysql - http://www.mysql.com/Downloads/MySQL-3.22/mysql-3.22.32.tar.gz
 ModSSL - http://www.modssl.org/source/mod ssl-2.7.0-1.3.14.tar.gz
 OpenSLL - http://www.openssl.org/source/openssl-0.9.6.tar.gz
 provavel que neste momento alguns dos pacotes anteriores ja ter~ao vers~oes mais recentes.
E
Neste caso, pre ra sempre a vers~ao mais recente, e leia a documentaca~o para ver se algo
mudou nos procedimentos de con guraca~o.
Neste exemplo vamos utilizar o diretorio /usr/src/web para descompactar os arquivos e
utilizar a con gurac~ao padr~ao de instalaca~o dos aplicativos.
Descompactar o pacote openssl-0.9.6.tar.gz
tar xvfz openssl-0.9.6.tar.gz

Entrar no directorio do openssl


cd openssl-0.9.6

Con gurar o openssl


./configure

Compilar o openssl
make

Instalar o openssl
make install

Adicionar o directorio /usr/local/ssl/lib no arquivo /etc/ld.so.conf


echo "/usr/local/ssl/lib>> /etc/ld.so.conf

Actualizar as libraries
ldconfig

6.6. Apache+SSL+PHP4 com a Interface de Webmail IMP

Voltar para o directorio /usr/src/web


cd /usr/src/web

Descompactar o pacote apache 1.3.14.tar.gz


tar xvfz apache 1.3.14.tar.gz

Entrar no directorio do apache


cd apache 1.3.14/

Executar o comando con gure


./configure

Voltar para o diretorio /usr/src/web


cd ..

Descompactar o source do pacote mod ssl


tar xvfz mod ssl-2.7.0-1.3.14.tar.gz

Entrar no directorio do mod ssl


cd mod ssl-2.7.0-1.3.14

Con gurar o mod ssl


./configure --with-apache=../apache 1.3.14 --with-ssl=../openssl-0.9.6

Voltar para o directorio /usr/src/web


cd ..

Descompactar as fontes do IMAP


tar xvfz imap-2000.RELEASE-CANDIDATE.7.tar.Z

133

134

Captulo 6. Servicos

Entrar no directorio do IMP


cd imap-2000.RELEASE-CANDIDATE.7

A instalac~ao e con gurac~ao do IMAP vai depender do sistema que se estiver a utilizar,
pode-se veri car o arquivo Make le e ver qual a opca~o que se enquadra melhor com o seu
sistema. Para os sistemas Linux, a opca~o slx funciona na maioria dos casos.
make slx

Copiar o imapd para o directorio /usr/sbin


cp imapd/imapd /usr/sbin

Adicionar a linha que chama o imapd no seu inetd


echo "imap stream tcp nowait root /usr/sbin/tcpd imapd>> /etc/inetd.conf
Nota: Pode ser que ja tenha esta linha no seu inetd.conf, ent~ao basta descomenta-la.

Reiniciar o inetd
killall -1 inetd

Voltar para o directorio /usr/src/web


cd ..

Instalar e con gurar o Mysql


Descompactar o pacote do Mysql

tar xvfz mysql-3.22.32.tar.gz


Entrar no Directorio do Mysql
cd mysql-3.22.32

Con gurar o Mysql de acordo com o seu sistema


./configure

Compilar
make

6.6. Apache+SSL+PHP4 com a Interface de Webmail IMP

135

Instalar
make install

Instalar os databases do Mysql


./scripts/mysql install db

Inicializar o Mysql
/usr/local/mysql/bin/safe mysqld

Nota: E interessante de nir uma password para o utilizador root do Mysql atraves do comando: mysqladmin password PASSWORD
Descompactar os fontes do PHP4
tar xvfz php-4.0.3.tar.gz

Entrar no directorio do PHP4


cd php-4.0.3

Con gurar o PHP4


./configure --with-mysql=/usr/local --with-apache=../apache 1.3.14
--with-imap=../imap-2000.RELEASE-CANDIDATE.7 --enable-track-vars

Neste caso estamos a utilizar o suporte da base de dados Mysql do PHP instalado no
directorio /usr/local, se o directorio de instalac~ao for diferente tem de alterar o local onde
esta instalada a base de dados Mysql. Muitas distribuico~es do Linux que ja v^em com o
Mysql pre-instalado esta instalac~ao encontra-se no directorio /usr.
O suporte ao IMAP tambem esta habilitado e as fontes neste exemplo est~ao no directorio
../imap-2000.RELEASE-CANDIDATE.7.
Compilar o PHP
make

Instalar o PHP
make install

136

Captulo 6. Servicos

Voltar para o directorio do Apache


cd ../apache 1.3.14

Con gurar o apache com os modulos PHP e Mod-ssl


./configure --enable-module=ssl --activate-module=src/modules/php4/libphp4.a
--enable-module=so

A opc~ao -enable-module=so serve para utilizar do recurso Dynamic Shared Object, que
possibilita a opc~ao do apache carregar modulos adicionais sem a necessidade de recompilar
o Apache. Esta opc~ao funciona em determinados sistemas Unix, como o Linux.
Compilar o Apache
make

6.6.2 Criar certi cado para o Servidor


Os certi cados podem ser criados manualmente ou utilizar a opca~o make certi cate. A
opc~ao make certi cate oferece a possibilidade de se criar tr^es tipos de certi cados: dummy,
test, custom. Recomendamos a opc~ao custom, onde se cria o certi cado com os seus dados.
make certificate TYPE=custom

6.6.3 Criar certi cados manualmente


1. Criar a Key RSA para seu Apache Server

 openssl genrsa -des3 -out server.key 1024

2. Criar Certi cate Signing Request (CSR) com a Key RSA

 openssl req -new -key server.key -out server.csr


 Responder as especi cac~oes de acordo com os dados do administrador.

O
par^ametro Common Name (eg, YOUR name) deve ser o nome do host que
se deseja criar o certi cado.

3. Certi car o seu certi cado atraves de uma Autoridade Certi cadora (Certi cate
Authority (CA)) - Existem diversas entidades certi cadoras na Web, como a verisign
e certsign. De seguida vamos explicar como criar uma Autoridade Certi cadora.

6.6. Apache+SSL+PHP4 com a Interface de Webmail IMP

137

4. Criar a Key RSA para o seu CA

 openssl genrsa -des3 -out ca.key 1024


5. Criar uma assinatura para a Key RSA do seu CA

 openssl req -new -x509 -days 365 -key ca.key -out ca.crt
6. Assinar o seu certi cado com a Autoridade Certi cadora que criou. - O mod ssl
vem com um script (sign.sh) que automatiza este processo, ele esta no directorio
pkg.contrib do pacote do mod ssl.

 ./sign.sh server.csr
Apos isto ele cria o arquivo server.crt que corresponde ao certi cado assinado pela entidade
certi cadora.
Como foi criado uma key do servidor com password, para utilizar este certi cado quando
for iniciar o apache, vai ser necessario informar a password. Este processo acaba por impedir a automatizac~ao da inicializac~ao do Apache. Para resolver este problema, pode ser
criado um certi cado sem esta password.
openssl rsa -in server.key -out server.key.nopass

Utilizando esta key server.key.nopass n~ao vai ser necessario informar uma password para
inicializar o apache.

NOTA:Deve-se ter cuidado com a permiss~ao dos seus certi cados, principalmente
com este certi cado sem password. Recomenda-se a permiss~ao de leitura somente
para o owner.
chmod 400 server.key.nopass

Instalar o Apache
make install

O proximo passo e con gurar o servidor Apache de acordo com as necessidades. O arquivo de con gurac~ao vai estar no directorio /usr/local/apache/conf, o nome do arquivo
de con gurac~ao e apache.conf.

138

Captulo 6. Servicos

6.7 FTP
6.7.1 Controlar o acesso aos servicos
Como medida de seguranca, a maioria dos servicos de rede s~ao administrados por um programa protector chamado TCP wrapper. Os servicos protegidos s~ao listados em /etc/inetd.conf
que especi ca se /usr/sbin/tcpd.tcpd pode permitir ou negar acesso a um servico, e a con gurac~ao em /etc/hosts.allow e /etc/hosts.deny. Por default do Red Hat Linux s~ao permitidos todos os servicos solicitados. Para desactivar ou limitar servicos edita-se /etc/hosts.allow.
Considerando o cheiro abaixo /etc/hosts.allow como exemplo:
ALL: ipv.pt .estv.ipv.pt
in.talkd: ALL
in.ntalkd: ALL
in.fingerd: ALL
in.ftpd: ALL

Esta con gurac~ao permite todas as ligaco~es de maquinas ipv.pt e *.estv.ipv.pt. Tambem
permite talk, nger e ftp entre todas maquinas. O tcpd permite um controle de acesso muito
mais so sticado, usando uma combinaca~o de /etc/hosts.allow e /etc/hosts.deny.

6.7.2 FTP Anonimo


A con gurac~ao do FTP anonimo e simples. Basta instalar o pacote rpm chamado anon-ftp
(que deve ser feito durante a instalac~ao). Uma vez instalado, o FTP anonimo ca activo e
a funcionar.
Ha alguns cheiros que podem ser con gurados no servidor de FTP:
/etc/ftpaccess

De ne a maior parte do controlo de acessos ao servidor ftp. Algumas coisas que podem
ser feitas: con gurar grupos logicos para controlar acessos de diversos sites, limitar o
numero de ligac~oes simult^aneas de FTP, con gurar a transfer^encia de logging, e muito
mais.
/etc/ftphosts

O cheiro de ftphosts e usado para permitir ou restringir acesso a certas contas de


outros hosts.

6.8. DNS

139

/etc/ftpusers

Este cheiro lista todos os utilizadores que n~ao t^em permiss~ao de executar transmiss~oes
ftp. Por exemplo, root e listado em /etc/ftpusers como padr~ao. Isso signi ca que n~ao
pode ser executado ftp nesta maquina como super-utilizador. Isto e uma boa medida de
seguranca.

6.8 DNS
O DNS (ou Domain Name Server), converte os nomes das maquinas nos seus enderecos
IP que todas as maquinas ligadas a rede devem ter. Este servico \traduz" (map) do nome
para o endereco IP e vice-versa entre muitas outras coisas.
Um mapping e simplesmente uma associac~ao entre duas coisas, neste caso o nome da
maquina, por exemplo gel.estv.ipv.pt, e o seu endereco IP 172.16.90.1. O DNS tambem
contem mappings no sentido inverso, do IP para o nome da maquina; isto e o chamado
\reverse mapping".
O DNS e para aqueles que so agora comecam a utilizar o Linux, uma das areas mais
densas da administrac~ao de redes. Felizmente n~ao e muito difcil de entender. Nesta
secc~ao vamos tentar descrever como se con gura um DNS Name Server.
Antes de comecar e necessario veri car algumas condic~oes essenciais:

 fazer telnet de e para a maquina;


 estabelecer todo o tipo de ligac~oes a Internet;
 e muito importante, fazer telnet a 127.0.0.1.
Alem destas condic~oes e preciso ainda ter os cheiros /etc/nsswitch.conf, /etc/resolv.conf
e /etc/hosts bem con gurados e cujas func~oes ja dever~ao ser conhecidas pois ja foram faladas anteriormente.
O Name Serving no Linux e feito por um programa chamado named. O Named e um
programa que faz parte do pacote BIND, esta includo em quase todas as distribuic~oes do
Linux e normalmente e instalado em /usr/sbin/named.

140

Captulo 6. Servicos

6.8.1 Con gurac~ao


Tal como tinhamos referido anteriormente, e preciso o cheiro /etc/named.conf. Esta informac~ao e lida quando o named arranca.
Vamos apresentar se seguida um exemplo do que este cheiro contem depois da instalaca~o
o cheiro apenas contem:
// Config file for caching only name server
options {
directory "/var/named";
// Uncommenting this might help if you have to go through a
// firewall and things are not working out. But you probably
// need to talk to your firewall admin.
};

// query-source port 53;

zone "." {
type hint;
file "root.hints";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "pz/127.0.0";
};

A linha com o parametro directory indica ao named aonde e que ele deve procurar os
cheiros. Assim, em todos os parametros le as indicaco~es s~ao sempre tendo como base
o directorio indicado acima. Um exemplo disto e pz que deve ser entendido como um
directorio localizado em /var/named, isto e, /var/named/pz.
O cheiro /var/named/root.hints deve ter alguma coisa como:
; There might be opening comments here if you already have this file.
; If not don't worry.
;
.
6D IN NS
M.ROOT-SERVERS.NET.
.
6D IN NS
I.ROOT-SERVERS.NET.

141

6.8. DNS
.
.
.
.
.
.
.
.
.
.
.
;
M.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.

6D
6D
6D
6D
6D
6D
6D
6D
6D
6D
6D

IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN

NS
NS
NS
NS
NS
NS
NS
NS
NS
NS
NS

E.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.

6D
6D
6D
6D
6D
6D
6D
6D
6D
6D
6D
6D
6D

IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN

A
A
A
A
A
A
A
A
A
A
A
A
A

202.12.27.33
192.36.148.17
192.203.230.10
128.8.10.90
198.41.0.4
128.63.2.53
192.33.4.12
192.112.36.4
192.5.5.241
128.9.0.107
198.41.0.10
193.0.14.129
198.32.64.12

A proxima secc~ao no cheiro named.conf e ultima zona. Esta parte vai ser explicada
mais adiante; por agora criamos um cheiro chamado 127.0.0 no subdirectorio pz com o
seguinte conteudo:
$TTL 3D
@

IN

SOA

NS
PTR

ns.linux.bogus. hostmaster.linux.bogus. (
1
; Serial
8H
; Refresh
2H
; Retry
4W
; Expire
1D)
; Minimum TTL
ns.linux.bogus.
localhost.

142

Captulo 6. Servicos

De seguida e preciso o cheiro /etc/resolv.conf que deve ser qualquer coisa como:
search subdomain.your-domain.edu your-domain.edu
nameserver 127.0.0.1

A linha com o \search" especi ca que dominios devem ser procurados para cada host
name ao qual nos queremos ligar. A linha \nameserver" especi ca o endereco do nosso
nameserver, neste caso a nossa propria maquina uma vez que e onde o named esta a correr
(127.0.0.1 esta correcto independentemente de a nossa maquina ter ou n~ao outro endereco
IP).
Se quisermos listar varios name servers basta colocar uma linha \nameserver" para cada
um deles. Nota: O named nunca l^e este cheiro, apenas o faz o resolver que usa o named.

Em alguns cheiros resolv.conf e encontrada uma linha com a indicac~ao \domain", isto
esta correcto mas nunca se deve usar o \search" e \domain" pois so um deles ira funcionar'.
Para demonstrar o que este cheiro faz, vamos apresentar um exemplo considerando o
resolv.conf apresentado em cima

Se um cliente tentar encontrar foo, ent~ao foo.sub-domain.your-domain.edu


e o primeiro caminho a ser tentado, de seguida foo.your-domain.edu e nalmente foo. Se colocarmos varios domnios na linha de procura \search",
logicamente ira demorar muito mais tempo a procurar em todos eles.
O exemplo assume que nos pertencemos ao domnio subdomain.your-domain.edu; a nossa
maquina provavelmente e etn~ao chamada your-machine.subdomain.your-domain.edu. A
linha de procura \search" n~ao deve conter o nosso TLD (Top Level Domain, neste caso
\edu") pelas raz~oes explicadas no paragrafo anterior.
Se precisarmos de frequentemente ligar a maquinas de outro domnio e possivel de acrescentar esse domnio a linha de pesquisa \search" da seguinte forma
search subdomain.your-domain.edu your-domain.edu other-domain.com

Obviamente e preciso substituir os domnios de exemplo apresentados por nomes de domnios


reais.

143

6.8. DNS

6.8.2 Arrancar o named


 muito simples,
Depois de tudo con gurado e tempo de arrancar com o servico named. E
basta executar o comando ndc start. Se por acaso n~ao funcionar pode-se tentar de outra
forma /usr/sbin/ndc start. Se n~ao obtivermos nenhuma mensagem de erro, ent~ao e
porque o servico ja esta a funcionar.
De seguida e aconselhavel testar o nosso setup. Existe um programa chamado nslookup
que e usado para isto. Actualmente ha um programa mais apropriado chamado dig cuja
forma de uso e algo como isto:
\# dig -x 127.0.0.1

e o seu resultado sera algo parecido a


; <<>> DiG 8.2 <<>> -x
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUERY SECTION:
;;
1.0.0.127.in-addr.arpa, type = ANY, class = IN
;; ANSWER SECTION:
1.0.0.127.in-addr.arpa.
;; AUTHORITY SECTION:
0.0.127.in-addr.arpa.
;;
;;
;;
;;

1D IN PTR
1D IN NS

localhost.
ns.penguin.bv.

Total query time: 30 msec


FROM: lookfar to SERVER: default -- 127.0.0.1
WHEN: Sat Dec 16 00:16:12 2000
MSG SIZE sent: 40 rcvd: 110

Se foi isto que apareceu ent~ao esta a funcionar correctamente. Caso contrario o melhor
sera voltar atras e rever as con guraco~es. De cada vez que se alterar o named.conf e
necessario fazer o restart do servico com o comando ndc restart.

6.8.3 Resolvers
Todos os sistemas operativos implementaram o padr~ao C API para as chamadas gethostbyname e gethostbyaddr. Estas chamadas podem obter informac~oes de diversas fontes que

144

Captulo 6. Servicos

podem ser con guradas no /etc/nsswitch.conf.


Este cheiro indica-nos de que cheiro ou base de dados e que se devem procurar determinados tipos de dados. Usualmente contem alguns comentarios muito uteis no incio
do cheiro que nos d~ao uma grande ajuda na sua con gurac~ao.
Na linha que comeca por hosts devemos ter algo como
hosts:

files dns

Esta linha indica-nos onde e que esses programas devem procurar primeiro no cheiro
/etc/hosts e de seguida veri car o DNS de acordo com o estabelecido no resolv.conf.

6.8. DNS

[?] [?] [?] [?] [?] [?] [?] [?] [?] [?] [?] [?] [?]

145

Bibliogra a
[1]

Alvestad, M. Y., and Crosser, E.

[2]

Alvestrand, H.

[3]

Brown, P.

[4]

Corp., R. H.

[5]

Hughes, P.

[6]

Komarinski, M.

[7]

Lars Wirzenius, J. O.

[8]

Olaf Kirch, T. D.

[9]

Quinlan, D.

2 (Junho 1994).

Linux Around the World - Linux Journal, No

Linux Counter - Linux Journal, No 2 (Junho 1994).

Introducing the Network Information Service for Linux - Linux Journal,


No 50 (Junho 1998).
Red Hat Linux 7.1 Install Guide .

Book Review: "Linux Installation and Getting Started by Matt WelshLinux Journal, No 1 (Maio 1994).

(Junho 1994).

Linux System Administration - Linux Journal, No 14 (Junho 1995).


Linux System Administrator's Guide. 1983.

Linux Network Administrator's Guide. 2000.

The Linux FSSTD (File System Standard) - Linux Journal, No 2

What's GNU: BASH - The GNU Shell - Linux Journal, No 4 (Agosto

[10]

Ramey, C.

[11]

Staff, T. L. J.

[12]

Thompson, B.

Linux vs Windows NT and OS/2 - Linux Journal, No 1 (Maio 1994).

[13]

Tridgell, A.

Samba: Unix Talking with PCs - Linux Journal, No 7 (Novembro

1994).

Linux Distributions: A comparison of the popular ones - Linux


Journal, no 23 (Marco 1996).

1994).

You might also like