Slackware Linux Essentials O Guia Oficial do Slackware Linux

Projeto de tradu¸˜o do Slackbook para Portuguˆs do Brasil ca e Slackbookptbr - http://slackbookptbr.sf.net Vers˜o: 1.0.2 a

ii Slackware Linux Essentials Segunda Edi¸˜o ca Publica¸˜o: Maio 2005 ca isbn: 1-57176-338-4 Slackware Linux Essentials, Second Edition Copyright c 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Slackware Linux, Inc. All rights reserved. Printed in Canada. Published by Slackware Linux, Inc., 1164 Claremont Drive, Brentwood, CA 94513 Lead Author, Second Edition: Alan Hicks. Editors, Second Edition: Murray Stokely and FuKang Chen. Authors, First Edition: Chris Lumens, David Cantrell, and Logan Johnson. Print History: June, 2000 First Edition May, 2005 Second Edition Slackware Linux is a registered trademark of Patrick Volkerding and Slackware Linux, Inc. Linux is a registered trademark of Linus Torvalds. America Online and AOL are registered trademarks of America Online, Inc. in the United States and/or other countries. Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of Apple Computer, Inc., registered in the United States and other countries. IBM, AIX, EtherJet, Net?nity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of International Business Machines Corporation in the United States, other countries, or both. IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and Electronics Engineers, Inc. in the United States. Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Netscape and the Netscape Navigator are registered trademarks of Netscape Communications Corporation in the U.S. and other countries. Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in the United States and other countries. XFree86 is a trademark of The XFree86 Project, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and Slackware Linux, Inc. was aware of the trademark claim, the designations have been followed by the ”’tm”’ or the R symbol.

Sum´rio a
1 Uma Introdu¸˜o ao Slackware Linux ca 1.1 O que ´ o Linux ? . . . . . . . . . . e 1.2 Uma palavrinha sobre GNU . . . . . 1.3 O que ´ o Slackware? . . . . . . . . . e 1.4 C´digo Aberto e Software Livre . . . o 2 Ajuda 2.1 Ajuda 2.1.1 2.1.2 2.1.3 2.2 Ajuda 2.2.1 2.2.2 2.2.3 5 5 5 5 6 9 9 9 10 10 10 10 11 11 13 13 13 14 14 14 15 16 16 16 17 17 19 20 20 21 21 22 22 23 24 31 31 31 32 33 35 35 36 38

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

do Sistema . . . . . . . . . . . . . . . man . . . . . . . . . . . . . . . . . . O diret´rio /usr/doc/ . . . . . . . . o HOWTOs e mini-HOWTOs . . . . . Online . . . . . . . . . . . . . . . . . O Site Oficial e os F´rums de Ajuda o Suporte por E-mail . . . . . . . . . . Sites n˜o-oficiais e F´runs de ajuda . a o

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

3 Instala¸˜o ca 3.1 Obtendo o Slackware . . . . . . . . . 3.1.1 A caixa com os discos Oficiais 3.1.2 Atrav´s da Internet . . . . . e 3.2 Requisitos para Instala¸˜o . . . . . . ca 3.2.1 As S´ries do Software . . . . e 3.2.2 M´todos de Instala¸˜o . . . . e ca 3.2.3 Disco de Boot . . . . . . . . . 3.2.4 Disco de Root . . . . . . . . . 3.2.5 Disco Complementar . . . . . 3.2.6 Criando os discos . . . . . . . 3.3 Particionamento . . . . . . . . . . . 3.4 O programa setup . . . . . . . . . . 3.4.1 HELP . . . . . . . . . . . . . 3.4.2 KEYMAP . . . . . . . . . . . 3.4.3 ADDSWAP . . . . . . . . . . 3.4.4 TARGET . . . . . . . . . . . 3.4.5 SOURCE . . . . . . . . . . . 3.4.6 SELECT . . . . . . . . . . . 3.4.7 INSTALL . . . . . . . . . . . 3.4.8 CONFIGURE . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4 Configura¸˜o do Sistema ca 4.1 Vis˜o Geral do Sistema . . . . . . . . . . . . . . . . . a 4.1.1 Layout do Sistema de Arquivos . . . . . . . . . 4.1.2 Encontrando Arquivos . . . . . . . . . . . . . . 4.1.3 O Diret´rio /etc/rc.d/ . . . . . . . . . . . . . . o 4.2 Selecionando um Kernel . . . . . . . . . . . . . . . . . 4.2.1 O diret´rio /kernels no CD-ROM do Slackware o 4.2.2 Compilando um Kernel a partir do c´digo-fonte o 4.2.3 Utilizando os M´dulos do Kernel . . . . . . . . o iii

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

iv 5 Configura¸˜o de Rede ca 5.1 Introdu¸˜o: netconfig ´ seu amigo. . . . . . . . . . . . . . . . . ca e 5.2 Configura¸˜o do Hardware de Rede . . . . . . . . . . . . . . . . ca 5.2.1 Carregando os M´dulos de Rede . . . . . . . . . . . . . o 5.2.2 Placas de Rede Local (10/100/1000Base-T and Base-2) 5.2.3 Modems . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.4 PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Configura¸˜o TCP/IP . . . . . . . . . . . . . . . . . . . . . . . ca 5.3.1 DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.2 IP Est´tico . . . . . . . . . . . . . . . . . . . . . . . . . a 5.4 PPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.1 pppsetup . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5 Wireless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.1 Suporte ao Hardware . . . . . . . . . . . . . . . . . . . . 5.5.2 Configura¸˜o da rede sem fio . . . . . . . . . . . . . . . ca 5.5.3 Configurando a rede . . . . . . . . . . . . . . . . . . . . 5.6 Sistemas de Arquivo de Rede . . . . . . . . . . . . . . . . . . . 5.6.1 SMB/Samba/CIFS . . . . . . . . . . . . . . . . . . . . . 5.6.2 Network File System (NFS) . . . . . . . . . . . . . . . . 6 Configurara¸˜o ca 6.1 xorgconfig . 6.2 xorgsetup . 6.3 xinitrc . . . 6.4 xwmconfig . 6.5 xdm . . . . do . . . . . . . . . . X . . . . . . . . . .

´ SUMARIO 39 39 39 40 40 40 41 41 42 43 44 45 45 45 46 47 47 48 49 51 51 54 54 56 57 61 61 63 64 64 68 69 69 69 69 70 70 71 72 72 72 74 74 75 77 77 78 80 81 83 85 85 85 86 87 87

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

7 Processo de Boot 7.1 LILO . . . . . . . 7.2 LOADLIN . . . . 7.3 Dual Boot . . . . 7.3.1 Windows 7.3.2 Linux . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

8 O Shell 8.1 Os Usu´rios . . . . . . . . . . . . . . . . . . . . . . . . . . . a 8.1.1 Entrando no Sistema . . . . . . . . . . . . . . . . . . 8.1.2 Root: O Super Usu´rio . . . . . . . . . . . . . . . . a 8.2 A Linha de Comando . . . . . . . . . . . . . . . . . . . . . 8.2.1 Executando Programas . . . . . . . . . . . . . . . . 8.2.2 Substitui¸˜o de Meta-Caracteres . . . . . . . . . . . ca 8.2.3 Redirecionamento de Entrada e Sa´ e Uso do Pipe ıda 8.3 O Bourne Again Shell (bash) . . . . . . . . . . . . . . . . . 8.3.1 Vari´veis de Ambiente . . . . . . . . . . . . . . . . . a 8.3.2 Completando Linhas de Comando com o TAB . . . 8.4 Terminais Virtuais . . . . . . . . . . . . . . . . . . . . . . . 8.4.1 Screen . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Estrutura do Sistema de 9.1 Propriedade . . . . . . 9.2 Permiss˜es . . . . . . . o 9.3 Links . . . . . . . . . . 9.4 Montando Dispositivos 9.5 Montagem NFS . . . . Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

10 Manipulando arquivos e diret´rios o 10.1 Navega¸˜o: ls, cd, e pwd . . . . . . ca 10.1.1 ls . . . . . . . . . . . . . . . 10.1.2 cd . . . . . . . . . . . . . . 10.1.3 pwd . . . . . . . . . . . . . 10.2 Paginadores: more, less e most . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

´ SUMARIO 10.2.1 more . . . . . . . . . 10.2.2 less . . . . . . . . . . 10.2.3 most . . . . . . . . . Sa´ Simples: cat e echo . ıda 10.3.1 cat . . . . . . . . . . 10.3.2 echo . . . . . . . . . Cria¸˜o: touch e mkdir . . . ca 10.4.1 touch . . . . . . . . 10.4.2 mkdir . . . . . . . . Copiar e mover . . . . . . . 10.5.1 cp . . . . . . . . . . 10.5.2 mv . . . . . . . . . . Exclus˜o: rm e rmdir . . . . a 10.6.1 rm . . . . . . . . . . 10.6.2 rmdir . . . . . . . . Apelidando arquivos com ln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

v 87 87 88 88 88 88 89 89 89 89 89 90 90 90 91 91 93 93 94 94 97 99 101 101 101 104 105 106 107 111 111 111 112 112 112 113 114 114 115 116 116 116 117 118 119 120 120 120 121 122 122 123 124 124 124 125

10.3

10.4

10.5

10.6

10.7

11 Controle de Processos 11.1 Segundo Plano (background) . 11.2 Primeiro plano (foregrounding) 11.3 ps . . . . . . . . . . . . . . . . 11.4 kill . . . . . . . . . . . . . . . . 11.5 top . . . . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

12 O Essencial em Administra¸˜o de Sistema ca 12.1 Usu´rios e Grupos . . . . . . . . . . . . . . a 12.1.1 Scripts fornecidos . . . . . . . . . . . 12.1.2 Mudando senhas . . . . . . . . . . . 12.1.3 Mudando a Informa¸˜o do Usu´rio . ca a 12.2 Usu´rios e Grupos, o modo dif´ . . . . . . a ıcil 12.3 Desligando o sistema apropriadamente . . . 13 Comandos de rede b´sicos a 13.1 ping . . . . . . . . . . . . . . . . . 13.2 traceroute . . . . . . . . . . . . . . 13.3 Ferramentas DNS . . . . . . . . . . 13.3.1 host . . . . . . . . . . . . . 13.3.2 nslookup . . . . . . . . . . 13.3.3 dig . . . . . . . . . . . . . . 13.4 finger . . . . . . . . . . . . . . . . 13.5 telnet . . . . . . . . . . . . . . . . 13.5.1 Outras utilidades do telnet 13.6 O ssh (Secure Shell) . . . . . . . . 13.7 email . . . . . . . . . . . . . . . . . 13.7.1 pine . . . . . . . . . . . . . 13.7.2 elm . . . . . . . . . . . . . 13.7.3 mutt . . . . . . . . . . . . . 13.7.4 nail . . . . . . . . . . . . . 13.8 Navegadores . . . . . . . . . . . . . 13.8.1 lynx . . . . . . . . . . . . . 13.8.2 links . . . . . . . . . . . . . 13.8.3 wget . . . . . . . . . . . . . 13.9 Clientes FTP . . . . . . . . . . . . 13.9.1 ftp . . . . . . . . . . . . . . 13.9.2 ncftp . . . . . . . . . . . . . 13.10Conversando com outras pessoas . 13.10.1 wall . . . . . . . . . . . . . 13.10.2 talk . . . . . . . . . . . . . 13.10.3 ytalk . . . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

vi 14 Seguran¸a c 14.1 Desabilitando Servi¸os . . . . . . . . . . . . . . . . . . . . . . . . . c 14.1.1 Servi¸os iniciados com o inetd . . . . . . . . . . . . . . . . . c 14.1.2 Servi¸os iniciados pelos scripts de inicializa¸˜o (init scripts) c ca 14.2 Controle de Acesso ao Host . . . . . . . . . . . . . . . . . . . . . . 14.2.1 iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.2 tcpwrappers . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3 Mantendo-se Atualizado . . . . . . . . . . . . . . . . . . . . . . . . 14.3.1 Lista de emails slackware-security . . . . . . . . . . . . . . 14.3.2 O diret´rio /patches . . . . . . . . . . . . . . . . . . . . . . o 15 Arquivos Agrupados e Compactados 15.1 gzip . . . . . . . . . . . . . . . . . . 15.2 bzip2 . . . . . . . . . . . . . . . . . . 15.3 tar . . . . . . . . . . . . . . . . . . . 15.4 zip . . . . . . . . . . . . . . . . . . . 16 Vi 16.1 Iniciando o vi . . . . . . . 16.2 Modos . . . . . . . . . . . 16.2.1 Modo de Comando 16.2.2 Modo de inser¸˜o . ca 16.3 Abrindo Arquivos . . . . . 16.4 Salvando Arquivos . . . . 16.5 Encerrando o vi . . . . . . 16.6 Configura¸˜o do vi . . . . ca 16.7 Comandos do Vi . . . . .

´ SUMARIO 127 127 127 128 128 128 130 130 130 131 133 133 133 134 136 137 137 139 139 140 140 141 141 142 142 145 145 146 146 147 147 148 149 149 151 151 152 152 153 154 154 155 155 155 155 155 156 157 157 157 157 157 158 158 159

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

17 Emacs 17.1 Iniciado o Emacs . . . . . . 17.1.1 Teclas de Comando . 17.2 Buffers . . . . . . . . . . . . 17.3 Modos . . . . . . . . . . . . 17.3.1 Abrindo Arquivos . 17.4 Edi¸˜o B´sica . . . . . . . . ca a 17.5 Salvando Arquivos . . . . . 17.5.1 Saindo do Emacs . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

18 Gerenciamento de Pacotes do Slackware 18.1 Vis˜o Geral do Formato de um Pacote . . . a 18.2 Utilit´rios de Pacotes . . . . . . . . . . . . . a 18.2.1 pkgtool . . . . . . . . . . . . . . . . 18.2.2 installpkg . . . . . . . . . . . . . . . 18.2.3 removepkg . . . . . . . . . . . . . . 18.2.4 upgradepkg . . . . . . . . . . . . . . 18.2.5 rpm2tgz/rpm2targz . . . . . . . . . 18.3 Criando Pacotes . . . . . . . . . . . . . . . 18.3.1 explodepkg . . . . . . . . . . . . . . 18.3.2 makepkg . . . . . . . . . . . . . . . . 18.3.3 SlackBuild Scripts . . . . . . . . . . 18.4 Criando Tags e Tagfiles (para configura¸˜o) ca 19 ZipSlack 19.1 O que ´ o ZipSlack? e 19.1.1 Vantagens . . 19.1.2 Desvantagens 19.2 Obtendo o ZipSlack 19.2.1 Instala¸˜o . . ca 19.3 Bootando o ZipSlack 20 Gloss´rio a

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

´ SUMARIO 21 The 21.1 21.2 21.3

vii

GNU General Public License 165 Preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 TERMS AND CONDITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 How to Apply These Terms to Your New Programs . . . . . . . . . . . . . . . . . . . . . . . . . . 169

22 Contributing Authors 171 22.1 Contribuidores para o Portuguˆs do Brasil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 e

viii

´ SUMARIO

´ SUMARIO

1

Pref´cio a
P´ blico Alvo u
O sistema operacional Slackware Linux ´ uma poderosa plataforma baseada em computadores i386. Ele foi e projetado para ser est´vel, seguro e funcional como servidor, e tamb´m uma poderosa esta¸˜o de trabalho. a e ca Este livro foi feito para que vocˆ comece com o sistema operacional Slackware Linux. Isto n˜o siginifica que e a iremos abordar cada detalhezinho da distribui¸˜o, mas mostraremos rapidamente do que ela ´ capaz dando o ca e conhecimento para trabalhar com o b´sico do sistema. a Como vocˆ ganhar´ experiˆncia com o Slackware, esperamos que vocˆ busque este livro para ser uma refee a e e rˆncia acess´ e ıvel. N´s tamb´m esperamos que o empreste para os seus amigos quando eles vierem perguntar o e sobre o sistema operacional Linux que vocˆ est´ usando. e a Mesmo que esse livro n˜o v´ fazer vocˆ pular de emo¸˜o, n´s certamente tentamos fazˆ-lo o mais interesa a e ca o e sante poss´ ıvel. Com alguma sorte dar´ um filme. Claro, n´s esperamos tamb´m que vocˆ possa aprender com a o e e ele e o ache util. ´ E agora, comecemos com o show.

Mudan¸as da Primeira Edi¸˜o c ca
Esta ´ a segunda edi¸˜o, resultado de v´rios anos de trabalho duro dos membros dedicados do Projeto de e ca a Documenta¸˜o do Slackware. A seguir est˜o as mudan¸as de maior valor nesta nova edi¸˜o: ca a c ca • Cap´ ıtulo 3, O cap´ ıtulo Instala¸˜o foi modificado com novas fotos da tela do instalador, altera¸˜es decorca co rentes no conjunto de discos, e a instala¸˜o a partir do CD. ca • Cap´ ıtulo 4, O cap´ ıtulo Configura¸˜o do Sistema, foi atualizado com novas informa¸˜es sobre o Kernel ca co 2.6.x do Linux. • Cap´ ıtulo 5, O cap´ ıtulo sobre Configura¸˜o de Rede foi expandido, com explica¸˜es adicionais do Samba, ca co NFS, e DHCP. A se¸˜o ”redes sem fio”tamb´m foi adicionada. Este cap´ ca e ıtulo agora est´ repleto de grandes a mudan¸as, sobre como instalar redes seguras no Slackware. c • Cap´ ıtulo 6, O cap´ ıtulo sobre Sistema de janela X, foi substancialmente re-escrito para sistemas baseados no Xorg. Este cap´ ıtulo agora cobre tamb´m o gerenciador gr´fico de login xdm. e a • Cap´ ıtulo 13, O cap´ ıtulo ”comandos de rede b´sicos”, foi real¸ado com informa¸˜es sobre utilit´rios de redes a c co a adicionais. • Cap´ ıtulo 14, Seguran¸a, ´ um novo cap´ c e ıtulo desta edi¸˜o. Ele explica como manter um sistema Slackware ca Linux seguro. • Cap´ ıtulo 17, Emacs, ´ um novo cap´ e ıtulo desta edi¸˜o. Ele descreve como usar o Emacs, um editor poderoso ca para Unix. • Cap´ ıtulo 18, O cap´ ıtulo ”Gerˆnciamento de Pacotes”, foi atualizado com informa¸˜es sobre scripts do e co SlackBuild. • Existem ainda muitas outras mudan¸as, de menor e maior importˆncia, que refletem as mudan¸as de como c a c o Slackware amadureceu.

Organiza¸˜o deste Livro ca
Cap´ ıtulo 1, Introdu¸˜o ca • Fornece um material introdut´rio sobre o Slackware Linux, e os Movimentos de Software Livre e C´digo o o Aberto. Cap´ ıtulo 2, Ajuda • Descreve os recursos de ajuda dispon´ ıveis no sistema Slackware Linux e na internet. Cap´ ıtulo 3, Instala¸˜o ca

2

´ SUMARIO • Descreve o processo de instala¸˜o passo-a-passo com fotos de tela para lhe mostrar como fazˆ-la por meio ca e de ilustra¸oes. c˜ Cap´ ıtulo 4, Configura¸˜o do Sistema ca • Descreve os importantes arquivos de configura¸˜o e fala sobre a recompila¸˜o do kernel. ca ca Cap´ ıtulo 5, Configura¸˜o da Rede ca • Descreve como conectar uma m´quina Slackware Linux ` rede. Fala sobre TCP/IP, PPP/dial-up, rede a a wireless, e muito mais. Cap´ ıtulo 6, O Sistema de Janelas X • Descreve como instalar o Sistema gr´fico de Janelas X no Slackware. a Cap´ ıtulo 7, Inicializa¸˜o ca • Descreve o processo pelo qual o computador inicia no Slackware Linux. Fala tamb´m sobre a dupla e inicializa¸˜o com o sistema operacional Microsoft Windows. ca Cap´ ıtulo 8, O Shell • Descreve a poderosa interface de linha de comando do linux. Cap´ ıtulo 9, Estrutura do Sistema de Arquivos • Descreve a estrutura do sistema de arquivos, incluindo dono de arquivos, permiss˜es, e liga¸˜es simb´lio co o cas(links). Cap´ ıtulo 10, Manipulando Arquivos e Diret´rios o • Descreve os comandos usados para manipular arquivos e diret´rios atrav´s da interface de linha de coo e mando. Cap´ ıtulo 11, Controle de Processos • Descreve os poderosos comandos de gerˆnciamento de processos do Slackware, usados para gerenciar e aplicativos sendo executados paralelamente. Cap´ ıtulo 12, Fundamentos para Administra¸˜o do Sistema ca • Descreve a administra¸˜o b´sica de tarefas do sistema como adicionar e remover usu´rios, desligar o ca a a sistema corretamente e muito mais. Cap´ ıtulo 13, Comandos B´sicos de Rede a • Descreve a cole¸˜o de clientes de rede inclu´ ca ıdos no Slackware. Cap´ ıtulo 14, Seguran¸a c • Descreve v´rias ferramentas diferentes dispon´ a ıveis para ajud´-lo a manter seguro seu sistema Slackware, a incluindo iptables e tcpwrappers. Cap´ ıtulo 15, Arquivos Compactados • Descreve compress˜es diferentes e utilidades de arquivos dispon´ o ıveis no Linux. Cap´ ıtulo 16, vi • Descreve o poderoso editor de texto vi. Cap´ ıtulo 17, Emacs • Descreve o poderoso editor de texto Emacs. Cap´ ıtulo 18, Gerenciamento de Pacotes do Slackware • Descreve os utilit´rios de empacotamento do Slackware e o processo usado para criar pacotes padronizados a e tagfiles. Cap´ ıtulo 19, ZipSlack • Descreve a vers˜o ZipSlack do Linux que pode ser usada a partir do Windows sem precisar instal´-la. a a Appendix A, Licen¸a P´blica Geral GNU c u • Descreve os termos de licen¸a sob os quais o Linux Slackware e este livro podem ser copiados e distribu´ c ıdos.

´ SUMARIO

3

Conven¸˜es usadas neste livro co
Para fornecer uma consistente e f´cil leitura do texto, diversas conven¸˜es foram seguidas durante todo o a co livro. Conven¸˜es Tipogr´ficas co a • It´lico a - Fontes em it´lico s˜o usada para comandos, texto enfatizado, e os termos t´cnicos de primeiro a a e uso. • Negrito – Uma fonte em negrito ´ usada para entrada de dados do usu´rio nos exemplos. e a

Entrada do Usu´rio a
Teclas s˜o mostradas em negrito para se destacarem de outros textos. Combina¸˜es de teclas que possuem a co certo objetivo por serem digitadas simultaneamente, s˜o mostradas com ‘+’ entre as teclas, como: a Ctrl + Alt + Del Desse modo o usu´rio deve digitar as teclas Ctrl, Alt, e Del ao mesmo tempo. a Teclas que possuem certo objetivo por serem digitadas em sequˆncia que ir˜o ser separadas por v´ e a ırgulas, por exemplo: Ctrl+X, Ctrl+S Significaria que ´ esperado que o usu´rio digite as teclas Ctrl e X simultaneamente e ent˜o digite as teclas Ctrl e a a e S simultaneamente.

Exemplos
Exemplos come¸ando com E:/> indica um comando MS-DOS R . A menos que seja conhecido de outra c forma, estes comandos podem ser executados de uma janela de ”Prompt de Comandos”do ambiente moderno do Microsoft Windows. D:> rawrite a: bare.i Exemplos come¸ando com &prompt.root; indica que o comando que deve ser usado pelo super-usu´rio no c a Slackware. Vocˆ pode iniciar uma sess˜o como root para digitar o comando, ou iniciar com uma conta normal e a e usar &man.su.1; para ganhar privil´gio de super-usu´rio. e a # dd if=bare.i of=/dev/fd0 Exemplos come¸ando com &prompt.user; indicam que o comando pode ser usado em uma conta de usu´rio c a normal. A menos que seja conhecido de outra forma, a sintaxe C-shell ´ usada para ajustar as vari´veis de e a ambiente e outros comandos de shell. $ top

Agradecimentos
Este projeto ´ o acumulo de meses de trabalho de muitas pessoas dedicadas. N˜o seria poss´ para mim e a ıvel produzir este trabalho do zero. Muitas pessoas merecem nossos agradecimentos por seus atos de ajuda: Keith Keller por seu trabalho em rede wireless, Joost Kremers por seu maravilhoso trabalho escrito sem colaboradores da se¸˜o Emacs, Simon Williams por seu cap´ ca ıtulo sobre seguran¸a, Jurgen Phillippaerts pelos comandos b´sicos c a de rede, Cibao Cu Ali G Colibri pela inspira¸˜o e o ponta-p´ inicial. Sem contar outros que nos enviaram ca e sugest˜es e reparos. Uma lista incompleta inclui: Jacob Anhoej, John Yast, Sally Welch, Morgan Landry, e o Charlie Law. Tenho tamb´m de agradecer Keith Keller por hospedar a lista de emails desse projeto, bem como e Carl Inglis pela hospedagem inicial do site. Por ultimo mas n˜o menos importante, tenho que agradecer a ´ a Patrick J. Volkerding pelo Slackware, e David Cantrell, Logan Johnson, e Chris Lumens pelo Fundamentos do Slackware Linux 1a Edi¸ao. Sem sua estrutura inicial, nada disso teria acontecido. Muitos outros contribuiram c

4

´ SUMARIO

com pequenas e grandes partes desse projeto e n˜o foram listadas. Espero que me perdoem por minha mem´ria a o fraca. Alan Hicks, Maio 2005

Cap´ ıtulo 1

Uma Introdu¸˜o ao Slackware Linux ca
1.1 O que ´ o Linux ? e

Linus Torvalds criou o Linux, o n´cleo do sistema operacional, como um projeto pessoal em 1991. Ele iniciou u o projeto porque procurava rodar um sistema operacional baseado em Unix mas n˜o possuia muito dinheiro. a al´m disso, Ele procurava aprender sobre a arquitetura do processador 386. O Linux ´ liberado livre de cobran¸a e e c para o p´blico assim qualquer pessoa pode ajudar estudando-o e fazendo melhorias sobre a licen¸a p´blica geral. u c u o e ca c (veja C´digo Aberto e Software Livre e Apˆndice A para uma explica¸˜o da licen¸a.) Hoje o linux cresceu como um dos principais jogadores no mercado de sistema operacional. Ele foi portado para rodar em uma variedade de arquiteturas, incluindo HP/Compaq’s Alpha, Sun’s SPARC e UltraSPARC, e Motorola’s PowerPC chips (atrav´s Apple Macintosh e computadores IBM RS/6000.) centenas, se n˜o milhares, de programadores em e a todo o mundo desenvolve o Linux. Ele roda programas como Sendmail, Apache, e BIND, que s˜o softwares a ´ bastante populares usado em servidores de internet. E importante lembrar que o termo ”Linux” realmente se refere ao kernel - o n´cleo do sistema operacional. Este n´cleo ´ respons´vel por controlar o processador do u u e a seu computador, mem´ria, discos r´ o ıgidos e perif´ricos. Aquilo tudo ´ realmente o Linux: Controla as opera¸˜es e e co do seu computador e certifica-se de que todos os seus programas se comportam. Existem v´rias companhias e a indiv´ ıduos que empacotam o kernel e v´rios programas juntos para fazer um sistema operacional. N´s chamamos a o cada pacote de uma distribui¸˜o Linux. ca

1.2

Uma palavrinha sobre GNU

O projeto do Kernel Linux come¸ou com um esfor¸o pessoal de Linus Torvalds em 1991, mas como Isaac c c Newton disse uma vez,”Se consegui enxergar mais longe, ´ porque estava apoiado sobre ombros de gigantes.” e Quando Linus Torvalds criou o Kernel a Free Software Foundation tinha estabelecido j´ a id´ia do software coa e laborativo. Intitularam seu esfor¸o GNU, um acrˆnimo recursivo que significa simplesmente GNU’s Not Unix. c o O Software da GNU funciona sobre o kernel do Linux desde o 1o dia. O compilador gcc foi usado usado para compilar o kernel. Hoje muitas ferramentas da GNU, do gcc ao gnutar est˜o ainda na base de cada distribui¸˜o a ca principal do Linux. Por esta raz˜o muitos dos membros da Free Software Foundation sugerem fervorosamente a que seu trabalho deve ser dado o mesmo cr´dito que o kernel Linux e ainda que todas as distribui¸˜es de Linux e co devem se referir a ele como distribui¸˜es de GNU/Linux. co O prefixo ”GNU”em ”GNU/Linux”´ o tema de in´meras flamewars; s´ a guerra santa entre Emacs e vi gera e u o mais brigas. O objetivo deste livro n˜o ´ alimentar as chamas da discuss˜o, e sim esclarecer a terminologia a e a para os ne´fito. Quando vemos ”GNU/Linux”isso quer dizer uma distribui¸˜o Linux; quando vemos ”Linux”o o ca termo pode estar se referindo tanto ao kernel quanto ` distribui¸˜o inteira, o que pode ser um pouco confuso; e a ca o termo ”GNU/Linux”muitas vezes n˜o ´ usado por ser longo demais. a e

1.3

O que ´ o Slackware? e

O Slackware, criado por Patrick Volkerding no fim de 1992, e inicialmente lan¸ado para o mundo em 17 de c Julho de 1993, foi a primeira distribui¸˜o Linux a alcan¸ar um uso bastante difundido. ca c Volkerding iniciou o aprendizado no linux quando precisou de um interpretador de LISP para um projeto. Uma das poucas distribui¸˜es dispon´ co ıveis naquele tempo era a SLS Linux de Soft Landing Systems. Volkerding usou o SLS Linux, corringindo os bugs que encontrava. 5

6

CAP´ ITULO 1. UMA INTRODUCAO AO SLACKWARE LINUX ¸˜

Eventualmente, decidiu juntar todos estes bugfixes em sua pr´pria distribui¸˜o privada que ele e seus amigos o ca poderiam usar. Esta distribui¸˜o privada ganhou rapidamente a popularidade, assim que Volkerding decidiu ca nome´-lo para Slackware e distribui-lo publicamente. Ao longo, Patrick adicionou coisas novas ao Slackware; a um programa de instala¸˜o amig´vel para o usu´rio e baseado em um sistema de menu, tamb´m com o conceito ca a a e de gerˆnciamento de pacote, na qual permite que os usu´rios facilmente adicionem, removam ou atualizem um e a programa ou o seu sistema inteiro. H´ muitas raz˜es porque o Slackware ´ a distribui¸˜o Linux mais antiga em atividade. N˜o tenta imitar o a o e ca a Windows, tenta ser o mais similar ao Unix poss´ ıvel. Ele n˜o esconde seus processos atr´s de uma interface a a gr´fica de apontar e clicar; ao inv´s disso ele p˜e os usu´rios no controle e mostra para eles exatamente o que a e o a est´ acontecendo. Seu desenvolvimento n˜o ´ acelerado artificialmente para cumprir prazos - cada vers˜o s´ ´ a a e a oe lan¸ada quando realmente est´ pronta. c a O Slackware ´ para as pessoas que gostam de aprender e fazer com o sistema exatamente o que quer. O e que permite que o Slackware ser´ usado por v´rios anos ´ a sua simplicidade e estabilidade. O Slackware atuala a e mente possui uma reputa¸˜o de um servidor est´vel e uma r´pida esta¸˜o de trabalho, Vocˆ poder´ encontrar ca a a ca e a desktops com Slackware funcionando quase todos com um gerenciador de janelas ou com ambiente de trabalho, ou sem nenhum. Os Servidores Slackware aumentam os neg´cios, aumentando a capacidade para os usu´rios o a do servidor, Os usu´rios de Slackware s˜o entre todos usu´rios os mais satisfeitos com o Linux. Naturalmente, a a a n´s dir´ o ıamos isso. :ˆ)

1.4

C´digo Aberto e Software Livre o

Dentro da comunidade Linux, existem dois principais movimentos ideol´gicos em atividade. O movimento o de Software livre (n´s come¸aremos em instantes) que est´ trabalhando com o objetivo de fazer todo o software o c a livre das restri¸˜es da propriedade intelectual. Os seguidores deste movimento acreditam que as restri¸oes imco c pedem as melhorias tecnicas e o trabalho contr´rio ao bem da comunidade. O movimento de c´digo aberto est´ a o a trabalhando praticamente com os mesmos objetivos, mas tomadas uma aproxima¸˜o mais pragm´tica a elas. Os ca a seguidores deste movimento preferem basear seus argumentos nos m´ritos econˆmicos e t´cnicos de fazer o c´digo e o e o fonte livremente dispon´ ıvel, melhor que os princ´ ıpios morais e ´ticos que dirigem o movimento de Software Lie vre, No extremo oposto da vis˜o est˜o os grupos que desejam manter um controle em exesso sobre seus softwares. a a O movimento de software livre ´ dirigido pela Free Software Foundation, uma organiza¸˜o de levantamento e ca de fundos para o projeto GNU. O software livre ´ mais que uma ideologia. A express˜o usada com frequˆncia e a e ´ livre como um discurso, mas n˜o como cerveja gr´tis. Essencialmente, o software livre ´ uma tentativa de e a a e garantir determinados direitos para os usu´rios e desenvolvedores. Esta liberdade incluem a liberdade para a executar o programa sem uma raz˜o, para estudar e modificar o c´digo fonte, para redistribuir o c´digo fonte e a o o para compartilhar de quaisquer modifica¸˜es que vocˆ fizer. A fim de garantir esta liberdade, a licen¸a p´blica co e c u geral da GNU (GPL) foi criado. A GPL, sendo breve, prover que qualquer um que distribui um programa compilado que seja licenciado sob a GPL deve tamb´m fornecer o c´digo fonte, e ´ livre para fazer modificac˜es e o e o no programa e aquelas modifica¸˜es feitas tamb´m estar˜o dispon´ co e a ıveis na forma de c´digo fonte. Isto garante o que uma vez que um programa ´ aberto ` comunidade, n˜o pode ser fechado exceto pelo consentimento de cada e a a autor de cada parte do c´digo (mesmo as modifica¸˜es) dentro dele. A maioria dos programas para o Linux o co est˜o licenciados sob a GPL. a ´ E importante notar que a GPL n˜o diz qualquer coisa sobre o pre¸o. T˜o ´ a c a ımpar como pode soar, vocˆ pode e cobrar pelo software livre. A parte livre est´ na liberdade que vocˆ tem com o c´digo fonte, n˜o no pre¸o que a e o a c vocˆ paga pelo software. (entretanto, uma vez que algu´m o vendeu, ou tenha dado um programa compilado e e licenciado sob a GPL s˜o obrigados a fornecer tamb´m o c´digo fonte.) a e o Outra licen¸a popular ´ a licen¸a BSD. Em contraste com a GPL, a licen¸a BSD n˜o imp˜e nenhuma exic e c c a o gˆncia para a libera¸˜o do c´digo fonte de um programa. Os Softwares lan¸ado sobre a licen¸a BSD permitem e ca o c c redistribuir em c´digo fonte ou em bin´rio uma forma de providenciar apenas algumas condi¸˜es. O cr´dito o a co e do autor n˜o pode ser usados como um car´ter de propaganda para o programa. Imuniza tamb´m o autor da a a e responsabilidade para os danos que podem se levados pelo uso do software. Muito dos softwares inclu´ no ıdo Slackware Linux s˜o licenciados pela BSD. a Na linha de frente do jovem movimento de c´digo aberto, A OSI ´ uma organiza¸˜o que existe unicamente o e ca para avan¸ar a sustenta¸˜o para o software de c´digo aberto, isto ´, o software ter o c´digo aberto disponivel c ca o e o

´ 1.4. CODIGO ABERTO E SOFTWARE LIVRE

7

perfeitamente para ler e executar o programa. N˜o oferecem uma licen¸a espec´ a c ıfica, mas em substitui¸˜o suca portam os v´rios tipos de licen¸as de c´digos abertos. a c o A ideia atr´s da OSI ´ trazer mais companhias para o c´digo aberto permitindo que escrevam suas pr´prias a e o o licen¸as de c´digo aberto e tenham aquelas licen¸as certificadas pela Open Source Initiative. Muitas companhias c o c querem liberar o c´digo fonte, mas n˜o querem usar a GPL. Desde que n˜o podem radicalmente mudar a GPL, o a a s˜o oferecidas a oportunidade de fornecer sua pr´pria licen¸a e de tˆ-la certificada por esta organiza¸˜o. a o c e ca Quando a Free Software Foundation e a Open Source Initiative trabalharem para se ajudarem, elas n˜o s˜o a a a mesma coisa. A Free Software Foundation usa uma licen¸a espec´ c ıfica e fornece o software sob esta licen¸a, A c Open Source Initiative busca dar suporte para todas a licen¸as abertas, incluindo uma para a Free Software c Foundation. Toda a sustenta¸˜o aberta das buscas da Open Source Initiative para abrir o c´digo fonte, inluindo ca o a Free Software Foundation. As regi˜es em que cada uma discute fazendo o c´digo fonte livremente dispon´ o o ıvel dividem `s vezes os dois movimentos, mas o fato de que dois grupos ideologicamente diferentes est˜o trabalhando a a para o mesmo objetivo, isso dar cr´dito aos esfor¸os de cada um. e c

8

CAP´ ITULO 1. UMA INTRODUCAO AO SLACKWARE LINUX ¸˜

Cap´ ıtulo 2

Ajuda
Muitas vezes vocˆ precisa de ajuda para um comando espec´ e ıfico, para iniciar um programa, ou simplesmente saber como um hardware trabalha. Talvez vocˆ queira saber mais op¸˜es que possam ser utilizadas em um e co determinado comando, ou apenas verificar quais op¸˜es est˜o dispon´ co a ıveis para serem utilizadas em um determinado comando. Felizmente, existem v´rias maneiras de vocˆ obter ajuda para o que est´ procurando. Quando a e a vocˆ instala o Slackware vocˆ tem a op¸˜o de instalar os pacotes da s´rie F que inclui FAQs e HOWTOs. Alguns e e ca e programas tamb´m possuem ajuda sobre outras op¸˜es, arquivos de configura¸˜o e uso. e co ca

2.1
2.1.1

Ajuda do Sistema
man

O comando man (abrevia¸˜o de manual ) ´ a forma tradicional de documenta¸˜o online dos sistemas operaca e ca cionais Unix e Linux. Composto de Linhas formatadas especialmente, as man page, s˜o escritas para a grande a maioria dos programas e s˜o distribu´ a ıdas com o pr´prio software. Executando man comando ser´ mostrada a o a man page para o programa especificado, em nosso exemplo esse seria o comando imagin´rio comando. a Vocˆ deve imaginar a grande quantidade de p´ginas de manual que podem ser rapidamente criadas, tornariae a se confuso e complicado at´ mesmo para um usu´rio avan¸ado. Devido a isso, `s p´ginas de manual s˜o divididas e a c a a a em se¸˜es numeradas. Este sistema esteve dispon´ co ıvel por um longo tempo; vocˆ ver´ bastante comandos, e a programas e referˆncias de fun¸˜es de bibliotecas referˆnciadas pelo n´mero da se¸˜o do man. e co e u ca Por exemplo: Vocˆ pode fazer uma referˆncia ao man(1). O n´mero especifica que a man ´ documentada na se¸˜o e e u e ca 1 (comandos de usu´rios); vocˆ pode especificar que vocˆ quer a documenta¸˜o da se¸˜o 1 do man com o a e e ca ca comando man 1 man. Especificar a se¸˜o ´ util quando existe manuais em v´rias se¸˜es com o mesmo nome. ca e ´ a co Se¸˜o ca Se¸˜o ca Se¸˜o ca Se¸˜o ca Se¸˜o ca Se¸˜o ca Se¸˜o ca Se¸˜o ca Se¸˜o ca Conte´do u Comandos de usu´rios (somente introdu¸˜o) a ca hamadas do Sistema Chamadas de bibliotecas C Dispositivos (ex., hd, sd) Formatos de Arquivos e protocolos (ex., wtmp, /etc/passwd, nfs) Jogos (somente introdu¸˜o) ca Conven¸˜es, pacotes macro, etc. (ex., nroff, ascii) co Administra¸˜o do sistema (somente introdu¸˜o) ca ca

1 2 3 4 5 6 7 8

Em adicional ao comando man(1), existem os comandos whatis(1) e apropos(1) que est˜o dispon´ a ıveis para vocˆ, com a finalidade de encontrar uma informa¸˜o mais f´cil no sistema. e ca a O comando whatis d´ uma descri¸˜o muito breve dos comandos do sistema, uma esp´cie de referˆncia. a ca e e Exemplo: $ whatis whatis whatis (1) - search the whatis database for complete words

O comando apropos ´ usado para procurar a p´gina de manual que contˆm uma determinada palavra.. e a e Exemplo: 9

10 $ apropos wav

CAP´ ITULO 2. AJUDA

cdda2wav (1) - a sampling utility that dumps CD audio data into wav sound files netwave cs (4) - Xircom Creditcard Netwave device driver oggdec (1) - simple decoder, Ogg Vorbis file to PCM audio file (WAV or RAW) wavelan (4) - AT&T GIS WaveLAN ISA device driver wavelan cs (4) - AT&T GIS WaveLAN PCMCIA device driver wvlan cs (4) - Lucent WaveLAN/IEEE 802.11 device driver Caso queira alguma informa¸˜o adicional para algum destes comandos, leia a p´gina de manual para maiores ca a detalhes. ;)

2.1.2

O diret´rio /usr/doc/ o

A grande maioria dos softwares que instalamos vem com algum tipo de documenta¸˜o: arquivos README, ca instru¸˜es de uso, arquivos de licen¸a, etc. Geralmente toda documenta¸ao que vˆm com o software ´ instaco c c e e lada no sistema no diret´rio /usr/doc/. Cada programa geralmente instala sua documenta¸˜o na seguinte ordem: o ca /usr/doc/$programa-$vers˜o/ a Onde $programa ´ o nome do programa que vocˆ est´ querendo obter informa¸˜es, e $vers˜o// ´ (obviae e a co a e mente) a vers˜o do software que est´ instalado em seu sistema. a a Por exemplo, para ler a documenta¸˜o do comando man(1) vocˆ digitaria cd no: ca e $ cd /usr/doc/man-$vers˜o/ a Caso ao ler as informa¸˜es da p´gina de manual vocˆ n˜o encontre informa¸˜es apropriadas o pr´ximo passo co a e a co o ´ buscar informa¸˜es no diret´rio /usr/doc/. e co o

2.1.3

HOWTOs e mini-HOWTOs

O verdadeiro esp´ ırito da comunidade de C´digo Aberto cria uma grande cole¸˜o de HOWTO/mini-HOWTO. o ca Esses arquivos s˜o exatamente - documentos e guias descrevendo como deve ser feito algo. Caso vocˆ decida a e instalar os HOWTO, eles ser˜o instalados no diret´rio /usr/doc/Linux-HOWTOs/ e os mini-HOWTOs em a o /usr/doc/Linux-mini-HOWTOs/. A mesma s´rie de pacotes inclui uma cole¸˜o de pacotes de FAQs, que ´ uma abrevia¸˜o para Frequently e ca e ca Asked Questions (em portuguˆs seria Perguntas mais Frequentes) e Estes documentos s˜o escritos no estilo de Perguntas e Respostas. Os FAQs podem ser muito util quando a ´ se procura algo onde se queira ter respostas r´pidas para algo. Caso vocˆ decida instalar os FAQs durante a a e instala¸˜o, vocˆ os encontrar´ instalados do diret´tio /usr/doc/Linux-FAQs/. ca e a o Esses arquivos s˜o muito uteis quando vocˆ est´ com alguma d´vida e n˜o sabe como resolver o problema. a ´ e a u a Cobrem uma grande variedade de assuntos, mas n˜o cobrem os assuntos de maneira detalhada. Bom material! a

2.2

Ajuda Online

Al´m da documenta¸˜o que ´ fornecida com a instala¸˜o do Sistema Operacional Slackware Linux, existe e ca e ca uma grande variedade de documenta¸˜o dispon´ que vocˆ pode obter para aprender. ca ıvel e

2.2.1

O Site Oficial e os F´rums de Ajuda o

• Site Oficial do Slackware O site Oficial do Slackware Linux algumas vezes fica desatualizado, mas contˆm uma grande variedade de e informa¸˜es importantes sobre as ultimas vers˜es do Slackware. Existia um f´rum ativo de ajuda. Por´m co ´ o o e manter o f´rum come¸ou a dar muito trabalho, ent˜o o Pat cancelou o f´rum. o c a o o Pode-se encontrar algumas informa¸˜es antigas desse f´rum em www.userlocal.com/phorum. Ap´s o co o cancelamento do f´rum do slackware no site www.slackware.com, diversos outros sites ofereceram-se para o o possuir o f´rum para Slackware, ent˜o o Pat endossou o www.linuxquestions.org como sendo o f´rum o a oficial para o Slackware Linux.

2.2. AJUDA ONLINE

11

2.2.2

Suporte por E-mail

A todos que compram o conjunto oficial de CDs do projeto ´ oferecido suporte livre via e-mail pelo desene volvedor. Por favor, isso que est´ sendo dito, deve ser mantido entre os colaboradores (e a grande maioria dos a usu´rios) do Slackware A velha escola. Isso significa que n´s preferimos ajudar `queles que tˆm um interesse a o a e sincero e est˜o dispostos a ajudar no processo. N´s faremos sempre o melhor para ajudar quem nos envia um a o e-mail. Entretanto, Por favor verifique a documenta¸˜o e o site (especialmente os FAQs e talvez algum f´rum ca o listado abaixo) antes de enviar um e-mail. Vocˆ pode iniciar sua busca nas respostas simples, seria menos e-mail e que ter´ ıamos que responder, obviamente n´s ajudamos de uma forma melhor `queles que precisam de nossa o a ajuda. O endere¸o de e-mail para suporte t´cnico ´: support@slackware.com. Outros endere¸os de e-mail e inforc e e c ma¸˜es de contato s˜o listados no site oficial. co a

Lista de E-mail do Projeto Slackware Linux Existem algumas listas de e-mail dispon´ ıveis em forma de sum´rio ou formul´rio normal. Verifique as instru¸˜es para saber como se inscrever. a a co Para inscrever em uma lista de e-mail, envie uma mensagem para: majordomo@slackware.com com a frase subscribe [nome da lista] no corpo da mensagem. A descri¸˜o das listas est´ ca a abaixo (use o nome abaixo para o inscrever-se na lista). Os arquivos da lista de e-mail podem ser encontrador no site do Slackware em: http://slackware.com/lists/archive/ slackware-announce A lista de e-mail slackware-announce ´ utilizada para anunciar novas vers˜es, principais e o atualiza¸˜es e outras informa¸˜es em geral. co co slackware-security A lista de e-mail slackware-security informa assuntos relacionados ` seguran¸a. Exploits e a c outras vulnerabilidades que perten¸am diretamente ao Slackware s˜o postadas na lista imediac a tamente. As listas est˜o disponiveis no formato de sum´rio. Isto ´, ao inv´s de vocˆ receber v´rias a a e e e a mensagens durante o dia, vocˆ receber´ apenas uma mensagem com todo o conte´do criado e a u no dia. A lista de e-mail do Slackware n˜o permite que usu´rios postem mensagem, e as listas a a possuem um tr´fego baixo, muitos usu´rios encontram pouca vantagem em receber o sum´rio da a a a lista. Caso vocˆ queira, ainda est˜o dispon´ e a ıveis para inscri¸˜o a lista slackware-announce-digest ca ou slackware-security-digest. 2.2.3 Sites n˜o-oficiais e F´runs de ajuda a o

Sites Google (www.google.com) O mestre do Kung-Fu para sites de busca. Absolutamente vocˆ, encontra as e ultimas informa¸˜es sobre o kernel com o t´ ´ co ıtulo: N˜o aceite substitutos. a Google:Linux (www.google.com/linux) Procura especificamente por Linux Google:BSD (www.google.com/bsd) Procura especificamente por BSD. Slackware tamb´m ´ um sistema operacional e e gen´rico, assim como o Unix funciona, por isso, vocˆ tamb´m pode encontrar muie e e tas informa¸˜es sobre Slackware. Muitas vezes uma busca, em BSD, pode trazer co informa¸˜es t´cnicas relacionadas com o Linux. co e Google:Groups (groups.google.com)

12

CAP´ ITULO 2. AJUDA

Busca por informa¸˜es nas mensagens de d´cadas da Usenet. co e userlocal Um tesouro virtual de conhecimento, bom conselheiro, experiˆncias em primeira e m˜o e artigos interessantes. O primeiro lugar que vocˆ ouvir´ com freq¨ˆncia sobre a e a ue o desenvolvimento de Slackware no mundo. Recursos Web linuxquestions.org O f´rum oficial de usu´rios de Slackware. o a F´rum Slackware o ”Um local para efetuar download e obter ajuda sobre Linux.” [alt.os.linux.slackware wombat.san-francisco.ca.us/perl/fom] FAQ Outras FAQ Grupos de usu´rios (NNTP) A USENET tem sido por muito tempo o lugar onde os geeks a buscam ajuda e ajudem uns aos outros. Existem poucos grupos dedicados ao Slackware Linux, mas tendem a serem preenchidos com as grandes base de conhecimento de outras pessoas. alt.os.linux.slackware alt.os.linux.slackware, mais conhecida como aols, (n˜o confunda com a AOL! ) ´ um dos a e lugares mais ativos para encontrar ajuda sobre problemas com o Slackware. Como cada grupo, alguns participam (ativamente) com experiˆncia pelo fato de ajudar bastante. Aprenda a e ignorar trolls e identifique ajuda de pessoas que realmente utilizam esse recurso.

Cap´ ıtulo 3

Instala¸˜o ca
Antes que vocˆ possa usar o Slackware Linux, ser´ necess´rio vocˆ obtˆ-lo e instal´-lo. Obter e a a e e a o Slackware ´ f´cil, vocˆ pode compra-lo ou efetuar o download gratu´ atrav´s da Internet. e a e ıto e A instala¸˜o tamb´m ´ muito f´cil, desde que vocˆ tenha conhecimento b´sico sobre seu comca e e a e a putador e esteja disposto a aprender algumas coisas. O programa de instala¸˜o o conduzir´ ca a passo-a-passo. Devido ao programa de instala¸˜o vocˆ instalar´ rapidamente o sistema. O fato ca e a ´ que o Slackware possui um programa de instala¸˜o mais r´pido em rela¸˜o ` qualquer outra e ca a ca a distribui¸˜o Linux. ca

3.1
3.1.1

Obtendo o Slackware
A caixa com os discos Oficiais

O conjunto de CDs oficial do Slackware Linux CD est´ dispon´ na Slackware Linux, Inc. a ıvel O jogo consiste em 4 discos. O primeiro disco contˆm todo o software necess´rios para um e a sistema b´sico e o gerenciados de janelas X. O segundo CD ´ um disco adicional; isto ´, um a e e CD boot´vel que instala na RAM uma instala¸˜o provis´ria, caso seja necess´rio efetuar uma a ca o a manuten¸˜o de reparo na m´quina. Este CD possui alguns pacotes, tais como os ambientes ca a gr´ficos KDE e GNOME. Alguns pacotes novos s˜o inclusos no segundo CD incluindo a s´rie a a e de pacotes extra, que s˜o pacotes n˜o essenciais ao sistema. O terceiro e o quarto CD inclui a a todos os c´digos fontes de todos os programas do Slackware, junto com a edi¸˜o original desse o ca livro. Tamb´m ´ poss´ e e ıvel comprar um kit contendo os 4 discos e uma c´pia deste Livro, dessa o forma vocˆ poder´ se exibir como um verdadeiro geek. A compra dos CDs est˜o dispon´ e a a ıveis a um custo bem acess´ ıvel. A maneira preferida para a compra desses produtos ´ na loja oficial do Slackware. e • http://store.slackware.com Vocˆ tambˆm pode solicitar informa¸˜es por e-mail. e e co

Informa¸oes de Contato na Slackware Linux, Inc. c˜ Method Telephone Site Email Postal Contact Details 1-(925) 674-0783 http://store.slackware.com orders@slackware.com 1164 Claremont Drive, Brentwood, CA 94513
13

14

CAP´ ITULO 3. INSTALACAO ¸˜

3.1.2

Atrav´s da Internet e

Slackware Linux est´ totalmente Livre na Internet. Vocˆ pode enviar suas perguntas por a e email, mas a prioridade ser´ `s perguntas referentes ` compras do kit oficial. Como dito anaa a teriormente, n´s recebemos muitos e-mails, e o tempo ´ muito limitado para poder atender a o e todos. Antes de enviar um e-mail para suporte primeiramente leia a ajuda. O site oficial do Projeto Slackware Linux Project ´ o endere¸o: e c http://www.slackware.com/ A localiza¸˜o do FTP prim´rio para o Slackware Linux ´: ca a e ftp://ftp.slackware.com/pub/slackware/ O ftp dispon´ no site, est´ aberto para uso geral, n˜o existe limite de banda. Mas por ıvel a a favor, considere a op¸˜o de utilizar um mirror mais pr´ximo ` vocˆ para efetuar o download do ca o a e Slackware. A lista completa dos mirros podem ser encontradas no site http://www.slackware.com/getslack.

3.2

Requisitos para Instala¸˜o ca

Uma instala¸˜o m´ ca ınima do Slackware, necessita da seguinte configura¸˜o: ca Hardware Processador Mem´ria o Espa¸o em Disco c Drive de CD Necess´rio a 586 32 MB RAM 1GB 4x CD-ROM

´ Caso vocˆ tenha um CD boot´vel, vocˆ n˜o ir´ precisar de um disquete. E claro que se e a e a a vocˆ n˜o possuir uma unidade de CD-ROM, vocˆ precisar´ de um disquete e uma unidade de e a e a disquete para fazer a instala¸˜o via NFS atrav´s de uma rede. Al´m disso tamb´m ´ necess´rio ca e e e e a uma placa de rede para esse tipo de instala¸˜o. Para maiores informa¸˜es consulte a se¸˜o NFS. ca co ca O espa¸o em disco necess´rio, ´ um pouco complicado especificar. O espa¸o recomendado c a e c para uma instala¸˜o m´ ca ınima ´ de 1GB, mas caso vocˆ fa¸a uma instala¸˜o completa vocˆ ir´ e e c ca e a precisar cerca de 2Gb de espa¸o em disco e mais um espa¸o para armazenar seus arquivos pesc c soais. A maioria dos usu´rios n˜o fazem a instala¸˜o completa. O fato ´ que muitos usu´rios a a ca e a instalam o Slackware em um disco realmente pequeno com 100Mb de espa¸o. c O Slackware pode ser instalado em sistemas com pouca mem´ria RAM, discos r´ o ıgidos pequenos e CPUs com pouco poder de processamento, por´m isso necesita de um pouco de trabalho. e Se este for o seu caso, leia o arquivo LOWMEM.TXT localizado na ´rvore da distibui¸˜o, para a ca obter algumas dicas uteis. ´

3.2.1

As S´ries do Software e

Por raz˜es de simplicidade, os softwares (pacotes) que acompanham o Slackware s˜o dividio a dos em s´ries. Essas s´ries s˜o chamadas de conjunto de discos devido terem sido planejadas e e a para a instala¸˜o do sistema atrav´s de disquetes, por´m hoje essas s´ries s˜o usadas basica e e e a camente para categorizar os pacotes incluso no Slackware. Hoje n˜o ´ mais poss´ fazer a a e ıvel instala¸˜o apenas com disquetes. ca

3.2. REQUISITOS PARA INSTALACAO ¸˜

15

A seguir vocˆ encontra uma breve descri¸˜o de cada s´rie de pacotes. e ca e S´rie dos Pacotes e

S´rie e Conte´ do u A Base do Sistema. Contˆm uma grande parte dos softwares utilizados para se ter um sistema e AP Diversos aplicativos que n˜o necessitam de um Servidor X. a D Ferramentas de desenvolvimento de programas. Compiladores, debugadores, interpretadores E GNU Emacs. F FAQs, HOWTOs e outros tipos de documenta¸˜o. ca GNOME O ambiente gr´fico GNOME. a K O c´digo fonte do kernel do Linux. o KDE O ambiente gr´fico K. Um ambiente gr´fico que possui muitas caracter´ a a ısticas visuais em com KDEI Pacotes de internacionaliza¸˜o para o ambiente KDE. ca L Bibliotecas. Bibliotecas dinˆmicas lincadas necess´rias para muitos outros programas. a a N Programas de Rede. Daemons, programas de e-mail, telnet, leitor de news e alguns outros. T Sistema de formata¸˜o de documentos teTeX. ca TCL Ferramenta de Linguagem de comando. Tk, TclX, e TkDesk. X Sistema base para o X Window. XAP Aplica¸˜es gr´ficas que n˜o fazem parte de um ambiente de desktop principal (como por exem co a a Y Jogos de console BSD 3.2.2 M´todos de Instala¸˜o e ca

Disquete Quando era poss´ ıvel, O Slackware Linux era instalado com apenas dois disquetes, por´m o e tamanho dos pacotes de alguns softwares cresceram (especificamente alguns softwares) ent˜o a houve o abandono for¸ado da instala¸˜o via disquete. At´ a vers˜o 7.1, era poss´ fazer uma c ca e a ıvel parte da instala¸˜o utilizando disquetes. As s´ries A e N podiam ser totalmente instaladas, o ca e que fornecia um sistema b´sico para instalar o restante da distribui¸˜o. Caso vocˆ for utilizar a ca e um disquete para instalar (em um equipamento mais velho), ´ recomend´vel que vocˆ utilize e a e uma vers˜o mais antiga. Para esse tipo de equipamento ´ recomendado as vers˜es 4.0 (a mais a e o popular para isso) e a 7.0 do Slackware. Observe que o disquete ainda ´ utilizado para realizar o boot, quando isso n˜o ´ poss´ e a e ıvel atrav´s de uma unidade de CD-ROM, ou quando se utiliza a instala¸˜o via NFS. e ca CD-ROM Se vocˆ tiver um CD boot´vel, criado pela Slackware Linux, Inc. (veja a se¸˜o Obtendo o e a ca Slackware) a instala¸˜o ficar´ mais f´cil para vocˆ. Caso contr´rio, vocˆ poder´ utilizar um ca a a e a e a disquete de boot. Caso, vocˆ tenha um hardware espec´ e ıfico, um disco de boot espec´ ıfico poder´ a ser utilizado. A partir da vers˜o 8.1, um novo m´todo de cria¸˜o de CDs de BOOT foi adotado, que n˜o a e ca a trabalha com algumas BIOS (esse problema ´ enfrentado por todas distribui¸˜es Linux atuale co mente). Se este for o seu caso, recomendamos que vocˆ utilize um disquete. e ca ca co Veja a se¸˜o 3.2.3 e a se¸˜o 3.2.5 fornecem informa¸˜es de como criar um disquete de boot, caso seja necess´rio. a NFS

16

CAP´ ITULO 3. INSTALACAO ¸˜

NFS (Sistemas de Arquivos de Rede) ´ uma maneira de utilizar sistemas de arquivos em e m´quinas remotas. A instala¸˜o via NFS permite que vocˆ instale o Slackware ` partir de uma a ca e a outra m´quina de sua rede. A m´quina que vocˆ estiver utilizando para a instala¸˜o precisa ser a a e ca configurada de modo a exportar a ´rvore de distribui¸˜o do Slackwware para a m´quina que a ca a vocˆ est´ instalando. Isto, naturalmente, requer um certo conhecimento do NFS, que ´ coberto e a e na se¸˜o Network File System (NFS). ca Tamb´m ´ poss´ executar o NFS atrav´s de um m´todo como o PLIP (sobre uma porta e e ıvel e e paralela), SLIP, e PPP (exceto sobre uma conex˜o via modem). Entretanto, ´ recomend´vel a e a que vocˆ utilize uma placa de rede. Apesar de tudo, instalar um sistema atrav´s de uma porta e e paralela ´ algo muito lento. e

3.2.3

Disco de Boot

O disco de boot ´ um disquete utilizado para iniciar a instala¸˜o. Ele contˆm uma imagem e ca e compactada do Kernel que ´ utilizada para controlar o hardware durante a instala¸˜o. Ao mee ca nos que vocˆ esteja utilizando um CD, este disco ´ necess´rio. Os discos de boot s˜o localizados e e a a no diret´rio bootdisks/ da ´rvore da distribui¸˜o. o a ca Existem diversos discos de boot que vocˆ pode utilizar (s˜o aproximadamente 16). A lista e a completa dos discos de boot e a descri¸˜o completa de cada um s˜o encontradas no arquivo ca a bootdisks/README.TXT localizado na ´rvore da distribui¸˜o. Entretanto, a maioria das pesa ca soas utilizam a imagem bare.i (para dispositivos IDE ou scsi.s (para dispositivos SCSI) para o boot. Veja a se¸˜o 3.2.3 - Disco de Boot para instru¸˜es de como fazer um disco de boot. ca co Ap´s o boot, um prompt de comando solicitar´ que vocˆ insira o disco de root. o a e 3.2.4 Disco de Root

Os discos de root contˆm o programa de instala¸˜o e um sistema de arquivos que ´ utilizado e ca e durante a instala¸˜o. Tamb´m s˜o necess´rios. As imagens do disco de root s˜o encontradas ca e a a a na ´rvore da distribui¸˜o. Vocˆ ter´ que fazer dois discos de root, install.1 e install.2. Aqui, a ca e a vocˆ tamb´m pode encontrar os discos network.dsk, pcmcia.dsk, rescue.dsk, e sbootmgr.dsk. e e

3.2.5

Disco Complementar

Um disco complementar ´ necess´rio caso vocˆ utilize uma instala¸˜o via NFS ou se vocˆ tiver e a e ca e um cart˜o PCMCIA. Os discos complementares s˜o encontrados no diret´tio ra´ da ´rvore de a a o ız a distribui¸˜o, com os nomes network.dsk e pcmcia.dsk. Recentemente, outros discos complemenca tares como rescue.dsk e sbootmgr.dsk foram adicionados. O disco de restaura¸˜o ´ uma imagem ca e pequena que funciona com 4MB de RAM. Inclui alguns utilit´rios b´sicos de rede e o editor vi a a para reparos r´pidos. O disco sbootmgr.dsk ´ utilizado para carregar outros dispositivos. Use a e este disco se o seu CD-ROM boot´vel n˜o quiser dar boot com os CDs do Slackware. Ele pea a dir´ outras op¸˜es de boot e pode ser uma forma conveniente de contornar uma BIOS com bugs. a co O disco de root ir´ instru´ a usar discos complementares quando ele for carregado. a ı-lo

3.3. PARTICIONAMENTO

17

3.2.6

Criando os discos

Caso tenha escolhido uma imagem de boot, vocˆ necessita de um disquete. Dependendo do e sistema que est´ usando para criar os discos, o processo ser´ diferente. Se vocˆ estiver utilizando a a e um Linux (ou um outro sistema Unix) vocˆ utilizar´ o comando dd (1). Suponhamos que vocˆ e a e esteja usando a imagem bare.i e a sua unidade de disquete ´ o /dev/fd0, o comando que vocˆ e e dever´ utilizar para criar um disquete com a imagem bare.i ´: a e $ dd if=bare.i of=/dev/fd0 Se estiver utilizando um sistema operacional Microsoft, vocˆ precisar´ do programa RAe a WRITE.EXE, que est´ incluso no mesmo diret´rio das imagens de disquete. Suponhamos que a o esteja usando a imagem bare.i e o seu dispositivo de disquete ´ a unidade A:, abra o prompt e do DOS e digite: C: rawrite a: bare.i

3.3

Particionamento

Ap´s a inicializa¸˜o com a sua m´ preferida, ser´ necess´rio particionar o seu disco r´ o ca ıdia a a ıgido. A parti¸˜o do disco ´ onde o sistema de arquivos do Linux ser´ criado e onde o Slackware ser´ ca e a a instalado. Recomendamos a cria¸˜o de, no m´ ca ınimo, duas parti¸˜es; uma para o seu sistema de co arquivos root (/ ) e uma para a ´rea de troca (swap). a Quando terminar o carregamento do disco de root, aparecer´ um prompt de login. Entre no a sistema como root (sem senha). No prompt do shell, execute cfdisk (8) ou fdisk (8). O programa cfdisk possui uma interface mais amig´vel do que o programa fdisk, mas lhe faltam alguns a recursos. Segue abaixo uma r´pida explica¸˜o do programa fdisk. a ca Comece executando o fdisk para o seu disco r´ ıgido. No Linux, em vez dos discos r´ ıgidos possu´ ırem letras de drive, eles s˜o representados por um arquivo. O primeiro disco r´ a ıgido IDE (prim´rio master) ´ /dev/hda, o prim´rio slave ´ /dev/hdb, e assim por diante. Discos SCSI a e a e seguem o mesmo sistema, mas no formato /dev/sdX. Inicie o fdisk informando o seu disco r´ ıgido: # fdisk /dev/hda Como em todos os bons programas para o Unix, o fdisk mostra um prompt (pensou que haveria um menu, n˜o foi?). A primeira coisa que vocˆ deve fazer ´ examinar o seu esquema a e e de parti¸˜es atual. Fa¸a isso digitando p** no prompt do fdisk : co c Command (m for help): p Ser˜o exibidos todos os tipos de informa¸˜es sobre o seu sistema de parti¸˜es atual. A a co co maioria das pessoas seleciona uma unidade livre para a instala¸˜o e ent˜o remove as parti¸˜es ca a co existentes para dar espa¸o para as parti¸˜es do Linux. c co ´ ´ AVISO: E EXTREMAMENTE IMPORTANTE FAZER UMA COPIA DE SEGURANCA ¸ ˜ ˆ QUEIRA MANTER, ANTES DE (BACKUP) DE TODAS AS INFORMACOES QUE VOCE ¸ ˜ REMOVER A PARTICAO ONDE ELAS ESTAO ARMAZENADAS. ¸˜

18

CAP´ ITULO 3. INSTALACAO ¸˜

N˜o existe uma forma f´cil de recuperar dados de uma parti¸˜o removida, portanto sempre a a ca fa¸a uma c´pia de seguran¸a (backup) antes de alter´-las. c o c a Na tabela de informa¸˜es da parti¸˜o h´ um n´mero da parti¸˜o, o tamanho, e o tipo. H´ co ca a u ca a mais informa¸˜es, mas n˜o se preocupe com isso por enquanto. Removeremos todas as parti¸˜es co a co deste drive para criar as do Linux. Digitamos d para removˆ-las: e Command (m for help): d Partition number (1-4): 1 Repita este processo para cada uma das parti¸˜es. Ap´s removˆ-las, estaremos prontos para co o e criar as do Linux. Decidimos criar uma parti¸˜o para o nosso sistema de arquivos root e uma ca para o swap. Observe que os esquemas de particionamento do Unix s˜o a causa de acaloradas a discuss˜es, e que a maioria dos usu´rios lhe dir´ qual a melhor forma. No m´ o a a ınimo, crie uma parti¸˜o para o / e uma para swap. Com o tempo, vocˆ desenvolver´ uma metodologia que ca e a funcione bem para vocˆ. e Eu uso dois esquemas b´sicos de particionamento. O primeiro ´ para um desktop. Fa¸o a e c 4 parti¸˜es, /, /home, /usr/local, e swap. Assim posso re-instalar ou atualizar tudo que est´ co a instalado em / sem remover os meus arquivos de dados no /home ou os meus aplicativos personalizados compilados no /usr/local. Em servidores, geralmente substituo a parti¸˜o /usr/local ca por uma parti¸˜o /var. Muitos servidores diferentes armazenam informa¸˜es nesta parti¸˜o e ca co ca mantˆ-la separada do / traz benef´ e ıcios quanto ao desempenho. Por enquanto, vamos ficar com apenas estas duas parti¸˜es: / e swap. co Agora podemos criar as parti¸˜es com o comando n: co

Command (m for help):n Command action e extended p primary partition (1-4) p Partition number (1-4)}: 1 First cylinder (0-1060, default 0): 0 Last cylinder or +size or +sizeM or +sizeK (0-1060, default 1060):+64M Assegure-se de ter criado parti¸˜es prim´rias. A primeira parti¸˜o ser´ a nossa parti¸˜o co a ca a ca swap. Diremos ao fdisk para tornar a parti¸˜o n´mero 1 uma parti¸˜o prim´ria. Ela come¸ar´ ca u ca a c a no cilindro 0 e, para o cilindro final, digitamos +64M. Isto criar´ uma parti¸˜o de 64 megabytes a ca para swap. (Na verdade, o tamanho da parti¸˜o de swap depende da quantidade de RAM do ca seu sistema. Por conven¸˜o se usa uma parti¸˜o de swap com o dobro do tamanho da RAM do ca ca seu sistema.) Ent˜o, definimos a parti¸˜o prim´ria n´mero 2 come¸ando no primeiro cilindro a ca a u c dispon´ e indo at´ o final do drive. ıvel e Command (m for help): n Command action e extended p primary partition (1-4)

3.4. O PROGRAMA SETUP

19

p Partition number (1-4): 2 First cylinder (124-1060, default 124):124 Last cylinder or +size or +sizeM or +sizeK (124-1060, default 1060):}1060

Est´ quase pronto. Precisamos alterar o tipo da primeira parti¸˜o para tipo 82 (Linux swap). a ca Digite t para alterar o tipo, selecione a primeira parti¸˜o, e digite 82. Antes de gravar as suas ca altera¸˜es em disco, dˆ uma ultima olhada na nova tabela de parti¸˜es. Use o p no fdisk para co e ´ co exibir a tabela de parti¸˜es. Se tudo parecer estar bem, digite w para salvar as suas altera¸˜es co co e sair do fdisk.

3.4

O programa setup

Uma vez criada as parti¸˜es, vocˆ est´ pronto para instalar o Slackware. O pr´ximo passo da co e a o instala¸˜o ´ executar o programa setup. Para execut´-lo simplesmente digite setup no prompt. ca e a O setup possui um sistema de menu na qual permite que vocˆ instale os pacotes do Slackware e e configure seu sistema.

O processo de instala¸˜o ´ algo do tipo: Selecione as op¸˜es de acordo como elas s˜o listadas ca e co a ´ claro que vocˆ pode mudar a ordem de escolha das op¸˜es, n˜o seguindo no programa setup. (E e co a passo-a-passo o programa.) Os itens do menu s˜o selecionados usando as teclas seta para cima a e seta para baixo, e os bot˜es Okay e Cancel s˜o usados para proseguir ou para voltar. Como o a alternativa, vocˆ pode escolher a op¸˜o desejada, teclando a letra correspondente destacada do e ca menu para cada op¸˜o. Para selecionar as op¸˜es (estas s˜o indicadas com [X] ) utiliza-se a ca co a barra de espa¸o. c ´ E claro que vocˆ pode ver mais descri¸˜es na se¸˜o help do setup, por´m acreditamos que o e co ca e seu tempo vale dinheiro.

20

CAP´ ITULO 3. INSTALACAO ¸˜

3.4.1

HELP

Caso seja a primeira vez que vocˆ esteja instalando o Slackware, vocˆ pode dar uma olhada e e na tela de ajuda. Assim ter´ uma descri¸˜o de cada parte do programa setup (assim como a ca estamos descrevendo) e instru¸˜es para navega¸˜o e para o restante da instala¸˜o. co ca ca

3.4.2

KEYMAP

Caso necessite de um teclado diferente do padr˜o americano qwerty, vocˆ dever´ alter´-lo a e a a nessa se¸˜o. Existe uma grande quantidade de modelos de teclado que poder´ escolher. ca a

3.4. O PROGRAMA SETUP

21

3.4.3

ADDSWAP

Caso vocˆ tenha criado uma parti¸˜o de swap (voltar ` se¸˜o 3.3), ´ aqui que vocˆ dever´ e ca a ca e e a habilit´-la para utilizar. As parti¸˜es de swap existentes em seu disco ser˜o exibidas automaa co a ticamente, permitindo que vocˆ selecione, pelo menos uma, para formatar e habilitar. e

3.4.4

TARGET

Na se¸˜o target vocˆ formatar´ suas parti¸˜es e mapear´ os pontos de montagens dos sisca e a co a temas de arquivos. Uma lista com as parti¸˜es de seu disco r´ co ıgido s˜o mostradas. Para cada a parti¸˜o, poder´ escolher formatar ou n˜o. Dependendo do kernel utilizado, vocˆ poder´ esca a a e a colher os seguintes sistemas de arquivos reiserfs (padr˜o), ext3, ext2, jfs e xfs. A maioria das a pessoas utilizam reiserfs ou ext3. Em um futuro pr´ximo n´s poderemos ter o suporte ` reiserfs4. o o a A parti¸˜o a ser selecionada ´ onde o sistera root (/ )dever´ ser instalado. Ap´s isso, vocˆ ca e a o e

22

CAP´ ITULO 3. INSTALACAO ¸˜

poder´ escolher e mapear cada parti¸˜o para cada sistema de arquivos de acrodo com a sua a ca escolha. (Por exemplo, vocˆ pode querer que a sua terceira parti¸˜o /dev/hda3, seja o sistemas e ca de arquivos para o home. Isto ´ apenas um exemplo; crie os pontos de montagens de acordo e com o seu gosto.)

3.4.5

SOURCE

A se¸˜o Source ´ onde selecionamos a m´ ca e ıdia a partir da qual o Slackware ser´ instalado. a Atualmente, h´ quatro op¸˜es dispon´ a co ıveis. S˜o elas: CD-ROM, uma parti¸˜o no disco r´ a ca ıgido, NFS, ou um diret´rio pr´-montado. o e

A op¸˜o CD-ROM permite a instala¸˜o a partir de um CD-ROM. H´ a op¸˜o de procurar ca ca a ca automaticamente um drive de CD-ROM ou exibir uma lista da qual pode-se escolher o tipo do drive. Assegure-se de ter o CD do Slackware no seu drive antes de come¸ar a busca. c A op¸˜o NFS pede informa¸˜es da sua rede e de seu servidor NFS. O servidor NFS j´ ca co a deve estar configurado. Note tamb´m que n˜o ´ poss´ usar nomes de m´quina (hostnames), e a e ıvel a deve-se usar endere¸os IP tanto para a sua m´quina, quanto para o servidor NFS (n˜o h´ um c a a a servi¸o de resolu¸˜o de nomes no disco de instala¸˜o). Naturalmente, deve ser usado o disquete c ca ca network.dsk para dar suporte para a sua placa de rede. O diret´rio pr´-montado oferece maior flexibilidade. Use este m´todo para instalar a partir o e e de dispositivos como Jaz disks, pontos de montagem NFS sobre PLIP, e sistemas de arquivos FAT. Monte o sistema de arquivos em um local de sua escolha antes de executar a instala¸˜o, ca e ent˜o especifique esse local aqui. a

3.4.6

SELECT

A se¸˜o Select permite escolher as s´ries de software que desejamos instalar. Essas s´ries ca e e ca e o ca e s˜o descritas na se¸˜o 3.2.1. Note que ´ obrigat´ria a instala¸˜o da s´rie A para ter um sistema a base funcional. Todas as outras s´ries s˜o opcionais. e a

3.4. O PROGRAMA SETUP

23

3.4.7

INSTALL

Considerando que tenhamos passado pelas se¸˜es ”target”, ”source”, and ”select”, a se¸˜o co ca install permite selecionar pacotes dentre as s´ries de software escolhidas. Se n˜o, pedir´ que e a a vocˆ volte e complete as outras se¸˜es do programa de instala¸˜o. Esta se¸˜o permite escolher e co ca ca dentre seis diferentes m´todos de instala¸˜o: //full, newbie, menu, expert, custom, e tag path. e ca

A op¸˜o full (completo) instala todos os pacotes das s´ries escolhidas na se¸˜o select. N˜o ca e ca a h´ mais perguntas. Este ´ o m´todo de instala¸˜o mais f´cil, j´ que n˜o ´ necess´rio tomar a e e ca a a a e a ´ quaisquer decis˜es quanto aos pacotes a instalar de fato. E claro que esta op¸˜o tamb´m ´ a o ca e e que ocupa maior espa¸o no disco r´ c ıgido. A pr´xima op¸˜o ´ newbie (novato). Esta op¸˜o instala todos os pacotes requeridos pelas o ca e ca s´ries selecionadas. Em todos os outros pacotes h´ um prompt onde podemos selecionar Yes e a

24

CAP´ ITULO 3. INSTALACAO ¸˜

(sim), No (n˜o), ou Skip (pular). Yes e No fazem o ´bvio, enquanto Skip pula para a pr´xima a o o s´rie de software. Al´m disso, ´ exibida uma descri¸˜o e o tamanho de cada pacote para ajudar e e e ca a decidir se o mesmo ´ necess´rio. Recomendamos esta op¸˜o para os novos usu´rios, j´ que e a ca a a ela assegura que os pacotes desejados sejam instalados. Contudo, ela ´ um pouco mais lenta e devido `s perguntas. a Menu ´ uma vers˜o mais r´pida e mais avan¸ada da op¸˜o newbie. Em cada s´rie, aparece e a a c ca e um menu, a partir do qual pode-se selecionar todos os pacotes n˜o requeridos que se deseja a instalar. Os pacotes requeridos n˜o aparecem nesse menu. a Para os usu´rios mais avan¸ados, a instala¸˜o oferece a op¸˜o expert. Isto permite total a c ca ca ´ controle sobre quais pacotes s˜o instalados. E poss´ a ıvel remover da sele¸˜o pacotes que s˜o ca a absolutamente necess´rios, o que resulta em um sistema entrar em colapso. Por outro lado, ´ a e poss´ controlar exatamente o que entra em seu sistema. Simplesmente selecione os pacotes ıvel de cada s´rie que deseja que sejam instalados. Isto n˜o ´ recomendado para os novos usu´rios, e a e a j´ que ´ muito f´cil dar um tiro no pr´prio p´. a e a o e As op¸˜es custom e tag path tamb´m s˜o para usu´rios avan¸ados. Estas op¸˜es permitem co e a a c co a instala¸˜o com base em tag files personalizados criados na ´rvore da distribui¸˜o. Isto ´ util ca a ca e´ para se instalar um grande n´mero de m´quinas rapidamente. Para maiores informa¸˜es sobre u a co ca o uso de tag files, veja a se¸˜o 18.4. Ap´s escolher o seu m´todo de instala¸˜o, uma coisa ou outra abaixo vai acontecer. Se tiver o e ca selecionado full ou menu, uma tela com um menu aparecer´, permitindo a sele¸˜o dos pacotes a ca a ser instalados. Se tiver selecionado full, os pacotes come¸ar˜o a ser instalados no destino c a imediatamente. Se tiver selecionado newbie, os pacotes ser˜o instalados at´ que se alcance um a e pacote opcional. Observe que ´ poss´ e ıvel que o espa¸o em disco acabe durante a instala¸˜o. c ca Se selecionar pacotes demais para a quantidade de espa¸o livre no dispositivo alvo, vocˆ ter´ c e a ´ problemas. E mais seguro selecionar alguns programas e adicionar mais depois, se necess´rio. a Isto pode ser feito facilmente usando as ferramentas de gerenciamento de pacotes do Slackware. Para maiores informa¸˜es, veja a se¸˜o 18. co ca

3.4.8

CONFIGURE

A se¸˜o configure permite fazer algumas configura¸˜es b´sicas do sistema, agora que os paca co a cotes j´ foram instalados. O que vocˆ vˆ depende em grande parte de que programas foram a e e instalados. Contudo, sempre ser´ exibido o conte´do abaixo: a u

Kernel selection (Sele¸˜o do kernel) ca
Aqui vocˆ dever´ escolher um kernel para ser instalado. Vocˆ pode instalar o kernel do disco e a e de boot usado na instala¸˜o, do CD-ROM do Slackware, ou de outro disquete que vocˆ (sempre ca e se antecipando) tiver preparado. Ou vocˆ pode decidir pular, sendo que ent˜o o kernel padr˜o e a a ser´ instalado e o processo continuar´. a a

3.4. O PROGRAMA SETUP

25

Make a boot disk (Fazer um disco de boot)
Provavelmente ser´ uma boa id´ia fazer um disco de boot para usar no futuro. Vocˆ ter´ a a e e a op¸˜o de formatar um disquete e, ent˜o, criar um dos dois tipos de disco de boot. O primeiro ca a tipo, simple (simples), simplesmente (como ´ de se esperar) grava um kernel no disquete. Uma e op¸˜o mais flex´ (e altamente recomendada) ´ lilo, que, ´ claro, cria um disco de boot do ca ıvel e e ´ claro, vocˆ tamb´m pode decidir ca co e e lilo. Veja LILO na se¸˜o 7.1 para maiores informa¸˜es. E simplesmente continuar, de modo que n˜o ser´ criado um disco de boot. a a

Modem
Ser˜o solicitadas informa¸˜es sobre o seu modem. Mais especificamente, se vocˆ possui um a co e modem, e, se possuir, em qual porta serial ele est´. a

26

CAP´ ITULO 3. INSTALACAO ¸˜

As pr´ximas sub-se¸˜es de configura¸˜o podem aparecer ou n˜o, dependendo se os seus o co ca a pacotes correspondentes tiverem sido instalados.

Timezone (Fuso hor´rio) a
Aqui ´ bem direto: ser´ perguntado em qual fuso hor´rio vocˆ est´. Se estiver no hor´rio e a a e a a Zulu, sentimos muito; a lista (extremamente longa) est´ em ordem alfab´tica, e vocˆ est´ no a e e a final dela.

Mouse
Esta sub-se¸˜o simplesmente pergunta que tipo de mouse vocˆ tem, e se vocˆ quer ter suca e e porte ao mouse no console com o gpm(8) habilitado na inicializa¸˜o. ca

3.4. O PROGRAMA SETUP

27

Hardware clock (Rel´gio de hardware) o
Esta sub-se¸˜o pergunta se o rel´gio de hardware do seu computador est´ ajustado no Tempo ca o a Universal Coordenado (UTC ou GMT). A maioria dos PCs n˜o est˜o, ent˜o provavelmente vocˆ a a a e deve dizer ”no”(n˜o). a

Font
A sub-se¸˜o font permite que se escolha dentre de uma lista de fontes personalizadas para o ca console.

28

CAP´ ITULO 3. INSTALACAO ¸˜

LILO
ca Aqui ´ perguntado sobre a instala¸˜o do LILO (o LInux LOader; veja a se¸˜o 7.1 para maie ca ores informa¸˜es). co

Se o Slackware for o unico sistema operacional em seu computador, a op¸˜o simple (sim´ ca ples) deve funcionar perfeitamente. Se houver dual-boot, a op¸˜o expert ´ uma melhor escolha. ca e Veja a se¸˜o 7.5 para maiores informa¸˜es sobre dual-boot. A terceira op¸˜o, do not install ca co ca (n˜o instalar), n˜o ´ recomendada, a n˜o ser que vocˆ saiba o que est´ fazendo e que tenha a a e a e a uma ´tima raz˜o para n˜o instalar o LILO. Se o modo de instala¸˜o for ”expert”, vocˆ poder´ o a a ca e a escolher onde o LILO ser´ instalado. O LILO pode ficar na MBR (Master Boot Record) do seu a disco r´ ıgido, no superbloco da sua parti¸˜o ra´ do Linux, ou em um disquete. ca ız

3.4. O PROGRAMA SETUP

29

Network
Na verdade, a sub-se¸˜o de configura¸˜o network ´ o netconfig. Veja a se¸˜o 5.1 para maiores ca ca e ca informa¸˜es. co

X Window Manager (Gerenciador de Janelas do X)
ca Esta sub-se¸˜o permite a escolha de um gerenciador de janelas padr˜o para o X. Veja se¸˜o ca a 5.1 para maiores detalhes sobre o X e gerenciadores de janelas.

N˜o importa quais pacotes tenham sido instalados, a ultima coisa que ser´ feita na se¸˜o a ´ a ca configure ser´ perguntar se vocˆ quer continuar e criar uma senha para o root. Por raz˜es de a e o seguran¸a, provavelmente est´ ser´ uma boa id´ia; todavia, como tudo mais no Slackware, vocˆ c a a e e decide.

30

CAP´ ITULO 3. INSTALACAO ¸˜

Cap´ ıtulo 4

Configura¸˜o do Sistema ca
Antes de vocˆ poder configurar as partes mais avan¸adas do seu sistema, ´ uma boa id´ia e c e e entender como o sistema ´ organizado e que comandos podem ser utilizados para procurar por e ´ arquivos e programas. E bom saber tamb´m, se vocˆ precisar´ compilar um kernel otimizado e e e a quais os passos que dever˜o ser seguidos. Este cap´ a ıtulo ir´ familiariz´-lo com a organiza¸˜o do a a ca sistema e a configura¸˜o de arquivos. Assim, vocˆ poder´ avan¸ar na configura¸˜o das partes ca e a c ca mais avan¸adas do sistema. c

4.1

Vis˜o Geral do Sistema a

´ E importante entender como um sistema Linux ´ montado antes de mergulhar nos v´rios e a aspectos de sua configura¸˜o. Um sistema Linux ´ significativamente diferente de um sistema ca e DOS, Windows ou de um sistema Macintosh (com a exce¸˜o do Mac OS X que ´ baseado no ca e Unix), mas estas se¸˜es o ajudar˜o a ficar familiarizado com o seu layout, de modo que vocˆ co a e facilmente poder´ configurar seu sistema para as suas necessidades. a 4.1.1 Layout do Sistema de Arquivos

A primeira diferen¸a marcante entre o Slackware Linux e um sistema DOS ou Windows ´ o c e sistema de arquivos. Logo de in´ ıcio, n˜o s˜o utilizados letras para os drivers, para identificar a a as diferentes parti¸˜es. Sob o Linux, existe apenas um unico diret´rio principal. Vocˆ pode co ´ o e relacionar isto com o drive C: do ambiente DOS. Cada parti¸˜o em seu sistema ´ montado como ca e ´ um diret´rio dentro do diret´rio principal. E como se vocˆ tivesse um disco r´ o o e ıgido expans´ ıvel. Chamamos o diret´rio principal de diret´rio root (ou ra´ e o mesmo ´ representado por o o ız), e uma barra (/ ). Este conceito pode soar estranho, mas isso torna sua vida mais f´cil quando a vocˆ quer adicionar mais espa¸o. Por exemplo, vamos dizer que vocˆ ficou sem espa¸o em disco e c e c no diret´rio /home. Muitas pessoas ao instalarem o Slackware criam uma unica parti¸˜o raiz. o ´ ca Bem, como uma parti¸˜o pode ser montada para qualquer diret´rio, vocˆ s´ precisa ir at´ a ca o e o e loja mais pr´xima e comprar um disco r´ o ıgido novo e mont´-lo como /home. Vocˆ agora colocou a e mais espa¸o em seu sistema. E tudo sem precisar mover nada de lugar. c Abaixo, vocˆ ir´ encontrar as descri¸˜es dos diret´rios mais importantes sob o Slackware. e a co o bin - Programas essenciais para os usu´rios s˜o armazenados aqui. Isso representa um a a conjunto m´ ınimo de programas requeridos pelo usu´rio para a utiliza¸˜o do sistema. Coisas a ca como o shell e os comandos do sistema de arquivos (ls, cp, e assim por diante) s˜o armazenados a aqui. O diret´rio /bin tamb´m n˜o recebe modifica¸˜o ap´s a instala¸˜o. Se isso acontecer, ´ o e a ca o ca e na forma de atualiza¸˜o de pacotes que fornecemos. ca boot - Arquivos que s˜o utilizados pelo Linux Loader (LILO). Esse diret´rio tamb´m recebe a o e pequenas modifica¸˜es ap´s a instala¸˜o. O kernel ´ armazenado aqui desde a vers˜o 8.1 do co o ca e a Slackware. Em vers˜es anteriores do Slackware, o kernel era simplesmente armazenado sob o o
31

32

CAP´ ITULO 4. CONFIGURACAO DO SISTEMA ¸˜

diret´rio / , por´m a pr´tica comum ´ montar o kernel e os arquivos relacionados aqui, para o e a e facilitar o dual-booting (ou boot duplo). dev - Tudo no Linux ´ tratado como arquivo, inclusive dispositivos de hardware como as e portas seriais, discos r´ ıgidos, e scanners. Em ordem de acessar esses dispositivos, um arquivo especial chamado de dispositivo de conex˜o tem de estar presente. Todos os dispositivos de a conex˜o s˜o armazenados no diret´rio /dev. Vocˆ vai descobrir que isso ´ verdade atrav´s dos a a o e e e muitos sistemas operacionais baseados em Unix. etc - Esse diret´rio mant´m os arquivos de configura¸˜o do sistema. Todos os arquivos o e ca de configura¸˜o do X Window, o banco de dados do usu´rio, at´ o sistema de inicializa¸˜o de ca a e ca scripts. Com o tempo, o administrador do sistema ficar´ bastante familizado com este diret´rio. a o home - O Linux ´ um sistema operacional multi-usu´rio. A cada usu´rio no sistema ´ e a a e dado uma conta e um diret´rio unico para seus arquivos pessoais. Este diret´rio ´ chamado o ´ o e de diret´rio ra´ do usu´rio. O diret´rio /home ´ fornecido como localiza¸˜o padr˜o para os o ız a o e ca a diret´rios ra´ do usu´rio. o ız a lib - As bibliotecas do sistema que s˜o necess´rias para opera¸˜es b´sicas do sistema s˜o a a co a a armazenadas aqui. A biblioteca C, o carregador dinˆmico, as bibliotecas ncurses e os m´dulos a o do kernel est˜o entre as coisas aqui armazenadas. a mnt - Este diret´rio cont´m pontos de montagem tempor´rios para discos r´ o e a ıgidos em operaca ¸˜o ou drives remov´ ıveis. Aqui vocˆ encontrar´ os pontos de montagem para o seus drives de e a CD-ROM e de disquete. opt - Pacotes de software opcionais. A id´ia por tr´s do diret´rio /opt ´ que cada pacote e a o e de software instalado no diret´rio /opt/pacote de software, que seja f´cil de remover depois. O o a Slackware distribui algumas coisas no diret´rio /opt (como o KDE em /opt/kde), por´m vocˆ o e e ´ livre para adicionar qualquer coisa que queira ao diret´rio /opt. e o proc - Este ´ um diret´rio unico. Ele n˜o ´ realmente parte do sistema de arquivos, mas sim e o ´ a e um sistema de arquivos virtual que provˆ acesso as informa¸˜es do kernel. V´rios peda¸os de e co a c informa¸˜o que o kernel quer que vocˆ conhe¸a s˜o transportados a vocˆ atrav´s de arquivos ca e c a e e no diret´rio /proc. Vocˆ pode enviar informa¸˜o para o kernel atrav´s desses mesmos arquivos. o e ca e Tente o comando cat /proc/cpuinfo. root - O administrador do sistema ´ conhecido como root no sistema. O diret´rio ra´ do e o ız usu´rio root ´ mantido em /root em vez de /home/root. A raz˜o ´ simples. O que acontece se o a e a e diret´rio /home estiver em uma parti¸˜o diferente do diret´rio / e n˜o puder ser montado? O o ca o a usu´rio //root ir´ querer logar e repara o problema. Se o seu diret´rio de usu´rio ra´ estiver a a o a ız no sistema de arquivos danificado, ser´ meio dif´ para ele conseguir logar-se. a ıcil sbin - Programas essenciais que s˜o rodados pelo usu´rio root e durante o processo de boot a a do sistema s˜o mantidos aqui. Usu´rios normais n˜o ir˜o rodar programas neste diret´rio. a a a a o tmp - Local de armazenagem tempor´ria. Todos os usu´rios possuem acesso de leitura e a a escrita neste diret´rio. o usr - Este ´ o maior diret´rio em um sistema Linux. Tudo o mais vem aqui, programas, e o documenta¸˜o, o c´digo-fonte do kernel, e o sistema X Window. Este ´ o diret´rio que vocˆ ca o e o e mais ir´ gostar de estar instalando programas. a var - Arquivos de log do sistema, informa¸˜es de cache, e arquivos protegidos de programas co s˜o armazenados aqui. Este ´ o diret´rio para mudan¸as freq¨entes de informa¸˜o. a e o c u ca Vocˆ agora deve ter uma boa no¸˜o para quais diret´rios cont´m o que no sistema de arquivos. e ca o e Informa¸˜es mais detalhadas sobre o layout do sistema de arquivos est˜o dispon´ co a ıveis nas p´ginas a de manual do hier(7). A pr´xima se¸˜o ir´ ajud´-lo a encontrar arquivos espec´ o ca a a ıficos com facilidade, ent˜o vocˆ n˜o precisar´ fazer isso de forma bra¸al. a e a a c 4.1.2 Encontrando Arquivos

Agora vocˆ sabe o que cada diret´rio principal cont´m, mas isso realmente n˜o ajuda em nada e o e a a encontrar coisas. Eu creio que vocˆ poderia ir olhando atrav´s dos diret´rios, por´m existem e e o e

˜ 4.1. VISAO GERAL DO SISTEMA

33

maneiras r´pidas de fazer isso. Existem quatro comandos principais de busca de arquivos a dispon´ ıveis no Slackware. which O primeiro ´ o comando which(1). O comando which ´ geralmente usado para achar de e e forma r´pida a localiza¸˜o de um programa. Ele apenas procura seu PATH e retorna a primeira a ca instˆncia encontrada e o caminho do diret´rio do mesmo. Pegue este exemplo: <code> $ which a o bash /bin/bash </code> Pelo que vocˆ j´ viu do bash ele est´ no diret´rio /bin. Este ´ um comando de busca muito e a a o e limitado, j´ que o mesmo s´ procura pelo PATH. a o whereis O comando whereis(1) trabalha de forma similar ao comando which, mas pode tamb´m e procurar por p´ginas de manual e arquivos fontes. Um comando whereis para procurar pelo a programa bash iria retornar: <code> $ whereis bash bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz </code> Este comando n˜o apenas nos diz onde atualmente o programa est´ localizado, mas tamb´m a a e onde a sua documenta¸˜o online est´ armazenada. Ainda assim, este comando ´ limitado. O ca a e que aconteceria se vocˆ precisasse procurar por um arquivo de configura¸˜o espec´ e ca ıfico? Vocˆ e n˜o poderia utilizar o comando which ou o whereis para isso. a find O comando find (1) permite ao usu´rio procurar o sistema de arquivos com um rico arsenal a de op¸˜es de busca. Usu´rios poderiam especificar uma busca com espress˜es regulares no nome co a o do arquivo, alcance de modifica¸˜es ou tempo de cria¸˜o, ou outra propriedade avan¸ada. Por co ca c exemplo, para procurar pelo arquivo xinitrc padr˜o em um sistema, o comando a seguir poderia a ser utilizado. <code> $ find / -name xinitrc /var/X11R6/lib/xinit/xinitrc </code> O comando find ir´ demorar um pouco no processo, desde que ele vai varrer tudo na ´rvore a a de diret´rios ra´ E se este comando estiver rodando por um usu´rio normal, ir˜o aparecer o ız. a a v´rias mensagens erro de permiss˜o negada para os diret´rios em que apenas o usu´rio root a a o a pode ver. Por´m se o comando find encontra qualquer arquivo, isto ´ bom. Se ele pudesse ser e e pelo menos um pouco mais r´pido... a slocate O comando slocate(1) procura no sistema de arquivos inteiro, assim como o comando find pode fazer, por´m ele procura em um banco de dados em vez do atual sistema de arquivos. O e banco de dados est´ programado para ser atualizado toda manh˜, ent˜o vocˆ ter´ de algum a a a e a modo uma lista atualizada dos arquivos de seu sistema. Vocˆ pode rodar manualmente o e comando updatedb(1) para atualizar o banco de dados slocate (antes de rodar na m˜o o comando a updatedb, vocˆ precisa primeiro rodar o comando su para virar o usu´rio root). Aqui est´ um e a a exemplo do comando slocate em a¸˜o: ca <code> $ slocate xinitrc # we don’t have to go to the root /var/X11R6/lib/xinit/xinitrc /var/X11R6/lib/xinit/xinitrc.fvwm2 /var/X11R6/lib/xinit/xinitrc.openwin /var/X11R6/lib/xinit/xinitrc. </code> N´s conseguimos mais do que est´vamos procurando, e de forma r´pida tamb´m. Com esses o a a e comandos, vocˆ ser´ capaz de encontrar qualquer coisa que estiver procurando em seu sistema e a Linux. 4.1.3 O Diret´rio /etc/rc.d/ o

Os arquivos de inicializa¸˜o do sistema s˜o armazenados no diret´rio /etc/rc.d. O Slackware ca a o utiliza o layout estilo BSD para estes arquivos de inicializa¸˜o ao contr´rio dos scripts de ca a inicializa¸˜o do System V, a qual tende a tornar as mudan¸as na configura¸˜o mais dif´ ca c ca ıceis sem estar utilizando um programa especificamente desenhado para esta fun¸˜o. Nos scripts de ca inicializa¸˜o do BSD, cada runlevel ´ um arquivo rc simples. No System V, cada runlevel ´ ca e e

34

CAP´ ITULO 4. CONFIGURACAO DO SISTEMA ¸˜

dado a seu pr´prio diret´rio, a qual cont´m in´meros scripts de inicializa¸˜o. Isto provˆ uma o o e u ca e estrutura organizada que ´ f´cil de manter. e a Existem v´rias categorias de arquivos de inicializa¸˜o. Estes s˜o o sistema de inicializa¸˜o, a ca a ca runlevel, inicializa¸˜o de rede, e a compatibilidade com o System V. Pela tradi¸˜o, n´s iremos ca ca o amontoar todas as outras coisas em uma nova categoria. Inicializa¸˜o do Sistema ca O primeiro programa a rodar sobre o Slackware, al´m do kernel Linux, ´ o init(8). Este e e programa lˆ o arquivo /etc/inittab(5) para ver como carrega o sistema. Ele roda o script e /etc/rc.d/rc.S para preparar o sistema antes de ir para o n´ de execu¸˜o desejado. O arquivo ıvel ca rc.S habilita sua mem´ria virtual, monta seu sistema de arquivos, limpa certos diret´rios de log, o o inicializa os dispositivos Plug and Play, carrega os m´dulos do kernel, configura os dispositivos o PCMCIA, ativa as portas seriais, e os scripts de inicializa¸˜o do System V (se encontrado). ca Obviamente o rc.S possui muitos recursos, mas existe alguns scripts no diret´rio /etc/rc.d que o o rc.S ir´ chamar para completar seu trabalho: a rc.S - Este ´ o atual script do sistema de inicializa¸˜o. e ca rc.modules - Carrega os m´dulos do kernel. Coisas como sua placa de rede, suporte a PPP, o e outras coisas s˜o carregadas aqui. Se este script acha o rc.netdevice, correr´ tudo bem. a a rc.pcmcia - Investiga e configura qualquer dispositivo PCMCIA que vocˆ possa ter em seu e sistema. Isto ´ bem util para usu´rios de laptops, que provavelmente possuem um modem ou e ´ a rede PCMCIA. rc.serial - Configura suas portas seriais rodando os comandos apropriados do setserial. rc.sysvinit - Procura pelos scripts de inicializa¸˜o do System V para o runlevel desejado e ca os inicializa. Este assunto ´ discutido em maiores detalhes abaixo. e Scripts de inicializa¸˜o do Runlevel ca Ap´s o sistema de inicializa¸˜o estar completo, o comando init vai para a inicializa¸˜o do o ca ca runlevel. Um runlevel descreve o n´ em que a sua m´quina ir´ rodar. Isso soa redundante? ıvel a a Bem, o runlevel comunica ao init se vocˆ estar´ aceitando logins de multi-usu´rios ou apenas e a a de um unico usu´rio, independente se vocˆ vai utilizar os servi¸os de rede ou n˜o, e se vocˆ ´ a e c a e estar´ utilizando o X Window System ou o comando agetty(8) para manipular os logins. Os a arquivos abaixo definem os diferentes runlevels no Slackware Linux. rc.0 - Desliga o sistema (runlevel 0). Por padr˜o, este runlevel est´ linkado ao rc.6. a a rc.4 - Inicializa¸˜o multi-usu´rio (runlevel 4), por´m no X11 com o KDM, GDM, ou XDM ca a e como o gerenciador de login. rc.6 - Reinicializa o sistema (runlevel 6). rc.K - Inicializa o sistema em modo mono-usu´rio (runlevel 1). a rc.M - Modo multi-usu´rio (runlevels 2 e 3), por´m com o login em modo texto padr˜o. a e a Este ´ o runlevel padr˜o no Slackware. e a Inicializa¸˜o de rede ca Os Runlevels 2, 3, e 4 ir˜o inicializar os servi¸os de rede. Os seguintes arquivos s˜o respona c a s´veis pela inicializa¸˜o do sistema: a ca rc.inet1 - Criado pelo netconfig, este arquivo ´ respons´vel pela configura¸˜o da atual intere a ca face de rede. rc.inet2 - Roda depois do rc.inet1 e inicializa os servi¸os de rede b´sicos. c a rc.atalk - Inicializa os servi¸os AppleTalk. c rc.httpd - Inicializa o servidor Apache. Como alguns outros scripts, este pode ser utilizado para parar e reiniciar um servi¸o. O rc.httpd toma argumentos de parada, inicio, ou reinicio. c rc.news - Inicializa o servidor de news. Compatibilidade com System V A compatibilidade com o System V init foi introduzida no Slackware 7.0. Muitas outras distribui¸˜es Linux fazem uso deste estilo, em vez do estilo BSD. Basicamente a cada runlevel co ´ dado um sub-diret´rio para os scripts do init, do contr´rio do estilo BSD que d´ um script de e o a a inicializa¸˜o para cada runlevel. ca

4.2. SELECIONANDO UM KERNEL

35

O script rc.sysvinit ir´ procurar por todos os scripts de inicializa¸˜o do System V que vocˆ a ca e tenha em /etc/rc.d e inicializ´-los, se o runlevel for apropriado. Isto ´ util para certos pacotes a e´ de software que instalam os scripts de inicializa¸˜o no System V. ca Outros Arquivos Os scripts descritos abaixo s˜o os outros scripts de inicializa¸˜o do sistema. Eles s˜o rodados a ca a tipicamente de um dos principais scripts descritos acima, ent˜o tudo de que vocˆ precisa fazer a e ´ editar seus conte´dos. e u rc.gpm - Inicializa os servi¸os de habilita¸˜o do mouse. Permite que vocˆ possa copiar e c ca e colar no console do Linux. Ocasionalmente, o gpm ir´ causar problemas para o mouse quando a for usado sobre o X Windows. Se vocˆ tiver problemas com o uso do mouse no X, tente tirar a e permiss˜o de execu¸˜o deste arquivo parando o servidor gpm. a ca rc.font - Carrega as fontes customiz´veis para o console. a rc.local - Cont´m todos os comandos espec´ e ıficos de inicializa¸˜o do seu sistema. Ele fica ca vazio depois de uma instala¸˜o limpa, esta reservado para administradores locais. Este script ca ´ inicializado ap´s todas as outras inicializa¸˜es terem sido realizadas. e o co Para habilitar um script, tudo que vocˆ precisa fazer ´ adicionar permiss˜es de execu¸˜o a e e o ca ele com o comando chmod. Para desabilitar um script, remova a permiss˜o de execu¸˜o do a ca ca mesmo. Para maiores informa¸˜es sobre o comando chmod, veja a se¸˜o 9.2. co

4.2

Selecionando um Kernel

O kernel ´ a parte do sistema operacional que provˆ acesso ao hardware, controle de processos, e e e todo o sistema de controle. O kernel cont´m suporte para seus dispositivos de hardware, ent˜o e a escolher um kernel para o seu sistema ´ um passo muito importante. e O Slackware provˆ mais de uma d´zia de kernels pr´-compilados que vocˆ poder´ utilizar, e u e e a cada qual com um conjunto padr˜o de drivers gen´ricos e alguns drivers espec´ a e ıficos. Vocˆ pode e rodar um dos kernels pr´-compilados ou pode construir seu pr´prio kernel a partir do c´digoe o o fonte. Seja qualquer uma das op¸˜es que for escolhida, vocˆ precisar´ ter certeza que o seu co e a kernel tenha o suporte ao hardware que vocˆ possui. e 4.2.1 O diret´rio /kernels no CD-ROM do Slackware o

Os kernels pr´-compilados est˜o dispon´ e a ıveis no diret´rio /kernels no CD-ROM do Slackware o ou no site de FTP no diret´rio principal do Slackware. Os kernels dispon´ o ıveis mudam sempre que novas vers˜es s˜o lan¸adas, ent˜o a documenta¸˜o em cada diret´rio ´ o c´digo-fonte o a c a ca o e o do mesmo. O diret´rio /kernels possui sub-diret´rios para cada kernel disponibilizado. Os o o sub-diret´rios possuem o mesmo nome que o seu disco de boot que o acompanha. Em cada o sub-diret´rio vocˆ ir´ encontrar os seguintes arquivos: o e a Arquivo System.map bzImage config Prop´sito o O arquivo de mapas do sistema para este kernel A imagem do kernel atual O arquivo-fonte de configura¸˜o para este kernel ca

Para utilizar um kernel, copie os arquivos System.map e config para o seu diret´rio /boot e o copie a imagem do kernel para /boot/vmlinuz. Rode o /sbin/lilo(8) para instalar o LILO para este novo kernel, e ent˜o reinicie seu sistema. Isso ´ tudo que h´ para instalar um novo kernel. a e a Os kernels que terminam com um .i s˜o kernels IDE. Sendo assim, eles n˜o incluem suporte a a a SCSI na base do seu kernel. Os kernels que terminam com .s s˜o kernels com suporte a SCSI. a Eles incluem todo o suporte a IDE, como nos kernels terminados em .i, al´m de terem o suporte e a SCSI.

36

CAP´ ITULO 4. CONFIGURACAO DO SISTEMA ¸˜

4.2.2

Compilando um Kernel a partir do c´digo-fonte o

A quest˜o ”Devo compilar um kernel para meu sistema?” ´ sempre questionado por usu´rios a e a novatos. A resposta ´ sempre talvez. Existem poucas ocasi˜es onde vocˆ ir´ precisar compilar e o e a um kernel espec´ ıfico para o seu sistema. A maioria dos usu´rios pode utilizar um kernel pr´a e compilado e seus m´dulos carreg´veis para terem um sistema totalmente funcional. Vocˆ ir´ o a e a querer compilar um kernel para o seu sistema apenas se vocˆ precisar fazer um upgrade de e seu atual kernel para um que n˜o esteja atualmente disponibilizado para o slcakware, ou se a vocˆ estiver adicionando novas funcionalidades ao seu kernel para dar suporte a um hardware e espec´ ıfico, que n˜o esteja presente no c´digo nativo no c´digo-fonte do seu kernel. Qualquer a o o um com um sistema SMP definitivamente ir´ querer compilar um kernal com suporte a SMP. a Tamb´m, muitos usu´rios acham que um kernel customizado rodar´. Vocˆ achar´ util compilar e a a e a´ o kernel com otimiza¸˜es para o processador espec´ co ıfico de sua m´quina. a

Construir seu pr´prio kernel n˜o ´ t˜o dif´ assim. O primeiro passo ´ ter certeza que o a e a ıcil e vocˆ tem o c´digo-fonte do kernel instalado no seu sistema. Tenha certeza de ter instalado e o os pacotes da s´rie K durante o processo de instala¸˜o do seu Slackware. Vocˆ ir´ querer ter e ca e a certeza que possui a s´rie D instalada, especificamente o compilador C, o GNU make, e o GNU e binutils. Em geral, ´ uma boa id´ia ter a s´rie D inteira instalada se vocˆ planeja fazer qualquer e e e e tipo de desenvolvimento. Vocˆ tamb´m pode baixar a ultima vers˜o do c´digo-fonte do kernel e e ´ a o dispon´ em http://www.kernel.org/mirrors. ıvel

Compila¸˜o do Kernel Linux vers˜o 2.4.x ca a

<code> $ su - Password: # cd /usr/src/linux </code>

A primeira etapa ´ trazer o c´digo-fonte do kernel ao seu estado de base. N´s emitimos este e o o comando para fazer isso (nota, acredito que vocˆ v´ querer fazer um backup do arquivo .config e a j´ que esse comando ir´ apagar ele sem nenhum aviso): a a

<code> # make mrproper</code>

Agora vocˆ pode configurar o kernel para o seu sistema. O kernel atual oferece 3 maneiras de e fazer isso. A primeira ´ o original sistema de perguntas-e-respostas em modo texto. Este far´ e a diversas perguntas e, baseado nas suas respostas, ir´ construir um arquivo de configura¸˜o. O a ca problema deste m´todo ´ se vocˆ errar algo, ter´ de recome¸ar tudo do in´ e e e a c ıcio. O m´todo que a e maior parte dos usu´rios preferem ´ o de sistema de menu. Por ultimo, existe uma ferramenta de a e ´ configura¸˜o gr´fica do kernel. Escolha uma de sua preferˆncia e digite o comando apropriado: ca a e

<code> # make config (baseado em texto, vers˜o P&R (Perguntas e Respostas)) # make a menuconfig (menu dirigido, vers˜o baseado em texto) # make xconfig (vers˜o baseado em X, a a certifique-se que vocˆ est´ primeiramente no X) </code> e a

4.2. SELECIONANDO UM KERNEL

37

menu de configura¸˜o do kernel ca Os usu´rios novatos provavelmente ir˜o achar o comando menuconfig mais f´cil de usar. As a a a telas de ajuda provˆm explica¸˜es de v´rias partes do kernel. Ap´s configurar seu kernel, saia e co a o do programa de configura¸˜o. Ele ir´ escrever os arquivos de configura¸˜o necess´rios. Agora ca a ca a n´s podemos preparar a ´rvore do c´digo-fonte do kernel para uma constru¸˜o: o a o ca <code> # make dep # make clean </code> A pr´xima etapa ´ compilar o kernel. Primeiro tente emitir o comando bzImage abaixo. o e <code> # make bzImage </code> Isso pode demorar um pouco, dependendo da velocidade de sua CPU. Durante o processo de constru¸˜o, vocˆ poder´ ver as mensagens geradas pela compila¸˜o. Ap´s construir a imagem ca e a ca o do kernel, vocˆ ir´ querer construir todas as partes do kernel que vocˆ marcou para serem e a e modulares. <code> # make modules</code> Vocˆ agora pode instalar o kernel e seus m´dulos que compilou. Para instalar o kernel em e o um sistema Slackware, os comandos abaixo devem ser digitados: <code> # mv /boot/vmlinuz /boot/vmlinuz.old # cat arch/i386/boot/bzImage > /vmlinuz # mv /boot/System.map /boot/System.map.old # cp System.map /boot/System.map # make modules install </code> Vocˆ ir´ querer editar o arquivo /etc/lilo.conf e adicionar uma se¸˜o para a inicializa¸˜o de e a ca ca seu kernel antigo em caso do novo kernel n˜o funcionar. Ap´s ter feito isso, execute o comando a o /sbin/lilo para instalar o novo bloco de inicializa¸˜o. Vocˆ agora j´ pode reiniciar com o seu ca e a novo kernel. Kernel Linux Vers˜o 2.6.x a A compila¸˜o do kernel 2.6 kernel ´ levemente diferente do kernel 2.4 ou 2.2, mas ´ imca e e portante que vocˆ entenda as diferen¸as antes de pesquisar. N˜o ´ mais necess´rio rodar os e c a e a comandos make dep e make clean. Tamb´m, o processo de compila¸˜o do kernel n˜o ´ mais e ca a e em modo descritivo na s´rie 2.6. Isso resulta em uma constru¸˜o de processos de f´cil entendie ca a mento, por´m tem seus contras. Se vocˆ tiver problemas na constru¸˜o do kernel, ´ altamente e e ca e recomendado que vocˆ habilite o modo descritivo de novo. Vocˆ pode fazer isso modificando a e e op¸˜o V=1 na constru¸˜o. Isso permite a vocˆ ter mais informa¸˜es da sa´ da compila¸˜o que ca ca e co ıda ca poder´ ajudar um desenvolvedor de kernel ou outro amigo entendido a te ajudar na resolu¸˜o a ca deste problema. <code> # make bzImage V=1</code>

38

CAP´ ITULO 4. CONFIGURACAO DO SISTEMA ¸˜

4.2.3

Utilizando os M´dulos do Kernel o

Os m´dulos do kernel ´ outra defini¸˜o para os drivers de dispositivo que podem ser inseridos o e ca em um kernel em uso. Eles permitem a vocˆ extender o suporte ao hardware pelo seu kernel e sem precisar usar outro kernel ou mesmo compilar um novo. Os m´dulos podem tamb´m ser carregados e descarregados a qualquer hora, mesmo se o o e sistema estiver rodando. Isso torna a atualiza¸˜o de drivers mais f´cil para os administradores ca a de sistema. Um novo m´dulo pode ser compilado, um antigo removido, e o novo ser carregado o em seu lugar, tudo isso sem precisar reiniciar sua m´quina. a Os m´dulos s˜o armazenados no diret´rio /lib/modules/vers˜o do kernel do seu sistema. o a o a Eles podem ser carregados na inicializa¸˜o do sistema atrav´s do arquivo rc.modules. Este ca e arquivo ´ muito bem documentado e oferece exemplos para a maior parte dos componentes de e hardware. Para ver a lista dos m´dulos atualmente ativos, utilize o comando lsmod (1): o <code> # lsmod Module Size Used by parport pc 7220 0 parport 7844 0 [parport pc] </code> Vocˆ pode ver aqui que eu s´ tenho o m´dulo da porta paralela carregado. Para remover e o o um m´dulo, vocˆ usa o comando rmmod (1). Os m´dulos podem ser carregados pelos comano e o dos modprobe(1) ou insmod (1). modprobe ´ normalmente mais seguro porque ele ir´ carregar e a qualquer m´dulo dos dispon´ o ıveis que possuam dependˆncias com o carregamento atual. e V´rios usu´rios nunca tiveram que carregar ou descarregar m´dulos de kernel na m˜o. Eles a a o a utilizam o auto-carregamento do kernel para o gerenciamento de m´dulos. Por padr˜o, o o a Slackware inclui o kmod em seu kernel. O kmod ´ uma op¸˜o do kernel que habilita o kernel e ca para carregar automaticamente os m´dulos que s˜o requisitados. Para maiores informa¸˜es o a co sobre o kmod e como ele ´ configurado, veja o arquivo /usr/src/linux/Documentation/kmod.txt. e Vocˆ ir´ precisar do pacote de c´digo-fonte do kernel, ou baixar o c´digo-fonte do kernel de e a o o http://kernel.org. Maiores informa¸˜es podem ser encontradas nas p´ginas de manual para cada um desses co a comandos, al´m do arquivo rc.modules. e

Cap´ ıtulo 5

Configura¸˜o de Rede ca
5.1 Introdu¸˜o: netconfig ´ seu amigo. ca e

Quando vocˆ instala inicialmente o Slackware, o programa setup chama o programa netconfig. e O netconfig tem como objetivo realizar para vocˆ as seguintes fun¸˜es: e co • Ele te pergunta o nome do seu computador e o nome do dom´ ınio sob o qual o seu computador est´ na rede. a • Ele faz uma breve explana¸˜o acerca dos v´rios tipos de esquemas de endere¸amento, cita ca a c onde eles devem ser usados, e lhe pergunta qual esquema de endere¸amento IP vocˆ deseja c e usar para configurar sua placa de rede: – IP est´tico a – DHCP – Loopback • Ele ent˜o se oferece para detectar alguma placa de rede para configur´-la. a a Em geral o netconfig ir´ realizar cerca de 80% do trabalho de configurar sua conex˜o de rede a a LAN, se vocˆ permitir. Recomenda-se fortemente que vocˆ revise seus arquivos de configura¸˜o e e ca por duas raz˜es: o • Vocˆ nunca deve confiar que um programa de configura¸˜o ir´ configurar corretamente seu e ca a computador. Se vocˆ usa um programa de configura¸˜o, vocˆ deve revisar a configura¸˜o e ca e ca pessoalmente. • Se vocˆ ainda est´ aprendendo o sistema operacional Linux ou o Slackware, olhar uma e a configura¸˜o funcional pode ser util. Vocˆ vai saber no m´ ca ´ e ınimo qual a aparˆncia da confie gura¸˜o. Isso permitir´ que vocˆ possa corrigir posteriormente problemas provenientes de ca a e configura¸˜es erradas realizadas pelo sistema. co

5.2

Configura¸˜o do Hardware de Rede ca

Uma vez que seu desejo ´ conectar sua m´quina com o Slackware em algum tipo de rede, a e a primeira coisa que vocˆ precisar´ ´ de uma placa de rede compat´ com o Linux. Vocˆ precisa e ae ıvel e ter um pouco de cuidado e se certificar de que sua placa ´ verdadeiramente compat´ com e ıvel o Linux (por favor, consulte o Projeto de Documenta¸˜o do Linux e/ou a documenta¸˜o do ca ca kernel para informa¸˜es sobre o status atual da placa de rede que vocˆ deseja utilizar). Via de co e regra vocˆ ficar´, provavelmente muito surpreso com o n´mero de placas de rede suportadas e a u sob os kernels mais modernos. Tendo dito isso, sugerimos ainda que vocˆ consulte algumas e das v´rias listas de hardwares compat´ a ıveis com o Linux (como por exemplo The GNU/Linux
39

40

CAP´ ITULO 5. CONFIGURACAO DE REDE ¸˜

Beginners Group Hardware Compatibility Links e The Linux Documentation Project Hardware a ıveis na Internet antes de comprar sua placa. Um pequeno tempo HOWTO) que est˜o dispon´ extra gasto em pesquisa podem economizar dias ou at´ semanas tentando resolver problemas e com placas n˜o compat´ a ıveis totalmente com o Linux. Quando vocˆ visitar as listas de Hardware Compat´ com o Linux dispon´ e ıvel ıveis na Internet, ou quando consultar a documenta¸˜o do kernel instalado na sua m´quina, preste aten¸˜o em ca a ca qual m´dulo que vocˆ ir´ precisar para suportar sua placa de rede. o e a

5.2.1

Carregando os M´dulos de Rede o

Os m´dulos do kernel s˜o carregados durante a inicializa¸˜o do sistema s˜o carregados pelo o a ca a arquivo rc.modules, /etc/rc.d, ou pelo carregador autom´tico de m´dulos do kernel iniciado pelo a o /etc/rc.d/rc.hotplug. O arquivo rc.modules padr˜o inclui uma se¸˜o de suporte a perif´ricos a ca e de rede. Se vocˆ abrir o rc.modules e procurar por esta se¸˜o, poder´ notar que ele verifica e ca a inicialmente a existˆncia do arquivo execut´vel rc.netdevice em /etc/rc.d/. Esse script ´ criado e a e se a tentativa de auto-configura¸˜o do perif´rico de rede executada pelo setup obteve sucesso ca e durante a instala¸˜o. ca Abaixo do bloco do ”if” est´ uma lista de perif´ricos de rede e linhas com o comando moda e probe comentadas. Procure o seu perif´rico e descomente a linha com o modprobe correspone dente, e ent˜o salve o arquivo. Rodar o rc.modules como root ir´, a partir de agora, carregar o a a driver do seu perif´rico de rede (assim como qualquer outro m´dulo listado e n˜o comentado). e o a Note que alguns m´dulos (como o do driver ne2000) precisam de parˆmetros; tenha certeza que o a vocˆ selecionou a linha correta. e

5.2.2

Placas de Rede Local (10/100/1000Base-T and Base-2)

Esse subt´ ıtulo abrange todas as placas de rede internas ISA ou PCI. Drivers para essas ´ placas s˜o acessados via m´dulos carreg´veis do kernel conforme dito no par´grafo anterior. E a o a a poss´ que o /sbin/netconfig tenha encontrado e configurado com sucesso sua placa no seu ıvel arquivo rc.netdevice. Se isso n˜o ocorreu o problema mais prov´vel deve ser o carregamento do a a m´dulo incorreto para a placa em quest˜o (n˜o s˜o conhecidos casos onde para diferentes gerao a a a co ¸˜es de um mesmo tipo/fam´ de placas de um mesmo fabricante sejam necess´rios m´dulos ılia a o diferentes). Se vocˆ tˆm certeza que o m´dulo que vocˆ quer carregar ´ o correto, sua pr´xima e e o e e o melhor a¸˜o seria consultar a documenta¸˜o do m´dulo para verificar se o m´dulo exige ou n˜o ca ca o o a algum(uns) parˆmetro(s) espec´ a ıfico(s) no momento em que o m´dulo ´ iniciado. o e

5.2.3

Modems

Assim como as placas de redes locais, modems podem ter v´rias op¸˜es de barramento sua co portadas. At´ pouco tempo atr´s a maioria dos modems eram placas com barramento ISA, de e a 8 ou 16 bits. Gra¸as aos esfor¸os da Intel e de fabricantes de placas-m˜e de todo o mundo, c c a finalmente modems ISA fazem parte do passado, sendo comum atualmente que a maioria dos modems sejam modems externos que se conectam por uma porta serial ou USB, ou ent˜o moa dems internos PCI. Se vocˆ deseja trabalhar com seu modem no Linux, ´ de VITAL importˆncia e e a perquisar o modem que vocˆ pretende comprar, particularmente se vocˆ tem inten¸˜o de come e ca prar um modem PCI. Muitos, se n˜o a maioria, dos modems PCI atualmente dispon´ a ıveis nas prateleiras das lojas s˜o WinModems. WinModems n˜o possuem algumas fun¸˜es de hardware a a co caracter´ ısticas dos pr´prios modems: as fun¸˜es de responsabilidade desse hardware espec´ o co ıfico

5.3. CONFIGURACAO TCP/IP ¸˜

41

geralmente s˜o descarregadas sobre a CPU pelo driver do modem e pelo sistema operacional a Windows. Isso significa que eles n˜o tem a interface serial padr˜o que o PPPD estar´ esperando a a a quando vocˆ disca para o seu Provedor de Acesso ` Internet. e a Se vocˆ deseja ter absoluta certeza de que o modem que vocˆ est´ comprando ir´ trabalhar e e a a com o Linux, compre um modem de hardware externo que se conecta ` porta serial do seu a PC. Com toda certeza esses ir˜o trabalhar melhor e apresentar menos problemas para instaa lar e dar manuten¸˜o, em detrimento de precisarem de energia externa e tenderem a custar mais. ca H´ v´rios sites que oferecem drivers e assistˆncia para configura¸˜o de perif´ricos baseados a a e ca e em WinModems. Alguns usu´rios relatam sucessos na configura¸˜o e instala¸˜o de drivers para a ca ca v´rios Winmodems, incluindo os de chipset Lucent, Conexant e Rockwell. Como os softwares a necess´rios para esses perif´ricos n˜o fazem parte do Slackware, e variam de driver para driver, a e a n´s n˜o iremos entrar em detalhes. o a

5.2.4

PCMCIA

Como parte da instala¸˜o do seu Slackware, vocˆ ter´ a oportunidade de instalar o pacote ca e a pcmcia (na s´rie ”A” de pacotes). Esse pacote cont´m as aplica¸˜es e arquivos de configura¸˜o e e co ca ´ importante notar que o panecess´rios para trabalhar com placas PCMCIA no Slackware. E a cote pcmcia instala apenas o software gen´rico necess´rio para trabalhar com placas PCMCIA e a ˜ no Slackware. Ele NAO instala qualquer driver ou m´dulo. Os m´dulos e drivers dispon´ o o ıveis podem ser encontrados no diret´rio /lib/modules/‘uname -r‘/pcmcia. Vocˆ possivelmente preo e cisar´ de algumas experiˆncias para encontrar o m´dulo que ir´ trabalhar com sua placa de a e o a rede. Vocˆ precisar´ editar o arquivo /etc/pcmcia/network.opts (para uma placa Ethernet) ou e a o /etc/pcmcia/wireless.opts (se vocˆ tem uma placa de rede sem fio). Como a maioria dos e arquivos de configura¸˜o do Slackware, esses dois arquivos s˜o muito bem comentados e isso ca a torna f´cil a tarefa de determinar que modifica¸˜es vocˆ precisa fazer. a co e

5.3

Configura¸˜o TCP/IP ca

Nesse momento, sua placa de rede deve estar f´ ısicamente instalada no seu computador, e os m´dulos relevantes do kernel devem estar carregados. Vocˆ ainda n˜o estar´ pronto para se o e a a comunicar utilizando sua placa de rede, mas informa¸˜es a respeito do seu perif´rico de rede co e podem ser obtidas com um ifconfig -a. # ifconfig -a eth0 Link encap:Ethernet HWaddr 00:A0:CC:3C:60:A4 UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1 RX packets:110081 errors:1 dropped:0 overruns:0 frame:0 TX packets:84931 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:114824506 (109.5 Mb) TX bytes:9337924 (8.9 Mb) Interrupt:5 Base address:0x8400 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2234 errors:0 dropped:0 overruns:0 frame:0

42

CAP´ ITULO 5. CONFIGURACAO DE REDE ¸˜

TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:168758 (164.8 Kb) TX bytes:168758 (164.8 Kb) Se vocˆ digitar /sbin/ifconfig, sem a op¸˜o -a, pode ser que vocˆ n˜o veja a interface eth0, e ca e a o que indica que sua placa de rede ainda n˜o tem um endere¸o IP v´lido ou uma rota. a c a Uma vez que existem muitas formas diferentes de configurar uma rede, todas elas podem ser reduzidas a dois tipos: Est´tica e Dinˆmica. Redes est´ticas s˜o configuradas para que cada a a a a n´ (nomenclatura geek para objetos que com um endere¸o IP) sempre tenha o mesmo endere¸o o c c IP. Redes dinˆmicas s˜o configuradas de forma que o endere¸o IP para cada n´ seja controlado a a c o por um unico servidor, chamado de servidor DHCP. ´

5.3.1

DHCP

DHCP (Dynamic Host Configuration Protocol ou Protocolo de Configura¸˜o Dinˆmica de ca a Host), ´ um m´todo pelo qual um endere¸o IP pode ser atribu´ a um computador quando e e c ıdo esse ´ ligado. Quando o cliente ´ iniciado, ele envia uma requisi¸˜o na rede local para que e e ca um servidor DHCP lhe atribua um endere¸o IP. O servidor DHCP tem um conjunto (ou esc copo) de endere¸os IP dispon´ c ıveis. O servidor ir´ responder a essa requisi¸˜o com um endere¸o a ca c IP do seu conjunto, durante um tempo de aloca¸˜o. Uma vez que o tempo de aloca¸˜o para o ca ca endere¸o IP dado expire, o cliente precisa contactar novamente o servidor e repetir a negocia¸˜o. c ca Ent˜o, o cliente aceitar´ o endere¸o IP enviado pelo servidor e ir´ configurar a interface que a a c a requireu com o endere¸o IP. Entretanto, h´ ainda um macete manual que o cliente DHCP usa c a para negociar o endere¸o IP que ser´ a ele atribu´ c a ıdo. O cliente ir´ lembrar seu ultimo endere¸o a ´ c IP a ele atribu´ ıdo, e solicitar´ ao servidor uma re-atribui¸˜o do mesmo endere¸o IP novamente a ca c na pr´xima negocia¸˜o. Se poss´ o ca ıvel, o servidor ir´ atender o pedido, mas se n˜o for, um novo a a endere¸o ser´ atribu´ c a ıdo. Assim, a negocia¸˜o se parece com o que segue: ca Cliente: H´ algum servidor DHCP dispon´vel na rede local? a ı Servidor: Sim, h´. Aqui estou eu. a Cliente: Eu preciso de um endere¸o IP. c Servidor: Voc^ pode pegar o 192.168.10.10 por 19200 segundos. e Cliente: Obrigado.

Cliente: H´ algun servidor DHCP dispon´vel na rede local? a ı Servidor: Sim, h´. Aqui estou eu. a Cliente: Eu preciso de um endere¸o IP. Da ´ltima vez que conversamos, Eu peguei o 192.16 c u Posso peg´-lo novamente? a Servidor: Sim, pode (ou N~o, n~o pode: pegue o 192.168.10.12 dessa vez). a a Cliente: Obrigado.

O cliente DHCP no Linux ´ o /sbin/dhcpcd. Se vocˆ carregar o /etc/rc.d/rc.inet1 em seu e e editor de texto favorito, vocˆ ir´ notar que o /sbin/dhcpcd ´ chamado mais ou menos no meio do e a e script. Isso ir´ for¸ar a o di´logo mostrado acima. O dhcpcd ir´ tamb´m controlar a quantidade a c a a e de tempo de aloca¸˜o restante para o endere¸o IP atual, e ir´ contactar automaticamente o ca c a servidor DHCP com uma requisi¸˜o para renova¸˜o da aloca¸˜o quando necess´rio. O DHCP ca ca ca a pode ainda controlar informa¸˜es relacionadas, como qual o servidor ntp usar, qual rota pegar, co etc.

5.3. CONFIGURACAO TCP/IP ¸˜

43

Configurar DHCP no Slackware ´ simples. Apenas execute o netconfig e selecione DHCP e quando oferecido. Se vocˆ tem mais de uma placa de rede e n˜o deseja que a eth0 seja configue a rada via DHCP, apenas edite o arquivo /etc/rc.d/rc.inet1.conf e mude a vari´vel relacionada a a ` sua placa de rede para ”YES”.

5.3.2

IP Est´tico a

Endere¸os IP est´ticos s˜o endere¸os fixos que s´ mudam se modificadas manualmente. Isso c a a c o ´ usado em qualquer caso em que o administrador n˜o deseje que as informa¸˜es relacionadas e a co ao IP mudem, por exemplo para servidores internos de uma rede local, qualquer servidor conectado ` Internet, e roteadores. Com o endere¸amento IP est´tico, vocˆ atribui um endere¸o IP a c a e c e esquece :). Outras m´quinas saber˜o que vocˆ sempre ter´ um certo endere¸o IP e poder˜o a a e a c a contactar vocˆ no endere¸o de sempre. e c /etc/rc.d/rc.inet1.conf Se vocˆ planeja atribuir um endere¸o IP ao seu novo Slackware, vocˆ pode fazˆ-lo atrav´s do e c e e e script netconfig, ou ent˜o pode tamb´m editar o /etc/rc.d/rc.inet1.conf. No /etc/rc.d/rc.inet1.conf, a e vocˆ ir´ notar: e a # Primary network interface card (eth0) IPADDR[0]="" NETMASK[0]="" USE_DHCP[0]="" DHCP_HOSTNAME[0]="" E, mais abaixo: GATEWAY= Nesse caso, nossa tarefa ser´ meramente colocar a informa¸˜o correta entre as aspas duplas. a ca Essas vari´veis s˜o chamadas pelo /etc/rc.d/rc.inet1 no momento do boot para configurar as a a placas de rede. Para cada placa de rede, apenas insira a informa¸˜o correta do IP, ou coloque ca a ca ”YES” no USE DHCP. O Slackware ir´ iniciar as interfaces com a informa¸˜o colocada na ordem em que elas forem encontradas. A vari´vel DEFAULT GW configura a rota padr˜o para o Slackware. Todas as comunica¸˜es a a co entre seu computador e outros computadores na Internet devem passar atrav´s do gateway, no e caso de nenhuma outra rota ser especificada para elas (as comunica¸˜es). Se vocˆ est´ usando co e a DHCP, em geral vocˆ n˜o precisar´ digitar nada aqui, pois seu servidor DHCP ir´ especificar e a a a qual gateway usar. /etc/resolv.conf Muito bem. Ent˜o vocˆ tem um endere¸o IP, vocˆ tem um gateway padr˜o, vocˆ pode ter a e c e a e dez milh˜es de reais (nos dˆ um pouco), mas o que vocˆ consegue fazer de bom se vocˆ n˜o o e e e a consegue traduzir nomes para endere¸os IP? Ningu´m merece digitar 72.9.234.112 no navegador c e para entrar no www.slackbook.org. Al´m disso, quem, al´m dos autores conseguiriam memorie e ´ ı zar esse endere¸o IP? N´s precisamos configurar o DNS, mas como? E a´ que o /etc/resolv.conf c o entra no jogo. Provavelmente vocˆ j´ tem as op¸˜es apropriadas no /etc/resolv.conf. Se vocˆ configurar e a co e sua conex˜o de rede usando o DHCP, o servidor DHCP pode se encarregar de atualizar esse a arquivo para vocˆ. (Tecnicamente o servidor DHCP apenas diz ao dhcpcd o quˆ colocar aqui, e e e ele obedece.) No entanto, se vocˆ precisa atualizar manualmente sua lista de servidores DNS, e

44

CAP´ ITULO 5. CONFIGURACAO DE REDE ¸˜

vocˆ precisar´ editar manualmente o /etc/resolv.conf. Segue um examplo: e a

# cat /etc/resolv.conf nameserver 192.168.1.254 search lizella.net A primeira linha ´ simples. A diretiva nameserver nos indica qual servidor DNS procurar. e Por necessidade eles sempre s˜o endere¸os IP. Vocˆ pode ter v´rios listados aqui, conforme seu a c e a gosto. O Slackware ir´ alegremente checar um depois do outro at´ um deles retornar a busca. a e A segunda linha ´ um pouco mais interessante. A diretiva search nos d´ uma lista de dom´ e a ınio de nomes para assumir quando nenhum DNS requisitado for encontrado. Isso lhe permite contactar outra m´quina tendo apenas a primeira parte da sua FQDN (Fully Qualified Domain a Name, ou Dom´ ınio de Nome Totalmente Qualificado). Por exemplo, se ”slackware.com” estava indicado na sua diretiva search, vocˆ pode buscar http://store.slackware.com apenas apontando e seu navegador para http://store.

# ping -c 1 store PING store.slackware.com (69.50.233.153): 56 data bytes 64 bytes from 69.50.233.153 : icmp_seq=0 ttl=64 time=0.251 ms 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.251/0.251/0.251 ms /etc/hosts Agora que n´s temos um DNS trabalhando bem, o que podemos fazer se desejamos identio ficar nosso servidor DNS, ou adicionar uma entrade de DNS em uma m´quina que n˜o est´ no a a a DNS? O Slackware inclui o arquivo salvador /etc/hosts, que cont´m uma lista local de nomes e DNS e endere¸os IP para os quais eles apontam. c

# cat /etc/hosts 127.0.0.1 localhost locahost.localdomain 192.168.1.101 redtail 172.14.66.32 foobar.slackware.com Nele vocˆ pˆde notar que o localhost tˆm como endere¸o IP relativo o 127.0.0.1 (sempre e o e c reservado para o localhost), redtail ´ apontado para 192.168.1.101, e o foobar.slackware.com e para 172.14.66.32.

5.4

PPP

A maioria das pessoas continuam se conectando ` Internet atrav´s de algum tipo de conex˜o a e a discada. O m´todo mais comum ´ o PPP, embora o SLIP seja ainda utilizado ocasionalmente. e e Configurar o seu sistema para utilizar chamar via PPP um servidor remoto ´ muito f´cil. N´s e a o vamos abordar algumas poucas ferramentas para ajud´-lo(a) a configurar. a

5.5. WIRELESS

45

5.4.1

pppsetup

O Slackware inclui um programa chamado pppsetup para configurar seu sistema para usar sua conta discada. Ele compartilha a aparˆncia e parece muito semelhante ao nosso programa e netconfig. Para executar o programa, tenha certeza que vocˆ est´ logado como root. Ent˜o e a a digite pppsetup para execut´-lo. Vocˆ ir´ ver uma tela como essa: a e a O programa apresentar´ uma s´rie de quest˜es, as quais vocˆ precisar´ responder apropriadaa e o e a mente. Coisas como o seu modem, a string de inicializa¸˜o do modem, e o n´mero de telefone do ca u seu provedor. Alguns itens ter˜o um valor padr˜o, que vocˆ poder´ aceitar na maioria dos casos. a a e a Ap´s rodar o programa, ele criar´ um programa ppp-go e um programa ppp-off. Eles s˜o o a a usados para iniciar e parar, respectivamente, a conex˜o PPP. Os dois programas est˜o em a a /usr/sbin e precisam de privil´gios de root para serem executados. e /etc/ppp Para a maioria dos usu´rios, rodar o pppsetup ser´ o suficiente. Entretanto, podem haver a a circunstˆncias onde vocˆ precisar´ preparar um conjunto de valores a serem usados pelo daemon a e a do PPP. Todas as informa¸˜es de configura¸˜o ficam em /etc/ppp. Aqui est´ uma lista do que co ca a vocˆ pode encontrar para diferentes arquivos: e

ip-down ip-up options options.demand pppscript pppsetup.txt

Esse script ´ executado pelo pppd ap´s o encerramento da conex˜o PPP. e o a Esse script ´ executado pelo pppd quando ocorre sucesso em uma conex˜o ppp. Coloq e a Op¸˜es gerais para configura¸˜o do pppd. co ca Op¸˜es gerais de configura¸˜o do pppd quando executado no modo de discagem por de co ca Os comandos enviados para o modem. Um log dos seus dados de entrada, quando executou o pppsetup.

NOTA: A maioria desses arquivos n˜o estar˜o l´ at´ depois da execu¸˜o do pppsetup. a a a e ca

5.5

Wireless

As redes sem fio ainda s˜o coisas relativamente novas no mundo dos computadores mesmo a com o grande crescimento no n´mero de pessoas que compram laptops e esperam encontrar u redes por onde passem, sem se preocuparem com o seu velho cabo de par tran¸ado. E essa c tendˆncia n˜o parece estar diminuindo o ritmo. Infelizmente, as redes sem fio n˜o s˜o ainda e a a a t˜o bem suportadas no Linux, a exemplo das redes cabeadas tradicionais. a Existem trˆs passos b´sicos no processo de configura¸˜o de uma placa de rede sem fio: e a ca • Suporte ao hardware das placas de rede sem fio • Configura¸˜o da placa para conectar um ponto de acesso sem fio ca • Configura¸˜o da rede ca 5.5.1 Suporte ao Hardware

O suporte ao hardware de placas sem fio ´ dado atrav´s do kernel, tanto com um m´dulo e e o como com suporte direto (built in) no kernel. Geralmente, as placas mais recentes utilizam esse suporte com m´dulos. Sendo assim,vocˆ pode determinar o m´dulo aproprioado e carreg´-lo u e o a

46

CAP´ ITULO 5. CONFIGURACAO DE REDE ¸˜

via /etc/rc.d/rc.modules. O netconfig pode n˜o detectar sua placa de rede sem fio. Nesa ses casos vocˆ provavelmente precisar´ determinar pessoalmente qual o m´dulo da sua placa. e a o Procure mais informa¸˜es sobre drivers para o kernel de v´rias placas de rede sem fio, em co a http://www.hpl.hp.com/personal/Jean Tourrilhes/Linux/.

5.5.2

Configura¸˜o da rede sem fio ca

A vasta maioria desse trabalho ´ feito pelo iwconfig, como sempre vocˆ pode ler o manual e e (com poderes de root, digite man iwconfig no terminal) do iwconfig se vocˆ precisa de mais e informa¸˜es. co Antes de tudo, vocˆ precisar´ configurar o seu ponto de acesso sem fio. Pontos de acesso e a sem fio possuem uma pequena varia¸˜o em suas terminologias, e formas de configura¸˜o, ent˜o ca ca a vocˆ talvez precise se mexer um pouco para se acostumar ao seu hardware. Em geral, vocˆ e e precisar´ pelo menos das seguintes informa¸˜es: a co • A ID do dom´ ınios, ou o nome da rede (chamado de ESSID pelo iwconfig) • O canal que o ponto de acesso utiliza • As informa¸˜es relativas ` criptografia, incluindo todas as chaves utilizadas (preferencialco a mente em hexadecimal) AVISO: UMA NOTA A RESPEITO DO WEP. O WEP ´ bastante fraco, mas ´ muito e e melhor do que n˜o usar nada. Se vocˆ deseja um grau avan¸ado de seguran¸a na sua rede sem a e c c fio, vocˆ pode estudar VPNs ou IPSec. Ambos est˜o fora do escopo deste documento. Vocˆ e a e pode tamb´m configurar seu ponto de acesso para n˜o publicar sua ID de dom´ e a ınio/ESSID. Uma discuss˜o mais completa a respeito de pol´ a ıticas de redes sem fio est´ al´m do escopo desta a e se¸˜o, mas uma busca r´pida no Google retornar´ mais do que vocˆ esperava aprender. ca a a e Uma vez que vocˆ tenha coletado as informa¸˜es acima, e assumindo que vocˆ usou o mode co e probe para carregar o driver apropriado no kernel, vocˆ pode editar o rc.wireless.conf e adicionar e suas informa¸˜es. O arquivo rc.wireless.conf ´ um pouco desorganizado. Um esfor¸o m´ co e c ınimo seria modificar a se¸˜o gen´rica com a sua ESSID, KEY, e CHANNEL, se isso for necess´rio ` sua ca e a a placa. (Tente n˜o configurar o CHANNEL, e, se funcionar, ´timo! Se n˜o funcionar, configure a o a o CHANNEL de forma apropriada.) Se vocˆ for audacioso pode modificar o arquivo de forma e que apenas as vari´veis necess´rias sejam utilizadas. Os nomes das vari´veis no rc.wireless.conf a a a correspondem aos parˆmetros do iwconfig. S˜o lidos pelo rc.wireless e utilizados nos comandos a a iwconfig apropriados. Se vocˆ tem sua chave em hexadecimal, o que ´ o ideal, ser´ poss´ trabalhar de forma base e a ıvel tante confidencial, uma vez que seu ponto de acesso e o iwconfig estar˜o com a chave acordada. a Se vocˆ tem apenas uma sequˆncia de caracteres, pode ter certeza que o seu ponto de acesso e e a traduzir´ para uma chave em hexadecimal. Nesse caso pode ser necess´rio algum trabalho a a para descobr´ (ou coloque sua chave do ponto de acesso em hexadecimal). ı-la Uma vez que vocˆ modificou o rc.wireless.conf, execute o rc.wireless como root, e ent˜o rode e a o rc.inet1, novamente como root. Vocˆ pode testar sua rede sem fio com as ferramentas padr˜es e o de testes, como o ping, junto com o iwconfig. Se vocˆ tem uma interfaces que usem cabo, pode usar, se desejar, o ifconfig para desativ´e a las enquanto estiver testando sua rede sem fio, para ter certeza de n˜o estar havendo nenhuma a

5.6. SISTEMAS DE ARQUIVO DE REDE

47

confus˜o de interface. Vocˆ pode tamb´m desejar testar o efeito das suas mudan¸as quando da a e e c reinicializa¸˜o do sistema. ca Agora que vocˆ viu como editar o /etc/rc.d/rc.wireless para sua rede padr˜o, vamos dar e a uma breve olhada no iwconfig para ver como ele trabalha. Isso vai lhe ensinar uma maneira r´pida e direta para configurar o wifi para aquelas vezes em que vocˆ mesmo procura por sinal a e de Internet em um caf´, hotel, aeroporto ou qualquer outro hot spot wifi, desejando ficar online. e O primeiro passo ´ dizer ` sua interface wireless em qual rede entrar. Tenha certeza que e a vocˆ substituiu a ”eth0” com qualquer outra interface que a sua placa de rede use e trocou a e ”mynetwork” para o essid que vocˆ deseja usar. Sim, n´s temos certeza que vocˆ ´ esperto o e o ee bastante para isso. Depois disso vocˆ ir´ especificar a chave criptogr´fica (se existir) usada na e a a sua rede sem fio. Finalmente, especifique que canal usar (se necess´rio). a

# iwconfig eth0 essid "mynetwork" # iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXXX # iwconfig eth0 channel n Isso encerra nosso assunto sobre redes sem fio. 5.5.3 Configurando a rede

Isso ´ feito exatamente da mesma maneira como era feito nas redes cabeadas. Simplesmente e consulte a primeira parte desse cap´ ıtulo.

5.6

Sistemas de Arquivo de Rede

Nesse ponto, vocˆ j´ deve ter uma conex˜o TCP/IP trabalhando na sua rede. Vocˆ deve e a a e estar conseguindo enviar pings para outros computadores na sua rede interna e, se vocˆ configue rou corretamente o gateway, deve tamb´m conseguir ’pingar’ computadores da pr´pria Internet. e o Como sabemos, o fator b´sico que nos leva a ligar umcomputador em uma rede ´ a possibilia e dade de acessar informa¸˜es. Enquanto algumas pessoas podem colocar seu computador numa co rede apenas para se divertir nela, a maioria deseja compartilhar arquivos e impressoras. Elas desejam poder acessar documentos na Internet ou jogar online. Ter o TCP/IP instalado e functional no seu novo sistema Slackware ´ um bom inic´ para tal, mas apenas com o TCP/IP e ıo instalado, as funcionalidades dispon´ ıveis ser˜o muito rudimentares. Para compartilhar arquia vos, n´s precisaremos usar o FTP ou o SCP para tranfer´ o ı-los para l´ e para c´. N˜o podemos a a a navegar por arquivos em nosso computador Slackware a partir de um vizinho na rede, ou nos ´ ıcones do Meus Locais Rede nos computadores com Windows. Da mesma forma, n´s tamb´m o e gostar´ ıamos de acessar arquivos em outras m´quinas Unix. a Idealmente, n´s gostar´ o ıamos de poder usar um sistema de arquivos de rede que nos permitisse acessar transparentemente nossos arquivos em outros computadores. Os programas que n´s usamos para interagir com informa¸˜es armazenadas em nosso computador n˜o precisam, o co a na verdade, saber em qual computador um dado arquivo est´ armazenado; eles apenas precia ´ sam saber que ele existe e como peg´-lo. E responsabilidade do sistema operacional gerenciar o a acesso a arquivos atrav´s do sistema de arquivos dispon´ e dos sistemas de arquivo de rede. e ıvel Os dois sistemas de arquivo de rede utilizados mais comumente s˜o o SMB (que ´ implementado a e pelo Samba) e o NFS.

48

CAP´ ITULO 5. CONFIGURACAO DE REDE ¸˜

5.6.1

SMB/Samba/CIFS

O SMB (de Server Message Block) ´ um descendente do antigo protocolo NetBIOS, que foi e inicialmente utilizado pela IBM em seus produtos gerentes de redes locais. A Microsoft tamb´m sempre se interessou bastante pelo NetBIOS e seus sucessores (NetBEUI, SMB e CIFS).O e projeto Samba existe desde 1991, quando ele foi escrito originalmente para ligar um IBM PC rodando NetBIOS com um servidor Unix. Atualmente o SMB ´ o m´todo preferido para come e partilhamento de arquivos e servi¸os de impress˜o sobre uma rede para, virtualmente, toda a c a popula¸˜o mundial, devido seu suporte ao Windows. ca O arquivo de configura¸˜o do Samba ´ o /etc/samba/smb.conf ; um dos mais arquivos de ca e configura¸˜o mais bem comentado e documentado que vocˆ ir´ encontrar em qualquer lugar. ca e a Exemplos de compartilhamento s˜o configurados para sua visualiza¸˜o, e modifica¸˜o, se nea ca ca cess´rio. Se vocˆ precisa ter um controle preciso, o man (manual) do smb.conf ´ indispens´vel. a e e a Uma vez que o Samba ´ t˜o bem documentado, conforme mencionamos acima, n˜o iremos e a a reescrever a documenta¸˜o aqui. Iremos, no entanto, cobrir rapidamente os pontos b´sicos. ca a O smb.conf ´ repartido em m´ltiplas se¸˜es: uma se¸˜o para compartilhamento, e uma se¸˜o e u co ca ca global para op¸˜es de configura¸˜o que v´lida para todo o escopo do Samba. Algumas op¸˜es co ca a co s˜o aceitas apenas na se¸˜o global; outras s˜o v´lidas apenas fora da se¸˜o global. Lembrea ca a a ca se que a se¸˜o global pode ser sobreposta por qualquer outra se¸˜o. Consulte as p´ginas do ca ca a manual (man pages) para mais informa¸˜es. Vocˆ vai se sentir mais confort´vel se editar seu co e a smb.conf de forma a refletir as configura¸˜es da sua rede local. Sugerimos a modifica¸˜o dos co ca itens listados abaixo: [global] # workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2 workgroup = MYGROUP Substitua o nome do grupo de trabalho (workgroup) pelo grupo de trabalho da sua rede, ou pelo nome do dom´ ınio que vocˆ esteja usando localmente. e # server string is the equivalent of the NT Description field server string = Samba Server< Esse ser´ o nome do seu Slackware, quando mostrado na pasta de computadores vizinhos (ou a Meus Locais de Rede). # Security mode. Most people will want user level security. See # security_level.txt for details. NOTE: To get the behaviour of # Samba-1.9.18, you’ll need to use "security = share". security = user Muito provavelmente vocˆ vai querer implementar o n´ de seguran¸a por usu´rio no seu e ıvel c a Slackware. # You may wish to use password encryption. Please read # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba # documentation. # Do not enable this option unless you have read those documents encrypt passwords = yes

5.6. SISTEMAS DE ARQUIVO DE REDE

49

Se as senhas criptografadas n˜o est˜o ativadas, vocˆ n˜o poder´ usar o Samba com os a a e a a Windows NT 4.0, 2000, XP, e 2003. A princ´ ıpio, o sistema operacional Windows n˜o requer a encripta¸˜o para compartilhamento de arquivos. ca O SMB ´ um protocolo de autentica¸˜o, o que significa que ´ necess´rio a entrada de um e ca e a usu´rio e senha corretos, a fim de usar este servi¸o. N´s avisamos ao servidor samba que os a c o usu´rios e senhas v´lidos est˜o v´lidos com o comando smbpasswd. O smbpasswd realiza um a a a a par de testes de verifica¸˜o quando da adi¸˜o tradicional de usu´rios, ou da adi¸˜o de usu´rios ca ca a ca a da m´quina (o SMB requer que vocˆ adicione os nomes dos computadores com NETBIOS como a e m´quinas usu´rias, restringindo que computares podem autenticar). a a Adicionando um usu´rio ao arquivo /etc/samba/private/smbpasswd. a # smbpasswd -a user Adicionando um nome de m´quina ao arquivo /etc/samba/private/smbpasswd. a # smbpasswd -a -m machine ´ E importante notar que um dado usu´rio ou nome de m´quina precisam existir previamente a a no arquivo /etc/passwd. Vocˆ pode realizar isso de maneira simples, com o comando adduser. e Note que quando usamos o comando adduser para adicionar um nome de m´quina precisamos a p´s-fixar um sinal de d´lar (”$”) ao nome da m´quina. Entretanto, isso n˜o ´ feito com o o o a a e smbpasswd.O pr´prio smbpasswd se responsabiliza pelo sinal de d´lar p´s-fixo. Se houver falhas o o o no processo de inser¸˜o do nome da m´quina com o adduser teremos como resultado um erro, ca a quando adicionarmos o nome da m´quina no samba. a # adduser machine 5.6.2 Network File System (NFS)

O NFS (ou Sistema de Arquivos de Redes) foi originalmente escrito pela Sun para sua implementa¸˜o do Unix, o Solaris. Ao mesmo tempo que ele ´ significativamente mais f´cil de ca e a adquirir e rodar, quando comparado ao SMB, tamb´m ´ significativamente menos seguro. A e e principal vunerabilidade no NFS ´ que ele ´ facilmente atingido por t´cnicas de spoof de usu´e e e a rios ou identificadores de grupo de uma m´quina para outra. O NFS ´ um protocolo que n˜o a e a implementa autentica¸˜o. Vers˜es futuras do protocolo NFS est˜o elaborando melhorias de ca o a seguran¸a, mas elas n˜o s˜o comuns at´ a presente data. c a a e A configura¸˜o do NFS ´ controlada pelo arquivo /etc/exports. Se vocˆ carregar o /etc/exports ca e e padr˜o em um editor, ver´ um arquivo em branco com duas linhas comentadas na parte mais a a superior. Precisaremos adicionar uma linha no arquivo de exporta¸˜o para cada diret´rio que ca o quisermos exportar, com uma lista das esta¸˜es de trabalho clientes para as quais desejemos co permitir o acesso aos arquivos. Por hora, se quisermos exportar o diret´rio /home/diretorio o para a esta¸˜o de trabalho pc1, podemos simplesmente adicionar a linha: ca /home/diretorio pc1(rw) no nosso /etc/exports. A seguir, vocˆ ver´ um exemplo encontrado e a na man page (manual) do arquivo exports: # sample /etc/exports file / master(rw) trusty(rw,no_root_squash) /projects proj*.local.domain(rw) /usr *.local.domain(ro) @trusted(rw) /home/joe pc001(rw,all_squash,anonuid=150,anongid=100) /pub (ro,insecure,all_squash)

50

CAP´ ITULO 5. CONFIGURACAO DE REDE ¸˜

Como vocˆ pode ver, h´ v´rias op¸˜es dispon´ e a a co ıveis, e a maioria delas est´ representada claraa mente nesse exemplo. O NFS assume que um dado usu´rio em uma m´quina tem o mesmo user ID (n´mero interno a a u ao sistema operacional, que identifica um usu´rio) em todas as m´quinas na rede. Quando uma a a consulta de leitura ou escrita de um cliente NFS para um servidor NFS, um UID (user ID) ´ e passada como parte da requisi¸˜o de leitura/escrita. Esse UID ´ tratatada da mesma forma de ca e uma requisi¸˜o de leitura/escrita originada na m´quina local. Como vocˆ pode ver, se algu´m, ca a e e arbitrariamente, especificar um dado UID quando recursos acessam um sistema remoto, Coisas Ruins (tm) podem e devem ocorrer. Como uma cerca-viva protetora contra isso, cada diret´rio o a ´ montado com a op¸˜o root squash. Isso mapeia o UID para qualquer usu´rio que alegue ser e ca root para um UID diferente, prevenindo ent˜o o acesso de root a arquivos ou pastas no diret´rio a o exportado. A op¸˜o root squash para estar inicialmente habilitada como uma medida de seguca ran¸a, mas os autores recomendam sua especifica¸˜o individualmente para todos os diret´rios c ca o no /etc/exports. Vocˆ pode tamb´m exportar um diret´rio diretamente utilizando a linha de comando no e e o servidor usando o comando exportfs, como segue: # exportfs -o rw,no\_root\_squash pc1:/home/diretorio Essa linha exporta o diret´rio /home/diretorio para o computador ”pc1” e concede acesso de o leitura/escrita ` m´quina de nome pc1. A t´ a a ıtulo de informa¸˜o o servidor NFS n˜o invocar´ o ca a a a root squash, o que significa que qualquer usu´rio do pc1, com o UID igual a ”0” (UID do root) ter´ os mesmo privil´gios de root no servidor. A s´ a e ıntaxe parece mesmo um pouco estranha (geralmente quando um diret´rio ´ especificado na s´ o e ıntaxe computador:/diretorio/arquivo, vocˆ e est´ se referindo a um arquivo em um diret´rio, em um dado computador). a o Vocˆ pode obter mais informa¸˜es no manual (man page) do arquivo exports. e co

Cap´ ıtulo 6

Configurara¸˜o do X ca
Come¸ando com o Slackware-10.0, o Ambiente de Janelas X ´ fornecido pelo Xorg. O X ´ o c e e respons´vel por fornecer uma interface para o usu´rio, a qual, diferentemente do Windows ou a a do MacOS, ´ independente do sistema operacional. e O Sistema X Window ´ implementado atrav´s de diversos programas executados no ambiente e e do usu´rio. Os dois principais componentes s˜o o servidor e o gerenciador de janelas. O servidor a a fornece as fun¸˜es de baixo n´ para interagir com seu dispositivo de v´ co ıvel ıdeo, sendo dessa forma espec´ ıfico para cada sistema. O gerenciador de janelas est´ acima do servidor e provˆ a interface a e do usu´rio. A vantagem disso ´ que vocˆ pode ter muitas interfaces de usu´rio diferentes, a e e a simplesmente trocando o gerenciador de janelas que vocˆ usa. e Configurar o X pode ser uma tarefa complexa. O motivo dessa complexidade ´ o grande e n´mero de dispostivos de v´ u ıdeo dispon´ ıveis para a arquitetura PC, os quais usam interfaces de programa¸˜o diferentes. Felizmente, muitas das placas, hoje em dia, suportam os padr˜es ca o b´sicos de v´ a ıdeo, conhecidos como VESA e se sua placa est´ entre essas, vocˆ ser´ capaz de a e a iniciar o X utilizando o comando startx, logo ap´s a instala¸˜o. o ca Caso isso n˜o funcione ou vocˆ queira obter as vantagens das caracter´ a e ısticas de alta-performance de sua placa, como acelera¸˜o ou renderiza¸˜o 3-D via hardware, ent˜o ser´ necess´rio reconfica ca a a a gurar o X. Para configurar o X, ser´ necess´rio criar o arquivo /etc/X11/xorg.conf. Esse arquivo cont´m a a e ´ um arquivo de configura¸˜o muitos detalhes sobre seu dispositivo de v´ ıdeo, mouse e monitor. E ca muito complexo, mas, felizmente, existem programas para ajudar na cria¸˜o de um para vocˆ. ca e Iremos mencionar alguns deles aqui.

6.1

xorgconfig

Esta ´ uma interface simples orientada a menus que ´ similar ao instalador do Slackware. e e Ela pede ao servidor X que analize sua placa e ent˜o crie o melhor arquivo de configura¸˜o a ca inicial que pode ser feito, baseado na informa¸˜o obtida. O arquivo /etc/X11/xorg.conf ´ um ca e bom ponto de partida para a maioria dos sistemas (e deve funcionar sem modifica¸˜es). co Este ´ um programa modo-texto de configura¸˜o do X, o qual foi desenvolvido para ade ca ministradores de sistemas experientes. Aqui est´ um ”passo-a-passo”utilizando o xorgconfig. a Primeiramente, inicie o programa: # xorgconfig Esta tela apresentar´ uma tela cheia de informa¸˜es sobre o xorgconfig. Para continuar, a co pressione ENTER; xorgconfig vai propor que verifique se vocˆ configurou a vari´vel de ambiente e a PATH corretamente. Ela deve estar correta, assim v´ em frente e aperte ENTER. a
51

52

CAP´ ITULO 6. CONFIGURARACAO DO X ¸˜

xorgconfig - Configura¸˜o do Mouse ca

Selecione o seu mouse a partir do menu apresentado. Caso seu mouse serial n˜o esteja listado, a selecione o protocolo Microsoft – ´ o mais comum e provavelmente funcionar´. Em seguida, e a xorgconfig ir´ lhe perguntar se deseja ativar as op¸˜es ChordMiddle e Emulate3Buttons; essas a co op¸˜es estar˜o descritas em detalhes na tela. Use-as caso o bot˜o do meios de seu mouse n˜o co a a a funcionse sob o X, ou caso seu mouse somente tenha dois bot˜es (Emulate3Buttons permite a o simula¸˜o do bot˜o do meio atrav´s do pressionamento de ambos os bot˜es simultaneamente). ca a a o Ent˜o, entre com o nome do arquivos de dispositivo de seu mouse; a escolha padr˜o, /dev/mouse, a a deve funcionar desde que a liga¸˜o tenha sido escolhida durante a configura¸˜o do Slackware. ca ca Se vocˆ estiver executando o GPM (o servidor de mouse do Linux) no modo de repeti¸˜o, vocˆ e ca e poder´ configurar o tipo de seu mouse para /dev/gpmdata, de modo que o X obt´m informa¸˜es a e co de seu mouse atrav´s do gpm(8). Em alguns casos (especialmente com o ”busmice”) isso pode e funcionar melhor, mas muitos dos usu´rios n˜o devem fazer isso. a a

O xorgconfig vai lhe perguntar se eseja habilitar o conjunto de teclas especiais. Caso precise disso, diga ”y”. A maioria dos usu´rios podem dizer ”n-- digite isso se n˜o estiver certo. a a

6.1. XORGCONFIG

53

xorgconfig - Sincronia Horizontal

Na pr´xima se¸˜o vocˆ informar´ o intervalo de sincronia horizontal de seu monitor. Para o ca e a iniciar a configura¸˜o de seu monitor, pressione ENTER. Vocˆ ver´ uma lista de tipos de ca e a monitores – escolha um deles. Tenha cautela para n˜o exceder a especifica¸˜o de seu monitor, a ca isso poder´ danific´-lo. a a

xorgconfig - Sincronia Vertical

Especifique o intervalo de sincronia vertical de seu monitor (vocˆ poder´ encontrar isso no e a manual do monitor). xorgconfig ir´ lhe pedir para entrar com os textos para a identifica¸˜o do a ca tipo do monitor no arquivo xorg.conf. Digite o que quiser nestas trˆs linhas (incluindo nada). e

54

CAP´ ITULO 6. CONFIGURARACAO DO X ¸˜

xorgconfig - Video Card Agora vocˆ ter´ a oportunidade de olhar no banco de dados os tipos de placas de v´ e a ıdeo. Provavelmente vocˆ vai querer vˆ-lo, ent˜o responda ”y”e selecione sua placa na lista exibida; e e a caso vocˆ n˜o encontre a placa exata que possui, experimente selecionar uma que use o mesmo e a chipset (n´cleo) e, prov´velmente, ir´ funcionar bem. u a a Em seguinda, informe ao xorgconfig quanto de RAM possui sua placa de v´ ıdeo. O xorgconfig vai pedir um texto descri¸˜o sobre sua placa de v´ ca ıdeo, ent˜o, digite sobre a mesma caso deseje. a Vocˆ tamb´m ser´ perguntado sobre a resolu¸˜o que deseja usar. Novamente, utilizar os e e a ca valores padr˜es pode ser legal para come¸ar, de forma que depois vocˆ poder´ editar o arquivo o c e a /etc/X11/xorg.conf e reajustar os modos, por exemplo, fazendo que 1024x768 (ou qualquer outro modo que prefira) seja o padr˜o. a Nesse momento, xorgconfig vai perguntar se vocˆ quer que o arquivo de configura¸˜o seja e ca salvo. Diga que sim e o arquivo de configura¸˜o ser´ salvo, completando o processo de configuca a ra¸˜o. Vocˆ poder´ iniciar o X com o comando startx ca e a

6.2

xorgsetup

O segundo caminho para configurar o X ´ usar o xorgsetup, um programa de configura¸˜o e ca um – tanto quanto m´gico – que vem com o Slackware. a Para executar o xorgsetup, entre no sistema como root e digite: # xorgsetup Caso vocˆ j´ tenha um arquivo /etc/X11/xorg.conf (por j´ ter configurado o X), vocˆ ser´ e a a e a perguntado se deseja salvar uma c´pia de seguran¸a da configura¸˜o atual antes de continuar. o c ca O arquivo original ser´ renomeado para /etc/X11/xorg.conf.backup. a

6.3

xinitrc

O xinit(1) ´ o programa que inicia o X; ele ´ chamado pelo startx (1), ent˜o vocˆ n˜o deve ter e e a e a notado-o (e provavelmente nem precisava). Seu arquivo de configura¸˜o, no entanto, determina ca quais programas (incluindo especialmente os gerenciadores de janela) s˜o executados quando o a X inicia. xinit primeiramente verifica seu diret´rio pessoal em busca do arquivo .xinitrc. Caso o

6.3. XINITRC

55

o arquivo seja encontrado, ´ executado; caso contr´rio, /var/X11R6/lib/xinit/xinitrc (o padr˜o e a a global do sistema) ´ utilizado. Segue um exemplo simples do arquivo xinitrc: e #!/bin/sh # \$XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $ userresources=\$HOME/.Xresources usermodmap=\$HOME/.Xmodmap sysresources=/usr/X11R6/lib/X11/xinit/.Xresources sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap # junta os mapas de teclas padr~o a if [ -f $sysresources ]; then xrdb -merge $sysresources fi if [ -f $sysmodmap ]; then xmodmap $sysmodmap fi if [ -f $userresources ]; then xrdb -merge $userresources fi if [ -f $usermodmap ]; then xmodmap $usermodmap fi \# inicia alguns programas legais

twm & xclock -geometry 50x50-1+1 & xterm -geometry 80x50+494+51 & xterm -geometry 80x20+494-0 & exec xterm -geometry 80x66+0+0 -name login Todos aqueles blocos ”if”s˜o para mesclar v´rias configura¸˜es de outros arquivos. A parte a a co interessante do arquivo ´ o final, onde v´rios programas s˜o executados. Esta sess˜o do X vai e a a a come¸ar com o gerenciador de janelas twm(1), um rel´gio e trˆs terminais. Note que o exec c o e antes do ultimo xterm sobrep˜e a shell em execu¸˜o, na qual est´ executando este script xinitrc, ´ o ca a com o comando xterm(1). Assim, quando o usu´rio fechar o xterm, a sess˜o do X ir´ terminar. a a a Para personalizar a incializa¸˜o do X, copie o arquivo padr˜o /var/X11R6/lib/xinit/xinitrc ca a para ˜/.xinitrc e o edite, substituindo as suas linhas pelo que vocˆ desejar. O final do meu ´ e e simples: # Inicia o gerenciador de janelas: exec startkde Note que existem diversos arquivos xinitrc.* em /var/X11R6/lib/xinit, os quais correspondem aos v´rios gerenciadores de janela e interfaces do usu´rio. Vocˆ pode usar qualquer um a a e deles, caso deseje.

56

CAP´ ITULO 6. CONFIGURARACAO DO X ¸˜

6.4

xwmconfig

Durante anos, o Unix foi usado, quase que exclusivamente, como sistema operacional para servidores, com a exce¸˜o das poderosas esta¸˜es de trabalho. Somente os t´cnicos estavam ca co e familiarizados com o uso de um sistema operacional Unix (e suas varia¸˜es) e as interfaces para co o usu´rio refletiam esse fato. As interfaces gr´ficas tendiam para ser, de longe, esqueletos, dea a senhados para executar poucas aplica¸˜es gr´ficas, tais como programas CAD e renderizadores co a de imagem. Assim, muito do gerenciamento de arquivos e do sistema foi conduzido via linha de comando. Diversos vendedores (Sun Microsystems, Silicaon Graphics, etc) foram vendendo esta¸˜es que tentavam ter uma aparencia (”look and feel”) coesiva, mas a grande variedade co de Toolkits (conjunto de componentes para uma interface gr´fica) usadas por desenvolvedores a levou para a dissolu¸˜o da uniformidade dos ambientes gr´ficos. Dessa forma, uma barra de ca a rolagem pode n˜o parecer igual em duas aplica¸˜es diferentes; menus podem aparecer em difea co rentes lugares; programas podem ter diferentes bot˜es e caixas de checagem; havia um grande o intervalo de cores e estas eram especificadas no c´digo de cada toolkit. Como os usu´rios eram o a primariamente t´cnicos profissionais, isso n˜o importava muito. e a Com o advento de sistemas operacionais gratuitos baseados no Unix e o crescente n´mero u e variedade de aplica¸˜es gr´ficas, o X recentemente ganhou uma grande base de usu´rios no co a a desktop. Muitos usu´rios, obviamente, est˜o acostumados com a aparˆncia consistente fornea a e cida pelo Microsoft Windows ou pelo Apple MacOS; a falta de tal consistˆncia em aplica¸˜es e co baseadas no X se tornou uma barreira para sua aceita¸˜o. Em resposta, dois projetos de c´digo ca o aberto foram formados: o K Desktop Environment (conhecido como KDE) e o GNU Network Object Model Environment (mais difundido como GNOME). Cada um tem uma variedade de aplica¸˜es, que v˜o desde a barra de tarefas e gerenciadores de arquivo at´ jogos e suites de co a e escrit´rio, escritas com os mesmos Toolkits da interface e integradas para prover uma ´rea de o a trabalho uniforme e consistente. A diferen¸a entre o KDE e GNOME s˜o de longe, grandes. Eles se parecem diferente um c a do outro por causa da utiliza¸˜o de diferentes Toolkits. O KDE se baseia na biblioteca gr´fica ca a QT (da Trolltech AS) enquanto o GNOME usa a GTK, uma biblioteca gr´fica originalmente a desenvolvida para o GIMP (em portuguˆs, programa de manipula¸˜o de imagens GNU). Como e ca projetos separados, o KDE e o GNOME tˆm seus pr´prios desenvolvedores e analistas. O e o resultado em cada caso, no entanto, tem sido fundamentalmente o mesmo: um ambiente consistente, uma ´rea de trabalho integrada e uma grande cole¸˜o de aplicativos. A funcionalidade, a ca usabilidade e detalhes de ambos n˜o ´ rival de nenhum outro sistema operacional dispon´ a e ıvel. A melhor parte, no entando, ´ que esses ambientes avan¸ados s˜o gratuitos. Isso significa e c a que vocˆ pode ter um ou ambos (sim! ao mesmo tempo). A escolha ´ sua. e e Em adi¸˜o aos ambientes GNOME e KDE, o Slackware inclui uma grande cole¸˜o de gerenca ca ciadores de janela. Alguns s˜o feitos para emular outros sistemas, outros para personaliza¸˜o e a ca outros para se obter o m´ximo de desempenho. Existe uma variedade um tanto quanto grande. a Obviamente, vocˆ pode instalar quantos quiser e, mecher com todos e decidir qual vocˆ gostou e e mais. Para facilitar a sele¸˜o de ambientes de ´rea de trabalho, O Slackware tamb´m incluiu um ca a e programa chamado xwmconfig que pode ser utilizado para selecionar o ambiente de ´rea de a trabalho ou gerenciador de janelas. Veja a seguir sua execu¸˜o: ca

$ xwmconfig

6.5. XDM

57

Vocˆ receber´ uma lista de todos os ambientes de ´rea de trabalho e gerenciadores de janelas e a a dispon´ ıveis no sistema. Somente selecione da lista o qual deseja. Cada usu´rio precisar´ a a executar este programa, uma vez que diferentes usu´rios podem usar diferentes ambientes de a a ´rea de trabalho, e nem todos v˜o querer o ambiente selecionado por vocˆ na instala¸˜o. a e ca Ent˜o apenas inicie o X e estar´ pronto. a a

6.5

xdm

Como Linux se tornou mais e mais usual como um sistema operacional de ´rea de trabalho, a muitos usu´rios acharam interessante o computador ligar diretamente no ambiente gr´fico. a a Para isso, vocˆ precisar´ dizer ao Slackware para inicializar diretamente no X, e atribuir um e a gerenciador de login gr´fico. O Slackware vem com trˆs ferramentas de login gr´fico,xdm(1), a e a kdm e gdm(1). O xdm ´ o gerenciador de login gr´fico que vem com o sistema X.org. Ele ´ constantemente a a e encontrado, mas n˜o possui tantos recursos como os alternativos. kdm ´ o gerenciador de login a e gr´fico do KDE, o Ambiente de ´rea de Trabalho K. Finalmente, gdm ´ o gerenciador de login a a e do GNOME. Quaisquer que sejam a sua escolha vai permitir que vocˆ entre no sistema como e qualquer usu´rio e escolha qual ambiente de trabalho deseja usar. a Infelizmente, O Slackware n˜o inclui um bom programa, como o xwmconfig, para selecionar a qual gerenciador de login ser´ utilizado, ent˜o se todos os trˆs est˜o instalados vocˆ pode fazer a a e a e algumas edi¸˜es para selecionar o gerenciador de sua preferˆncia. Mas primeiro, vamos discutir co e como iniciar o sistema no modo gr´fico. a A fim de iniciar o X na inicializa¸˜o, vocˆ precisar´ inicializar no n´ de execu¸˜o (runca e a ıvel ca level) 4. N´ ıveis de execu¸˜o s˜o um modo de dizer ao init(8) para fazer algo diferente, quando ca a o sistema operacional ´ iniciado. N´s fazemos isso alterando o arquivo de configura¸˜o do init, e o ca /etc/inittab. # Estes s~o os n´veis de execu¸~o padr~o do Slackware: a ı ca a # 0 = desligamento # 1 = modo de usu´rio singular a # 2 = n~o utilizado (mas configurado da mesma forma que o n´vel de execu¸o 3) a ı c # 3 = modo multi-usu´rio (n´vel de execu¸~o padr~o no Slackware) a ı ca a # 4 = X11 com KDM/GDM/XDM (gerenciadores de login) # 5 = inutilizado (mas configura para fazer o mesmo que o n´vel 3 ı

58

CAP´ ITULO 6. CONFIGURARACAO DO X ¸˜

#

6 = reinicializa¸~o ca

# n´vel de execu¸~o padr~o (N~o configurar para 0 ou 6) ı ca a a id:3:initdefault: A fim de fazer o Slackware inicializar no modo gr´fico, somente mudaremos o 3 para o 4. a # n´vel de execu¸~o padr~o (N~o configurar para 0 ou 6) ı ca a a id:4:initdefault: Agora o Slackware vai inicializar no n´ de execu¸˜o 4 e executar o /etc/rc.d/rc.4. Este ıvel ca arquivos inicia o X e chama o gerenciador de login que vocˆ escolheu. Agora, como vamos e escolher os gerenciadores de login? Existem alguns modos de fazer isso, e vamos explicar eles ap´s em rc.4. o # Tenta utilizar o gerenciador de login do GNOME: if [ -x /usr/bin/gdm ]; then exec /usr/bin/gdm -nodaemon fi # N~o existe? OK, ent~o tenta utilizar o gerenciador de login do KDE: a a if [ -x /opt/kde/bin/kdm ]; then exec /opt/kde/bin/kdm -nodaemon fi # Se tudo que tivermos for o XDM, acho que ele que vai entrar em a¸~o: ca if [ -x /usr/X11R6/bin/xdm ]; then exec /usr/X11R6/bin/xdm -nodaemon fi Como vocˆ pode ver aqui, rc.4 primeiro checa se o gdm ´ execut´vel, e, caso seja, executa-o. e e a Em segundo lugar na lista vem o kdm, e finalmente o xdm. Uma forma de escolher o gerenciador de login ´ simplesmente removendo os quais vocˆ n˜o quer usar utilizando o removepkg. Vocˆ e e a e pode encontrar mais sobre removepkg em Gerenciamento de Pacotes do Slackware. Opcionalmente, vocˆ pode remover a permiss˜o de execu¸˜o dos arquivos que n˜o deseja e a ca a usar. N´s vamos discutir chmod em Estrutura do Sistema de Arquivos. o <code># chmod -x /usr/bin/gdm</code> Finalmente, vocˆ pode somente comentar as linhas dos gerenciadores de login que n˜o quer e a usar. # Tenta utilizar o gerenciador de login do GNOME: # if [ -x /usr/bin/gdm ]; then # exec /usr/bin/gdm -nodaemon # fi # N~o existe? OK, ent~ tenta utilizar o gerenciador de login do KDE: a a if [ -x /opt/kde/bin/kdm ]; then exec /opt/kde/bin/kdm -nodaemon fi # Se tudo que tivermos for o XDM, acho que ele que vai entrar em a¸~o: ca # if [ -x /usr/X11R6/bin/xdm ]; then # exec /usr/X11R6/bin/xdm -nodaemon # fi

6.5. XDM

59

Qualquer linha precedida por um sustenido (#) s˜o consideradas coment´rios e o interpretador a a de comandos passa silenciosamente por elas. No entando, mesmo se o gdm est´ instalado e ´ a e execut´vel, o interpretador de comandos (nesse caso o bash) n˜o vai se importar em checar isso. a a

60

CAP´ ITULO 6. CONFIGURARACAO DO X ¸˜

Cap´ ıtulo 7

Processo de Boot
O processo de boot de seu sistema Linux pode tanto ser f´cil quanto dif´ a ıcil. Muitos usu´rios a instalam o Slackware em seus computadores e pronto. Eles simplesmente o ligam e j´ est´ a a pronto para ser usado. Para outros, o simples ato de dar boot na m´quina pode ser uma dor a de cabe¸a. Para a maioria dos usu´rios, o LILO funciona melhor. O Slackware inclui o LILO e c a o LOADLIN para inicializar o Slackware Linux. O LILO funciona a partir de uma parti¸˜o de ca um disco r´ ıgido, da MBR de um disco r´ ıgido, ou de um disquete, o que o torna uma ferramenta vers´til. O LOADLIN funciona a partir de uma linha de comando DOS, substituindo o DOS e a chamando o Linux. Outro utilit´rio popular para inicializar o Linux ´ o GRUB. a e O GRUB n˜o est´ inclu´ nem ´ suportado oficialmente pelo Slackware. O Slackware mana a ıdo e t´m o padr˜o ”testado e aprovado” em tudo o que ´ inclu´ na distribui¸˜o. Apesar do GRUB e a e ıdo ca funcionar bem e incluir algumas funcionalidades que o LILO n˜o possui, o LILO realiza todas a as tarefas essenciais de um sistema de boot de forma confi´vel e comprovada. Por ser mais a recente, o GRUB ainda n˜o conseguiu este legado. J´ que n˜o ´ inclu´ no Slackware, n˜o a a a e ıdo a vamos discutir sobre ele aqui. Se vocˆ quiser usar o GRUB (talvez tenha vindo com outro e sistema Linux e vocˆ queira us´-lo para dual boot), consulte a documenta¸˜o do GRUB. e a ca Esta sess˜o cobre o uso do LILO e do LOADLIN, os dois gerenciadores de boot inclu´ a ıdos no Slackware. Aqui tamb´m vemos alguns cen´rios t´ e a ıpicos de dual boot e como configur´-los. a

7.1

LILO

O Linux Loader, ou LILO, ´ o gerenciador de boot mais usado em sistemas Linux. Ele e permite uma extensa gama de configura¸˜es pode ser usado facilmente para dar boot em outros co sistemas operacionais. O Slackware Linux possui um utilit´rio de configura¸˜o na forma de menu chamado lilocona ca fig. Este utilit´rio ´ executado pela primeira vez durante o processo de configura¸˜o, mas vocˆ a e ca e pode cham´-lo mais tarde digitando liloconfig na linha de comando. a O LILO lˆ suas configura¸˜es a partir do arquivo /etc/lilo.conf (5) Ele n˜o ´ lido toda vez e co a e que o computador ´ inicializado, e sim todas as vezes que o LILO ´ instalado. O LILO deve ser e e reinstalado no setor de boot sempre que houver uma altera¸˜o na configura¸˜o. Muitos erros ca ca do LILO acontecem quando se faz altera¸˜es no arquivo lilo.conf, mas se esquece de reexecutar co o lilo para instalar essas altera¸˜es. O liloconfig ajuda a montar o arquivo de configura¸˜o para co ca que vocˆ possa instalar o LILO em seu sistema. Se preferir editar o /etc/lilo.conf manualmente, e
61

62

CAP´ ITULO 7. PROCESSO DE BOOT

a reinstala¸˜o do LILO envolve simplesmente a digita¸˜o de /sbin/lilo (como root) na linha de ca ca comando. Ao chamar pela primeira vez o liloconfig, ele ser´ como: a

liloconfig Se esta for a primeira vez que vocˆ configura o LILO, escolha a op¸˜o simple (simples). Por e ca outro lado, a op¸˜o expert (avan¸ado) ´ mais r´pida se vocˆ estiver familiarizado com o LILO ca c e a e e o Linux. Selecionando simple, a configura¸˜o do LILO ´ iniciada. ca e Se o seu kernel estiver compilado com suporte a frame buffer, o liloconfig pergunta qual resolu¸˜o de v´ ca ıdeo vocˆ gostaria de usar. Esta resolu¸˜o tamb´m ´ usada pelo frame buffer do e ca e e servidor XFree86. Se vocˆ n˜o quiser usar o console em um modo de v´ e a ıdeo especial, selecione normal para manter o modo texto padr˜o de 80x25 em uso. a Na pr´xima parte da configura¸˜o do LILO, selecione onde quer que ele seja instalado. o ca Provavelmente este ´ o passo mais importante. A lista abaixo explica os locais de instala¸˜o: e ca • Root Esta op¸˜o instala o LILO no in´ de sua parti¸˜o ra´ Esta ´ a maneira mais segura se n˜o ca ıcio ca ız. e a houver outros sistemas operacionais em seu computador. Ela assegura que outros gerenciadores de boot n˜o sejam sobreescritos. A desvantagem ´ que o LILO apenas carrega se o seu drive a e com o Linux for o primeiro drive em seu sistema. ´ por este motivo que muitos preferem criar e uma pequena parti¸˜o /boot como o primeiro driver em seus sistemas. Isto permite que o kernel ca e o LILO sejam instalados no in´ do drive, onde o LILO consegue encontr´-los. Algumas ıcio a vers˜es anteriores do LILO continham uma falha infame conhecida como ”limite do cilindro o 1024”. O LILO n˜o conseguia inicializar kernels em parti¸˜es al´m do limite do cilindro 1024. a co e As edi¸˜es recentes do LILO eliminaram esse problema. co • Disquete Este m´todo ´ ainda mais seguro do que o anterior. Ele cria um disquete que vocˆ pode usar e e e para dar boot no seu sistema Linux. Isto mant´m o gerenciador de boot completamente fora do e seu disco r´ ıgido. Desse modo, se quiser usar o Slackware, vocˆ somente conseguir´ iniciar o seu e a

7.2. LOADLIN

63

sitema usando este disquete. As falhas deste sistema s˜o ´bvias. Os disquetes s˜o conhecidos a o a por serem fr´geis, propensos a dar defeitos. Al´m disso, o gerenciador de boot n˜o est´ mais a e a a contido no computador. Se vocˆ perder o seu disquete, ter´ que fazer outro para inicializar o o e a seu sistema. • MBR Este m´todo ´ escolhido quando o Slackware ´ o unico sistema operacional em seu come e e ´ putador, ou se o LILO for usado para escolher entre m´ltiplos sistemas operacionais em seu u computador. Este ´ o m´todo recomendado para a instala¸˜o do LILO e funciona em quase e e ca qualquer sistema. AVISO: Esta op¸˜o sobreescreve qualquer outro gerenciador de boot que porventura exista ca na MBR. Ap´s a sele¸˜o do local de instala¸˜o, o liloconfig cria o arquivo de configura¸˜o e instala o ca ca ca o LILO. E pronto. Se escolher o modo expert, ´ apresentado um menu especial. Este menu e permite fazer ajustes avan¸ados no arquivo /etc/lilo.conf, adiconar outros sistemas operacionais c no seu menu de boot, e ajustar o LILO para passar parˆmetros especiais ao kernel durante o a boot. O menu expert se parece com a figura abaixo:

liloconfig - Menu Expert Qualquer que seja a configura¸˜o do seu sistema, ´ f´cil configurar um gerenciador de boot ca e a que funcione. O liloconfig torna essa tarefa uma moleza.

7.2

LOADLIN

A outra op¸˜o para a inicializa¸˜o que vem com o Slackware Linux ´ o LOADLIN. O LOca ca e ADLIN ´ um execut´vel DOS que pode ser usado para iniciar o Linux a partir de um sistema e a DOS em execu¸˜o. Ele requer que o kernel do Linux esteja na parti¸˜o DOS para que o LOAca ca DLIN possa carreg´-lo e inicializar o sistema adequadamente. a

64

CAP´ ITULO 7. PROCESSO DE BOOT

Durante o processo de boot, o LOADLIN ´ copiado para o diret´rio home do usu´rio root e o a como um arquivo .ZIP. N˜o h´ um processo de instala¸˜o autom´tica para o LOADLIN. ´ a a ca a e necess´rio copiar o kernel do Linux (geralmente /boot/vmlinuz ) e o arquivo LOADLIN do dia ret´rio home do usu´rio root para a parti¸˜o do DOS. o a ca O LOADLIN ´ util quando se deseja fazer um menu de boot em sua parti¸˜o DOS. Pode-se e´ ca adicionar um menu ao seu arquivo AUTOEXEC.BAT para permitir a escolha entre o Linux e o DOS. Escolhendo o Linux o LOADLIN ´ executado, assim inicializando o seu sistema Slackware. e O exemplo abaixo do arquivo AUTOEXEC.BAT para o Windows 95 cria um menu de boot satisfat´rio: o @ECHO OFF SET PROMPT=$P$G SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\ CLS ECHO Selecione o sistema operacional: ECHO. ECHO [1] Slackware Linux ECHO [2] Windows 95 ECHO. CHOICE /C:12 "Selection? -&gt; " IF ERRORLEVEL 2 GOTO WIN IF ERRORLEVEL 1 GOTO LINUX :WIN CLS ECHO Iniciando o Windows 95... WIN GOTO END :LINUX ECHO Iniciando o Slackware Linux... CD \LINUX LOADLIN C:\LINUX\VMLINUZ ROOT=<dispositivo da parti¸~o root> RO ca GOTO END :END Especifique a sua parti¸˜o root com o nome do dispositivo no Linux, tal como /dev/hda2 ou ca algo semelhante. Vocˆ tamb´m pode usar o LOADLIN a partir da linha de comando. Simplese e mente use-o como no exemplo acima. A documenta¸˜o do LOADLIN possui muitos exemplos ca sobre o seu uso.

7.3

Dual Boot

Muitos usu´rios configuram os seus computadores para inicializar o Slackware Linux e outro a sistema operacional (o que se chama dual boot). Descrevemos v´rios cen´rios t´ a a ıpicos de dual boot abaixo, em caso de haver dificuldades para configurar o seu sistema.

7.3.1

Windows

Provavelmente o cen´rio mais comum de dual boot ´ com o MS Windows e o Linux. H´ a e a v´rias maneiras de se configurar a inicializa¸˜o, mas esta sess˜o abranger´ duas delas. a ca a a

7.3. DUAL BOOT

65

` As vezes, ao configurar um sistema com dual boot se cria um plano perfeito em rela¸˜o a ca onde tudo vai ficar, mas se confunde a ordem de instala¸˜o. ´ muito importante compreender ca e que os sistemas operacionais devem ser instalados em uma determinada ordem para que o dual boot funcione. O Linux sempre oferece controle sobre o que, se for o caso, ´ gravado na MBR e (Master Boot Record - Registro Principal de Inicializa¸˜o). Portanto, ´ aconselh´vel instaca e a lar o Linux por ultimo. O Windows deve ser instalado primeiro, j´ que ele sempre grava seu ´ a gerenciador de boot na MBR, sobreescrevendo as configura¸˜es porventura gravadas pelo Linux. co Usando o LILO A maioria dos usu´rios preferem usar o LILO para escolher entre o Linux e o Windows. a Como foi citado acima, instale primeiramente o Windows, e, ent˜o, o Linux. a Digamos que o unico drive no seu sistema seja um disco r´ ´ ıgido IDE de 40GB. Suponhamos tamb´m que vocˆ queira deixar a metade do espa¸o para o Windows e a outra metade para o e e c Linux. Haver´ um problema ao tentar iniciar o Linux. a

20GB 1GB 19GB

Windows boot (C:) Linux root (/) Linux /usr (/usr)

Vocˆ deve separar tamb´m um espa¸o adequado para uma parti¸˜o de troca (swap) para o e e c ca Linux. A regra geral ´ usar o dobro da quantidade de mem´ria RAM. Um sistema com 64MB e o deve ter 128MB de swap, e assim por diante. O espa¸o de swap adequado ´ alvo de muitas c e discuss˜es inflamadas no IRC e na Usenet. Na verdade n˜o h´ uma forma ”correta” de fazer, o a a mas a regra acima deve ser satisfat´ria. o Com as suas parti¸˜es prontas, comece a instala¸˜o do Windows. Depois que estiver confico ca gurado e funcionando, instale o Linux. A instala¸˜o do LILO requer aten¸˜o especial. Talvez ca ca vocˆ prefira escolher o modo expert para instalar o LILO. e Inicie uma nova configura¸˜o do LILO. Prefira instalar na MBR para que possa ser usado ca para escolher entre ambos os sistemas operacionais. No menu, adicione a sua parti¸˜o Linux e ca a sua parti¸˜o Windows (ou DOS). Assim que este passo estiver completo, pode instalar o LILO. ca Reinicie o seu computador. O LILO deve ser carregado e exibir um menu que permite a escolha entre os sistemas operacionais instalados. Selecione o nome do Sistema Operacional que deseja carregar (esses nomes foram escolhidos na configura¸˜o do LILO). ca O LILO ´ um gerenciador de boot altamente configur´vel. Ele n˜o se limita a iniciar o Linux e a a ou o DOS. Ele pode iniciar praticamente qualquer coisa. As p´ginas de manual do lilo(8) e do a lilo.conf (5) fornecem informa¸˜es mais detalhadas. co E se o LILO n˜o funcionar? H´ casos onde o LILO n˜o funciona em uma m´quina espec´ a a a a ıfica. Felizmente, h´ outra maneira de fazer dual boot entre o Linux e o Windows. a Usando o LOADLIN Este m´todo pode ser usado se o LILO n˜o funcionar em seu sistema, ou se vocˆ n˜o quie a e a ser configurar o LILO. Este m´todo tamb´m ´ ideal para o usu´rio que reinstala o Windows e e e a freq¨entemente. A cada reinstala¸˜o do Windows, ele sobreescreve A MBR, assim destruindo u ca

66

CAP´ ITULO 7. PROCESSO DE BOOT

a instala¸˜o do LILO. Com o LOADLIN, vocˆ n˜o est´ sujeito a esse problema. A maior desca e a a vantagem ´ que o LOADLIN somente pode ser usado para iniciar o Linux. e Com o LOADLIN, os sistemas operacionais podem ser instalados em qualquer ordem. Cuidado para n˜o fazer instala¸˜es na MBR, vocˆ n˜o quer fazer isso. O LOADLIN depende de que a co e a a parti¸˜o do Windows seja inicializ´vel. Ent˜o, durante a instala¸˜o do Slackware, assegure-se ca a a ca de pular a configura¸˜o do LILO. ca Ap´s a instala¸˜o dos sistemas operacionais, copie o arquivo loadlinX.zip (onde X ´ o n´o ca e u mero da vers˜o, tal como 16a) do diret´rio home do usu´rio root para a sua parti¸˜o Windows. a o a ca Copie tamb´m a imagem do seu kernel para a parti¸˜o do Windows. Para isso funcionar, ´ e ca e necess´rio estar no Linux. O exemplo abaixo mostra como fazer isso: a # # # # # # # # mkdir /win mount -t vfat /dev/hda1 /win mkdir /win/linux cd /root cp loadlin* /win/linux cp /boot/vmlinuz /win/linux cd /win/linuz unzip loadlin16a.zip

´ E criado um diret´rio C:\LINUX em sua parti¸˜o Windows (supondo que seja /dev/hda1 ) o ca e tudo que ´ necess´rio ao LOADLIN ´ copiado. Ap´s isso, ´ necess´rio reiniciar o Windows e a e o e a para configurar um menu de boot. De volta ao Windows, abra uma janela do DOS. Primeiro, temos que assegurar que o sistema esteja configurado para n˜o iniciar na interface gr´fica. a a C:\> cd \ C:\> attrib -r -a -s -h MSDOS.SYS C:\> edit MSDOS.SYS Adicione esta linha ao arquivo: BootGUI=0 Agora salve o arquivo e saia do editor. Agora edite o C:\AUTOEXEC.BAT para que possamos adicionar um menu de boot. O exemplo abaixo mostra como deve ser um bloco de menu de boot no AUTOEXEC.BAT : cls echo System Boot Menu echo. echo 1 - Linux echo 2 - Windows echo. choice /c:12 "Selection? -> " if errorlevel 2 goto WIN if errorlevel 1 goto LINUX :LINUX cls echo "Iniciando o Linux..."

7.3. DUAL BOOT

67

cd \linux loadlin c:\linux\vmlinuz root=/dev/hda2 ro goto END :WIN cls echo "Iniciando o Windows..." win goto END :END A linha principal ´ a que chama o LOADLIN. Dizemos qual kernel carregar, a parti¸˜o root e ca do Linux, e que inicialmente queremos que seja montada somente para leitura. As ferramentas necess´rias para esse m´todo s˜o fornecidas com o Slackware Linux. H´ a e a a v´rios outros gerenciadores de boot no mercado, mas esses devem funcionar ma maioria das a configura¸˜es de dual boot. co Esta ´ a situa¸˜o de dual boot menos comum. Nos velhos tempos do o LILO n˜o conseguia e ca a iniciar o Windows NT, o que requeria que os usu´rios do Linux alterassem a NTLDR, que a apresentava muito mais problemas do que o dual boot entre o Windows 9x e o Linux. Esteja ciente de que as instru¸˜es abaixo est˜o ultrapassadas. O LILO j´ consegue iniciar o Windows co a a NT/2000/XP/2003 h´ v´rios anos. Contudo, se vocˆ estiver usando uma m´quina antiga, este a a e a procedimento pode ser necess´rio. a • Instale o Windows NT • Instale o Linux, assegurando-se de que o LILO seja instalado no superbloco da parti¸˜o ca do Linux • Coloque os primeiros 512 bytes da parti¸˜o root do Linux na parti¸˜o do Windows NT ca ca • Edite o C:\BOOT.INI sob o Windows NT para adicionar uma op¸˜o para o Linux ca A instala¸˜o do Windows NT deve ser bem direta, assim como deve ser a instala¸˜o do ca ca Linux. A partir desse ponto, fica mais complicado. Pegar os primeiros 512 bytes da parti¸˜o ca do Linux ´ mais f´cil do que parece. Para isso, vocˆ precisa estar no Linux. Supondo que a sua e a e parti¸˜o Linux seja /dev/hda2, digite o comando: ca # dd if=/dev/hda2 of=/tmp/bootsect.lnx bs=1 count=512 S´ isso. Agora vocˆ precisa copiar o bootsect.lnx para a parti¸˜o do Windows NT. Aqui ocorre o e ca outro problema. O Linux n˜o possui suporte est´vel para grava¸˜o em sistemas NTFS. Se vocˆ a a ca e tiver instalado o Windows NT e formatado o seu drive como NTFS, ser´ necess´rio copiar esse a a arquivo para um disquete com FAT e ent˜o ler a partir dele no Windows NT. Se vocˆ tiver a e formatado o drive do Windows NT como FAT, pode simplesmente mont´-lo no Linux e copiar a o arquivo. De qualquer modo, copie o /tmp/bootsect.lnx do Linux para C:\BOOTSECT.LNX no Windows NT. O ultimo passo ´ adicionar uma op¸˜o no menu de boot do Windows NT. No Windows NT, ´ e ca abra um terminal. C:\WINNT> cd \ C:\> attrib -r -a -s -h boot.ini C:\> edit boot.ini

68

CAP´ ITULO 7. PROCESSO DE BOOT

Adicione esta linha ao final do arquivo: C:\bootsect.lnx="Slackware Linux" Salve as altera¸˜es e saia do editor. Ao reiniciar o Windows NT, aparecer´ uma op¸˜o para co a ca o Linux no menu. Selecione-a para iniciar o Linux.

7.3.2

Linux

Sim, isso realmente ´ feito. Definitivamente, este ´ o cen´rio de dual boot mais simples. e e a Pode-se simplesmente usar o LILO e adicionar mais entradas no arquivo /etc/lilo.conf. Isso ´ e tudo.

Cap´ ıtulo 8

O Shell
Em um ambiente gr´fico, a interface ´ apresentada por um programa que cria janelas, barras a e de rolagem, menus, etc. Em um ambiente de linha de comando, a interface com o usu´rio a ´ apresentada por um shell, que interpreta os comandos e geralmente torna as coisas uteis. e ´ Imediatamente ap´s entrar no sistema (o que ´ visto neste cap´ o e ıtulo), os usu´rios s˜o colocados a a em um shell e podem fazer o seu trabalho. Este cap´ ıtulo serve como uma introdu¸˜o ao shell, ca e ao shell mais comum entre os usu´rios do Linux - o Bourne Again Shell (bash). Para maiores a informa¸˜es sobre qualquer t´pico deste cap´ co o ıtulo, veja a p´gina de manual do bash(1). a

8.1
8.1.1

Os Usu´rios a
Entrando no Sistema

Ent˜o vocˆ iniciou o Linux, e est´ olhando para algo que se parece com isso: a e a Welcome to Linux 2.4.18 Last login: Wed Jan 1 15:59:14 -0500 2005 on tty6. darkstar login: H˜... ningu´m disse nada sobre um login. E o que ´ darkstar? N˜o se preocupe; provaa e e a velmente vocˆ n˜o abriu acidentalmente um link de comunica¸˜o espacial com a lua artificial e a ca do Imp´rio. (Infelizmente, o protocolo de link de comunica¸˜o espacial ainda n˜o tem suporte e ca a no kernel do Linux. Talvez a s´rie 2.8 do kernel finalmente tenha suporte a esse protocolo t˜o e a esperado.) N˜o, darkstar ´ apenas o nome de um dos nossos computadores, e seu nome aparece a e por padr˜o. Se vocˆ tiver especificado um nome para o seu computador durante a configura¸˜o, a e ca ele deve ser exibido em vez de darkstar. Quanto ao login... Se for a sua primeira vez, vocˆ deve entrar como root. Ser´ pedida uma e a senha; se vocˆ tiver criado uma durante o processo de configura¸˜o, ´ essa senha que ser´ pee ca e a dida. Se n˜o, simplesmente pressione enter. Isso a´ - vocˆ entrou! a ı e

8.1.2

Root: O Super Usu´rio a

Ok, quem ou o que ´ o root? E o que est´ fazendo com uma conta em meu sistema? e a Bem, no mundo Unix e dos sistemas operacionais semelhantes (como o Linux), h´ usu´rios a a e usu´rios. Veremos maiores detalhes depois, mas o que importa por enquanto ´ saber que o a e root ´ o maior usu´rio de todos; o root ´ onipotente e onisciente, e ningu´m desobedece o root. e a e e Isso simplesmente n˜o ´ permitido. O root ´ o que chamamos de ”super usu´rio”, e realmente a e e a ele ´. E o que ´ melhor, o root ´ vocˆ. e e e e
69

70

CAP´ ITULO 8. O SHELL

Legal, hein? Se vocˆ estiver em d´vida: sim, isso ´ muito legal. O problema ´, contudo, que o root pode e u e e ca por sua natureza, pode quebrar tudo o que desejar. Vocˆ pode querer ir direto para a se¸˜o e 12.1.1 e ver como adicionar um usu´rio; e, ent˜o, entre no sistema e continue daqui. A sabedoa a ria popular diz que ´ melhor s´ se tornar o super usu´rio quando for absolutamente necess´rio, e o a a de forma a minimizar a possibilidade de estragar algo acidentalmente. A prop´sito, n˜o h´ problemas se vocˆ decidir que quer se tornar o root enquanto est´ no o a a e a ´ o sistema como outro usu´rio. E s´ usar o comando su(1). Vocˆ ter´ que informar a senha de root a e a e se tornar´ o root at´ que dˆ o comando exit ou logout. Vocˆ tamb´m pode se tornar qualquer a e e e e outro usu´rio usando o su, desde que saiba a sua senha: su logan, por exemplo, permitiria que a vocˆ fosse eu. e NOTA: O root pode dar o su para qualquer usu´rio, sem precisar de senha. a

8.2
8.2.1

A Linha de Comando
Executando Programas

N˜o h´ muito o que fazer sem executar um programa; deve dar para apoiar algo com o seu a a computador ou manter uma porta aberta, e alguns fazem um zumbido maravilhoso quando est˜o ligados, mas n˜o ´ para isso que servem. E acho que podemos concordar que ser usado a a e como batente para portas n˜o ´ o que trouxe popularidade aos computadores pessoais. a e Ent˜o, lembra-se de que quase tudo no Linux ´ um arquivo? Bem, isso tamb´m vale para a e e programas. Cada comando que vocˆ executa (que n˜o ´ fun¸˜o nativa do shell) reside em um e a e ca arquivo em algum lugar. Vocˆ executa um programa simplesmente especificando o caminho e completo at´ ele. e Por exemplo, lembra-se do comando su da se¸˜o acima? Bem, na verdade ele est´ no direca a t´rio /bin: /bin/su o executaria perfeitamente. o Por que, ent˜o, digitar apenas su funciona? Afinal, vocˆ n˜o disse que ele estava em /bin. a e a Poderia tamb´m estar em /usr/local/share, certo? Como o sistema sabia? A resposta est´ na e a vari´vel de ambiente PATH ; a maioria dos shells possui o PATH ou algo muito parecido com o a PATH. Essa vari´vel basicamente cont´m uma lista de diret´rios, para procurar os programas a e o que vocˆ tenta executar. Ent˜o, quando vocˆ executou su, o seu shell percorreu sua lista de die a e ret´rios, procurando em cada um o arquivo execut´vel chamado su que pudesse executar; assim o a que encontrou algum, ele o executou. Isto acontece sempre que vocˆ executa um programa sem e especificar o caminho completo para ele; se der um erro de ”Command not found” (comando n˜o encontrado), isso significa que o programa que tentou executar n˜o est´ em seu PATH. a a a ´ (E claro que isso seria verdadeiro se o programa n˜o existisse...) Discutiremos as vari´veis de a a ambiente com maiores detalhes em vari´veis de ambiente. a Lembre-se, tamb´m, que o ”.” ´ um atalho para o diret´rio atual, ent˜o se vocˆ estivesse em e e o a e /bin, ./su funcionaria como um caminho completo expl´ ıcito.

8.2. A LINHA DE COMANDO

71

8.2.2

Substitui¸˜o de Meta-Caracteres ca

Quase todo shell reconhece alguns caracteres como substitutos ou abrevia¸˜es que significam co que qualquer caracter encaixa aqui. Estes caracteres s˜o chamados de meta-caracteres; os mais a comuns s˜o * e ?. Por conven¸˜o, o ? geralmente substitui qualquer caractere unico. Por a ca ´ exemplo, suponha que esteja em um diret´rio com trˆs arquivos: ex1.txt, ex2.txt, e ex3.txt. o e ca Vocˆ quer copiar todos estes arquivos (usando o comando cp visto na se¸˜o 10.5.1) para outro e ´ diret´rio, digamos /tmp. Bem, digitar cp ex1.txt ex2.txt ex3.txt /tmp ´ trabalhoso demais. E o e muito mais f´cil digitar cp ex?.txt /tmp; o ? combina com qualquer um dos caracteres ”1”, ”2”, a e ”3”, e cada um, por sua vez, ser´ substitu´ a ıdo. O que disse? Isto ainda d´ muito trabalho? Vocˆ est´ certo. Isto ´ assustador; temos leis a e a e trabalhistas para nos proteger deste tipo de coisa. Felizmente, tamb´m temos o *. Como j´ e a foi mencionado, o * substitui ”qualquer n´mero de caracteres”, inclusive 0. Ent˜o se aqueles u a trˆs arquivos fossem os unicos no diret´rio, poder´ e ´ o ıamos simplesmente dizer cp * /tmp e pegar todos com um s´ golpe. Suponha, contudo, que tamb´m exista um arquivo chamado ex.txt e o e um chamado hejaz.txt. Queremos copiar o ex.txt, mas n˜o o hejaz.txt; O cp ex* /tmp faz isso a para n´s. o O cp ex?.txt /tmp, somente iria, ´ claro, pegar os nossos trˆs arquivos originais; n˜o h´ um e e a a caractere em ex.txt para combinar com o ?, ent˜o ele ficaria de fora. a Outro meta-caractere comum ´ o par de colchetes [ ]. Quaisquer caracteres dentro dos e colchetes substituem de acordo com o padr˜o informado em [ ] para encontrar combina¸˜es. a co Parece confuso? N˜o ´ t˜o ru´ Suponha, por exemplo, que um diret´rio cont´m os 8 seguina e a ım. o e tes arquivos: a1, a2, a3, a4, aA, aB, aC, e aD . Queremos encontrar apenas os arquivos que terminam com n´meros; o [ ] far´ isso para n´s. u a o $ ls a[1-4] a1 a2 a3 a4 Mas o que realmente queremos ´ apenas os arquivos a1, a2 e a4 ? no exemplo anterior usae mos - significando todos os valores entre 1 e 4. Tamb´m podemos separar entradas individuais e usando v´ ırgulas. $ ls a[1,2,4] a1 a2 a4 Sei que agora vocˆ est´ pensando: - Bem, e quanto as letras? O Linux distingue entre mai´se a u culas e min´sculas, o que significa que a ´ diferente de A e que s´ s˜o relacionados em sua u e o a mente. As letras mai´sculas sempre vˆm antes das letras min´sculas, ent˜o A e B vˆm antes u e u a e de a e b. Dando continuidade ao nosso exemplo anterior, se quis´ssemos os arquivos a1 e A1, e podemos encontr´-los rapidamente com o [ ]. a $ ls [A,a]1 A1 a1 Observe que se inclu´ ıssemos um h´ em vez de uma v´ ıfen ırgula, obter´ ıamos resultados incorretos. $ ls [A-a]1 A1 B1 C1 D1 a1 Tamb´m pode combinar h´ e v´ e ıfen ırgula. $ ls [A,a-d]1 A1 a1 b1 c1 d1

72

CAP´ ITULO 8. O SHELL

8.2.3

Redirecionamento de Entrada e Sa´ e Uso do Pipe ıda

(L´ vem algo legal.) a $ ps > blargh Sabe o que ´ isso? Estou executando o ps para ver quais processos est˜o em execu¸˜o; o ps e a ca ca a e e est´ na se¸˜o 11.3. Essa n˜o ´ a parte legal. A parte legal ´ > blargh, que significa, a grosso a modo, pegue a sa´ do ps e mande para um arquivo chamado blargh. Mas espere, vai ficar ıda mais legal.

$ ps | less Este pega a sa´ do ps e a manda atrav´s do less, ent˜o posso subir ou descer a p´gina ıda e a a conforme a minha vontade.

$ ps >> blargh Este ´ o terceiro redirecionador mais usado; ele faz o mesmo que o ”>”, exceto pelo fato de e que o ”>>” adiciona a sa´ do ps ao final do arquivo blargh, se este arquivo existir. Se n˜o, ıda a assim como o ”>”, ele ser´ criado. (O ”>” substitui o conte´do atual do arquivo blargh.) a u Tamb´m h´ o operador ”<”, que significa pegue a entrada a partir do sa´ mas n˜o ´ usado e a ıda, a e t˜o freq¨entemente. a u

$ fromdos < dosfile.txt > unixfile.txt O redirecionamento fica mesmo divertido quando come¸a a ser combinado: c

$ ps | tac >> blargh Isso executa o ps, reverte as linhas de sua sa´ ıda, e as adiciona ao arquivo blargh. Vocˆ pode e empilhar quantos redirecionadores desejar; apenas tenha o cuidado de se lembrar de que eles s˜o interpretados da esquerda para a direita. a Veja a p´gina de manual do bash(1) para encontrar informa¸˜es mais detalhadas sobre a co redirecionamento.

8.3
8.3.1

O Bourne Again Shell (bash)
Vari´veis de Ambiente a

Um sistema Linux ´ uma fera complexa, e h´ muito para se lembrar, muitos pequenos detae a lhes que fazem diferen¸a nas suas intera¸˜es normais com v´rios programas (alguns dos quais c co a vocˆ n˜o deve nem ter ouvido falar). Ningu´m precisa passar um monte de op¸˜es para cada e a e co programa que ´ executado, dizendo a ele que tipo de terminal est´ sendo usado, o nome da e a m´quina, como o seu prompt deve ser... a Exemplo: Listando as Vari´veis de Ambiente com o set a

8.3. O BOURNE AGAIN SHELL (BASH)

73

$ set PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/openwin/bin: :/usr/local/ssh2/bin:/usr/local/ssh1/bin:/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin: PIPESTATUS=([0]="0") PPID=4978 PS1=’\h:\w\$ ’ PS2=’> ’ PS4=’+ ’ PWD=/home/logan QTDIR=/usr/local/lib/qt REMOTEHOST=ninja.tdn SHELL=/bin/bash Ent˜o, como um mecanismo de ajuda, os usu´rios contam com o que se chama de ambiente. a a O ambiente define as condi¸˜es nas quais os programas s˜o executados, e algumas destas deco a fini¸˜es s˜o vari´veis; o usu´rio pode alterar e brincar com elas, de forma que s´ acontece em co a a a o um sistema Linux. Praticamente qualquer shell possui vari´veis de ambiente (se n˜o, provaa a velmente n˜o ´ um shell muito util). Daremos uma vis˜o geral dos comandos do bash para a a e ´ a manipula¸˜o das suas vari´veis de ambiente. ca a O set sozinho exibe todas as vari´veis de ambiente definidas atualmente, assim como seus a valores. Como a maioria das fun¸˜es nativas do bash, tamb´m pode fazer v´rias outras coisas co e a (com parˆmentros); deixaremos a p´gina de manual do bash(1) cobrir esses detalhes, entrea a tanto. O Exemplo acima mostra um trecho da sa´ de um comando set executado em um ıda dos computadores do autor. Observe nesse exemplo a vari´vel PATH que foi discutida acima. a Os programas de cada um destes diret´rios podem ser executados simplesmente digitando-se o o nome do arquivo. $ unset VARIAVEL O comando unset remove as vari´veis que vocˆ indicar, apagando tanto a vari´vel quanto o a e a seu conte´do; O bash esquece que a vari´vel j´ existiu. (N˜o se preocupe. A n˜o ser que seja u a a a a algo que vocˆ definiu explicitamente naquela sess˜o do shell, provavelmente ser´ redefinida em e a a uma outra sess˜o.) a $ export \textbf{VARIAVEL=algum\_valor} O comando export ´ realmente pr´tico. Usando-o, vocˆ d´ ` vari´vel de ambiente VARIe a e aa a AVEL o valor ”algum valor”; se VARIAVEL n˜o existia, passa a existir. Se VARIAVEL j´ a a possuir um valor, bem, j´ era. Isso n˜o ´ t˜o bom se vocˆ estiver apenas tentando adicionar a a e a e um diret´rio ` sua vari´vel PATH. Neste caso, vocˆ provavelmente quer fazer alguma coisa como: o a a e $ export PATH=\$PATH:\textbf{/um/novo/diretorio} Observe o uso de $PATH aqui: quando se quer que o bash interprete uma vari´vel (substitu´ a ıla por seu valor), adicione um $ ao in´ do nome da vari´vel. Por exemplo, echo $PATH exibe ıcio a o valor de PATH, no meu caso: $ echo \$PATH /usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin: /usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin: /usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin

74

CAP´ ITULO 8. O SHELL

8.3.2

Completando Linhas de Comando com o TAB

(Aqui vai outra coisa legal.) • Usar uma interface de linha de comando significa digitar muito. • Digitar d´ trabalho. a • Ningu´m gosta de trabalho. e A partir dos itens 2 e 3, podemos determinar que (4) ningu´m gosta de digitar. Felizmente, e o bash nos salva do item (5) (Ningu´m gosta de uma interface de linha de comando). e Vocˆ est´ perguntando como o bash consegue esta proeza maravilhosa? Al´m da expans˜o e a e a de meta-caracteres discutido acima, o bash apresenta a capacidade de completar linhas de comando com o TAB. A capacidade de completar linhas de comando com o TAB funciona assim: Vocˆ est´ e a digitando o nome de um arquivo. Talvez esteja em seu PATH, talvez vocˆ esteja digie tando explicitamente. Tudo que se precisa ´ digitar o suficiente do nome do arquivo para e identific´-lo de forma unica. Ent˜o pressione a tecla TAB. O bash descobre o que vocˆ a ´ a e quer e termina a digita¸˜o para vocˆ! ca e Veja o exemplo. O /usr/src cont´m dois subdiret´rios: /usr/src/linux e /usr/src/sendmail. e o Quero ver o que est´ em /usr/src/linux. Ent˜o simplesmente digito ls /usr/src/l, pressiono a a a tecla TAB, e o bash me d´ o comando ls /usr/src/linux. a Agora, suponha que existam dois diret´rios /usr/src/linux e /usr/src/linux-old ; Se eu o digitar /usr/src/l e pressionar TAB, o bash preenche tanto quanto consegue, e vou ter /usr/src/linux. Posso parar aqui, ou posso pressionar TAB novamente, e o bash exibe uma rela¸˜o de diret´rios que combinam com o que j´ digitei at´ ent˜o. ca o a e a Quer dizer, menos digita¸˜o (e ent˜o, as pessoas podem gostar de interfaces de linha de ca a comando). Eu disse que era legal.

8.4

Terminais Virtuais

Vocˆ est´ no meio de um trabalho e decide que precisa fazer outra coisa. Vocˆ poderia e a e simplesmente parar o que est´ fazendo e alternar as tarefas, mas este sistema ´ multi-usu´rio, a e a n˜o ´? E vocˆ pode entrar no sistema quantas vezes quiser simultaneamente, n˜o pode? Ent˜o a e e a a por que teria que fazer uma coisa de cada vez? N˜o precisa. Nem todos n´s podemos ter m´ltiplos teclados, mouse e monitores para cada a o u m´quina; provavelmente nem queremos ter. Obviamente, hardware n˜o ´ a solu¸˜o. Sobra para a a e ca o software, e o Linux se d´ bem nesse caso, oferecendo ”terminais virtuais”, ou ”VTs”. a Pressionando Alt e uma tecla de fun¸˜o, vocˆ pode alternar entre os terminais virtuais; cada ca e tecla de fun¸˜o corresponde a um deles. Por padr˜o, o Slackware tem logins em 6 terminais ca a virtuais. Alt+F2 te leva ao segundo, Alt+F3 ao terceiro, etc. O restante das teclas de fun¸˜o s˜o reservadas para sess˜es do X. Cada sess˜o do X usa ca a o a seu pr´prio VT, come¸ando pelo s´timo (Alt+F7) e assim por diante. No X, a combina¸˜o o c e ca

8.4. TERMINAIS VIRTUAIS

75

Alt+Tecla de Fun¸˜o ´ substitu´ por Ctrl+Alt+Tecla de Fun¸˜o; assim, se estiver no ca e ıda ca X e quiser voltar a um console de texto (sem sair de sua sess˜o no X), Ctrl+Alt+F3 te levar´ a a ao terceiro terminal virtual. (Alt+F7 te leva de volta ` primeira sess˜o do X.) a a

8.4.1

Screen

E quanto `s situa¸˜es onde n˜o h´ terminais virtuais? E ent˜o? Felizmente, o Slackware a co a a a inclui um belo gerenciador de tela oportunamente chamado de screen. O screen ´ um emulae dor de terminal que possui capacidades semelhantes `s de um terminal virtual. Ao executar o a screen, uma breve apresenta¸˜o aparece, ent˜o um terminal abre. Diferentemente dos termica a nais virtuais padr˜o, o screen possui seus pr´prios comandos. Todos os comandos do screen a o s˜o precedidos por Crtl+A. Por exemplo, Ctrl+A+C cria uma nova sess˜o do terminal. a a Ctrl+A+N alterna para o pr´ximo terminal. Ctrl+A+P alterna para o terminal anterior. o O screen tamb´m permite sair e retornar a sess˜es do screen, o que ´ especialmente util em e o e ´ sess˜es remotas por ssh e telnet, (maiores detalhes abaixo). Ctrl+A+D sai da tela atualmente o em execu¸˜o. O comando screen -r relaciona todas as sess˜es atuais do screen `s quais vocˆ ca o a e pode retornar. $ screen -r There are several suitable screens on: 1212.pts-1.redtail(Detached) 1195.pts-1.redtail(Detached) 1225.pts-1.redtail(Detached) 17146.pts-1.sanctuary (Dead ???) Remove dead screens with ’screen -wipe’. Type "screen [-d] -r [pid.]tty.host" to resume one of them. O comando screen -r 1212 retorna ` primeira sess˜o listada. Mencionei anteriormente que a a isso era util para sess˜es remotas. Se eu tivesse logado em um servidor Slackware remoto por ´ o ssh, e a minha conex˜o ca´ pro algum motivo como falta de energia local, o que quer que a ısse eu estivesse fazendo naquele momento seria perdido instantaneamente, o que pode ser terr´ ıvel para o seu servidor. Usar o screen evita isso, desconectando a minha sess˜o se a minha conex˜o a a cair. Assim que a minha conex˜o for restaurada, posso retornar ` minha sess˜o do screen e a a a reiniciar exatamente de onde parei.

76

CAP´ ITULO 8. O SHELL

Cap´ ıtulo 9

Estrutura do Sistema de Arquivos
N´s j´ discutimos previamente sobre a estrutura de diret´rios no Slackware Linux. A partir o a o deste ponto, vocˆ est´ apto a encontrar arquivos e diret´rios que precisar. Por´m, h´ mais e a o e a sobre sistemas de arquivos que apenas a estrutura de diret´rios. o O Linux ´ um sistema operacional multi-usu´rio. Todo o aspecto do sistema ´ multiusu´rio, e a e a inclusive o sistema de arquivos. O sistema armazena informa¸˜es sobre quem possui um arquivo co e quem pode ler este arquivo. Existem outras partes unicas sobre o sistema de arquivos, como os ´ links e a montagem de parti¸˜es NFS. Essa se¸˜o explica tudo isso, t˜o bem quanto os aspectos co ca a multi-usu´rio do sistema de arquivos. a

9.1

Propriedade

O sistema de arquivos armazena informa¸˜es sobre o dono de cada arquivo e diret´rio no co o sistema. Isso inclui qual usu´rio e grupo possui um determinado arquivo. A maneira mais f´cil a a de ver essa informa¸˜o ´ com o comando ls: ca e $ ls -l /usr/bin/wc -rwxr-xr-x 1 root

bin

7368 Jul 30

1999 /usr/bin/wc

N´s estamos interessados na terceira e quarta colunas (da esquerda para a direita). Essas o colunas cont´m o nome do usu´rio e grupo que possui o arquivo. N´s podemos ver que o usu´rio e a o a ”root”e o grupo ”bin”s˜o os propriet´rios desse arquivo. a a ”N´s podemos mudar facilmente os donos de um arquivo com os comandos chown(1) (que o significa mudar o propriet´rio”) e chgrp(1) (que significa ”mudar o grupo”). Para mudar o dono a de um arquivo para daemon, n´s podemos usar o comando chown: o

# chown daemon /usr/bin/wc Para mudar o grupo que possui um arquivo para ”root”, n´s podemos usar o comando chgrp: o

# chgrp root /usr/bin/wc N´s podemos utilizar o comando chown para especificar as propriedades de usu´rio e grupo o a para um arquivo:

# chown daemon:root /usr/bin/wc

77

78

CAP´ ITULO 9. ESTRUTURA DO SISTEMA DE ARQUIVOS

No exemplo acima, o usu´rio poderia ter usado um ponto, no lugar do dois-pontos. O rea sultado teria sido o mesmo; entretanto, o dois-pontos ´ considerado a melhor forma. O uso do e ponto ´ obsoleto e poder´ ser removido em futuras vers˜es do comando chown para permitir e a o nomes de usu´rios que contenham ponto. Esses nomes de usu´rio tendem a ser muito populares a a com Servidores Windows Exchange e s˜o encontrados com maior freq¨ˆncia em endere¸os de a ue c a e-mail como: mr.jones@example.com. No Slackware, os administradores s˜o alertados para evitarem esses nomes de usu´rios, porque alguns scripts utilizam o ponto para indicar o nome e o a grupo de um arquivo ou diret´rio. Em nosso exemplo, o comando chmod interpretaria mr.jones o como usu´rio ”mr”e grupo ”jones”. a A defini¸˜o de quem ´ o dono de um determinado arquivo ´ uma parte muito importante ca e e na utiliza¸˜o de um sistema Linux, mesmo que vocˆ seja o unico usu´rio do sistema. Algumas ca e ´ a vezes vocˆ precisa corrigir as propriedades em arquivos e em n´s de dispositivos (device nodes). e o

9.2

Permiss˜es o

As permiss˜es s˜o outra parte importante do aspecto multi-usu´rio do sistema de arquivos. o a a Com elas, vocˆ pode alterar quem lˆ, escreve, e executa arquivos. e e A informa¸˜o de permiss˜o ´ armazenada na forma de quatro d´ ca a e ıgitos octais, cada um especificando diferentes conjuntos de permiss˜es. S˜o eles, permiss˜o do propriet´rio, permiss˜o de o a a a a grupo e, permiss˜o do mundo. Os quatro d´ a ıgitos octais s˜o utilizados para armazenar infora ma¸˜es especiais como identifica¸˜o de usu´rio (user ID), identifica¸˜o de grupo (group ID), e co ca a ca o bit controle. Os valores octais associados aos modos de permiss˜o s˜o (eles possuem letras a a associadas que s˜o mostradas por programas como o comando ls e podem ser utilizadas pelo a comando chmod ): Valores de Permiss˜o Octais a Tipo de Permiss˜o a ”bit”controle identifica¸˜o de usu´rio ca a identifica¸˜o de grupo ca leitura escrita execu¸˜o ca Valor Octal Valor Letra 1 t 4 s 2 s 4 r 2 w 1 x

Vocˆ adiciona os valores octais para cada grupo de permiss˜es. Por exemplo, se vocˆ quer e o e que o grupo tenha permiss˜o de ”leitura”e ”escrita”, vocˆ utilizar´ ”6”na por¸˜o referente ` pera e a ca a miss˜o do grupo. a As permiss˜es padr˜es do bash s˜o: o o a $ ls -l /bin/bash -rwxr-xr-x 1 root

bin

477692 Mar 21 19:57 /bin/bash

O primeiro tra¸o pode ser substitu´ por um ”d”se for um diret´rio. As trˆs permiss˜es c ıdo o e o de grupo (propriet´rio, grupo, e outros) s˜o mostradas a seguir. N´s vemos que o propriet´rio a a o a possui permiss˜es de leitura, escrita e execu¸˜o (rwx). O grupo possui apenas permiss˜o de o ca a leitura e execu¸˜o (r-x). E todo o mundo possui permiss˜es de leitura e escrita (r-x). ca o

˜ 9.2. PERMISSOES

79

Como n´s configuramos as permiss˜es de um outro arquivo para que elas fiquem semelhantes o o as permiss˜es do bash? Primeiro, vamos criar um arquivo chamado exemplo: o $ touch /tmp/exemplo $ ls -l /tmp/exemplo -rw-rw-r--- 1 david

users

0 Apr 19 11:21 /tmp/exemplo

N´s usaremos o comando chmod (1) (que significa ”mudar o modo”) para alterar as permiso s˜es do arquivo exemplo. Acrescente os n´meros octais para a permiss˜o que vocˆ quer. Para o u a e o propriet´rio que possui permiss˜o de leitura, escrita e execu¸˜o, n´s ter´ a a ca o ıamos o valor 7. Para permiss˜o de leitura e execu¸˜o ter´ a ca ıamos o valor 5. Aplique esses valores juntos ao chmod dessa maneira: $ chmod 755 /tmp/exemplo $ ls -l /tmp/exemplo -rwxr-xr-x 1 david users

0 Apr 19 11:21 /tmp/exemplo

Agora vocˆ deve estar pensando, ”Por que n´s n˜o criamos o arquivo com essas permiss˜es e o a o desde o in´ ıcio?”Bem, a resposta ´ simples. O bash possui uma implementa¸˜o chamada umask. e ca Este comando vem inclu´ com a maioria dos shells do Unix, e controla quais permiss˜es s˜o ıdo o a designadas ` arquivos criados recentemente. N´s discutimos sobre as implementa¸˜es do bash a o co ca e a com maior profundidade na se¸˜o 8.3.1. O comando umask ´ utilizado de forma razo´vel. Ele funciona de maneira bastante similar ao chmod, s´ que em modo reverso. Vocˆ especifica os o e valores octais que vocˆ n˜o deseja que estejam presentes nos arquivos rec´m-criados. O seu e a e valor padr˜o ´ 0022. a e $ umask 0022 $ umask 0077 $ touch tempfile $ ls -l tempfile -rw-------- 1 david

users

0 Apr 19 11:21 tempfile

Olhe a p´gina do manual do bash para maiores informa¸˜es. a co Para aplicar permiss˜es especiais com o chmod, adicione os n´meros juntos e identifique-os o u na primeira coluna. Por exemplo, para for¸ar a identifica¸˜o do usu´rio (user ID) e a identific ca a ca¸˜o de grupo (group ID), n´s usamos o 6 na primeira coluna: ca o $ chmod 6755 /tmp/exemplo $ ls -l /tmp/exemplo -rwsr-sr-x 1 david users

0 Apr 19 11:21 /tmp/exemplo

Se os valores octais confundem vocˆ, vocˆ pode usar letras com o chmod. Os grupos de e e permiss˜o s˜o representados como: a a Propriet´rio a Grupo Mundo Todas acima u g o a

80

CAP´ ITULO 9. ESTRUTURA DO SISTEMA DE ARQUIVOS

Para fazer o descrito acima, n´s precisamos utilizar v´rias linhas de comando: o a $ chmod a+rx /tmp/exemplo $ chmod u+w /tmp/exemplo $ chmod ug+s /tmp/exemplo Algumas pessoas preferem utilizar as letras em vez dos n´meros. Ambas as maneiras ir˜o u a gerar o mesmo resultado na aplica¸˜o das permiss˜es. ca o u a e e O formato octal ´ freq¨entemente mais r´pido, e o que vocˆ vˆ frequentemente sendo utilie zado em shell script. Em alguns casos as letras s˜o mais poderosas. Por exemplo, n˜o existe a a uma maneira f´cil de alterar um grupo de permiss˜es e preservar outros em arquivos e diret´a o o rios, quando vocˆ usa o formato octal. Isso ´ trivial utilizando as letras. e e $ ls -l /tmp/ -rwxr-xr-x 1 alan -rwxr-x--1 alan ----r-xr-x 1 alan

users users users

0 Apr 19 11:21 /tmp/exemplo0 0 Apr 19 11:21 /tmp/exemplo1 0 Apr 19 11:21 /tmp/exemplo2 0 Apr 19 11:21 /tmp/exemplo0 0 Apr 19 11:21 /tmp/exemplo1 0 Apr 19 11:21 /tmp/exemplo2

$ chmod g-rwx /tmp/exemplo -rwx---r-x 1 alan users -rwx-----1 alan users -------r-x 1 alan users

N´s mencionamos as permiss˜es de identifica¸˜o de usu´rio (user ID) e a identifica¸˜o de o o ca a ca grupo (group ID) em v´rias partes acima. Vocˆ pode estar se perguntando o que s˜o essas a e a permiss˜es. Normalmente, quando vocˆ roda um programa, este est´ operando sob a sua conta o e a de usu´rio. Isto ´, ele tem todas as permiss˜es que o seu usu´rio possui. O mesmo ´ verdade a e o a e para o grupo. Quando vocˆ roda um programa, ele ´ executado sob o seu grupo atual. Com a e e permiss˜o de identifica¸˜o de usu´rio, vocˆ pode for¸ar o programa para sempre rodar como o a ca a e c propriet´rio do programa (como o ”root”). A permiss˜o de identifica¸˜o de grupo faz a mesma a a ca coisa, s´ que para o grupo. o Seja cuidadoso com isso, pois as permiss˜es de identifica¸˜es de usu´rio e de grupo dos proo co a gramas podem abrir brechas de seguran¸a no seu sistema. Se vocˆ freq¨entemente for¸a as c e u c permiss˜es de usu´rio para os programas que pertencem ao usu´rio root, vocˆ est´ permitindo o a a e a que qualquer um utilize o programa e o utilize como root. Como o usu´rio root n˜o possui resa a tri¸˜es no sistema, vocˆ pode ver como isso cria um grande problema de seguran¸a. Resumindo, co e c n˜o ´ ruim utilizar as permiss˜es de identifica¸˜o de usu´rio e de grupo, apenas use o bom senso. a e o ca a

9.3

Links

Links s˜o ponteiros entre arquivos. Com os links, vocˆ pode ter arquivos existindo em v´a e a rios locais e podendo ser acessados por v´rios nomes. Existem dois tipos de links: est´ticos e a a dinˆmicos. a Links est´ticos s˜o nomes para um arquivo em particular. Eles s´ podem existir dentro de a a o um unico sistema de arquivos e s´ s˜o removidos quando o nome real ´ removido do sistema. ´ o a e Eles s˜o uteis em alguns casos, por´m muitos usu´rios acham o link dinˆmico muito mais vera ´ e a a s´til. a

9.4. MONTANDO DISPOSITIVOS

81

O link dinˆmico, tamb´m chamado de link simb´lico, pode apontar para um arquivo fora do a e o seu sistema de arquivos. Ele ´ na verdade um pequeno arquivo contendo apenas as informae co ¸˜es que ele necessita. Vocˆ pode adicionar ou remover links simb´licos sem afetar o arquivo e o atual. E desde que um link simb´lico ´ na verdade um arquivo pequeno contendo sua pr´pria o e o ´ informa¸˜o, ele tamb´m pode apontar para um diret´rio. E bastante comum ver o /var/tmp ca e o atualmente como um link simb´lico para /tmp por exemplo. o Os links n˜o possuem seu pr´prio conjunto de permiss˜es ou propriedades, por´m refletem a o o e os arquivos aos quais eles apontam. Os usu´rios do Slackware usam mais os links dinˆmicos. a a Aqui est´ um exemplo comum: a $ ls -l /bin/sh lrwxrwxrwx 1 root

root

4 Apr

6 12:34 /bin/sh -> bash

O shell sh sob o Slackware ´ atualmente o bash. A remo¸˜o de links ´ feita utilizando o e ca e comando rm. O comando ln ´ utilizado para criar links. Esses comandos ser˜o discutidos com e a ıtulo 10. maior profundidade no Cap´ ´ E muito importante ter cuidado, em particular, com os links simb´licos. Uma vez, eu estava o trabalhando em uma m´quina que teimava em falhar nos backups em fita toda noite. Dois a links simb´licos tinham sido feitos para dois diret´rios, um embaixo do outro. O software para o o backup manteve anexado ` fita esses mesmos diret´rios, at´ ficar sem espa¸o. Normalmente, a o e c uma s´rie de verifica¸˜es pr´vias ir´ prever a cria¸˜o de links simb´licos nessa situa¸˜o, mas o e co e a ca o ca nosso era um caso especial.

9.4

Montando Dispositivos

Como foi pr´viamente discutido na se¸˜o 4.1.1, todos os drives e dispositivos em seu come ca putador s˜o um sistema de arquivos enorme. V´rias parti¸˜es em seu disco r´ a a co ıgido, CD-ROMs, e disquetes s˜o todos alocados em uma mesma ´rvore. Ao anexar todos esses drives ao sisa a tema de arquivos para que possam ser acessados, vocˆ precisa utilizar os comandos mount(1) e e umount(1). Alguns dispositivos s˜o montados automaticamente quando vocˆ inicializa o seu computaa e dor. Esses dispositivos est˜o listados no arquivo /etc/fstab. Tudo o que vocˆ quiser que seja a e montado automaticamente precisa ter uma entrada neste arquivo. Para os outros dispositivos, vocˆ ter´ que executar um comando toda vez que vocˆ quiser montar um dispositivo. e a e

fstab

Vamos dar uma olhada em um exemplo do arquivo /etc/fstab: $ cat /etc/fstab /dev/sda1 /dev/sda2 /dev/sda4 /dev/sdb1 /dev/sdb3 none / /usr/local /home swap /export /dev/pts ext2 ext2 ext2 swap ext2 devpts defaults defaults defaults defaults defaults gid=5,mode=620 1 1 1 0 1 0 1 1 1 0 1 0

82

CAP´ ITULO 9. ESTRUTURA DO SISTEMA DE ARQUIVOS

none /proc /dev/fd0 /mnt /dev/cdrom/mnt/cdrom

proc ext2 iso9660

defaults defaults ro

0 0 0

0 0 0

A primeira coluna ´ o nome do dispositivo. Nesse caso, os dispositivos s˜o cinco parti¸˜es e a co espalhadas por dois discos r´ ıgidos SCSI, dois sistemas de arquivos que n˜o precisam de disa positivos, um drive de disquete, e um drive de CD-ROM. A segunda coluna informa aonde o dispositivo ser´ montado. Esse deve ser o nome de um diret´rio, com exce¸˜o no caso de uma a o ca parti¸˜o swap. A terceira coluna ´ o tipo de sistema de arquivo do dispositivo. Para os sistemas ca e de arquivos normais do Linux, estes ser˜o ext2 (segundo sistema de arquivos extendido). Drives a de CD-ROM s˜o iso9660, e dispositivos baseados no Windows ser˜o do tipo msdos ou vfat. a a A quarta coluna ´ uma listagem de op¸˜es que se aplicam ao sistema de arquivos montado. e co O padr˜o (defaults) pode ser usado sem problemas com quase todos os dispositivos. Entretanto, a para dispositivos de somente leitura vocˆ deve colocar a op¸˜o ro. Existem muitas op¸˜es que e ca co podem ser utilizadas. Verifique o manual do fstab(5) para maiores informa¸˜es. As duas ultimas co ´ colunas s˜o utilizadas para o fsck e outros comandos que precisam manipular os dispositivos. a Verifique o manual para essas informa¸˜es. co Quando vocˆ instala o Slackware Linux, o programa de instala¸˜o ir´ criar a maior parte do e ca a arquivo fstab.

mount e umount

Anexar outro dispositivo ao seu sistema de arquivos ´ f´cil. Tudo o que vocˆ tem que fazer e a e ´ utilizar o comando mount, com algumas op¸˜es. Utilizar o comando mount pode ser mais e co simples se o dispositivo possui uma entrada no arquivo /etc/fstab. Por exemplo, vamos dizer que eu queira montar o meu driver de CD-ROM e o arquivo fstab se parece com o exemplo citado na se¸˜o anterior. Eu poderia utilizar o comando mount desta forma: ca

$ mount /cdrom Desde que haja uma entrada no arquivo fstab para esse ponto de montagem, o comando mount sabe quais op¸˜es utilizar. Caso n˜o haja uma entrada para este dispositivo, eu terei de co a utilizar muitas op¸˜es junto ao comando mount: co

$ mount -t iso9660 -o ro /dev/cdrom /cdrom Esta linha de comando inclui a mesma informa¸˜o que o exemplo do fstab tinha, mesmo ca assim n´s iremos explicar todas as partes do comando. A op¸˜o <option>-t iso9660</option> o ca ´ o tipo de sistema de arquivos do dispositivo a ser montado. Neste caso, ele seria o sistema e de arquivos iso9660, que ´ usado normalmente pelos drivers de CD-ROM. A op¸˜o <option>-o e ca ro</option> diz ao comando para montar o dispositivo com capacidade para apenas efetuar leituras. O caminho /dev/cdrom ´ o nome do dispositivo a ser montado, e o diret´rio /cdrom e o ´ o local no sistema de arquivos onde o drive ser´ montado. e a Antes que vocˆ possa remover um disquete, CD-ROM, ou outro dispositivo remov´ e ıvel, que esteja atualmente montado, vocˆ ter´ que desmont´-lo. Isto ´ feito utilizando o comando umount. e a a e N˜o pergunte para onde o ”n”foi porque n´s n˜o poder´ a o a ıamos te contar. Vocˆ pode utilizar, tanto e o caminho para o dispositivo montado quanto o ponto de montagem, como argumento para o

9.5. MONTAGEM NFS

83

comando umount. Por exemplo, se vocˆ quer desmontar o CD-ROM do exemplo anterior, ame bos os comandos podem ser utilizados: # umount /dev/cdrom # umount /cdrom

9.5

Montagem NFS

NFS significa Network Filesystem (Sistema de arquivos de rede). Ele n˜o ´ realmente parte a e do sistema de arquivos real, mas pode ser utilizado para adicionar partes ao sistema de arquivos montado. Ambientes Unix enormes, algumas vezes, precisam compartilhar os mesmos programas, conjuntos de diret´rios de usu´rios, e o reposit´rio de e-mail. O problema de pegar a mesma c´pia o a o o para cada m´quina ´ resolvido pelo NFS. N´s podemos utilizar o NFS para compartilhar um a e o conjunto de diret´rios de usu´rios entre todas as esta¸˜es de trabalho. Ent˜o as esta¸˜es de trao a co a co balho montam o diret´rio que o NFS compartilhou como se estivesse nas suas pr´prias m´quinas. o o a ca a Veja a se¸˜o 5.6.2 e as p´ginas do manual para exports(5), nfsd (8), e mountd (8) para maiores informa¸˜es. co

84

CAP´ ITULO 9. ESTRUTURA DO SISTEMA DE ARQUIVOS

Cap´ ıtulo 10

Manipulando arquivos e diret´rios o
O Linux tenta ser o mais parecido com o Unix poss´ ıvel.Tradicionalmente, os sistemas ope´ racionais Unix tem sido orientados pela linha de comando. E claro que temos uma interface gr´fica no Slackware, mas a linha de comando ´ ainda o principal n´ de controle do sistema. a e ıvel Portanto, ´ importante entender alguns dos comandos b´sicos dos comandos de gerenciamento e a de arquivos. A se¸˜o a seguir explica os comandos corriqueiros do gerenciamento de arquivos e provˆ ca e exemplos de como eles s˜o usados. Existem muitos outros comandos, mas estes ir˜o ajudar a a vocˆ a come¸ar. Al´m disso, os comandos est˜o explicados resumidamente. Vocˆ encontrar´ e c e a e a mais detalhes nas man pages de cada comando.

10.1
10.1.1

Navega¸˜o: ls, cd, e pwd ca
ls

Esse comando lista arquivos em um diret´rio. Usu´rios DOS e Windows ir˜o notar a simio a a laridade com o comando dir. Ele mesmo, ls(1) ir´ listar os arquivos no diret´rio atual. Para a o ver o que existe em seu diret´rio raiz, vocˆ poderia usar esses comandos: o e $ cd / $ ls bin cdr boot cdrom

dev etc

home lib

lost+found mnt root

proc sbin suncd usr

tmp var vmlinuz

O problema que muita gente tem com a sa´ do comando anterior, ´ que n˜o se pode dizer ıda, e a facilmente o que ´ um diret´rio e o que ´ um arquivo. Alguns usu´rios preferem o ls adicionado e o e a a um identificador para cada listagem, como essa: $ ls -FC bin/ cdr/ boot/ cdrom/

dev/ etc/

home/ lib/

lost+found/ proc/ sbin/ mnt/ root/ suncd/ usr/

tmp/ var/ vmlinuz

Diret´rios tˆm uma barra (/) no final do nome, arquivos execut´veis tˆm um asterisco no o e a e final do nome, e assim por diante. O ls pode tamb´m ser usado para conseguir outras informa¸˜es nos arquivos. Por exemplo, e co para ver a data de cria¸˜o, propriet´rio, e permiss˜es, vocˆ especificaria uma lista longa: ca a o e $ ls -l
85

86

´ CAP´ ITULO 10. MANIPULANDO ARQUIVOS E DIRETORIOS

drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x dr-xr-xr-x drwxr-x--x drwxr-xr-x drwxr-xr-x drwxrwxrwt drwxr-xr-x drwxr-xr-x

2 2 2 14 4 10 8 3 2 2 62 12 2 5 4 21 18

root root root root root root root root root root root root root root root root root

bin 4096 May root 4096 Feb root 4096 Feb root 6144 Oct root 28672 Mar root 4096 Mar root 4096 Mar root 4096 Jan root 16384 Nov root 4096 Oct root 0 Mar root 4096 Feb bin 4096 Feb root 2048 Oct root 487424 Mar root 4096 Aug root 4096 Mar

7 24 18 23 5 8 8 23 1 6 4 26 17 25 7 24 8

09:11 03:55 01:10 18:37 18:01 03:32 03:31 21:29 08:53 12:47 15:32 02:06 02:02 10:51 20:42 03:04 03:32

bin/ boot/ cdr/ cdrom/ dev/ etc/ home/ lib/ lost+found/ mnt/ proc/ root/ sbin/ suncd/ tmp/ usr/ var/

Suponhamos que vocˆ queira uma lista dos arquivos ocultos no diret´rio atual.O comando e o seguinte listaria isso. $ ls -a . bin .. boot .pwrchute_tmp cdrom home dev lib cdr etc mnt proc lost+found sbin usr suncd var root tmp

vmlinuz

Arquivos comen¸ando com um ponto (chamados de arquivos ponto) s˜o ocultados quando c a vocˆ executa o ls. Vocˆ somente ver´ esses arquivos se passar a op¸˜o -a. e e a ca Existem muitas outras op¸˜es que podem ser encontradas nos manuais online. N˜o esque¸a co a c que pode combinar as op¸˜es que vocˆ passa para o ls. co e

10.1.2

cd

O comando cd ´ usado para mudar o diret´rio de trabalho. Vocˆ simplesmente digita cd e o e seguido do nome do caminho para mudar. Aqui est˜o alguns exemplos: a darkstar:~$ cd /bin darkstar:/bin$ cd usr bash: cd: usr: No such file or directory darkstar:/bin$ cd /usr darkstar:/usr$ ls bin darkstar:/usr$ cd bin darkstar:/usr/bin$ Note que sem come¸ar com a barra (/) ele tenta mudar para um diret´rio no diret´rio atual. c o o Tamb´m executando o cd sem nenhuma op¸˜o mover´ vocˆ para o seu diret´rio pessoal. e ca a e o O comando cd n˜o ´ igual a outros comandos. Ele ´ um comando integrado do shell. Coa e e ca a mandos integrados do shell ser˜o discutidos na se¸˜o 8.3.1. Isso pode n˜o fazer nenhum sentido a pra vocˆ agora. Basicamente isso significa que n˜o existe man page para esse comando. Ao e a

10.2. PAGINADORES: MORE, LESS E MOST

87

inv´s disso, vocˆ tem que usar o help do shell. Como segue: e e $ help cd Ser˜o mostradas as op¸˜es para o cd e como us´-las. a co a 10.1.3 pwd

O comando pwd ´ usado para mostrar a sua localiza¸˜o atual. Para usar o comando pwd e ca basta digitar pwd. Por exemplo: $ cd /bin $ pwd /bin $ cd /usr $ cd bin $ pwd /usr/bin

10.2
10.2.1

Paginadores: more, less e most
more

more (1) ´ como chamamos um utilit´rio de pagina¸˜o. Muitas vezes a sa´ de um comando e a ca ıda em particular ´ muito grande para caber em apenas uma tela. Os comandos individualmente e n˜o sabem como fazer caber as sa´ a ıdas em telas separadas. Eles deixam esse trabalho para os paginadores. O comando more quebra a sa´ numa tela unica e espera que vocˆ pressione a ıda ´ e barra de espa¸os antes de continuar na pr´xima p´gina. Pressionando a tecla enter ir´ avan¸ar c o a a c a sa´ em uma linha. Aqui segue um bom exemplo: ıda $ cd /usr/bin $ ls -l Isso deveria rolar a tela um pouco. Para parar a sa´ tela por tela, pipe ( | ) seguido do more: ıda $ ls -l $|$ more Esse ´ o caractere pipe (shift + \). O pipe ´: pegue a sa´ do ls e alimente o more. Vocˆ e e ıda e pode ”pipar”qualquer coisa atrav´s do comando more, n˜o apenas o ls. Pipe ´ tamb´m visto na e a e e se¸˜o 8.2.3. ca

10.2.2

less

O comando more ´ mais simples, mas n˜o permite que vocˆ volte para uma p´gina j´ exie a e a a bida. O more n˜o provˆ um jeito de vocˆ voltar. O comando less (1) prove essa funcionalidade. a e e Ele ´ usado do mesmo jeito que o comando more, ent˜o o exemplo anterior serve aqui tamb´m. e a e Ent˜o, o less ´ mais que o more. Just Krammer define esses comandos com o seguinte trocadilho: a e ”less is more, but more more than more is, so more is less less, so use more less if you want less more.”

88

´ CAP´ ITULO 10. MANIPULANDO ARQUIVOS E DIRETORIOS

10.2.3

most

Onde more e o less n˜o conseguem ir, o most (1) vai al´m. Se less ´ mais do que more, most a e e ´ mais do que less. Enquanto os outros paginadores podem apenas mostrar um arquivo por vez, e most ´ capaz de vizualizar qualquer n´mero de arquivos, at´ que cada janela de arquivo tenha e u e pelo menos duas linhas aparecendo. O comando most tem muitas op¸˜es, confira as p´ginas co a de manual para mais detalhes.

10.3
10.3.1

Sa´ Simples: cat e echo ıda
cat

cat (1) ´ a abrevia¸˜o de concatenar. Ele foi originalmente desenhado para mesclar arquivos e ca de textos em outro, mas pode ser usado em muitos outros prop´sitos. Para mesclar dois ou mais o arquivos em um, vocˆ simplesmente lista os arquivos depois do comando cat e ent˜o redireciona e a a sa´ para um novo arquivo. O comando cat funciona com entrada padr˜o e sa´ padr˜o, ıda a ıda a ent˜o vocˆ deve usar os caracteres de redirecionamento do shell. Por exemplo: a e

$ cat file1 file2 file3 > bigfile Esse comando pega o conte´do dos arquivos file1, file2, e file3 e mescla. A nova sa´ ´ u ıda e enviada para a sa´ padr˜o. ıda a O comando cat tamb´m pode ser usado para exibir arquivos. Muitas pessoas usam o cat em e arquivos de textos junto com os comandos more ou less, como segue:

$ cat file1 $|$ more Esse comando ir´ mostrar o arquivo file1 e ”pip´-lo”atrav´s do comando more para que vocˆ a a e e apenas veja uma tela por vez. Outro uso comum para o cat ´ copiar arquivos. Vocˆ pode copiar e e qualquer arquivo usando o cat, como segue:

$ cat /bin/bash $>$ \~{}/mybash O programa /bin/bash ´ copiado para o seu diret´rio /home e nomeado como mybash. e o O comando cat tem muitos usos e os mostrados aqui s˜o apenas alguns. Desde que o cat a faz uso extensivo de entradas e sa´ ıdas padr˜o, ele ´ ideal para usar em scripts shell ou parte de a e outros comandos complexos.

10.3.2

echo

O comando echo (1) mostra o texto especificado na tela. Vocˆ precisa especificar a string e que vai ser mostrada depois do comando. Por padr˜o o comando echo ir´ mostrar a string e a a imprimir a nova linha de caracteres depois dele. Vocˆ pode passar a op¸˜o -n para suprimir a e ca impress˜o de uma nova linha. A op¸˜o -e vai causar a procura por caracteres escape na string a ca e execut´-las. a

10.4. CRIACAO: TOUCH E MKDIR ¸˜

89

10.4
10.4.1

Cria¸˜o: touch e mkdir ca
touch

O comando touch ´ usado para mudar a data de um arquivo. Vocˆ pode mudar a data e e de acesso e a data de modifica¸˜o com esse comando. Se o arquivo especificado n˜o existir, ca a o comando touch criar´ um arquivo vazio. Para marcar um arquivo com a data atual, vocˆ a e poderia usar esse comando: $ ls -al file1 -rw-r--r-1 root $ touch file1 $ ls -al file1 -rw-r--r-1 root

root

9779 Feb

7 21:41 file1

root

9779 Feb

8 09:17 file1

Existem muitas outras op¸˜es para o comando touch para especificar qual data que vocˆ co e quer modificar, qual hora usar, e muitas outras op¸˜es.A man-page mostra isso em detalhes. co

10.4.2

mkdir

O comando mkdir ir´ criar um novo diret´rio. Vocˆ simplesmente especifica o diret´rio a a o e o ser criado quando vocˆ executa o mkdir. Esse exemplo criar´ o diret´rio hejaz no diret´rio atual. e a o o $ mkdir hejaz Vocˆ tamb´m pode especificar o caminho, como segue: e e $ mkdir /usr/local/hejaz A op¸˜o -p ir´ dizer ao mkdir para criar qualquer diret´rio pai. O exemplo acima falhar´ se ca a o a /usr/local n˜o existir. A op¸˜o -p ir´ criar /usr/local e /usr/local/hejaz : a ca a $ mkdir -p /usr/local/hejaz

10.5
10.5.1

Copiar e mover
cp

O comando cp (1) copia arquivos. Usu´rios do DOS ir˜o notar a similaridade com o comando a a copy. Existem muitas op¸˜es para o comando cp, ent˜o vocˆ deve dar uma olhada na p´ginal co a e a de manual antes de us´-lo. a Um uso comum ´ usar o cp para copiar um arquivo de uma localiza¸˜o para outra. Por e ca exemplo: $ cp hejaz /tmp Isso copia o arquivo hejaz do diret´rio atual para o diret´rio /tmp. o o Muitos usu´rios preferem manter a data do arquivo, para isso: a

90

´ CAP´ ITULO 10. MANIPULANDO ARQUIVOS E DIRETORIOS

$ cp -a hejaz /tmp Isso assegura que a data n˜o ser´ modificada na c´pia. a a o Para c´pia recursiva do conte´do de um diret´rio para outro, vocˆ usaria esse comando: o u o e $ cp -R \textit{mydir} /tmp Isso copiar´ o diret´rio mydir para o diret´rio /tmp. a o o Tamb´m se vocˆ quiser copiar um diret´rio ou um arquivo e mante-lo com as permiss˜es e e o o antigas, datas e deixa-lo exatamente o mesmo, use o comando cp -p. $ ls -l file -rw-r--r-1 root $ cp -p file /tmp $ ls -l /tmp/file -rw-r--r-1 root

vlad

4 Jan

1 15:27 file

vlad

4 Jan

1 15:27 file

O comando cp tem muitas outras op¸˜es que s˜o mostradas em detalhes nas p´ginas de co a a manual.

10.5.2

mv

O comando mv (1) move os arquivos de um lugar para outro. Simples o bastante, n˜o? a $ mv oldfile /tmp/newfile O comando mv tem poucas op¸˜es na linha de comando que s˜o detalhadas nas p´ginas de co a a manual Na pr´tica, o comando mv ´ raramente usado com op¸˜es de linha de comando. a e co

10.6
10.6.1

Exclus˜o: rm e rmdir a
rm

O comando rm (1) remove arquivos e ´rvores de diret´rio. a o Os usu´rios do DOS notar˜o em ambos a similaridade com os comandos del e o deltree. a a O comando rm pode ser muito perigoso se vocˆ n˜o se cuidar. Enquanto as vezes ´ poss´ e a e ıvel recuperar um arquivo removido, isso pode ser uma tarefa complicada (e certamente cara) al´m e de estar fora do escopo desse livro. Para remover um unico arquivo, especifique o nome dele quando vocˆ executar o rm: ´ e $ rm file1 Se o arquivo tiver as permiss˜es de grava¸˜o, vocˆ poder´ ter uma mensagem de erro de o ca e a permiss˜o negada. Para for¸ar a remo¸˜o do arquivo n˜o importando com nada, passe a op¸˜o a c ca a ca -f, como segue:

10.7. APELIDANDO ARQUIVOS COM LN

91

$ rm -f file1 Para remover um diret´rio inteiro, vocˆ pode usar o -r e o -f juntos. Esse ´ um bom exemplo o e e de como remover conte´dos inteiros do seu hd. Vocˆ realmente n˜o quer fazer isso. Mas existe u e a um comando mesmo assim:

# rm -rf / Seja cauteloso com o comando rm; vocˆ pode atirar no seu pr´prio p´. Existem v´rias op¸˜es e o e a co na linha de comando, que s˜o discutidas nas p´ginas de manual. a a

10.6.2

rmdir

O comando rmdir (1) remove diret´rios do sistema de arquivos. O diret´rio deve estar vazio o o antes de poder ser removido. A s´ ıntaxe ´ simples: e

$ rmdir $<$directory$>$ Esse exemplo ir´ remover o subdiret´rio hejaz no diret´rio atual: a o o

$ rmdir hejaz Se esse diret´rio n˜o existir, o rmdir dir´ a vocˆ. Vocˆ tamb´m pode especificar um caminho o a a e e e completo de um diret´rio a ser removido, como esse exemplo mostra: o

$ rmdir /tmp/hejaz Esse exemplo ir´ tentar remover o diret´rio hejaz dentro do diret´rio /tmp. a o o Vocˆ tamb´m pode remover um diret´rio e todos os diret´rios pai passando a op¸˜o -p. e e o o ca

$ rmdir -p /tmp/hejaz Isso primeiro ir´ tentar remover o diret´rio hejaz dentro do /tmp. Caso tenha sucesso, ele a o ir´ tentar remover o /tmp. O comando rmdir ir´ continuar isso at´ ocorrer um erro ou at´ que a a e e a ´rvore especificada seja removida. a

10.7

Apelidando arquivos com ln

O comando ln (1) ´ usado para criar links entre arquivos. Esses links podem ser hard links e ou links simb´licos. A diferen¸a entre os dois tipos de links ser˜o discutidos na se¸˜o 9.3. o c a ca Se vocˆ quiser fazer um link simb´lico do diret´rio /var/media/mp3 e colocar esse link no seu e o o diret´rio home, vocˆ faria isso: o e

$ ln -s /var/media/mp3 \~{}/mp3

92

´ CAP´ ITULO 10. MANIPULANDO ARQUIVOS E DIRETORIOS

A op¸˜o -s diz para o ln fazer um link simb´lico. A pr´xima op¸˜o ´ o caminho do link, e a ca o o ca e op¸˜o final ´ como chamar o link. Nesse caso, o comando apenas ir´ criar um arquivo chamado ca e a mp3 no seu diret´rio home que aponta para o /var/media/mp3. Vocˆ pode chamar o link do o e que vocˆ quiser apenas mudando a ultima op¸˜o. e ´ ca Fazer um hard link ´ t˜o f´cil quanto. Tudo que vocˆ tem que fazer ´ tirar a op¸˜o -s. Hard e a a e e ca links normalmente n˜o podem se referir a diret´rios ou sistema de arquivos. Para criar um hard a o link de /usr/bin/email para /usr/bin/mutt, apenas digite o trecho a seguir: # ln /usr/bin/mutt /usr/bin/email

Cap´ ıtulo 11

Controle de Processos
Cada programa que est´ sendo executado ´ chamado de processo. Estes processos v˜o desde a e a o ambiente gr´fico X at´ programas de sistema (chamados ”daemons”) que s˜o iniciados durante a e a o boot do computador. Cada processo pertence a um usu´rio em particular. Processos que a s˜o iniciados no boot geralmente s˜o executados como usu´rio root ou nobody. Processos que a a a vocˆ inicia pertencer˜o ao seu usu´rio. Processo iniciados por outros usu´rios pertencer˜o a eles. e a a a a Vocˆ tem controle sobre todos os processos iniciados por vocˆ. Adicionalmente, o usu´rio e e a root tem controle sobre todos os processo do sistema, incluindo aqueles iniciados por outros usu´rios. Processos podem ser controlados e monitorados atrav´s de v´rios programas, bem a e a como de comandos do shell.

11.1

Segundo Plano (background)

Os programas iniciados ` partir da linha de comando s˜o executados em primeiro plano a a (foreground). Isto permite ver toda a sa´ do programa e interagir com ele. Entretanto h´ ıda a diversas situa¸˜es em que ser´ necess´rio executar o programa sem que o terminal fique preso ` co a a a sua execu¸˜o. Chamamos isso de executar o programa em segundo plano, e h´ v´rias maneiras ca a a de fazˆ-lo. e A primeira maneira de se colocar um processo em segundo plano ´ adicionando o ˆ comercial e e (&) ` linha de comando quando vocˆ iniciar o programa. Por exemplo, digamos que vocˆ queira a e e usar o amp, um mp3 player da linha de comando, para tocar um diret´rio cheio de arquivos o mp3, mas vocˆ precisar´ utilizar o mesmo terminal para executar outros comandos. A seguinte e a linha de comando ir´ iniciar o programa amp em segundo plano: a $ amp *.mp3 & O programa ser´ executado normalmente e vocˆ retornar´ ao prompt de comando. a e a Outra maneira de colocar um processo em segundo plano ´ fazˆ-lo durante a sua execu¸˜o. e e ca Primeiro, inicie um programa. Durante sua execu¸˜o, pressione Control+z. Isso suspender´ ca a o processo. Suspender um processo significa pausar a sua execu¸˜o. Ele momentaneamente ca p´ra de rodar, mas pode ser iniciado novamente a qualquer momento. Uma vez suspenso o a processo, vocˆ retorna ao prompt de comando. Vocˆ inicia o processo suspenso em segundo e e plano digitando: $ bg

93

94

CAP´ ITULO 11. CONTROLE DE PROCESSOS

Agora o processo suspenso est´ rodando em segundo plano. a

11.2

Primeiro plano (foregrounding)

Se vocˆ necessitar interagir com um processo em segundo plano, ´ poss´ e e ıvel trazˆ-lo para e primeiro plano. Se existe apenas um processo em segundo plano, vocˆ pode trazˆ-lo de volta e e digitando: $ fg Se o programa ainda n˜o terminou sua execu¸˜o, ent˜o ele tomar´ o terminal e vocˆ n˜o a ca a a e a ter´ mais acesso ao prompt de comando. Algumas vezes o programa terminar´ sua execu¸˜o a a ca enquanto estiver em segundo plano. Neste caso, vocˆ receber´ uma mensagem como esta: e a [1]+ Done /bin/ls $LS_OPTIONS

Informando que o processo em segundo plano (neste caso o ls - que n˜o ´ um exemplo muito a e interessante) foi terminado. ´ E poss´ ter v´rios processos em segundo plano de uma s´ vez. Quando isto acontece, ser´ ıvel a o a necess´rio saber qual processo vocˆ deseja trazer para o primeiro plano. Apenas digitando fg a e trar´ para o primeiro plano o ultimo processo que foi colocado em segundo plano. E se vocˆ a ´ e tiver uma lista enorme de processos em segundo plano? Por sorte, o bash possui um comando para listar esses processos. Ele ´ o jobs e o seu resultado ´: e e $ jobs [1] Stopped [2]- Stopped [3]+ Stopped

vim amp man ps

Isto mostra uma lista de todos os processos que est˜o em segundo plano. Como vocˆ pode a e ver, todos est˜o parados. Isto significa que os processos est˜o suspensos. O n´mero ´ um tipo a a u e de ID para todos os processos em segundo plano. O ID seguido de um sinal de adi¸˜o (man ca ps) ´ o processo que ser´ trazido para primeiro plano se vocˆ apenas digitar fg. e a e Se quiser trazer para primeiro plano o vim, vocˆ deve digitar: e $ fg 1 e o vim rapidamente retornar´ ` console. Enviar processos para o segundo plano pode a a ser muito util se vocˆ tiver apenas um terminal aberto em uma conex˜o discada. Ser´ pos´ e a a s´ executar diversos programas naquele unico terminal, periodicamente alternando entre eles. ıvel ´

11.3

ps

Agora vocˆ sabe alternar entre v´rios processos iniciados ` partir da linha de comando. Sabe e a a tamb´m que existem muitos processos em execu¸˜o todo o tempo. Mas ent˜o como listar todos e ca a esses programas? Bem, vocˆ pode utilizar o comando ps(1). Este comando tem uma por¸˜o e ca de op¸˜es, mas iremos apresentar apenas algumas das mais importantes. Para uma listagem co

11.3. PS

95

completa, veja as p´ginas de manual do ps. Sobre as p´ginas de manual veja detalhes em Se¸˜es a a co das p´ginas de Manual. a Apenas digitando ps vocˆ ter´ uma lista dos programas em execu¸˜o no seu terminal. Isto e a ca inclui os processos em primeiro plano (incluindo a´ qualquer shell que vocˆ esteja usando e, ´ ı e e claro, o pr´prio ps). Tamb´m s˜o listados os processos que vocˆ est´ executando em segundo o e a e a plano. Muitas vezes essa lista ser´ bem curta: a Resultado padr˜o do ps a $ ps PID TTY TIME CMD 7923 ttyp0 00:00:00 bash 8059 ttyp0 00:00:00 ps Embora n˜o sejam muitos processos, a informa¸˜o ´ interessante. Vocˆ ter´ as mesmas colua ca e e a nas usando o ps sem parˆmetros, n˜o importa quantos processos estejam em execu¸˜o. Ent˜o, a a ca a o que significa tudo aquilo? Bem, o PID ´ o ID do processo. Todos os processos em execu¸˜o tˆm um identificador unico e ca e ´ que vai de 1 at´ 32767. Para cada processo ´ atribu´ o pr´ximo PID livre. Quando um e e ıdo o processo ´ finalizado (ou interrompido, como vocˆ ver´ na pr´xima se¸˜o), ele libera o PID. e e a o ca Quando o PID m´ximo ´ alcan¸ado, o pr´ximo ser´ o menor valor que estiver livre. a e c o a A coluna TTY indica em qual terminal o processo est´ sendo executado. Executando o ps a sem parˆmetros ser˜o listados apenas os programas em execu¸˜o no terminal corrente, ent˜o a a ca a todos os processos ter˜o a mesma informa¸˜o na coluna TTY. Como vocˆ pode ver, ambos proa ca e cessos listados s˜o executados em ttyp0. Isso indica que est˜o sendo executados remotamente a a ou a partir de alguma variedade de terminal X. A coluna TIME indica quanto tempo de CPU o processo tem consumido. Isso ´ diferente e do tempo gasto para execu¸˜o do processo. Lembre-se que o Linux ´ um sistema operacional ca e multi-tarefa. Existem muitos processos em execu¸˜o todo o tempo, e cada um desses utiliza ca uma pequena por¸˜o do tempo do processador. Ent˜o, a coluna TIME deve mostrar muito ca a menos tempo para cada processo do que ele atualmente necessita para ser executado. Se vocˆ e notar mais do que v´rios minutos na coluna TIME, isto pode significar que algo est´ errado. a a Finalmente, a coluna CMD mostra o que ´ o programa. Ele apenas lista o nome b´sico do e a programa, sem nenhuma op¸˜o de linha de comando ou informa¸˜o similar. Para obter essa ca ca informa¸˜o ser´ necess´rio usar uma das muitas op¸˜es do ps. Iremos discuti-las brevemente. ca a a co Vocˆ pode conseguir uma listagem completa do que est´ em execu¸˜o no seu sistema usando e a ca a combina¸˜o adequada de op¸˜es. Isto provavelmente resultar´ em uma longa lista de procesca co a sos (cinq¨enta e cinco no meu laptop enquanto escrevo esta senten¸a), ent˜o abreviarei a sa´ u c a ıda: $ ps PID 1 2 3 4 5 -ax TTYSTAT ? S ? SW ? SW ? SW ? SW

TIME 0:03 0:13 0:14 0:00 0:17

COMMAND init [3] [kflushd] [kupdate] [kpiod] [kswapd]

96

CAP´ ITULO 11. CONTROLE DE PROCESSOS

11 ? S 30 ? SW 50 ? S 54 ? S 57 ? S 59 ? S 61 ? S 63 ? S 65 ? S 67 ? S 69 ? S 77 ? S 79 ? S 94 ? S 106 tty1 108 tty3 109 tty4 110 tty5 111 tty6 [output cut]

0:00 0:01 0:00 0:00 0:00 0:00 0:04 0:00 0:00 0:00 0:00 0:00 0:01 0:00 S0:08 SW SW SW SW

/sbin/kerneld [cardmgr] /sbin/rpc.portmap /usr/sbin/syslogd /usr/sbin/klogd -c 3 /usr/sbin/inetd /usr/local/sbin/sshd /usr/sbin/rpc.mountd /usr/sbin/rpc.nfsd /usr/sbin/crond -l10 /usr/sbin/atd -b 15 -l 1 /usr/sbin/apmd gpm -m /dev/mouse -t ps2 /usr/sbin/automount /auto file /etc/auto.misc -bash 0:00 [agetty] 0:00 [agetty] 0:00 [agetty] 0:00 [agetty]

Muitos desses processos s˜o iniciados durante o boot na maioria dos sistemas. Eu fiz algumas a poucas modifica¸˜es no meu sistema, ent˜o isso poder´ variar dependendo da sua quilometraco a a gem. Entretanto, vocˆ ver´ muitos desses processos no seu sistema tamb´m. Como vocˆ pode e a e e ver, essas op¸˜es exibem as op¸˜es da linha de comando que originou o processo em execu¸˜o. co co ca Recentemente, uma vulnerabilidade do kernel no ptrace fez com que n˜o seja permitida a exibia ca ¸˜o das op¸˜es de linha de comando de muitos processos em execu¸˜o. Estes s˜o listados agora co ca a entre colchetes como dos PIDs 108 ao 110. Tamb´m temos algumas colunas a mais e outros e dados interessantes. Primeiro, vocˆ perceber´ que muitos desses processos s˜o listados como em execu¸˜o no tty e a a ca ”?”. Esses n˜o est˜o anexados a nenhum terminal em particular. Isto ´ muito comum com proa a e cessos executados pelo sistema (”daemons”), os quais n˜o s˜o vinculados a nenhum terminal. a a ”Daemons”comuns s˜o sendmail, BIND, apache e NFS. Eles, de um modo em geral, aguardam a pela requisi¸˜o de um cliente, retornando uma resposta assim que s˜o demandados. ca a Segundo, h´ uma nova coluna: STAT. Ela mostra o status do processo. S corresponde a a parado (”sleeping”): o processo est´ esperando algo acontecer. Z corresponde a um processo a zumbi. Um processo zumbi ´ aquele cujo pai (isto ´, o processo que o originou) morreu, deixando e e o processo filho para tr´s. Isso n˜o ´ uma coisa boa. D corresponde a um processo que est´ a a e a irreversivelmente parado. Freq¨entemente esses processos recusam-se a morrer, mesmo quando u recebem um SIGKILL. Vocˆ pode ler mais a respeito do SIGKILL na pr´xima se¸˜o sobre o e o ca kill. O W corresponde a esperando uma chamada. Um processo morto ´ indicado com um X. e Um processo indicado por um T ´ rastreado ou parado. R significa que o processo ´ execut´vel. e e a Se vocˆ deseja ver ainda mais informa¸˜es sobre os processos em execu¸˜o, tente isto: e co ca $ ps -aux USER PID %CPU %MEM root 1 0.0 0.0 root 2 0.0 0.0 root 3 0.0 0.0

VSZ 344 0 0

RSS 80 0 0

TTY ? ? ?

STAT S SW SW

START Mar02 Mar02 Mar02

TIME 0:03 0:13 0:14

COMMAND init [3] [kflushd] [kupdate]

11.4. KILL

97

root 4 0.0 root 5 0.0 root 11 0.0 root 30 0.0 bin 50 0.0 root 54 0.0 root 57 0.0 root 59 0.0 root 61 0.0 root 63 0.0 root 65 0.0 root 67 0.0 root 77 0.0 root 79 0.0 root 94 0.0 chris106 0.0 root 108 0.0 root 109 0.0 root 110 0.0 root 111 0.0 [output cut]

0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.0 0.2 0.0 0.0 0.2 0.2 0.1 0.2 0.5 0.0 0.0 0.0 0.0

0 0 1044 1160 1076 1360 1276 1332 1540 1796 1812 1172 1048 1100 1396 1820 1048 1048 1048 1048

0 0 44 0 120 192 152 60 312 72 68 260 316 152 280 680 0 0 0 0

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tty1 tty3 tty4 tty5 tty6

SW SW S SW S S S S S S S S S S S S SW SW SW SW

Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02 Mar02

0:00 0:17 0:00 0:01 0:00 0:00 0:00 0:00 0:04 0:00 0:00 0:00 0:00 0:01 0:00 0:08 0:00 0:00 0:00 0:00

[kpiod] [kswapd] /sbin/kerneld [cardmgr] /sbin/rpc.port /usr/sbin/sysl /usr/sbin/klog /usr/sbin/inet /usr/local/sbi /usr/sbin/rpc. /usr/sbin/rpc. /usr/sbin/cron /usr/sbin/apmd gpm /usr/sbin/auto -bash [agetty] [agetty] [agetty] [agetty]

Isso ´ que ´ quantidade de informa¸˜o! Basicamente foram inclu´ e e ca ıdas informa¸˜es como qual co o usu´rio iniciou o processo, quanto o processo est´ usando dos recursos do sistema (as colunas a a %CPU, %MEM, VSZ e RSS), e em qual data o processo foi iniciado. Obviamente, isso ´ uma e grande quantidade de informa¸˜o que pode estar ` m˜o para um administrador de sistemas. ca a a Isso tamb´m traz ` tona outro ponto: a informa¸˜o exibida ´ limitada ` largura da tela o que e a ca e a n˜o permite que vocˆ a veja completamente. A op¸˜o -w ir´ for¸ar o ps a quebrar linhas longas. a e ca a c N˜o ´ a coisa mais linda, mas funciona. Agora vocˆ tem uma lista de informa¸˜es completa a e e co para cada processo. Ainda h´ mais informa¸˜es que podem ser mostradas para cada processo. a co Verifique a profunda p´gina de manual do ps. Entretanto as op¸˜es mostradas acima s˜o as a co a mais populares e ser˜o usadas com mais freq¨ˆncia. a ue

11.4

kill

Em algumas ocasi˜es, programas comportam-se mal e vocˆ precisar´ coloca-los ”na linha”. O o e a programa para esse tipo de administra¸˜o ´ chamado kill (1), e pode ser usado para manipular ca e processos de v´rias maneiras. O mais ´bvio dos usos do kill ´ interromper um processo. Vocˆ a o e e precisar´ fazer isso se um programa se perder e utilizar uma grande quantidade de recursos do a sistema, ou se vocˆ s´ estiver cansado de vˆ-lo em execu¸˜o. e o e ca Para interromper um processo vocˆ precisar´ saber seu PID ou seu nome. Para conseguir o e a PID utilize o comando ps que foi discutido na ultima se¸˜o. Por exemplo, para interromper o ´ ca processo 4747, vocˆ dever´ fazer o seguinte: e a

$ kill 4747 Perceba que vocˆ ter´ de ser o dono do processo para poder interrompˆ-lo. Isso ´ uma quese a e e t˜o de seguran¸a. Se vocˆ tivesse permiss˜o para interromper processos iniciados por outros a c e a

98

CAP´ ITULO 11. CONTROLE DE PROCESSOS

´ usu´rios, seria poss´ realizar uma por¸˜o de coisas maliciosas. E claro, o root pode interroma ıvel ca per qualquer processo do sistema. H´ ainda outra varia¸˜o do comando kill chamada killall (1). Este programa faz exatamente a ca o que diz: interrompe todos os processos que possuem determinado nome. Se vocˆ quisesse e interromper todos os processos vim em execu¸˜o, vocˆ poderia digitar o seguinte comando: ca e

$ killall vim Todo e qualquer processo vim que vocˆ estiver executando ser´ interrompido. Fazendo isto e a como usu´rio root ir´ interromper todos os processos vim em execu¸˜o, independente do usu´a a ca a rio. Isso traz uma interessante maneira de derrubar todos usu´rios (incluindo vocˆ) do sistema: a e

# killall bash Algumas vezes um simples kill n˜o ´ suficiente. Certos processos n˜o s˜o interrompidos com a e a a um kill. Vocˆ ter´ de usar uma forma mais potente. Se aquele PID 4747 pentelho n˜o responder e a a ao seu kill, vocˆ poder´ fazer o seguinte: e a

$ kill -9 4747 ´ E quase certo que o processo 4747 ser´ interrompido. Vocˆ pode fazer a mesma coisa com a e o killall. O que isso faz ´ enviar um sinal diferente para o processo. Um kill regular envia e um sinal SIGTERM (terminar) para o processo, o qual diz que ´ para terminar o que estiver e fazendo, fechar o que estiver utilizando e sair. kill -9 envia um sinal SIGKILL (interromper) para o processo, o que essencialmente o para. N˜o ´ permitido ao processo fechar o que estia e ver utilizando e algumas vezes coisas ruins, como corrup¸˜o de dados, podem ocorrer com um ca SIGKILL. H´ uma lista completa de sinais ` sua disposi¸˜o. Vocˆ pode obtˆ-la digitando: a a ca e e

$ kill -l 1) SIGHUP 5) SIGTRAP 9) SIGKILL 13) SIGPIPE 18) SIGCONT 22) SIGTTOU 26) SIGVTALRM 30) SIGPWR

2) 6) 10) 14) 19) 23) 27)

SIGINT SIGABRT SIGUSR1 SIGALRM SIGSTOP SIGURG SIGPROF

3) 7) 11) 15) 20) 24) 28)

SIGQUIT SIGBUS SIGSEGV SIGTERM SIGTSTP SIGXCPU SIGWINCH

4) 8) 12) 17) 21) 25) 29)

SIGILL SIGFPE SIGUSR2 SIGCHLD SIGTTIN SIGXFSZ SIGIO

O n´mero deve ser usado para o kill, enquanto o nome menos o prefixo ”SIG”pode ser usado u com o killall. Aqui vai outro exemplo:

$ killall -KILL vim Um ultimo uso para o kill ´ reiniciar um processo. Enviando um SIGHUP ir´ fazer com que ´ e a muitos processos releiam seus arquivos de configura¸˜o. Isso ´ especialmente util para fazer ca e ´ com que os processos releiam seus arquivos de configura¸˜o rec´m editados. ca e

11.5. TOP

99

11.5

top

Finalmente, h´ um comando que vocˆ pode usar para exibir informa¸˜es atualizadas sobre a e co os processos em execu¸˜o no sistema. Esse comando ´ chamado top(1), e ´ iniciado assim: ca e e $ top Isto ir´ exibir uma tela cheia com informa¸˜es sobre os processos em execu¸˜o no sistema, a co ca bem como algumas informa¸˜es gerais sobre o pr´prio sistema. Isso inclui a carga m´dia, n´co o e u mero de processos, o status da CPU, informa¸˜es sobre mem´ria livre e detalhes dos processos co o incluindo PID, usu´rio, prioridade, uso de CPU e mem´ria, tempo de execu¸˜o e nome do a o ca programa. 6:47pm up 1 day, 18:01, 1 user, load average: 0.02, 0.07, 0.02 61 processes: 59 sleeping, 2 running, 0 zombie, 0 stopped CPU states: 2.8% user, 3.1% system, 0.0% nice, 93.9% idle Mem: 257992K av, 249672K used, 8320K free, 51628K shrd, 78248K buff Swap: 32764K av, 136K used, 32628K free, 82600K cached

PID USER 112 4947 3398 4946 121 115 4948 1 189 4734 2 3 4 5 31 51 53 57 root david david root david david david root1 david david root0 root0 root0 root0 root0 root0 bin 0 root0

PRI 12 15 7 12 4 3 16 0 1 0 0 0 0 0 0 0 0 0

NI

SIZE

RSS

SHARE 2468 1748 3000 836 644 1452 648 S 4352 916 SW SW SW SW S S S S

STAT R S S R S S S 0 0 0 0 0 0 0 0 S 0 S 0 0 0 0 0 0 0 0 0

LIB %CPU %MEM 3.7 2.3 1.5 1.5 1.1 0.3 0.3 0.1 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

TIME COMMAND

0 19376 18M 0 2136 2136 0 20544 20M 0 1040 1040 0 796 796 0 2180 2180 0 776 776 176 176 148 0 6256 6156 0 1164 1164 0 0 0 0 0 0 0 0 0 0 0 0 340 340 248 48 48 32 316 316 236 588 588 488

7.5 55:53 X 0.8 0:00 screenshot 7.9 0:14 gimp 0.4 0:00 top 0.3 25:37 wmSMPmon 0.8 1:35 wmaker 0.3 0:00 xwd 0.0 0:13 init 2.4 3:16 licq 0.4 0:00 rxvt 0.0 0:08 kflushd 0.0 0:06 kupdate 0.0 0:00 kpiod 0.0 0:04 kswapd 0.1 0:00 kerneld 0.0 0:00 dhcpcd 0.1 0:00 rpc.portmap 0.2 0:01 syslogd

Ele ´ chamado de top porque os programas que fazem uso intensivo da CPU ser˜o listados e a no topo. Uma observa¸˜o interessante ´ que o pr´prio top ser´ listado primeiro em muitos ca e o a sistemas inativos (e alguns ativos) por causa da utiliza¸˜o de CPU. Entretanto, o top ´ muito ca e util para determinar qual programa est´ se comportando mal e precisa ser interrompido. ´ a Mas suponha que vocˆ s´ queira uma lista dos seus pr´prios processos, ou dos processos de e o o algum outro usu´rio. Os processos que vocˆ quer ver podem n˜o estar entre os programas em a e a execu¸˜o com maior consumo de CPU. A op¸˜o -u permite que vocˆ especifique um nome de ca ca e usu´rio ou UID e monitore somente os processos pertencentes `quele UID. a a

100

CAP´ ITULO 11. CONTROLE DE PROCESSOS

$ top -u alan PID USERPR NI 3622 alan13 0 3739 alan13 0 3518 alan 9 0 3529 alan 9 0 3544 alan 9 0 3548 alan 9 0 3551 alan 9 0 3553 alan 9 0 3555 alan 9 0 3557 alan 9 0 3559 alan 9 0 3565 alan 9 0 3568 alan 9 0 3572 alan 9 0 3574 alan 9 0 3575 alan 9 0 3576 alan 9 0

VIRT RES 11012 10m 1012 1012 1312 1312 984 984 640 640 8324 8320 7084 7084 2232 2232 2552 2552 2740 2740 6496 6492 1740 1740 7052 7052 11412 11m 12148 11m 12148 11m 12148 11m

SHR S %CPU %MEM 6956 S 1.0 2.1 804 R 0.3 0.2 1032 S 0.0 0.3 848 S 0.0 0.2 568 S 0.0 0.1 6044 S 0.0 1.6 1968 S 0.0 1.4 380 S 0.0 0.4 1948 S 0.0 0.5 2224 S 0.0 0.5 5004 S 0.0 1.3 1440 S 0.0 0.3 4960 S 0.0 1.4 7992 S 0.0 2.2 8780 S 0.0 2.4 8780 S 0.0 2.4 8780 S 0.0 2.4

TIME+ COMMAND 0:03.66 gnome-terminal 0:00.06 top 0:00.09 bash 0:00.00 startx 0:00.00 xinit 0:00.30 gnome-session 0:00.50 gconfd-2 0:00.05 esd 0:00.10 bonobo-activati 0:00.05 gnome-smproxy 0:00.31 gnome-settings0:00.28 xscreensaver 0:02.28 metacity 0:01.58 gnome-panel 0:00.64 nautilus 0:00.00 nautilus 0:00.00 nautilus

Como vocˆ pode ver, atualmente estou executando X, top, um gnome-terminal (no qual e estou escrevendo isto) e muitos outros processos relacionados ao ambiente gr´fico X, os quais a est˜o tomando a maior parte do tempo da minha CPU. Isto ´ uma boa maneira de monitorar a e o qu˜o duro seus usu´rios est˜o trabalhando no sistema. a a a O top tamb´m permite monitorar processos por seus PID, ignorando processos sem atividade e e zumbis, e muitas outras op¸˜es. O melhor lugar para aprender a lidar com essas op¸˜es s˜o co co a as p´ginas de manual para o top. a

Cap´ ıtulo 12

O Essencial em Administra¸˜o de ca Sistema
Ha Ha Ha Ha.... Eu sei o que vocˆ deve estar pensando.”Eu n˜o sou um administrador de e a sistema! Eu n˜o quero mesmo ser um!” a O fato ´ que vocˆ ´ o administrador de qualquer computador no qual vocˆ possui a senha do e ee e usu´rio root. Pode ser seu desktop com um ou dois usu´rios, ou pode ser um grande servidor a a com v´rias centenas de usu´rios. Independente disto, vocˆ dever´ saber como gerenciar usu´rios a a e a a e como desligar o sistema de modo seguro. Estas tarefas parecem simples, mas elas tˆm alguns e caprichos que vocˆ deve ter em mente. e

12.1

Usu´rios e Grupos a

ıtulo 8, vocˆ n˜o deve usar normalmente seu sistema logado como e a Como mencionado no cap´ root. Em vez disto, vocˆ deve criar uma conta de usu´rio normal para o uso di´rio e usar a e a a conta do root apenas para tarefas de administra¸˜o do sistema. Para criar um usu´rio, vocˆ ca a e pode usar as ferramentas fornecidas pelo Slackware ou editar manualmente o arquivo de senhas. 12.1.1 Scripts fornecidos

O modo mais f´cil de gerenciar usu´rios e grupos ´ com os scripts e programas fornecidos. a a e O Slackware inclui os programas adduser, userdel (8), chfn(1), chsh(1), e passwd (1) para gerenciar usu´rios. Os comandos groupadd (8), groupdel (8), e groupmod (8) s˜o para gerenciar grupos. a a Com exce¸˜o de chfn, chsh, e passwd, esses programas s˜o executados apenas pelo root, e est˜o, ca a a portanto, localizados em /usr/sbin. chfn, chsh, e passwd podem ser executados por qualquer um e est˜o localizados em /usr/bin. a Usu´rios podem ser adicionados com o comando adduser. Iniciaremos pelo procedimento a completo, mostrando todas as perguntas que s˜o solicitadas e uma breve descri¸˜o do que cada a ca uma significa. A resposta padr˜o est´ entre colchetes e pode ser adotada para quase todas as a a perguntas, a menos que vocˆ realmente queira mudar alguma coisa. e # adduser Login name for new user []: jellyd Este ´ o nome que o usu´rio usar´ para se logar. Tradicionalmente, login names possuem e a a oito ou menos caracteres e todos min´sculos (vocˆ pode usar mais que oito caracteres, inclusive u e num´rico, mas evite fazer isso a menos que vocˆ tenha uma boa raz˜o.) e e a
101

102

CAP´ ITULO 12. O ESSENCIAL EM ADMINISTRACAO DE SISTEMA ¸˜

Vocˆ pode fornecer o nome de login como um argumento do comando: e # adduser jellyd No outro caso, depois de fornecer o nome de login, o comando adduser perguntar´ pelo ID a do usu´rio: a User ID (’UID’) [ defaults to next available ]: O ID do usu´rio (UID) ´ quem realmente identifica os membros no Linux. Cada usu´rio a e a tem um n´mero unico, come¸ando em 1000 no Slackware. Vocˆ pode definir um UID para um u ´ c e novo usu´rio ou ent˜o deixar que o adduser designe para o usu´rio o pr´ximo UID livre. a a a o Initial group [users]: Todos os usu´rios pertencem ao grupo users por padr˜o. Vocˆ pode querer colocar o usu´rio a a e a novo em um grupo diferente, mas isto n˜o ´ recomendado a menos que vocˆ saiba o que est´ a e e a fazendo. Additional groups (comma separated) []: ´ Esta pergunta permite vocˆ colocar o novo usu´rio em grupos adicionais. E poss´ para e a ıvel um usu´rio estar em v´rios grupos ao mesmo tempo. Isso ´ util se vocˆ tem grupos espec´ a a e´ e ıficos, por exemplo, modificar arquivos de web site, jogar, etc. Por exemplo, alguns site definem o grupo wheel como o unico grupo que pode usar o comando su. Ou, como padr˜o, a instala´ a ca ¸˜o do Slackware usa o grupo sys para usu´rios autorizados a utilizarem a placa de som interna. a Home directory [/home/jellyd] Os diret´rios home padr˜o s˜o colocados em /home. Se vocˆ usa um sistema muito grande, o a a e ´ poss´ que vocˆ tenha que mover os diret´rios home para uma localiza¸˜o diferente (ou para e ıvel e o ca v´rias localiza¸˜es). Esta etapa permite que vocˆ especifique onde ser´ o diret´rio home do a co e a o usu´rio. a Shell [ /bin/bash ] bash ´ o shell padr˜o no Slackware Linux e ser´ adequado para a maioria das pessoas. Se seu e a a novo usu´rio vem de um ambiente Unix, ele pode estar familiarizado com um shell diferente. a Vocˆ pode mudar o shell dele nesse momento ou ele pode mudar mais tarde usando o comando e chsh. Expiry date (YYYY-MM-DD) []: As contas podem ser configuradas para expirarem numa data espec´ ıfica. Por padr˜o, n˜o h´ a a a uma data limite. Vocˆ pode mudar isso se vocˆ desejar. Essa op¸˜o pode ser util para pessoas e e ca ´ executando um ISP (Provedor de Servi¸os de Internet) que querem fazer uma conta expirar c ap´s uma certa data, a menos que elas recebam o pagamento do pr´ximo ano. o o

´ 12.1. USUARIOS E GRUPOS

103

New account will be created as follows: --------------------------------------Login name: jellyd UID: [ Next available ] Initial group:users Additional groups: [ None ] Home directory: /home/jellyd Shell: /bin/bash Expiry date: [ Never ] Isto ´ ... se vocˆ quiser desistir, tecle Control+C. Caso contr´rio, tecle ENTER para seguir e e a em frente e criar a conta. Nesse momento, vocˆ vˆ todas as informa¸˜es digitadas para a nova conta e tem a oportunie e co dade de abortar a cria¸˜o da conta. Se vocˆ entrou com algo incorreto, pode teclar Control+C ca e e iniciar novamente. Caso contr´rio, vocˆ pode teclar enter e a conta ser´ criada. a e a

Creating new account... Changing the user information for jellyd Enter the new value, or press return for the default Full Name []: Jeremy Room Number []: Smith 130 Work Phone []: Home Phone []: Other []: Todas essas informa¸˜es s˜o opcionais. Vocˆ n˜o tem que entrar com nenhuma dessas inforco a e a ma¸˜es se n˜o quiser, e o usu´rio pode mudar esses dados a qualquer hora usando o comando co a a chfn. Entretanto, pode ser util colocar pelo menos o nome completo e um n´mero de telefone, ´ u no caso de vocˆ precisar entrar em contato com a pessoa em quest˜o. e a

Changing password for jellyd Enter the new password (minimum of 5, maximum of 127 characters) Please use a combination of upper and lower case letters and numbers. New password: Re-enter new password: Password changed. Account setup complete. Vocˆ ter´ que entrar com uma senha para o novo usu´rio. Geralmente, se o usu´rio n˜o e a a a a estiver fisicamente presente nesse momento, vocˆ apenas colocar´ uma senha padr˜o e avisar´ e a a a o usu´rio para mud´-la para uma senha mais segura. a a NOTA: Escolhendo uma senha: Ter uma senha segura ´ a primeira linha de defesa contra e invas˜o. Vocˆ n˜o quer ter uma senha de f´cil dedu¸˜o porque isto torna mais f´cil algu´m a e a a ca a e entrar em seu sistema. Uma senha ideal seria uma sequˆncia aleat´ria de caracteres, incluindo e o letras mai´sculas e min´sculas, n´meros e caracteres aleat´rios. (Um caractere tab pode n˜o u u u o a ser uma boa escolha dependendo em qual tipo de computador vocˆ estar´ logando.) H´ muie a a tos pacotes de softwares que geram senha aleat´rias para vocˆ; procure na Internet por esses o e

104

CAP´ ITULO 12. O ESSENCIAL EM ADMINISTRACAO DE SISTEMA ¸˜

utilit´rios. a Em geral, use o bom senso: n˜o coloque uma senha que seja a data de anivers´rio de algu´m, a a e algo encontrado em sua mesa, ou qualquer coisa facilmente associada com vocˆ. Uma senha e como ”seguro1”ou qualquer outra senha que vocˆ ver impresso ou online tamb´m ´ ruim. e e e Remover usu´rios n˜o ´ uma tarefa complicada. Apenas execute userdel com o nome da a a e conta para removˆ-la. Vocˆ deve verificar se o usu´rio n˜o est´ logado e se n˜o h´ processos e e a a a a a do usu´rio em execu¸˜o. E mais, lembre que uma vez excluido o usu´rio, toda a informa¸˜o da a ca a ca senha do usu´rio ter´ sido apagada permanentemente. a a # userdel jellyd Este comando remove o usu´rio jellyd do seu sistema. O usu´rio ´ removido dos arquivos a a e /etc/passwd, /etc/shadow, e /etc/group, mas n˜o remove o diret´rio home do usu´rio. a o a Se vocˆ deseja tamb´m remover o diret´rio home, vocˆ deve usar este comando: e e o e # userdel -r jellyd Desabilitar temporariamente uma conta ser´ tratada na pr´xima se¸˜o sobre senhas, uma a o ca vez que uma mudan¸a tempor´ria envolve mudar a senha do usu´rio. Mudar outra informa¸˜o c a a ca da conta ´ tratada na se¸˜o 12.1.3. e ca Os programas para adicionar e remover grupos s˜o bem simples. groupadd adicionar´ oua a tra entrada no arquivos /etc/group com um ID de grupo unico, enquanto groupdel remover´ ´ a ´ o grupo especificado. E poss´ editar o arquivo /etc/group para adicionar usu´rios em um ıvel a grupo espec´ ıfico. Por exemplo, para adicionar um grupo chamado cvs: # groupadd cvs E removˆ-lo: e # groupdel cvs 12.1.2 Mudando senhas

O comando passwd muda as senhas modificando o arquivo /etc/shadow. Este arquivo cont´m todas as senhas do sistema em formato criptografado. Para mudar sua senha, vocˆ digitaria: e e $ passwd Changing password for chris Old password: Enter the new password (minumum of 5, maximum of 127 characters) Please use a combination of upper and lower case letters and numbers. New password: Como se pode ver, vocˆ ´ solicitado para entrar com sua senha antiga. Ela n˜o aparecer´ ee a a na tela quando vocˆ digit´-la, o mesmo ocorre quando vocˆ se loga. Ent˜o, vocˆ ´ solicitado e a e a ee para entrar com a nova senha. passwd realiza v´rias verifica¸˜es em sua nova senha e avisar´ se a co a ela n˜o passar nas verfica¸˜es. Vocˆ pode ignorar esses avisos caso queira. Vocˆ ser´ solicitado a co e e a

´ 12.1. USUARIOS E GRUPOS

105

para entrar com sua nova senha por uma segunda vez para confirm´-la. a Se vocˆ ´ root, vocˆ tamb´m pode mudar a senha de outros usu´rios: ee e e a # passwd ted Vocˆ ent˜o passar´ pelo mesmo procedimento acima, com exce¸˜o que vocˆ n˜o ter´ que e a a ca e a a digitar a senha antiga do usu´rio (um dos muitos benef´ a ıcios de ser root...) Se precisar, vocˆ tamb´m pode desabilitar temporiamente uma conta, e reabilit´-la mais e e a tarde se for preciso. Desabilitar e reabilitar uma conta podem ser feitos com passwd. Para desabilitar uma conta, fa¸a o seguinte como root: c # passwd -l david Isto mudar´ a senha de david para algo que nunca coincida com qualquer valor criptograa fado. Vocˆ reabilita a conta usando: e # passwd -u david Agora, a conta de david est´ de volta ao normal. Desabilitar uma conta pode ser util se o a ´ usu´rio n˜o segue as regras que vocˆ definiu para seu sistema, ou se ele exportou uma c´pia a a e o muito grande de xeyes(1) para seu desktop X.

12.1.3

Mudando a Informa¸˜o do Usu´rio ca a

H´ dois tipos de informa¸˜o que os usu´rios podem mudar a qualquer hora: o shell e o finger. a ca a O Slackware Linux usa chsh (change shell) e chfn (change finger) para modificar esses valores. Um usu´rio pode definir qualquer shell que est´ listado no arquivo /etc/shells. Para a maia a oria das pessoas, /bin/bash ser´ adequado. Outros podem estar familiarizados com um shell a encontrado nos seus sistemas, no trabalho ou na escola e desejam usar aquele que eles j´ coa nhecem. Para mudar seu shell, use chsh: $ chsh Password: Changing the login shell for chris Enter the new value, or press return for the default Login Shell [/bin/bash]: Depois de digitar sua senha, digite o caminho completo do novo shell. Primeiro, tenha certeza que ele est´ listado no arquivo /etc/shells(5). O usu´rio root pode mudar o shell de qualquer a a usu´rio executando chsh utilizando o nome do usu´rio como argumento. a a A informa¸˜o de finger ´ a informa¸˜o opcional como nome completo, n´meros de telefone ca e ca u e de sala. Estas informa¸˜es podem ser mudadas usando chfn, e segue o mesmo procedimento co feito na cria¸˜o da conta. Como sempre, o usu´rio root pode mudar a informa¸˜o de finger de ca a ca qualquer um.

106

CAP´ ITULO 12. O ESSENCIAL EM ADMINISTRACAO DE SISTEMA ¸˜

12.2

Usu´rios e Grupos, o modo dif´ a ıcil

Naturalmente, ´ poss´ adicionar, modificar e remover usu´rios e grupos sem usar os scripts e ıvel a e programas que vˆm com o Slackware. N˜o ´ muito dif´ embora depois de ler este processo, e a e ıcil, vocˆ provavelmente achar´ muito mais f´cil usar os scripts. Entretanto, ´ importante conhecer e a a e como realmente a informa¸˜o de sua senha ´ armazenada, no caso de vocˆ precisar recuperar ca e e esta informa¸˜o e n˜o ter as ferramentas do Slackware dispon´ ca a ıvel. Primeiro, n´s adicionaremos um novo usu´rio nos arquivos /etc/passwd (5), /etc/shadow (5) o a e /etc/group(5). O arquivo passwd cont´m algumas informa¸˜es sobre os usu´rios do seu sise co a tema, mas (bastante estranho) n˜o tˆm as senhas deles. Isto n˜o era assim, mas foi alterado a e a tempos atr´s por quest˜es de seguran¸a. O arquivo passwd deve ser leg´ para todos os usu´a o c ıvel a rios, mas vocˆ n˜o deseja senhas criptografadas leg´ e a ıveis, pois intrusos poderiam usar as senhas criptografadas como ponto inicial para descriptografar as senhas dos usu´rios. Ao inv´s disto, a e as senhas criptografadas s˜o mantidas no arquivo shadow, que ´ leg´ apenas para o root, e a a e ıvel senha de todos aparecem no arquivo passwd simplesmente com um ”x”. O arquivo group lista todos os grupos e quem est´ em cada um deles. a Vocˆ pode usar o comando vipw para editar o arquivo /etc/passwd de modo seguro, e o coe mando vigr para editar o arquivo /etc/group tamb´m de modo seguro. Use vipw -s para editar e o arquivo /etc/shadow. (”Modo seguro neste contexto significa que ningu´m mais ser´ capaz de e a modificar o arquivo que vocˆ est´ editando no momento. Se vocˆ ´ o unico administrador do e a ee ´ seu sistema, vocˆ provavelmente est´ em seguran¸a, mas ´ melhor pegar bons h´bitos no in´ e a c e a ıcio.) Vamos examinar o arquivo /etc/passwd e ver como adicionar um novo usu´rio. Uma t´ a ıpica entrada em passwd se parece como isto: chris:x:1000:100:Chris Lumens,Room 2,,:/home/chris:/bin/bash Cada linha corresponde a um usu´rio e os campos de cada linha s˜o separados pelo caraca a ter dois pontos. Os campos s˜o o nome de login, senha criptografada (um ”x”para todos em a um sistema Slackware, sendo que o Slackware usa senhas mascaradas), ID do usu´rio, ID do a grupo, informa¸˜es adicionais (separadas por v´ co ırgula), diret´rio home e o shell. Para adicionar o um novo usu´rio manualmente, adicione uma nova linha no final do arquivo preenchendo as a informa¸˜es apropriadas. co As informa¸˜es que vocˆ adicionar precisam atender alguns requisitos, ou seu novo usu´rio co e a poder´ ter problemas ao se logar. Primeiro, tenha certeza que o campo da senha ´ um x, e que a e o nome do usu´rio e seu ID sejam unicos. Atribua um grupo para o usu´rio, ou 100 (o grupo a ´ a ”users”no Slackware) ou seu grupo padr˜o (use o n´mero do grupo, n˜o o nome). Dˆ ao usu´rio a u a e a um diret´rio home v´lido (que vocˆ criar´ mais tarde) e o shell (lembre-se, os shells v´lidos o a e a a est˜o listados em /etc/shells). a Em seguida, precisaremos adicionar uma entrada no arquivo /etc/shadow, que cont´m as e senhas criptografadas. Uma entrada t´ ıpica se parece com: chris:\$1\$w9bsw/N9\$uwLr2bRER6YyBS.CAEp7R.:11055:0:99999:7::: Novamente, cada linha corresponde a uma pessoa, com os campos delimitados pelo caracter dois pontos. Os campos s˜o (em ordem) nome de login, senha criptografada, dias deste a ´poca a e (01 de janeiro de 1970) que a senha foi mudada pela ultima vez, dias antes da senha poder ser ´ alterada, dias depois que a senha deve ser alterada, dias que o usu´rio ´ notificado antes da a e

12.3. DESLIGANDO O SISTEMA APROPRIADAMENTE

107

senha expirar, dias depois da senha expirar que a conta ´ desabilidada, dias deste a ´poca que e e a conta est´ desabilidada e um campo reservado. a Como vocˆ pode ver, a maioria dos campos s˜o para informa¸˜es de validade de contas. Se e a co vocˆ n˜o est´ usando uma informa¸˜o deste, vocˆ precisa apenas preencher uns poucos campos e a a ca e com alguns valores em especial. Caso contr´rio, vocˆ precisar´ calcular e tomar decis˜es antes a e a o de poder preencher esses campos. Para um novo usu´rio, apenas coloque algum lixo aleat´rio a o no campo de senha. N˜o se preocupe se a senha est´ correta agora, porque vocˆ ir´ mud´-la em a a e a a um minuto. O unico caractere que vocˆ n˜o pode incluir no campo da senha ´ o dois pontos. ´ e a e Deixe o campo ”dias desde que a senha foi alterada”em branco. Preencha com 0,99999, e 7 como vocˆ viu no exemplo acima e deixe os outros campos em branco.. e (Para aqueles que pensam que vendo minha senha criptograda acima acreditam que tˆm e uma brecha para entrar em meu sistema, ent˜o sigam em frente. Se vocˆ decifrar aquela senha, a e vocˆ saber´ a senha para um teste de firewall do sistema. Isto ´ muito util. :) ) e a e ´ Todos os usu´rio comuns s˜o membros do grupo ”users”num sistema t´ a a ıpicamente Slackware. Entretanto, se vocˆ deseja criar um novo grupo, ou adicionar o usu´rio em grupos adicionais, e a vocˆ precisar´ modificar o arquivo /etc/group. Aqui est´ uma t´ e a a ıpica entrada:

cvs::102:chris,logan,david,root Os campos s˜o nome do grupo, senha do grupo, ID do grupo e membros do grupos, sepaa rados por v´ ırgulas. Criar um novo grupo ´ simples como adicionar uma nova linha com um e n´mero de ID unico e listar todos os usu´rios que vocˆ quer no grupo. Qualquer usu´rio que u ´ a e a est´ no novo grupo e est´ logado ter´ que logar novamente para que as mudan¸as tenham efeito. a a a c Neste ponto, pode ser uma boa id´ia usar os comandos pwck e grpck para verificar se as e mudan¸as que vocˆ fez s˜o consistentes. Primeiro, use pwck -r e grpck -r : a op¸˜o -r n˜o faz c e a ca a as altera¸˜es, mas lista as altera¸˜es que vocˆ teria feito se vocˆ executasse o comando sem co co e e aquela op¸˜o. Vocˆ pode usar a sa´ do comando para decidir se precisa modificar mais algum ca e ıda arquivo, executando pwck ou grpck sem a op¸˜o-r, ou simplesmente deixar as mudan¸as como ca c est˜o. a Neste ponto, vocˆ deve usar o comando passwd para criar uma senha apropriada para o usu´e a rio. Ent˜o, use o comando mkdir para criar o diret´rio home do novo usu´rio no local que vocˆ a o a e entrou no arquivo /etc/passwd e o comando chown para mudar o propriet´rio do novo diret´rio. a o Remover um usu´rio ´ uma simples quest˜o de excluir todas as entradas que existem do a e a usu´rio. Remova a entrada do usu´rio dos arquivos /etc/passwd e /etc/shadow, e remova o a a nome de login dos grupos no arquivo /etc/group. Se vocˆ desejar, apagar o diret´rio home, o e o arquivo de spool de mail (se eles existirem). Remover grupos ´ similar: remova as entradas do arquivo /etc/group. e

12.3

Desligando o sistema apropriadamente

´ E muito importante que vocˆ desligue seu sistema apropriadamente. Simplesmente desligar e pelo bot˜o de energia pode causar s´rios estragos no sistema de arquivos. Enquanto o sistema a e est´ ligado, arquivos est˜o em uso mesmo que vocˆ n˜o esteja fazendo nada. Lembre-se que a a e a

108

CAP´ ITULO 12. O ESSENCIAL EM ADMINISTRACAO DE SISTEMA ¸˜

h´ muitos processos rodando em segundo plano o tempo todo. Esses processos s˜o gerenciados a a pelo sistema e mantˆm v´rios arquivos abertos. Quando o sistema ´ desligado pelo bot˜o de e a e a energia, esses arquivos n˜o s˜o fechados apropriadamente e podem ficar corrompidos. Depena a dendo de quais arquivos s˜o corrompidos, o sistema pode ficar completamente inutilizado! Em a qualquer caso, vocˆ ter´ que passar por um processo longo de checagem do sistema de arquivos e a na pr´xima inicializa¸˜o. o ca NOTA: Se vocˆ configurou seu sistema com um sistema de arquivos com journalling, como e ext3 ou reiserfs, vocˆ est´ parcialmente protegido contra estragos no sistema de arquivos, e a e a checagem do sistema de arquivos ´ mais curta se vocˆ usa um sistema de arquivo sem joure e nalling, como ext2. Entretanto, esta seguran¸a n˜o ´ desculpa para desligar seu sistema de c a e modo inapropriado! Um sistema de arquivos com journalling ´ uma tentativa de proteger seus e arquivos de eventos al´m de seu controle, n˜o contra sua pr´pria indolˆncia. e a o e Em todo caso, quando vocˆ quiser reinicializar ou desligar seu computador, ´ importante e e fazˆ-lo corretamente. H´ v´rios meios de se fazer isso; vocˆ pode usar o que achar mais divere a a e tido (ou menos trabalhoso). Sendo que desligar e reinicializar s˜o procedimentos similares, a a maioria dos meios de desligar o sistema tamb´m podem ser aplicados para reinicializ´-lo. e a O primeiro m´todo ´ atrav´s do comando shutdown(8), e ´ provavelmente o mais popular. e e e e shutdown pode ser usado para reinicializar ou desligar o sistema em um dado tempo e pode mostrar uma mensagem a todos os usu´rios logados no sistema dizendo que est´ sendo desligado. a a O modo mais b´sico de desligar o computador ´: a e # shutdown -h now Neste caso, n˜o ser´ enviada uma mensagem personalizada para os usu´rios; eles ver˜o a a a a a mensagem padr˜o de shutdown. ”now ”´ o tempo que vocˆ quer desligar e o ”-h”significa tera e e minar o sistema. N˜o ´ um modo muito amig´vel de se fazer em um sistema multiusu´rios, a e a a mas funciona adequadamente em seu computador de casa. Um m´todo melhor em um sistema e multiusu´rio ´ dar a todos um aviso antecipado: a e # shutdown -h +60 Isto desligar´ o sistema em uma hora(60 minutos), que ´ adequado em um sistema multiua e su´rio normal. Sistemas essenciais devem ter a sua hora de desligar agendada antecipadamente, a e vocˆ deve colocar avisos sobre a hora de desligar em quaisquer lugares usados apropriadae mente para notifica¸˜es do sistema (email, quadro de aviso, /etc/motd, ou qualquer outro). co Para reinicializar o sistema, usa-se o mesmo comando, mas substitui-se ”-h”por ”-r ”: # shutdown -r now Vocˆ pode usar a mesma nota¸˜o de tempo com shutdown -r que vocˆ usuaria com shute ca e down -h. H´ muitas outras coisas que vocˆ pode fazer com o comando shutdown para controlar a e quando desligar ou reinicializar a m´quina; veja a p´gina de manual para mais detalhes. a a O segundo modo de desligar ou reinicializar o computador ´ usar os comandos halt(8) e e reboot(8). Como os nomes indicam, halt terminar´ imediatamente a opera¸˜o do sistema e a ca reboot reinicializar´ o sistema. (reboot ´ na verdade apenas um link simb´lico para o comando a e o

12.3. DESLIGANDO O SISTEMA APROPRIADAMENTE

109

halt.) Eles s˜o executados como: a # halt # reboot Um meio de baixo n´ de reinicializar ou desligar o sistema ´ usar diretamente o comando ıvel e init. Todos os outros m´todos s˜o simplesmente meios convenientes de usar init, mas vocˆ pode e a e dizer diretamente ao init o que fazer usando telinit(8) . Usar telinit dir´ ao init que n´ de a ıvel execu¸˜o (runlevel) acionar, o que far´ um script especial ser executado. Este script matar´ ou ca a a ressusitar´ processos necess´rios para aquele n´ de execu¸˜o. Isto funciona para reinicializar a a ıvel ca e desligar porque ambos s˜o n´ a ıveis especiais de execu¸˜o. ca # telinit 0 O n´ de execu¸˜o 0 ´ o modo de desligar. Dizer ao init para entrar neste n´ far´ toıvel ca e ıvel a dos os processos serem terminados, o sistema de arquivos ser´ desmontado e a m´quina ser´ a a a desligada. Isto ´ um modo perfeitamente aceit´vel de desligar o sistema. Em muitos laptops e e a computadores desktops modernos, isso far´ com que a m´quina seja desligada. a a # telinit 6 O n´ de execu¸˜o 6 ´ o modo de reinicializa¸˜o. Todos os processos ser˜o terminados, o ıvel ca e ca a sistema de arquivo ser´ desmontado e a m´quina ser´ reinicializada. Isto ´ um modo perfeitaa a a e mente aceit´vel de reinicializar o sistema. a Para os curiosos, quando muda-se para os n´ ıveis de execu¸˜o 0 ou 6, seja usando shutdown, ca halt, ou reboot, o script /etc/rc.d/rc.6 ´ executado. (O script /etc/rc.d/rc.0 um link simb´lico e o para /etc/rc.d/rc.6.) Vocˆ pode personalizar este arquivo a seu gosto – mas esteja certo de e testar suas mudan¸as cuidadosamente! c H´ um ultimo m´todo de reinicializar o sistema. Todos os outros m´todos requerem que vocˆ a ´ e e e esteja logado como root. Entretanto, ´ poss´ reinicializar a m´quina mesmo se vocˆ n˜o ´ o e ıvel a e a e adminstrador, contanto que vocˆ tenha acesso f´ e ısico ao teclado. Teclar Control+Alt+Delete (a ”sauda¸˜o de trˆs dedos”) far´ a m´quina reinicializar imediatamente. (Por tr´s deste ceca e a a a n´rio, o comando shutdown ´ chamado para vocˆ quando usa Control+Alt+Delete.) Isto a e e nem sempre funciona quando se est´ usando o X Windows – vocˆ pode precisar usar Cona e trol+Alt+F1 (ou outra tecla de fun¸˜o) para alternar para um terminal em modo texto antes. ca Finalmente, o arquivo que efetivamente controla cada aspecto da inicializa¸˜o e do desligaca mento ´ o arquivo /etc/inittab(5). Em geral, vocˆ n˜o deve modificar este arquivo, mas ele e e a pode dar a vocˆ no¸˜es de como algumas coisas funcionam. Como sempre, veja as p´ginas de e co a manual para mais detalhes.

110

CAP´ ITULO 12. O ESSENCIAL EM ADMINISTRACAO DE SISTEMA ¸˜

Cap´ ıtulo 13

Comandos de rede b´sicos a
Uma rede consiste em v´rios computadores conectados entre si. A rede pode ser t˜o simples a a quanto alguns computadores ligados em casa ou no escrit´rio, ou t˜o complicada quanto uma o a rede de uma grande universidade ou a Internet. Quando seu computador ´ parte de uma rede, e vocˆ tem acesso a esses sistemas diretamente ou atrav´s de servi¸os como o correio eletrˆnico e e c o ou a web. Existe uma variadade de programas para redes que vocˆ pode usar. Alguns s˜o uteis para e a ´ realizar diagn´sticos como verificar se a rede est´ funcionando corretamente. Outros (como leio a tores de e-mail e navegadores) s˜o uteis para trabalhar ou manter contato com outras pessoas. a ´

13.1

ping

O ping(8) envia um pacote ICMP ECHO REQUEST para o host especificado. Se o host responde, vocˆ recebe o pacote ICMP de volta. Parece estranho? Bom, vocˆ pode ”dar um e e ping”em um endere¸o IP para saber se a m´quina est´ conectada. Se n˜o obtiver resposta, vocˆ c a a a e sabe que alguma coisa est´ errada. a Aqui est´ um exemplo de conversa entre dois usu´rios Linux: a a Usu´rio A: A m´quina Loki est´ desligada de novo. a a a Usu´rio B: Voc^ tem certeza? a e Usu´rio A: Sim, eu tentei ping´-la, mas n~o obtive resposta. a a a S˜o circunstˆncias como essas que fazem o ping ser um comando muito util no dia a dia. a a ´ Ele provˆ uma forma muito r´pida de ver se uma m´quina est´ ligada e conectada ` rede. A e a a a a sintaxe b´sica ´: a e $ ping www.slackware.com Existem, obviamente, v´rias op¸˜es que podem ser especificadas. Olhe a p´gina de manual a co a de ping(1) para maiores informa¸˜es. co

13.2

traceroute

O traceroute(8) do Slackware ´ uma ferramenta de diagn´stico de rede muito util. traceroute e o ´ mostra por quais hosts um pacote passa at´ chegar ao seu destino. Vocˆ pode ver quantos hosts e e
111

112

´ CAP´ ITULO 13. COMANDOS DE REDE BASICOS

tem do seu computador at´ o site do Slackware com esse comando: e $ traceroute www.slackware.com Cada host vai ser mostrado, assim como o tempo de resposta de cada host. Aqui est´ um a exemplo de saida do comando: $ traceroute www.slackware.com traceroute to www.slackware.com (204.216.27.13), 30 hops max, 40 byte packets 1 zuul.tdn (192.168.1.1) 0.409 ms 1.032 ms 0.303 ms 2 207.171.227.254 (207.171.227.254) 18.218 ms 32.873 ms 32.433 ms 3 border-sf-2-0-4.sirius.com (205.134.230.254) 15.662 ms 15.731 ms 16.142 ms 4 pb-nap.crl.net (198.32.128.20) 20.741 ms 23.672 ms 21.378 ms 5 E0-CRL-SFO-03-E0X0.US.CRL.NET (165.113.55.3) 22.293 ms 21.532 ms 21.29 ms 6 T1-CDROM-00-EX.US.CRL.NET (165.113.118.2) 24.544 ms 42.955 ms 58.443 ms 7 www.slackware.com (204.216.27.13) 38.115 ms 53.033 ms 48.328 ms O traceroute ´ similar ao ping, j´ que o mesmo usa pacotes ICMP tamb´m. Existem v´rias e a e a op¸˜es que vocˆ pode especificar para o traceroute. Essas op¸˜es s˜o explicadas em detalhes na co e co a respectiva p´gina de manual. a

13.3

Ferramentas DNS

O Domain Name Service (abreviado por DNS) ´ o protocolo m´gico que permite a seu come a c putador converter nomes de dom´ ınio como www.slackware.com em endere¸os IP 64.57.102.34. Computadores n˜o podem rotear pacotes para www.slackware.com, mas eles podem rotear paa cotes para o endere¸o IP desse dom´ c ınio. Isso nos d´ uma forma conveniente de lembrarmos de a m´quinas. Sem o DNS ter´ a ıamos que manter um banco de dados mental de qual endere¸o IP c pertence a qual computador, e assumindo que o endere¸o IP ´ sempre o mesmo. Claramente c e usar nomes para computadores ´ melhor, mas como n´s mapeamos nomes em endere¸os IP? e o c

13.3.1

host

´ O host(1) pode fazer isso por n´s. host ´ usado para mapear nomes em endere¸os IP. E um o e c utilit´rio muito r´pido e simples, sem muitas fun¸˜es. a a co $ host www.slackware.com www.slackware.com is an alias for slackware.com. slackware.com has address 64.57.102.34 Mas vamos supor que por alguma raz˜o n´s queremos mapear um endere¸o IP para um a o c nome de dom´ ınio; e ent˜o? a 13.3.2 nslookup

nslookup ´ um programa que tem resistido ao tempo. nslookup est´ depreciado e pode ser e a removido de lan¸amentos futuros. N˜o existe nem mesmo uma p´gina de manual para este c a a programa.

13.3. FERRAMENTAS DNS

113

$ nslookup 64.57.102.34 Note: nslookup is deprecated and may be removed from future releases. Consider using the ‘dig’ or ‘host’ programs instead. Run nslookup with the ‘-sil[ent]’ option to prevent this message from appearing. Server: 192.168.1.254 Address: 192.168.1.254#53 Non-authoritative answer: www.slackware.com canonical name = slackware.com. Name: slackware.com Address: 64.57.102.34 13.3.3 dig

O Domain Information Groper, dig(1) abreviando, ´ o programa que pega informa¸˜es DNS. e co dig pode pegar qualquer informa¸˜o de um servidor DNS incluindo reverse lookups, A, CNAME, ca MS, SP, e registros TXT. dig possui muitas op¸˜es de linha de comando e se vocˆ n˜o ´ familiar co e a e com eles, leia a extensiva p´gina de manual da ferramenta. a $ dig @192.168.1.254 www.slackware.com mx ; <<>> DiG 9.2.2 <<>> @192.168.1.254 www.slackware.com mx ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26362 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.slackware.com. ;; ANSWER SECTION: www.slackware.com.76634 slackware.com. 86400 ;; AUTHORITY SECTION: slackware.com. 86400 slackware.com. 86400 ;; ADDITIONAL SECTION: ns1.cwo.com. 163033 ns2.cwo.com. 163033 ;; ;; ;; ;;

IN

MX

IN IN

CNAME MX

slackware.com. 1 mail.slackware.com.

IN IN

NS NS

ns1.cwo.com. ns2.cwo.com.

IN IN

A A

64.57.100.2 64.57.100.3

Query time: 149 msec SERVER: 192.168.1.254#53(192.168.1.254) WHEN: Sat Nov 6 16:59:31 2004 MSG SIZE rcvd: 159

O exemplo acima deve dar uma id´ia de como o dig funciona. ”@192.168.1.254”especifica o e e ınio que eu estou verificando, servidor dns a ser usado. ”www.slackware.com”´ o nome de dom´ e ”mx”´ o tipo de verifica¸˜o que eu estou fazendo. A query acima me diz que quando enviar e ca um e-mail para www.slackware.com ele ser´ enviado na verdade, para mail.slackware.com. a

114

´ CAP´ ITULO 13. COMANDOS DE REDE BASICOS

13.4

finger

O finger (1) ir´ retornar informa¸˜es sobre o usu´rio especificado. Vocˆ utiliza o finger em a co a e um username ou em um endere¸o de e-mail e ele ir´ tentar contactar o servidor necess´rio e rec a a tornar o username, escrit´rio, n´mero de telefone, e outras informa¸˜es. Aqui est´ um exemplo: o u co a $ finger johnc@idsoftware.com O finger pode retornar o username, status de e-mail, n´mero de telefones, e o conte´do dos u u arquivos ”.plan”e ”.project”. Claro que a informa¸˜o retornada varia conforme cada servidor ca finger. Aquele que est´ incluso no Slackware retorna as seguintes informa¸˜es por padr˜o: a co a • Username • Room number • Home phone number • Work phone number • Login status • Email status • Conte´do do arquivo .plan dentro do diret´rio home do usu´rio u o a • Conte´do do arquivo .project dentro do diret´rio home do usu´rio u o a Os primeiros quatro itens podem ser configurados com o comando chfn. Ele guarda essas informa¸˜es no arquivo /etc/passwd. Para mudar a informa¸˜o no seu arquivo .plan ou .project, co ca basta editar esses arquivos com seu editor de texto favorito. Esses arquivos precisam estar no seu diret´rio home e precisam ser chamados .plan e .project obrigatoriamente. o Muitos usu´rios utilizam finger na sua pr´pria conta de uma m´quina remota para ver raa o a pidamente se possuem novos e-mails. Vocˆ tamb´m pode utiliz´-lo para ver os planos de um e e a usu´rio ou o seu projeto atual. a Como muitos comandos, finger possui op¸˜es. Olhe a p´gina de manual dele para maiores co a informa¸˜es sobre op¸˜es que vocˆ pode usar. co co e

13.5

telnet

Algu´m uma vez disse que o telnet(1) tinha sido a coisa mais legal que j´ havia visto em e a computadores. A habilidade de logar remotamente e realizar tarefas em outro computador ´ o e que separa o Unix e sistemas operacionais ”Unix-like”de outros sistemas operacionais. O telnet permite que vocˆ logue em um computador, assim como se vocˆ estivesse sentado e e em frente ao mesmo. Depois de ter seu usu´rio e senha verificados, vocˆ ter´ um prompt do a e a shell. Depois disso, vocˆ pode fazer qualquer coisa que um console em modo texto permitir. e Compor e-mail, ler grupo de not´ ıcias, mover arquivos, e assim por diante. Se vocˆ estiver roe dando o X e fizer telnet para outra m´quina, vocˆ pode rodar aplicativos do X no computador a e remoto e mostrar o resultado no seu computador. Para logar em uma m´quina remota, use a seguinte sintaxe: a

13.5. TELNET

115

$ telnet <hostname> Se o host responder, vocˆ receber´ o prompt de login. Digite seu usu´rio e sua senha. Pronto. e a a Vocˆ agora possui uma shell. Para sair da sua sess˜o telnet, use o comando exit ou o comando e a logout. AVISO: telnetn˜o encripta a informa¸˜o que transmite. Tudo ´ transmitido em texto puro, a ca e at´ mesmo senhas. N˜o ´ recomendado usar telnet atrav´s da Internet. Para tal, considere usar e a e e o ssh (Secure Shell). Ele encripta todo o tr´fego e est´ dispon´ gratuitamente. a a ıvel

13.5.1

Outras utilidades do telnet

Agora que n´s convencemos vocˆ a n˜o utilizar o protocolo telnet para logar em uma m´o e a a quina remota, n´s iremos mostrar algumas outras utilidades do telnet. o Vocˆ tamb´m pode usar o telnet para conectar em um host em uma certa porta. e e $ telnet <hostname> [port] Isso pode ser bem util quando vocˆ precisa rapidamente testar um certo servi¸o, e vocˆ ´ e c e precisa de total controle sobre os comandos, al´m de ver precisamente o que est´ acontecendo. e a Vocˆ pode testar interativamente ou usar um servidor SMTP, um servidor POP3, um servidor e HTTP, etc. dessa forma. Na pr´xima figura vocˆ ver´ como vocˆ pode usar telnet em um servidor HTTP na porta o e a e 80, e conseguir algumas informa¸˜es b´sicas dele: co a Usando telnet em um servidor web $ telnet store.slackware.com 80 Trying 69.50.233.153... Connected to store.slackware.com. Escape character is ’^]’. HEAD / HTTP/1.0 HTTP/1.1 200 OK Date: Mon, 25 Apr 2005 20:47:01 GMT Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d Last-Modified: Fri, 18 Apr 2003 10:58:54 GMT ETag: "193424-c0-3e9fda6e" Accept-Ranges: bytes Content-Length: 192 Connection: close Content-Type: text/html Connection closed by foreign host. $ Vocˆ pode fazer a mesma coisa para qualquer outro protocolo que seja de texto puro, desde e que saiba em que porta conectar e quais s˜o seus comandos. a

116

´ CAP´ ITULO 13. COMANDOS DE REDE BASICOS

13.6

O ssh (Secure Shell)

Hoje, o ssh desfruta da adora¸˜o que o telnet desfrutou uma vez. ssh(1) nos permite realica zar conex˜es em uma m´quina remota e executar programas como se vocˆ estivesse fisicamente o a e presente; contudo, o ssh encripta todos os dados transferidos entre os dois computadores. Dessa forma, mesmo que outras pessoas interceptem a comunica¸˜o, eles n˜o ser˜o capazes de entendˆca a a e la. Uma conex˜o ssh t´ a ıpica est´ abaixo: a

$ ssh carrier.lizella.net -l alan The authenticity of host ’carrier.lizella.net (192.168.1.253)’ can’t be established. RSA key fingerprint is 0b:e2:5d:43:4c:39:4f:8c:b9:85:db:b2:fa:25:e9:9d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ’carrier.lizella.net’ (RSA) to the list of known hosts. Password: password Last login: Sat Nov 6 16:32:19 2004 from 192.168.1.102 Linux 2.4.26-smp. alan@carrier:~$ ls -l MANIFEST -rw-r--r-- 1 alan users 23545276 2004-10-28 20:04 MANIFEST alan@carrier:~$ exit logout Connection to carrier.lizella.net closed. Acima vocˆ pode perceber que eu estou fazendo uma conex˜o ssh em carrier.lizella.net, e chee a cando as permiss˜es do arquivo MANIFEST. o

13.7

email

O correio eletrˆnico ´ uma das coisas mais populares que vocˆ pode fazer na Internet. Em o e e 1998 descobriu-se que mensagens eletrˆnicas eram mais utilizadas que o correio normal. Ele ´ o e certamente muito comum e util. ´ No Slackware, n´s fornecemos um servidor de email padr˜o, e muitos clientes de email. Too a dos os clientes discutidos abaixo s˜o utilizados em modo texto. Muitos dos usu´rios Windows a a podem ser contra isso, mas vocˆ descobrir´ que um cliente utilizado em modo texto ´ muito e a e conveniente, especialmente quando vocˆ est´ checando email remotamente. N˜o tema pois exise a a tem diversos clientes gr´ficos como o Kmail do KDE. Se vocˆ deseja usar um desses, verifique a e o menu de ajuda dos mesmos.

13.7.1

pine

O pine(1) n˜o ´ o elm. A Universidade de Washington criou o seu programa para ler emails a e e not´ ıcias da Internet e ao mesmo tempo ser um leitor f´cil para seus estudantes. O pine ´ um a e dos clientes de email mais populares hoje em uso e est´ dispon´ para todos os sabores de a ıvel Unix e at´ mesmo Windows. e

13.7. EMAIL

117

Vocˆ ver´ um menu de comandos e uma linha de teclas de comando na parte de baixo da e a tela. Contudo o pine ´ um programa complexo, e n´s n˜o iremos discutir todos os seus recursos e o a neste texto. Para ver o que est´ na sua caixa de entrada, digite i. Suas mensagens s˜o listadas com suas a a datas, autores e assuntos. Selecione a mensagem que vocˆ deseja e aperte enter para visualiz´e a la. Digitando r vocˆ poder´ responder a mensagem. Ap´s digitar a mensagem de resposta, e a o digite Ctrl+X para envi´-la. Vocˆ pode digitar i para voltar ` lista de mensagens. a e a Se vocˆ deseja excluir a mensagem, digite d. Isso ir´ marcar a mensagem selecionada para e a exclus˜o. O pine apaga as mensagens quando vocˆ sai do programa. O pine tamb´m permite a e e que vocˆ guarde seus emails em pastas. Vocˆ pode obter a listagem das pastas pressionando a e e tecla l. Na listagem de mensagens, pressione s para salv´-la em outra pasta. Ele ir´ perguntar a a em qual pasta deve salvar a mensagem. O pine oferece muitas, muitas funcionalidades; vocˆ definitivamente deve dar uma olhada e na p´gina de manual para maiores informa¸˜es. Ele ir´ conter as ultimas informa¸˜es sobre o a co a ´ co programa.

13.7.2

elm

elm(1) ´ outro cliente de email em modo texto bastante popular. Apesar de n˜o possuir e a uma interface t˜o amig´vel quanto o pine, est´ por a´ h´ muito mais tempo. a a a ı a

118

´ CAP´ ITULO 13. COMANDOS DE REDE BASICOS

Por padr˜o vocˆ est´ na sua caixa de entrada. As mensagens s˜o listadas com o n´mero a e a a u da mensagem, data, autor e assunto. Use as setas para selecionar a mensagem que deseja. Pressione Enter para ler a mensagem. Para compor uma nova mensagem, pressione m na tela principal. A tecla d ir´ marcar a a mensagem para exclus˜o. E a tecla r ir´ responder a mensagem que vocˆ est´ atualmente lendo. a a e a Todas essas teclas s˜o mostradas na parte de baixo da tela com um prompt. a A p´gina de manual apresenta o elm mais detalhadamente, ent˜o vocˆ provavelmente ir´ a a e a consult´-lo antes de utilizar o elm. a

13.7.3

mutt

”Todos os clientes de email s˜o ruins. Este ´ apenas menos ruim”. A interface original do a e mutt era baseada na interface do elm com recursos adicionais encontrados em outros clientes de email populares, resultando em um mutt h´ ıbrido. Alguns dos recursos do mutt incluem: • Suporte a cores • Agrupamento de mensagens • Suporte a MIME e PGP/MIME • Suporte a pop3 e imap • Suporte a v´rios formatos de caixa de correio (mbox, MMDF, MH, maildir) a • Altamente personaliz´vel a Tela principal do Mutt

13.7. EMAIL

119

Se vocˆ est´ procurando por um cliente de email que ir´ permitir que vocˆ tenha total cone a a e trole sobre tudo, ent˜o vocˆ ir´ gostar do mutt. Todas as configura¸˜es padr˜o podem ser a e a co a customizadas, associa¸˜es de teclas mudadas. Se vocˆ quiser adicionar uma macro, vocˆ tamco e e b´m pode. e Vocˆ provavelmente ir´ querer dar uma olhada na p´gina de manual do muttrc, que ir´ explie a a a car como configurar tudo isso. Ou dˆ uma olhada no exemplo de arquivo de configura¸˜o muttrc. e ca

13.7.4

nail

´ nail (1) ´ um cliente de email de linha de comando. E muito primitivo e oferece quase nenhum e recurso no que diz respeito ` interface com usu´rio. Contudo, mailx ´ util para aquelas vezes em a a e´ que vocˆ precisa rapidamente enviar alguma coisa, testando sua instala¸˜o de MTA ou qualquer e ca coisa parecida. Note que o Slackware cria um link simb´lico para o nail em /usr/bin/mail e o /usr/bin/mailx. Qualquer um desses trˆs comandos executa o mesmo programa. De fato, vocˆ e e ver´ normalmente o nail sendo referenciado como mail. a A linha de comando b´sica ´: a e $ mailx <subject> <to-addr> mailx lˆ o corpo da mensagem da entrada padr˜o. Ent˜o vocˆ pode usar o cat em um e a a e arquivo como entrada padr˜o para este comando para envi´-lo, ou vocˆ pode apenas digitar o a a e texto e apertar Ctrl+D quando tiver acabado a mensagem. Aqui est´ um exemplo de enviar por email o c´digo fonte de um programa para outra pessoa: a o

$ cat randomfunc.c | mail -s "Here’s that function" asdf@example.net A p´gina de manual explica mais do que o nail pode fazer, ent˜o vocˆ provavelmente ir´ a a e a querer dar uma olhada nele antes de us´-lo. a

120

´ CAP´ ITULO 13. COMANDOS DE REDE BASICOS

13.8

Navegadores

A primeira coisa que as pessoas pensam quando ouvem a palavra Internet ´ ”navegar na ine ternet”. Em outras palavras, navegar em sites usando um navegador web. Esse ´ provavelmente e de longe o uso mais popular da Internet para o usu´rio m´dio. a e O Slackware fornece navegadores web que s˜o gr´ficos na s´rie ”XAP”, bem como navegadores a a e web em modo texto na s´rie ”N”. N´s iremos dar uma r´pida olhada nas op¸˜es mais comuns. e o a co 13.8.1 lynx

´ lynx (1) ´ um navegador web em modo texto. E uma forma bem r´pida de olhar alguma e a coisa na Internet. Para iniciar o lynx, apenas digite lynx no prompt: $ lynx P´gina inicial padr˜o do Lynx a a

Vocˆ pode querer especificar um site para o lynx abrir: e $ lynx www.slackware.com lynx exibe as teclas de comando e o que cada tecla faz na parte de baixo da tela. As setas para cima e para baixo movem atrav´s do documento, Enter seleciona o link destacado, e a e seta da esquerda volta ` p´gina anterior. Digitando d ir´ fazer o download do arquivo selea a a cionado. O comando g traz o prompt de endere¸o, para vocˆ digitar uma URL para o lynx abrir. c e Existem muitos outros comandos no lynx. Vocˆ pode consultar a p´gina de manual ou digitar e a h para que a tela de ajuda apare¸a para maiores informa¸˜es. c co 13.8.2 links

Assim como no lynx, o links ´ um navegador em modo texto, onde vocˆ navega utilizando e e o teclado. Contudo, quando pressiona a tecla Esc, ir´ ativar um menu muito conveniente no a

13.8. NAVEGADORES

121

topo da tela. Isso permite que o links seja muito f´cil de usar, sem ter que aprender um monte a de teclas de atalho. Pessoas que n˜o utilizam navegadores em modo texto todo dia ir˜o gostar a a deste recurso. O links parece ter um suporte melhor para frames e tabelas, quando comparado ao lynx.

13.8.3

wget

wget(1) ´ uma ferramenta de linha de comando que ir´ fazer o download de arquivos de uma e a URL espec´ ıfica. Como n˜o ´ na verdade um navegador web, o wget ´ usado principalmente a e e para fazer o download de sites inteiros ou parte deles para visualiza¸˜o offline dos mesmos, ou ca para o download de arquivos de servidores HTTP ou FTP. A sintaxe b´sica ´: a e $ wget <url> Vocˆ tamb´m pode passar op¸˜es. Por exemplo, a op¸˜o abaixo ir´ fazer o download do site e e co ca a do Slackware: $ wget --recursive www.slackware.com O wget ir´ criar um diret´rio chamado www.slackware.com e ir´ guardar os arquivos dentro a o a dele, assim como o site o faz. O wget tamb´m pode fazer o download de sites FTP; apenas especifique uma URL FTP ao e inv´s de uma HTTP. e $ wget ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz --12:18:16-- ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz => ‘wget-1.8.2.tar.gz’ Resolving ftp.gnu.org... done. Connecting to ftp.gnu.org[199.232.41.7]:21... connected.

122

´ CAP´ ITULO 13. COMANDOS DE REDE BASICOS

Logging in as anonymous ... Logged in! ==> SYST ... done. ==> PWD ... done. ==> TYPE I ... done. ==> CWD /gnu/wget ... done. ==> PORT ... done. ==> RETR wget-1.8.2.tar.gz ... done. Length: 1,154,648 (unauthoritative) 100%[==================================>] 1,154,648 209.55K/s ETA 00:00

12:18:23 (209.55KB/s) - ‘wget-1.8.2.tar.gz’ saved [1154648] O wget tem muitas outras op¸˜es, o que o torna muito bom para scripts espec´ co ıficos para sites (como espelhamento e assim por diante). A p´gina de manual deve ser consultado para a mais informa¸˜es. co

13.9

Clientes FTP

O FTP ´ o protocolo de transferˆncia de arquivos. Ele permite que vocˆ envie e receba e e e arquivos entre dois computadores. Existe o servidor FTP e o cliente FTP. N´s iremos falar o sobre os clientes nesta se¸˜o. Para os curiosos, o ”cliente”´ vocˆ. O ”servidor”´ o computador ca e e e que responde suas requisi¸˜es FTP e aceita o seu login. Vocˆ ir´ fazer o download de arquivos co e a do servidor e ir´ fazer upload de arquivos para o servidor. O cliente n˜o pode aceitar conex˜es a a o FTP, ele pode apenas conectar ` servidores FTP. a

13.9.1

ftp

Para conectar em um servidor FTP, simplesmente execute o comando ftp(1) e especifique o host:

$ ftp $<$hostname$>$ [port] Se o host estiver rodando um servidor FTP, ele ir´ pedir um username e um password. a Vocˆ poder´ logar como vocˆ mesmo ou como ”anˆnimo”(anonymous). Sites FTP anˆnimos e a e o o s˜o bastante populares para reposit´rio de arquivos. Por exemplo, para fazer o download do a o Slackware Linux por FTP, vocˆ deve usar FTP anˆnimo. e o Uma vez conectado, vocˆ estar´ no prompt ftp>. Existem comandos especiais para FTP, e a mas eles s˜o similares aos comandos padr˜o. A lista seguinte mostra alguns dos comandos a a b´sicos e o que eles fazem: a

Comandos ftp

13.9. CLIENTES FTP

123

Comando ls cd <diret´rio> o bin ascii get <arquivo> put <arquivo> hash tick prom mget <arquivos> mput <arquivos> quit

Fun¸˜o ca Lista arquivos Muda de diret´rio o Define modo de transferˆncia bin´rio e a Define modo de transferˆncia ASCII e Faz o download de um arquivo Faz o upload de um arquivo Liga/Desliga a impress˜o de ”#”para cada buffer transferido a Mostra/Esconde contador de bytes Entra/Sai modo interativo para downloads Faz o download de um arquivo ou um grupo de arquivos; coringas s˜o permitidos a Faz o upload de um arquivo ou um grupo de arquivos; coringas s˜o permitidos a Sai do servidor FTP

Vocˆ tamb´m pode usar os seguintes comandos, que s˜o auto-explicativos: chmod, delete, e e a rename, rmdir. Para uma lista completa de todos os comandos e seus significados, apenas digite help ou ? e vocˆ ver´ a lista completa na sua tela. e a FTP ´ um programa razoavelmente simples de ser usado, mas falta a interface que muitos e de n´s est˜o acostumados hoje em dia. A p´gina de manual discute algumas das op¸˜es de o a a co linha de comando do ftp(1). ftp> ls *.TXT 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. -rw-r--r-1 root 100 18606 Apr 6 2002 BOOTING.TXT -rw-r--r-1 root 100 10518 Jun 13 2002 COPYRIGHT.TXT -rw-r--r-1 root 100 602 Apr 6 2002 CRYPTO_NOTICE.TXT -rw-r--r-1 root 100 32431 Sep 29 02:56 FAQ.TXT -rw-r--r-1 root 100 499784 Mar 3 19:29 FILELIST.TXT -rw-r--r-1 root 100 241099 Mar 3 19:12 PACKAGES.TXT -rw-r--r-1 root 100 12339 Jun 19 2002 README81.TXT -rw-r--r-1 root 100 14826 Jun 17 2002 SPEAKUP_DOCS.TXT -rw-r--r-1 root 100 15434 Jun 17 2002 SPEAK_INSTALL.TXT -rw-r--r-1 root 100 2876 Jun 17 2002 UPGRADE.TXT 226 Transfer complete. ftp> tick Tick counter printing on (10240 bytes/tick increment). ftp> get README81.TXT local: README81.TXT remote: README81.TXT 200 PORT command successful. 150 Opening BINARY mode data connection for README81.TXT (12339 bytes). Bytes transferred: 12339 226 Transfer complete. 12339 bytes received in 0.208 secs (58 Kbytes/sec) 13.9.2 ncftp

O ncftp(1) (pronunciado ”Nik-F-T-P”) ´ uma alternativa ao tradicional cliente ftp que vem e com o Slackware. Ele ´ ainda um programa em modo texto, mas oferece algumas vantagens em e rela¸˜o ao ftp, incluindo: ca

124

´ CAP´ ITULO 13. COMANDOS DE REDE BASICOS

• ”Tab completion” • Arquivo de favoritos(Bookmark) • Uso mais liberal de coringas • Hist´rico de comandos o Por padr˜o, ncftp ir´ tentar logar anonimamente ao servidor que vocˆ especificar. Vocˆ pode a a e e for¸ar o ncftp a apresentar o prompt de login com a op¸˜o ”-u”. Uma vez no sistema, vocˆ pode c ca e usar os mesmos comandos usados no ftp, vocˆ ir´ apenas notar uma interface melhor, que se e a parece mais com o bash. ncftp /pub/linux/slackware > cd slackware-current/ Please read the file README81.TXT it was last modified on Wed Jun 19 16:24:21 2002 - 258 days ago CWD command successful. ncftp ...ware/slackware-current > ls BOOTING.TXT FAQ.TXT bootdisks/ CHECKSUMS FILELIST.TXT extra/ CHECKSUMS.asc GPG-KEY isolinux/ CHECKSUMS.md5 PACKAGES.TXT kernels/ CHECKSUMS.md5.asc PRERELEASE_NOTES pasture/ COPYING README81.TXT rootdisks/ COPYRIGHT.TXT SPEEKUP_DOCS.TXT slackware/ CRYPTO_NOTICE.TXT SPEEK_INSTALL.TXT source/ CURRENT.WARNING Slackware-HOWTO ChangeLog.txt UPGRADE.TXT ncftp ...ware/slackware-current > get README81.TXT README81.TXT: 12.29 kB 307.07 kB/s

13.10
13.10.1

Conversando com outras pessoas
wall

wall (1) ´ uma forma r´pida de escrever uma mensagem para os usu´rios em um sistema. A e a a sintaxe b´sica ´: a e $ wall [file] Isso ir´ fazer com que o conte´do do arquivo seja mostrado no terminal de todos os usu´rios a u a atualmente logados no sistema. Se vocˆ n˜o especificar uma mensagem, wall ir´ ler da entrada e a a padr˜o, ent˜o vocˆ pode simplesmente digitar sua mensagem e no final digitar Ctrl+d. a a e wall n˜o possui muitos recursos, tirando o fato de servir para avisar a seus usu´rios que vocˆ a a e est´ prestes a fazer alguma manuten¸˜o s´ria no sistema, ou at´ mesmo reinici´-lo, para que a ca e e a eles salvem seus trabalhos e fa¸am logoff =) c

13.10.2

talk

O talk (1) permite que dois usu´rios conversem entre si. Ele divide a tela no meio, horizona talmente. Para requisitar um chat com outro usu´rio, use o comando: a

13.10. CONVERSANDO COM OUTRAS PESSOAS

125

$ talk <pessoa> [ttyname]

Se vocˆ especificar apenas o usu´rio, o talk assume que a requisi¸˜o ´ local, ent˜o apenas e a ca e a usu´rios locais s˜o requisitados. O nome do terminal ´ requerido se vocˆ deseja chamar um a a e e usu´rio em um terminal espec´ a ıfico (se o usu´rio est´ logado em mais de um). A informa¸˜o a a ca requerida para a conversa pode ser obtida com o comando w (1). O talk tamb´m pode chamar usu´rios em hosts remotos. Para o username vocˆ simplesmente e a e especifica um endere¸o de email. talk ir´ tentar contactar aquele usu´rio remoto naquele host. c a a talk ´ um pouco limitado. Ele somente suporta dois usu´rios e ´ half-duplex. e a e

13.10.3

ytalk

ytalk (1) ´ uma reposi¸˜o do talk. Ele vem com o Slackware como sendo o comando ytalk. A e ca sintaxe ´ similar, mas existem algumas diferen¸as: e c

$ ytalk <username>[#ttyname]

126

´ CAP´ ITULO 13. COMANDOS DE REDE BASICOS

O usu´rio e o terminal s˜o especificados da mesma forma que no talk, com a diferen¸a que a a c vocˆ deve coloc´-los juntos com o caractere (#). e a ytalk oferece v´rias vantagens: a • Ele suporta mais de dois usu´rios. a • Um menu de op¸˜es pode ser ativado a qualquer momento com a tecla Esc. co • Vocˆ pode utilizar o shell enquanto estiver em uma conversa. e • E muito mais... Se vocˆ ´ um administrador de servidores, vocˆ deve se certificar que a porta do ntalk est´ ee e a habilitada em /etc/inetd.conf. ytalk precisa disso para funcionar corretamente.

Cap´ ıtulo 14

Seguran¸a c
Seguran¸a em um sistema ´ uma caracter´ c e ıstica muito importante: ela pode prevenir que pessoas ataquem sua m´quina, e tamb´m proteger dados sigilosos. Esse cap´ a e ıtulo inteiro ´ e dedicado a como proteger sua m´quina Slackware contra script kiddies, crackers e outros ladr˜es a o de informa¸˜es. Tenha em mente de que esse ´ s´ o come¸o de como proteger um sistema; co e o c seguran¸a ´ um processo, n˜o um estado. c e a

14.1

Desabilitando Servi¸os c

O primeiro passo ap´s instalar o Slackware deve ser desabilitar todos os servi¸os que vocˆ o c e n˜o vai precisar. Qualquer servi¸o pode ser um risco de seguran¸a, ent˜o ´ importante deixar a c c a e habilitado o m´ ınimo de servi¸os poss´ c ıveis (ou seja, s´ os que s˜o necess´rios). Os servi¸os o a a c s˜o iniciados a partir de duas ferramentas principais o inetd e os scripts de inicializa¸˜o (init a ca scripts). 14.1.1 Servi¸os iniciados com o inetd c

Muitos daemons que vem com o Slackware s˜o iniciados a partir do inetd (8). O inetd ´ a e um daemon que escuta em todas as portas usadas pelos servi¸os configurados para serem inic ciados por ele e inicia uma estˆncia do daemon relevante quando uma tentativa de conex˜o ´ a a e feita. Daemons iniciados pelo inetd podem ser desabilitados comentando-se a linha referente ao mesmo no arquivo /etc/inetd.conf. Para fazer isso, abra esse arquivo no seu editor de textos favorito (ex. vi) e vocˆ ver´ linhas similares a essa: e a

$telnet stream

tcp

nowait

root

/usr/sbin/tcpd

in.telnetd

Vocˆ pode desabilitar esse servi¸o, e qualquer outro que n˜o seja necess´rio para vocˆ, e c a a e comentado-os (ou seja, incluindo um # (sustenido) ao in´ da linha). A linha acima ficaria ıcio assim:

#telnet stream

tcp

nowait

root

/usr/sbin/tcpd

in.telnetd

Depois que o inetd for reiniciado, esse servi¸o estar´ desabilitado. Vocˆ pode reiniciar o c a e inetd com o comando:

# kill -HUP $(cat /var/run/inetd.pid)

127

128

CAP´ ITULO 14. SEGURANCA ¸

14.1.2

Servi¸os iniciados pelos scripts de inicializa¸˜o (init scripts) c ca

Os outros servi¸os iniciados durante o boot da m´quina s˜o iniciados a partir dos scripts c a a contidos em /etc/rc.d/. Esses podem ser desabilitados de duas maneiras: a primeira seria remover a permiss˜o de execu¸˜o do script de inicializa¸˜o desejado e a segunda seria comentar a ca ca as linhas relevantes no script de inicializa¸˜o. ca Por exemplo, o SSH ´ iniciado pelo seu pr´prio script /etc/rc.d/rc.sshd. Vocˆ pode desabilit´e o e a lo usando: # chmod -x /etc/rc.d/rc.sshd Para os servi¸os que n˜o possuem seu pr´prio script de inicializa¸˜o, vocˆ precisar´ comentar c a o ca e a as linhas relativas a eles em algum outro script de inicializa¸˜o para desabilit´-los. Por exemplo, ca a o daemon portmap ´ iniciado pelas seguintes linhas do arquivo /etc/rc.d/rc.inet2 : e # This must be running in order to mount NFS volumes. # Start the RPC portmapper: if [ -x /sbin/rpc.portmap ]; then echo "Starting RPC portmapper: /sbin/rpc.portmap" /sbin/rpc.portmap fi # Done starting the RPC portmapper. Esse servi¸o pode ser desabilitado adicionando um # ao inicio das linhas que ainda n˜o c a come¸am com #, assim: c # This must be running in order to mount NFS volumes. # Start the RPC portmapper: #if [ -x /sbin/rpc.portmap ]; then # echo "Starting RPC portmapper: /sbin/rpc.portmap" # /sbin/rpc.portmap #fi # Done starting the RPC portmapper. Essas mudan¸as apenas ter˜o efeito ap´s um reboot ou mudando para o runlevel 3 ou 4. c a o Vocˆ pode fazer isso digitando o seguinte em um console (vocˆ precisar´ se logar novamente e e a ap´s mudar para o runlevel 1): o # telinit 1 # telinit 3

14.2
14.2.1

Controle de Acesso ao Host
iptables

O iptables ´ o programa de configura¸˜o de filtros de pacotes para o Linux 2.4 e superior. e ca O kernel 2.4 (2.4.5, para ser exato) foi introduzido no Slackware (como uma op¸˜o) na vers˜o ca a 8.0 e tornou-se o padr˜o no Slackware 8.1. Essa se¸˜o cobre apenas o b´sico de sua utiliza¸˜o e a ca a ca vocˆ pode acessar o site http://www.netfilter.org/ para mais detalhes. Esses comandos podem e ser colocados no arquivo /etc/rc.d/rc.firewall, o qual deve ter permiss˜o de execu¸˜o para que a ca essas regras tenham efeito na inicializa¸˜o. Note que comandos incorretos do iptables podem ca at´ mesmo te impedir de acessar sua pr´pria m´quina. A menos que vocˆ esteja 100% confiante e o a e de suas habilidades, sempre tenha certeza de que vocˆ tem acesso local a m´quina. e a

14.2. CONTROLE DE ACESSO AO HOST

129

A primeira coisa que a maior parte das pessoas devem fazer ´ configurar a politica padr˜o e a para cada m´todo de entrada para DROP: e # iptables -P INPUT DROP # iptables -P FORWARD DROP Quando tudo ´ barrado, vocˆ pode come¸ar a liberar coisas. A primeira coisa a liberar ´ o e e c e trafego para se¸˜es que j´ estavam estabelecidas: co a # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT$ E para n˜o impedir qualquer aplica¸˜o que use o endere¸o de loopback, ´ inteligente adicionar a ca c e a seguinte regra: # iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT$ Essa regra permite qualquer tr´fego para e a partir do endere¸o 127.0.0.0/8 (127.0.0.0 a c 127.255.255.255) na interface de loopback (lo). Quando for criar regras, ´ uma boa id´ia ser o e e mais espec´ ıfico poss´ ıvel, para ter cereza de que suas regras n˜o v˜o permitir inadvertidamente a a algo malicioso. Dito isso, regras que permitem pouco resultam em mais regras e mais digita¸˜o. ca O pr´ximo passo seria permitir o acesso a servi¸os espec´ o c ıficos que rodem em sua m´quina. a Se, por exemplo, vocˆ quisesse rodar um servidor web na sua m´quina, vocˆ usaria uma regra e a e similar a essa: # iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT$ Isso permitir´ o acesso de qualquer m´quina ` porta 80 da sua m´quina atrav´s da interface a a a a e ppp0. Vocˆ pode querer restringir o acesso a esse servi¸o para que apenas certas m´quinas pose c a sam acess´-lo. Essa regra permite o acesso ao seu servidor web a partir do endere¸o 64.57.102.34: a c # iptables -A INPUT -p tcp -s 64.57.102.34 --dport 80 -i ppp0 -j ACCEPT$ Permitir o tr´fego ICMP pode ser util para efeitos de diagn´stico. Para fazer isso, vocˆ a ´ o e usuaria uma regra como essa: # iptables -A INPUT -p icmp -j ACCEPT$ Muitas pessoas tamb´m v˜o querer configurar o servi¸o de Tradu¸˜o de Endere¸os de Rede e a c ca c (Network Address Translation - NAT) em suas m´quinas que atuem como gateway, para que a outras m´quinas na sua rede possam acessar a Internet atrav´s dela. Vocˆ pode usar a seguinte a e e regra para fazer isso: # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE$ Vocˆ tamb´m precisar´ habilitar o IP forwarding. Vocˆ pode fazer isso temporariamente, e e a e usando o seguinte comando: # echo 1> /proc/sys/net/ipv4/ip\_forward Para habilitar o IP forwarding de uma forma permanente (ou seja, para que a mudan¸a c seja mantida ap´s o reboot), vocˆ precisar´ abrir o arquivo /etc/rc.d/rc.inet2 em seu editor de o e a textos favorito e mudar a seguinte linha:

130

CAP´ ITULO 14. SEGURANCA ¸

IPV4\_FORWARD=0 ...para isso: IPV4\_FORWARD=1 Para mais informa¸˜es sobre NAT, veja o NAT HOWTO. co 14.2.2 tcpwrappers

Os tcpwrappers controlam o acesso aos daemons de acordo com a aplica¸˜o, e n˜o de acordo ca a com o IP. Isso pode trazer uma camada extra de seguran¸a quando controles de acesso por c IP (ex. Netfilter) n˜o est˜o funcionando corretamente. Por exemplo, se vocˆ recompilar o a a e kernel mas esquecer de incluir o suporte ao iptables, sua prote¸˜o no n´ de IP falhar´ mas ca ıvel a os tcpwrappers ainda o ajudar˜o a proteger o seu sistema. a Os acessos aos servi¸os protegidos pelos tcpwrappers podem ser controlados usando os arc quivos /etc/hosts.allow e /etc/hosts.deny. A maioria das pessoas poder˜o ter uma unica linha em seus arquivos /etc/hosts.deny para a ´ barrar o acesso a todos os daemons como padr˜o. Essa linha ficaria assim: a ALL : ALL Quando isso ´ feito, vocˆ pode se concentrar em permitir o acesso a servi¸os para m´quinas, e e c a dom´ ınios, ou faixas de IP espec´ ıficos. Isso pode ser feito no arquivo /etc/hosts.allow, que segue o mesmo formato. Muitas pessoas come¸ariam aceitando todas as conex˜es do localhost. Isso pode ser feito da c o seguinte forma: ALL : 127.0.0.1 Para permitir o acesso ao SSHd a partir dos endere¸os 192.168.0.0/24, vocˆ poder´ usar c e a qualquer uma das duas regras a seguir: sshd : 192.168.0.0/24 sshd : 192.168.0. Tamb´m ´ poss´ restringir o acesso a m´quinas em certos dom´ e e ıvel a ınios. Isso pode ser feito usando a seguinte regra (note que isso se apoia na veracidade da entrada de DNS reverso para a m´quina que est´ conectando, logo eu n˜o recomendaria seu uso em m´quinas conectadas a a a a a Internet): sshd : .slackware.com

14.3
14.3.1

Mantendo-se Atualizado
Lista de emails slackware-security

Sempre que um problema de seguran¸a afeta o Slackware, um email ´ mandado a todos c e os assinantes da lista atrav´s do endere¸o slackware-security@slackware.com. Relat´rios s˜o e c o a enviados sobre vulnerabilidades em qualquer parte do Slackware, menos as relativas aos pacotes contidos no /extra ou no /pasture. Esses emails de notifica¸˜o de seguran¸a incluem detalhes ca c sobre como obter as vers˜es atualizadas dos pacotes do Slackware ou work-arounds, se existirem. o Informa¸˜es sobre como se inscrever nas listas de email do Slackware podem ser encontradas co na Se¸˜o 2.7. ca

14.3. MANTENDO-SE ATUALIZADO

131

14.3.2

O diret´rio /patches o

Sempre que s˜o liberados pacotes atualizados para uma vers˜o do Slackware (normalmente a a para corrigir um problema de seguran¸a, no caso de vers˜es do Slackware j´ liberadas), eles s˜o c o a a colocados no diret´rio /patches. O caminho completo para esses patches vai depender do mirror o que vocˆ estiver utilizando, mas ter˜o a seguinte forma /caminho/para/slackware-x.x/patches/. e a Antes de instalar esses pacotes, ´ uma boa id´ia verificar o md5sum do pacote. O md5sum(1) e e ´ um utilit´rio de linha de comando que cria uma ”chave”matem´tica ”´nica”para o arquivo. Se e a a u um unico bit do arquivo tiver sido modificado, ele gerar´ um valor diferente de md5sum para ´ a o arquivo. $ md5sum package-<ver>-<arch>-<rev>.tgz 6341417aa1c025448b53073a1f1d287d package-<ver>-<arch>-<rev>.tgz Vocˆ dever´ comparar esse valor com o valor contido no arquivo CHECKSUMS.md5 na raiz e a do diret´rio slackware-$VERSION (tamb´m contido no diret´rio /patches para os patches) ou o e o no email da lista slackware-security para o pacote em quest˜o. a Se vocˆ tiver um arquivo com os valores md5sum nele, vocˆ pode usa-lo como fonte dos e e md5sum com a op¸˜o -c do comando md5sum. ca # md5sum -c CHECKSUMS.md5 ./ANNOUNCE.10_0: OK ./BOOTING.TXT: OK ./COPYING: OK ./COPYRIGHT.TXT: OK ./CRYPTO_NOTICE.TXT: OK ./ChangeLog.txt: OK ./FAQ.TXT: FAILED Como vocˆ pode ver, qualquer arquivo com o md5sum correto ´ listado como OK enquanto e e os arquivos que est˜o com o md5sum incorreto s˜o listados como ”FAILED”. (Sim, isso foi um a a insulto a sua inteligˆncia. Porque vocˆ mexeu comigo?) e e

132

CAP´ ITULO 14. SEGURANCA ¸

Cap´ ıtulo 15

Arquivos Agrupados e Compactados
15.1 gzip

O gzip(1) ´ o programa de compress˜o da GNU. Ele recebe um arquivo e ent˜o o comprime. e a a Seu uso b´sico ´ como a seguir: a e $ gzip nome_do_arquivo

a O nome do arquivo resultante ser´ nome do arquivo.gz// e ele geralmente ser´ menor que a o arquivo de entrada. Observe que nome do arquivo ser´ substitu´ por nome do arquivo.gz. a ıdo a a a o Isto significa que nome do arquivo n˜o existir´ mais, somente existir´ sua c´pia comprimida. Arquivos texto regulares ser˜o bem compactados, enquanto que imagens jpeg, arquivos mp3 a e outros arquivos como estes n˜o ser˜o t˜o compactados, pois eles j´ est˜o em um formato a a a a a compactado. Esta forma b´sica de usar o programa de compress˜o mant´m um balanceamento a a e entre o tamanho final do arquivo e o tempo de compress˜o. A compress˜o m´xima pode ser a a a obtida da seguinte maneira: $ gzip -9 nome_do_arquivo}

Desta maneira a compress˜o do arquivo ser´ mais lenta, mas o arquivo resultante ser´ a a a t˜o pequeno quanto ogzip ´ capaz de comprim´ a e ı-lo. Usando valores mais baixos na op¸˜o do ca comando, a compress˜o ser´ mais r´pida, mas o arquivo n˜o ser´ t˜o compactado. a a a a a a Para descomprimir arquivos compactados com o gzip podem ser usados dois comandos, que s˜o na verdade um mesmo programa. gzip ir´ descomprimir qualquer arquivo com um extens˜o a a a reconhecida. As extens˜es reconhecidas s˜o: .gz, -gz, .z, -z, .Z, ou -Z. A primeira maneira ´ o a e executar gunzip(1) sobre um arquivo, da seguinte forma: $ gunzip nome_do_arquivo.gz

Isto ir´ deixar, no diret´rio corrente, uma vers˜o descomprimida do arquivo de entrada, e a o a a extens˜o .gz ser´ retirada do nome do arquivo. gunzip ´ de fato parte do gzip e ´ idˆntico a a e e e a gzip -d. Dessa forma, gzip ´ geralmente pronunciado gunzip, uma vez que o nome soa mais e legal assim. :ˆ)

15.2

bzip2

O bzip2 (1) ´ um programa de compress˜o alternativo instalado no Slackware Linux. Ele e a utiliza um algoritmo de compress˜o diferente do utilizado em gzip, o que resulta em algumas a vantagens e algumas desvantagens. A principal vantagem em favor de bzip2 ´ o tamanho do e arquivo compactado. bzip2 quase sempre ir´ comprimir melhor que gzip. Em alguns casos, isto a pode resultar em arquivos dramaticamente menores. Isto pode ser uma grande vantagem para pessoas com conex˜es lentas. Tamb´m lembre-se que, ao copiar um programa de um servidor o e
133

134

CAP´ ITULO 15. ARQUIVOS AGRUPADOS E COMPACTADOS

FTP p´blico, ´, em geral, uma boa regra de etiqueta na Internet pegar arquivos .bz2 em vez u e de arquivos .gz, j´ que isto resulta em uma menor sobrecarga, ajudando assim as generosas a pessoas que hospedam o servidor. A desvantagem de bzip2 ´ que ele utiliza mais recursos de processamento do que o gzip. Isto e significa que descomprimir um arquivo com bzip2 geralmente ser´ mais demorado e utilizar´ a a mais o processador do que o gzip o faria. Na escolha de um programa de compress˜o a ser a usado, vocˆ precisa considerar o tempo de compress˜o e o tamanho do arquivo compactado e e a determinar o que ´ mais importante. e O uso de bzip2 ´ quase idˆntico ao uso de gzip, de maneira que n˜o ser´ gasto muito tempo e e a a discutindo isso. Como gunzip, bunzip2 ´ idˆntico a bzip2 -d. A principal diferen¸a na pr´tica ´ e e c a e que bzip2 usa a extens˜o .bz2. a $ $ $ bzip2 nome_do_arquivo bunzip2 nome_do_arquivo.bz2 bzip2 -9 nome_do_arquivo

15.3

tar

tar (1) ´ o arquivador em fita da GNU (as fitas j´ foram a principal m´ e a ıdia para armazenar grandes volumes de dados!). Neste contexto, arquivar significar agrupar e comprimir um conjunto de arquivos para transferˆncia ou armazenamento. O tar recebe como entrada v´rios e a arquivos ou diret´rios e cria um unico grande arquivo, tamb´m chamado de pacote. Isto lhe o ´ e permite comprimir uma ´rvore de diret´rio inteira, o que ´ imposs´ apenas utilizando gzip ou a o e ıvel bzip2. O tar tem muitas op¸˜es de linha de comando, que s˜o explicadas na p´gina de manual co a a correspondente. Esta se¸˜o ir´ abordar apenas os casos mais comuns de uso do tar. ca a O uso mais comum para o tar ´ extrair (descomprimir e desagrupar) um pacote que vocˆ e e copiou de um servidor WEB ou FTP. A maioria desses pacotes ter˜o a extens˜o .tar.gz. Um a a pacote ´ comumente conhecido como um tarball. Isto significa que v´rios arquivos foram agrue a pados utilizando-se o tar e ent˜o compactados com o gzip. Vocˆ tamb´m poder´ encontrar a e e a tais pacotes com a extens˜o .tar.Z. Esta extens˜o significa a mesma coisa, mas ´ geralmente a a e encontrada em sistemas Unix mais antigos. Por outro lado, vocˆ pode encontrar um pacote com e a extens˜o .tar.bz2 em algum lugar. O c´digo fonte do kernel (n´cleo do sistema operacional) a o u ´ distribu´ desta forma, pois o pacote resultante ´ menor. Como vocˆ pode ter imaginado, e ıdo e e esse pacote resulta de v´rios arquivos compactados com o bzip2 e agrupados com o tar. Vocˆ a e pode obter todos os arquivos neste pacote utilizando o tar com alguns parˆmetros. Para se a desempacotar um tarball utiliza-se a op¸˜o -z como parˆmetro, o que significa que o gunzip ser´ ca a a utilizado para descomprimir os arquivos. A maneira mais comum para descomprimir e separar os arquivos de tais pacotes ´ a seguinte: e $ tar -xvzf nome_do_arquivo.tar.gz

S˜o absolutamente poucas op¸˜es. Ent˜o o que elas significam? A op¸˜o -x significa extrair. a co a ca Ela ´ importante, uma vez que diz exatamente para o tar o que fazer com o arquivo de entrada. e Neste caso, n´s dividiremos o pacote separando de volta os arquivos que foram agrupados. O -v o significa ser detalhado, ao inv´s de ser resumido. Dessa forma, ser˜o listados todos os arquivos e a ´ que est˜o sendo desagrupados. E perfeitamente aceit´vel n˜o usar esta op¸˜o se ela for algo que a a a ca lhe incomoda. De outra forma, vocˆ poderia usar -vv para a execu¸˜o ser muito mais detalhada e ca e listar ainda mais informa¸˜es sobre cada arquivo sendo extra´ co ıdo. A op¸˜o -z diz ao tar para ca primeiro descomprimir o pacote nome do arquivo.tar.gz com o gunzip. E finalmente, a op¸˜o ca -f indica ao tar que a pr´xima seq¨encia de caracteres na linha de comando representa o nome o u do arquivo sobre o qual ele executar´ as opera¸˜es. a co Existem algumas outras maneiras de se escrever este comando. Em sistemas mais antigos carentes de uma c´pia decente do GNU tar, vocˆ pode encontr´-lo expresso assim: o e a

15.3. TAR

135

$

gunzip nome_do_arquivo.tar.gz | tar -xvf -

Este comando ir´ descomprimir o arquivo e enviar a sa´ para o tar. Uma vez que o gzip a ıda escrever´ sua sa´ na sa´ padr˜o se assim lhe for inidicado, este comando escrever´ o arquivo a ıda ıda a a descompactado na sa´ padr˜o. O redirecionamento (|) ent˜o envia esta sa´ para o tar para ıda a a ıda desagrupamento. O - indica para o comando operar sobre a entrada padr˜o. Ele ir´ desagrupar a a o fluxo de dados que receber do gzip, escrevendo a sa´ no disco. ıda Outra maneira de escrever o primeiro comando ´ retirando-se o tra¸o que vem antes das e c op¸˜es, como a seguir: co $ tar xvzf nome_do_arquivo.tar.gz Vocˆ tamb´m pode encontrar um pacote compactado com bzip2. A vers˜o do tar que vem e e a com o Slackware Linux pode manipular esses pacotes assim como os compridos com gzip. Ao contr´rio da op¸˜o -z, vocˆ deve usar -j : a ca e $ tar -xvjf nome_do_arquivo.tar.bz2

´ E importante notar que o tar colocar´ os arquivos extra´ a ıdos no diret´rio corrente. Ent˜o, o a se vocˆ tem um pacote em /tmp que vocˆ quer extrair no seu diret´rio pessoal, existem poucas e e o op¸˜es. Primeiro, poderia-se mover o pacote para o seu diret´rio pessoal e ent˜o executar o co o a tar sobre ele. Segundo, vocˆ poderia especificar o caminho para o pacote na linha de comando. e Terceiro, vocˆ pode usar a op¸˜o -C para explodir o pacote em um determinado diret´rio. e ca o $ $ $ $ $ $ $ cd $HOME cp /tmp/nome_do_arquivo.tar.gz . tar -xvzf nome_do_arquivo.tar.gz cd $HOME tar -xvzf /tmp/nome_do_arquivo.tar.gz cd / tar -xvzf /tmp/nome_do_arquivo.tar.gz -C $HOME

Todos os comandos acima s˜o equivalentes. Em cada caso, os arquivos do pacote s˜o exa a tra´ ıdos em seu diret´rio pessoal e o pacote original compactado permanecer´ em seu lugar o a inicial. Sendo assim, o que adiante ser capaz de extrair estes pacotes se vocˆ n˜o ´ capaz de criar um e a e deles? Bem, o comando tar tamb´m cuida disso. Na maioria dos casos isto ´ t˜o f´cil quanto e e a a remover a op¸˜o -x e substitu´ pela op¸˜o -c. ca ı-la ca $ tar -cvzf nome_do_arquivo.tar.gz .

Neste comando, a op¸˜o -c diz ao tar para agrupar os arquivos criando um pacote, enquanto ca que a op¸˜o -z executa o gzip sobre o pacote para comprim´ ca ı-lo. nome do arquivo.tar.gz ser´ o a nome do pacote que vocˆ quer criar. e N˜o ´ sempre necess´rio especificar a op¸˜o -f, mas de qualquer maneira ´ uma boa pr´tica a e a ca e a fazˆ-lo. Sem isso, o comando tar envia sua sa´ para a sa´ padr˜o, o que ´ geralmente e ıda ıda a e desej´vel para redirecionamento da sa´ do tar para outro programa, como a seguir. a ıda $ tar -cv . | gpg --encrypt

Este comando cria um pacote n˜o compactado que agrupa o conte´do do diret´rio corrente e a u o ent˜o redireciona esse pacote para o gpg que criptografa e comprime o pacote, fazendo com que a seja praticamente imposs´ sua leitura por outra pessoa al´m daquela que conhece a chave ıvel e secreta.

136

CAP´ ITULO 15. ARQUIVOS AGRUPADOS E COMPACTADOS

15.4

zip

Por fim, existem dois utilit´rios que podem ser usados em arquivos zip. Estes arquivos s˜o a a muito comuns no mundo Windows, de maneira que o Linux tem programas para lidar com eles. O arquivo de compress˜o ´ denominado zip(1), e o de descompress˜o ´ denominado unzip(1). a e a e $ zip teste *

Isto criar´ o arquivo teste.zip, que ir´ conter todos os arquivos do diret´rio corrente. O zip a a o adicionar´ a extens˜o .zip automaticamente, de forma que n˜o h´ necessidade de inclu´ no a a a a ı-la nome do arquivo. Vocˆ tamb´m pode recursivamente comprimir os subdiret´rios existentes: e e o $ zip -r teste *

Bem como, descomprimir arquivos tamb´m ´ f´cil. e e a $ unzip teste.zip

Isto ir´ extrair todos os arquivos e diret´rios no arquivo teste.zip. a o Os utilit´rios zip tˆm v´rias op¸˜es avan¸adas para criar pacotes que podem se extrair a e a co c automaticamente, excluir arquivos, controlar o tamanho do arquivo compactado, mostrar o que acontecer´ e muito mais. Veja as p´ginas de manual dos comandos zip e unzip para descobrir a a como usar essas op¸˜es. co

Cap´ ıtulo 16

Vi
O vi(1) ´ o programa editor de texto padr˜o do Unix, e apesar de que domin´-lo n˜o seja e a a a t˜o essencial quanto j´ foi, ´ ainda algo que vale a pena. H´ algumas vers˜es (ou clones) do vi a a e a o dispon´ ıveis, incluindo vi, elvis,vile, e o vim. Ao menos um destes est´ dispon´ a ıvel em qualquer vers˜o do Unix, assim como no Linux. a Todas estas vers˜es incluem os mesmos recursos e comandos b´sicos, logo, aprender a usar um o a clone deve facilitar o aprendizado de outro. Com a variedade de editores de texto inclusos nas distribui¸˜es do Linux e variantes do Unix atualmente, muitas pessoas n˜o utilizam mais o vi. co a De qualquer maneira, ele permanece sendo o editor de texto mais universal do Unix e sistemas derivados. Dominar o vi significa que vocˆ nunca mais se sentar´ diante de uma m´quina Unix e a a e n˜o se sentir´ confort´vel com pelo menos um poderoso editor de texto. a a a O vi inclui diversos recursos como o destaque de sintaxe, formata¸˜o de c´digo, um poderoso ca o mecanismo de busca e substiui¸˜o, macros e outros. Estes recursos o fazem especialmente atraca tivo para programadores, desenvolvedores web e afins. Administradores de sistema v˜o apreciar a a poss´ automa¸˜o e integra¸˜o com o shell. ıvel ca ca No Slackware Linux, a vers˜o padr˜o do vi dispon´ ´ o elvis. Outras vers˜es - incluindo o a a ıvel e o vim e o gvim - est˜o dispon´ a ıveis se vocˆ tiver os pacotes apropriados instalados. O gvim ´ uma e e vers˜o gr´fica do vim que inclui barras de tarefas, menus destac´veis e caixas de di´logo. a a a a

16.1

Iniciando o vi

O vi pode ser iniciado a partir da linha de comando de v´rias maneiras. A mais simples dela a ´ apenas: e

$ vi

Uma sess˜o do vi. a

137

138

CAP´ ITULO 16. VI

Isto ir´ iniciar o vi com um buffer vazio. Neste ponto, vocˆ ver´ uma tela com quase nada a e a escrito. O vi est´ agora no modo de comando, esperando alguma a¸˜o sua. Para uma discuss˜o a ca a dos diversos modos do vi, veja a se¸˜o 16.2. Para finalizar a sess˜o e sair do vi, digite o seguinte: ca a :q Assumindo que n˜o tenha havido modifica¸˜es no arquivo, este comando ir´ fechar o vi. Se a co a houve modifica¸˜es, este comando ir´ adverti-lo e lhe dizer como ignor´-las. Ignorar modificaco a a co ¸˜es usualmente significa anexar um ponto de exclama¸˜o ap´s o q resultando em: ca o :q! O ponto de exclama¸˜o usualmente significa for¸ar alguma a¸˜o. N´s discutiremos esta e ca c ca o outras combina¸˜es mais adiante. co Vocˆ tamb´m pode inciar o vi com um arquivo pr´-existente. Por exemplo, o arquivo e e e /etc/resolv.conf poderia ser aberto da seguinte maneira: $ vi /etc/resolv.conf E finalmente, o vi pode ser iniciado em uma linha particular de um arquivo. Isto ´ especiale mente util para programadores quando uma mensagem de erro inclui a linha na qual houve o ´ erro. Por exemplo, vocˆ poderia iniciar o vi na linha 47 do arquivo /usr/src/linux/init/main.c e da seguinte maneira:

16.2. MODOS

139

$ vi +47 /usr/src/linux/init/main.c O vi mostrar´ o arquivo especificado e ir´ colocar o cursor na linha especificada. No caso a a em que vocˆ especificar uma linha que esteja ap´s o final do arquivo, o vi colocar´ o cursor na e o a ultima linha. Isto ´ especialmente util para programadores, pois eles podem pular exatamente ´ e ´ para o local no arquivo no qual ocorreu um erro, sem ter que procurar por ele.

16.2

Modos

O vi opera em v´rios modos, que s˜o usados para cumprir v´rias tarefas. Quando vocˆ a a a e inicia o vi, vocˆ ´ colocado dentro do modo de comando. Deste ponto, vocˆ pode lan¸ar e e e c diversos comandos para manipular texto, mover-se pelo arquivo, salvar, sair, e alternar entre os outros modos. A edi¸˜o de texto ´ feita em modo de inser¸˜o. Vocˆ pode rapidamente alternar ca e ca e entre os modos com uma variedade de combina¸˜es de teclas, que s˜o explicadas abaixo. co a 16.2.1 Modo de Comando

Ao entrar no vi vocˆ ´ primeiramente colocado no modo de comando. A partir deste modo, ee vocˆ n˜o pode digitar texto ou editar algo que j´ esteja na tela diretamente. Entretanto, vocˆ e a a e pode manipular o texto, pesquisar, fechar, salvar, carregar novos arquivos e muito mais. O texto que segue ser´ apenas uma introdu¸˜o ao modo de comando. Para uma descri¸˜o dos a ca ca ca v´rios comandos, veja se¸˜o 16.7. a Provavelmente o comando mais usado no modo de comando ´ a alterna¸˜o para o modo de e ca inser¸˜o. Isto ´ feito pressionando-se a tecla i. O cursor muda de formato, e -- INSERT –”´ ca e e mostrado no inferior da tela (note que isto n˜o acontece em todos os clones do vi). De l´, todas a a os caracteres digitados s˜o enviados ao buffer corrente e s˜o mostrados na tela. Para voltar ao a a modo de comando, pressione a tecla ESCAPE. O modo de comando ´ tamb´m usado ao mover-se pelo arquivo. Em alguns sistemas, vocˆ e e e pode usar as setas do teclado para mover-se. Em outros sistemas, vocˆ pode precisar usar as e teclas hjkl. Aqui est´ uma simples listagem de como as teclas s˜o usadas para mover-se pelo a a arquivo: h j k l move-se move-se move-se move-se um caractere ` esquerda a para um caractere abaixo para um caractere acima um caractere ` direita a

Simplesmente pressione uma tecla para mover-se. Como vocˆ ver´ posteriormente, estas e a teclas podem ser combinadas com um n´mero para mover-se de forma mais eficiente. u Muitos dos comandos que vocˆ usar´ no modo de comando iniciam-se com dois-pontos. Por e a exemplo, para sair, teclamos :q, como explicado anteriormente. Os dois-pontos simplesmente indicam que trata-se de um comando, enquanto que a letra q diz ao vi para encerrar a sess˜o a e sair. Outros comandos s˜o formados por um n´mero opcional, seguido por uma letra. Estes a u comandos n˜o tem dois-pontos antes deles, e geralmente s˜o usados para manipular o texto. a a Por exemplo, para apagarmos uma linha de um arquivos digitamos dd. Isto ir´ remover a a linha na qual est´ o cursor. Lan¸ando o comando 4dd diria ao vi para remover a linha na qual a c est´ o cursor e as 3 seguintes. Em geral, o n´mero diz ao vi quantas vezes executar o comando a u dado. Vocˆ pode combinar um n´mero com as teclas de movimento para mover-se por v´rios e u a caracteres de uma s´ vez. Por exemplo, 10k moveria o cursor 10 linhas acima na tela. o O modo de comando tamb´m pode ser usado para copiar e colar, inserir texto e ler outros e arquivos no buffer corrente. Para copiar um trecho do texto usamos a tecla y (y vem da palavra inglesa yank, que em portugues significa ”arrancar”, ”extrair”). Para copiarmos a linha corrente

140

CAP´ ITULO 16. VI

teclamos yy, e este comando pode ser prefixado com um n´mero para extrair mais linhas. u Ent˜o, mova-se para o local para o qual o texto extraido deve ser copiado e pressione a tecla a p. O texto ´ colado na linha posterior ` linha corrente. e a Para cortar uma parte do texto digitamos dd, e a tecla p pode ser usada para colar o texto recortado novamente no arquivo. Ler texto de outro arquivo ´ um procedimento simples. e Apenas digite :r, seguido por um espa¸o e o nome do arquivo que cont´m o texto a ser inserido. c e O conte´do do arquivo ser´ colado no buffer corrente na linha ap´s a que se encontra o cursor. u a o Os clones mais sofisticados do vi tamb´m cont´m complementa¸˜o de nome de arquivo similiar e e ca a ` do shell. O uso final que ser´ mostrado ´ a pesquisa. O modo de comando permite pesquisas simples, a e assim como comandos complicados de busca e substitui¸˜o que usufruem de uma poderosa ca vers˜o de express˜es regulares. Uma completa discuss˜o sobre express˜es regulares est´ al´m a o a o a e do escopo deste cap´ ıtulo, logo, esta se¸˜o cobrir´ somente simples meios de pesquisa. ca a Uma simples busca ´ feita pressionando-se a tecla /, seguida do texto pelo qual vocˆ est´ e e a procurando. O vi ir´ fazer a pesquisa do ponto em que est´ o cursor at´ o fim do arquivo, a a e parando no momento em que a pesquisa for satisfeita. Note que buscas inexatas ir˜o fazer a com que o vi pare. Por exemplo, uma busca por ”the” ir´ fazer com que o vi pare em ”then”, a ”therefore”, e em outras palavras. Isto acontece porque todas estas palavras contˆm o trecho e de pesquisa ”the”. Ap´s o vi encontrar o primeiro termo que casa com o termo de pesquisa, vocˆ pode continuar o e pesquisando pelo termo simplesmente pressionando a tecla / seguida de um enter. Vocˆ tamb´m e e pode pesquisar se o termo de pesquisa existe em algum trecho anterior ` localiza¸˜o do cursor a ca substituindo a barra pelo caractere ?. Por exemplo, para procurar por ”the” em algum ponto anterior ao cursor, digitamos ?the. 16.2.2 Modo de inser¸˜o ca

A inser¸˜o e substitui¸˜o de texto ´ feita no modo de inser¸˜o. Como discutido anteriormente, ca ca e ca vocˆ pode ir para o modo de inser¸˜o pressionando a tecla i no modo de comando. Ent˜o, todo e ca a o texto que vocˆ digita ´ enviado ao buffer corrente. Pressionar a tecla ESCAPE lhe levar´ e e a ao modo de comando. A substitui¸˜o de texto pode ser feita de algumas maneiras. Da linha de comando, pressionandoca se a tecla r permitir´ que vocˆ substitua um caractere que est´ sob o cursor. Apenas digite o a e a novo caractere e ele substituir´ o caractere que est´ sob o cursor pelo caractere digitado. Vocˆ a a e ser´ ent˜o imediatamente mandado devolta ao modo de comando. Pressionando-se a tecla R a a vocˆ poder´ substituir quantos caracteres vocˆ quiser. Para sair deste modo de substitui¸˜o, e a e ca apenas tecle ESCAPE para retornar ao modo de comando. Ainda h´ outra maneira de se alternar entre o modo de inser¸˜o e o de substitui¸˜o. a ca ca Pressionando-se a tecla INSERT a partir do modo de comando, vocˆ ser´ levado ao modo e a de inser¸˜o. Uma vez que vocˆ se encontra no modo de inser¸˜o, a tecla INSERT servir´ como ca e ca a uma tecla de alternˆncia entre o modo de inser¸˜o e substitui¸˜o. Ao pression´-la pela primeira a ca ca a vez vocˆ estar´ no modo de substitui¸˜o. Pressionando-a novamente vocˆ ser´ enviado ao modo e a ca e a de inser¸˜o. ca

16.3

Abrindo Arquivos

O vi permite que vocˆ abra arquivos a partir do modo de comando assim como se especifica e a abertura de um arquivo pela linha de comando. Para abrir o arquivo /etc/lilo.conf : :e /etc/lilo.conf Se vocˆ tiver feito altera¸˜es no buffer corrente que n˜o tenham sido salvas, o vi ir´ reclamar. e co a a Vocˆ ainda pode abrir o arquivo sem salvar o buffer corrente digitando :e!, seguido de um espa¸o e c

16.4. SALVANDO ARQUIVOS

141

e do nome do arquivo. Em geral, as advertˆncias do vi podem ser suprimidas adicionando-se e um ponto de exclama¸˜o no final do comando. ca Se vocˆ quiser reabrir o arquivo corrente, vocˆ pode fazˆ-lo simplesmente digitando e!. Isto ´ e e e e particularmente util caso vocˆ tenha bagun¸ado o arquivo de alguma maneira e queira reabri-lo. ´ e c Alguns clones do vi (por exemplo, o vim) permitem que m´ltiplos buffers sejam abertos ao u mesmo tempo. Por exemplo, para abrir o arquivo 09-vi.sgml que est´ no meu diret´rio home a o enquanto outro arquivo est´ aberto, eu poderia digitar: a :split \~{}/09-vi.sgml O novo arquivo ´ exibido na metade superior da tela, e o arquivo que j´ estava aberto ´ e a e exibido na metade inferior da tela. H´ v´rios comandos para manipula¸˜o da tela dividida, e a a ca muitos destes comandos lembram o Emacs O melhor lugar para procurar por estes comandos seria a p´gina de manual do seu clone do vi. Note que muitos clones n˜o suportam a id´ia de a a e divis˜o de tela, ent˜o vocˆ pode n˜o estar apto a utiliz´-la. a a e a a

16.4

Salvando Arquivos

H´ algumas maneiras de se salvar arquivos no vi. Se vocˆ quiser salvar o buffer corrente a e para o arquivo bah, vocˆ poderia digitar: e :w bah Uma vez que vocˆ tenha salvado o arquivo pela primeira vez, para salv´-lo novamente basta e a digitar :w. Qualquer altera¸˜o ser´ gravada no arquivo. Ap´s vocˆ ter salvado o arquivo, vocˆ ca a o e e ´ jogado de volta para dentro do modo de comando. Se vocˆ quiser salvar o arquivo e encerrar e e o vi (uma opera¸˜o muito comum), vocˆ podeira digitar :wq. Que diz ao vi para salvar o buffer ca e corrente para o arquivo e encerrar a sess˜o, voltando ao shell. a Se por acaso, vocˆ quiser salvar um arquivo cujas permiss˜es sejam apenas de leitura, vocˆ e o e poderia fazˆ-lo adicionando um ponto de exclama¸˜o ap´s o comando de grava¸˜o, da seguinte e ca o ca forma: :w! Entretanto, haver´ casos em que vocˆ n˜o poder´ gravar no arquivo (por exemplo, caso vocˆ a e a a e esteja tentando editar um arquivo que seja de outro usu´rio). Quando isto acontecer, o vi ir´ a a lhe dizer que n˜o foi poss´ salvar o arquivo. Se vocˆ realmente quiser editar o arquivo, vocˆ a ıvel e e ter´ que edit´-lo como usu´rio root ou (de preferˆncia) como o usu´rio dono do arquivo. a a a e a

16.5

Encerrando o vi

Uma maneira de encerrar o vi ´ atrav´s do comando :wq, que ir´ salvar o buffer corrente e e a para o arquivo antes de encerrar a sess˜o. Vocˆ tamb´m pode encerrar a sess˜o sem salvar a e e a as altera¸˜es feitas no arquivo com o comando :q ou (mais comum) com o comando :q!. A co segunda maneira ´ utilizada quando vocˆ tiver modificado o arquivo, mas n˜o desejar salvar as e e a altera¸˜es feitas. co Pode acontecer da sua m´quina ou o vi travarem. Entretanto, ambos elvis e o vim tentam a minimizar os danos. Ambos os editores salvam ocasionalmente o buffer aberto para um aquivo tempor´rio. Este arquivo ´ usualmente nomeado de forma similar ao arquivo aberto, mas com a e um ponto no in´ do nome. Isto faz com que o arquivo seja oculto. ıcio Este arquivo tempor´rio ´ removido uma vez que o editor ´ encerrado sob condi¸˜es normais. a e e co Isto significa que a c´pia tempor´ria existir´ para o caso de haver algum problema. Quando o a a vocˆ voltar a editar o arquivo novamente, vocˆ ser´ questionado sobre qual a¸˜o tomar. Na e e a ca maioria dos casos, uma larga quantia do seu trabalho n˜o salvo pode ser recuperada. O elvis a tamb´m lhe enviar´ um e-mail informando da existˆncia de uma c´pia de backup. e a e o

142

CAP´ ITULO 16. VI

16.6

Configura¸˜o do vi ca

O seu clone do vi pode ser configurado de v´rias maneiras. a Uma variedade de comandos podem ser dados no modo de comando para configurar o vi do jeito que vocˆ gosta. Dependendo do seu editor, vocˆ pode habilitar recursos para facilitar a e e programa¸˜o (como o destaque de sintaxe, auto-identa¸˜o, e outros mais), configurar macros ca ca para automatizar tarefas, habilitar substitui¸˜es textuais, e muito mais. co Quase todos estes comandos podem ser colocados dentro de um arquivo de configura¸˜o no ca seu diret´rio home. No elvis seria o arquivo .exrc, enquanto que no vim seria o arquivo .vimrc. o A maioria dos comandos de configura¸˜o que podem ser digitados no modo de comando, podem ca ser colocados no arquivo de configura¸˜o. Isto inclui informa¸˜es de configura¸˜o, substitui¸˜es ca co ca co textuais, macros, e mais. A discuss˜o de todas essas op¸˜es e as diferen¸as entre os editores ´ um assunto muito a co c e complicado. Para maiores informa¸˜es, verifique a p´gina de manual ou o site do seu editor vi co a predileto. Alguns editores (como o vim) possuem uma extensa documenta¸˜o dentro do editor ca que pode ser acessada com o comando :help, ou algo similar. Vocˆ tamb´m pode checar o livro e e da O’Reilly chamado Learning the //vi Editor// escrito por Lamb e Robbins. Muitos programas comuns do Linux carregar˜o um arquivo texto no vi por padr˜o. Por a a exemplo, ao se editar as tarefas agendadas do sistema (crontabs) ser´ iniciado o vi por padr˜o. a a Se vocˆ n˜o gosta do vi e gostaria que outro editor fosse iniciado ao inv´s dele, tudo o que vocˆ e a e e precisa fazer ´ setar a vari´vel de ambiente VISUAL para o editor de sua preferˆncia. Para e a e maiores informa¸˜es sobre como setar vari´veis de ambiente, veja a se¸˜o chamada Vari´veis co a ca a de Ambiente no cap´ ıtulo 8. Se vocˆ deseja ter certeza de que o seu editor ser´ o padr˜o toda e a a vez que vocˆ logar-se, adicione sete a vari´vel VISUAL dentro dos seus arquivos .bash profile e a ou .bashrc.

16.7

Comandos do Vi

Esta se¸˜o ´ uma referˆncia r´pida aos comandos mais comuns do vi. Alguns destes j´ foram ca e e a a discutidos anteriormente no cap´ ıtulo, enquanto outros n˜o. a Movimento Opera¸˜o ca Tecla esquerda, abaixo, acima, direita h, j, k, l Para o fim da linha $ Para o in´ da linha ıcio ˆ Para o fim do arquivo G Para o in´ do arquivo ıcio :1 Para a linha 47 :47 Editando Opera¸˜o ca Removendo uma linha Removendo cinco linhas Substituindo um caractere Removendo um caractere Removendo dez caracteres Defazer a ultima a¸˜o ´ ca Unir linhas atual e seguintes Substituir velho por novo, globalmente Localizando Tecla dd 5dd r x 10x u J %s’velho’novo’g

16.7. COMANDOS DO VI

143

Opera¸˜o ca Procurar por asdf Procurar atr´s por asdf a Repetir a ultima busca para frente ´ Repetir a ultima busca para tr´s ´ a Repetir a ultima busca, na mesma dire¸˜o ´ ca Repetir a ultima busca, na dire¸˜o oposta ´ ca Salvando e Saindo Opera¸˜o ca Sair Sair sem salvar Salvar e sai Salvar, sem sair Recarregar o arquivo atualmente aberto Salvar o buffer para um arquivo asdf Abrir o arquivo hejaz Ler o arquivo asdf dentro do buffer Ler a sa´ do comando ls dentro do buffer ıda ’

Tecla /asdf ?asdf / ? n N

Tecla :q :q! :wq :w :e! :w asdf :e hejaz :r asdf :r !ls

144

CAP´ ITULO 16. VI

Cap´ ıtulo 17

Emacs
Enquanto o vi (juntamente com seus clones) ´ sem d´vida o editor mais presente em sistemas e u derivados do Unix, O Emacs vem em segundo lugar. Ao inv´s de usar diferentes ”modos”, como e o vi, ele utiliza combina¸˜es das teclas Control e Alt para dar comandos, da mesma forma co que vocˆ pode usar combina¸˜es das teclas Control e Alt em um outro processador de textos e co e em muitas outras aplica¸˜es afim de executar certas fun¸˜es. (Apesar de ser not´vel que os co co a comandos raramente se correspondem; ent˜o enquanto muitas aplica¸˜es modernas utilizam a co Ctrl C / X/ V para copiar, recortar e colar, o Emacs utiliza teclas diferentes e atualmente um mecanismo um tanto quanto diferente para isto.) Tamb´m diferentemente do vi, que ´ um (excelente) editor e nada mais, o Emacs ´ um proe e e grama com quase infinitas capacidades. O Emacs ´ (em sua maior parte) escrito em linguagem e Lisp, que ´ uma linguagem de programa¸˜o muito poderosa que tem a caracter´ e ca ıstica peculiar de que todo programa escrito nela ´ automaticamente um compilador Lisp em si. Isto significa que e o usu´rio pode estender o Emacs, e de fato escrever programas inteiramente novos no Emacs. a Como resultado disto, o Emacs n˜o ´ mais somente um editor. H´ muitos pacotes adicionais a e a para o Emacs dispon´ ıveis (o c´digo fonte do programa vem com o programa) que provˆem o e todas as esp´cies de funcionalidades. Muitos destas s˜o relacionados ` edi¸˜o de texto, que ´ e a a ca e dentre todas as demais, a tarefa b´sica do Emacs mas que n˜o se limitam a isto. Existem por a a exemplo alguns programas de planilhas eletrˆnicas para o Emacs, base de dados, jogos, clientes o de e-mail e not´ ıcias (sendo o Gnus o mais famoso deles), etc. Existem duas vers˜es principais do Emacs: O GNU Emacs (que ´ a vers˜o que vem com o o e a Slackware) e o XEmacs. O ultimo n˜o ´ uma vers˜o do Emacs para rodar sob o X. De fato, ´ a e a ambos Emacs e XEmacs rodam no console assim como sob o X. O XEmacs foi iniciado como um projeto para limpar e arrumar o c´digo fonte do Emacs. Atualmente, ambas as vers˜es o o est˜o sendo ativamente desenvolvidas, e h´ de fato muita intera¸˜o entre os dois times de a a ca desenvolvimento. Para o cap´ ıtulo presente, ´ indiferente se vocˆ usa o Emacs ou o XEmacs, as e e diferen¸as entre eles n˜o s˜o relevantes para o usu´rio final. c a a a

17.1

Iniciado o Emacs

O Emacs pode ser inciado no shell simplesmente digitando-se emacs. Se vocˆ estiver rodando e o X, o Emacs ir´ (normalmente) surgir com sua pr´pria janela, usualmente com uma barra de a o menu no topo, onde vocˆ pode encontrar as fun¸˜es mais importantes. Na inicializa¸˜o, o Emacs e co ca ir´ primeiramente mostrar uma mensagem de boas vindas, e ent˜o ap´s alguns segundos ele ir´ a a o a jog´-lo no *scratch* buffer. (veja se¸˜o 17.2). a ca
145

146

CAP´ ITULO 17. EMACS

Vocˆ tamb´m pode iniciar o Emacs com um arquivo existente digitando e e $ emacs /etc/resolv.conf Isto far´ com que o Emacs carregue o arquivo especificado quanto inciar, pulando a mensagem a de boas vindas. 17.1.1 Teclas de Comando

Como mencionado acima, o Emacs utiliza combina¸˜es das teclas Control e Alt para coco mandos. A conven¸˜o usual ´ escrever estes com C letra e M- letra, respectivamente. Ent˜o ca e a C x significa Control x, e M- x significa Alt x. (A letra M- ´ usada ao inv´s de A porque e e originalmente n˜o existia a tecla Alt e sim a tecla Meta. A tecla Meta desapareceu dos a teclados dos computadores, e no Emacs a tecla Alt tomou ent˜o a sua fun¸˜o.) a ca Muitos comandos do Emacs consistem de sequˆncias e combina¸˜es de teclas. Por exemplo, e co C x C c (que ´ Control x seguida de Control c) encerra o Emacs, C x C ssalva o arquivo e atual. Mantenha em mente que C x C b n˜o ´ o mesmo que C x b. A primeira significa a e Control x seguida de Control b, enquanto a segunda significa Control x seguida apenas de ’b’.

17.2

Buffers

No Emacs, o conceito de buffers ´ essencial. Todo arquivo que vocˆ abre ´ carregado em e e e seu pr´prio buffer. Al´m disto, o Emacs possui alguns buffers especiais, que n˜o cont´m um o e a e arquivo, mas s˜o usados para outras coisas. Tais buffers especiais usualmente tˆm um nome a e que come¸a e termina com um asterisco. Por exemplo, o buffer que o Emacs mostra quando ´ c e primeiramente inciado, ´ o t˜o famoso *scratch* buffer. e a No *scratch* buffer, vocˆ pode digitar texto normalmente, mas o texto que ´ digitado n˜o ´ e e a e salvo quando o Emacs ´ fechado. e H´ um outro buffer especial sobre o qual vocˆ precisa saber, e este ´ o minibuffer. Este a e e buffer consiste de apenas uma linha, e est´ sempre na tela: ele ´ a ultima linha da janela do a e ´ Emacs, abaixo da barra de status para o buffer em uso. O minibuffer ´ onde o Emacs mostra e mensagens para o usu´rio, e ´ tamb´m o lugar onde os comandos, que requerem alguma entrada a e e do usu´rio, s˜o executados. Por exemplo, quando vocˆ abre um arquivo, o Emacs ir´ perguntar a a e a pelo nome do arquivo no minibuffer. A Mudan¸a de um buffer para outro pode ser feita com c

17.3. MODOS

147

o comando C x b. Isto ir´ question´-lo sobre o nome de um buffer (o nome de um buffer ´ a a e geralmente o nome do arquivo que vocˆ est´ editando nele), ´ dado uma escolha padr˜o, que e a e a ´ normalmente o nome do buffer no qual vocˆ esteve antes de ter mudado para, ou criado, o e e buffer atual. Vocˆ ser´ mandado para este buffer padr˜o caso pressione a tecla Enter. e a a Se vocˆ deseja ir para outro buffer que n˜o seja o padr˜o sugerido pelo Emacs, basta que e a a vocˆ digite o nome do buffer desejado. Note que vocˆ pode usar a t˜o famosa tecla Tab para e e a fazer a completa¸˜o de nome aqui: digite as primeiras letras do nome do buffer e pressione a ca tecla Tab; O Emacs ir´ ent˜o completar o nome do buffer. A completa¸˜o com a tecla Tab a a ca funciona em todas as partes do Emacs em que ela fa¸a sentido. c Vocˆ pode obter uma lista dos buffers abertos pressionando-se C x C b. Este comando e ir´ usualmente dividir a tela em duas, mostrando o buffer no qual vocˆ estava trabalhando na a e metade superior da tela, e o novo buffer chamado *Buffer List* na metade inferior da tela. Este buffer cont´m uma lista de todos os buffers, seus tamanhos e modos, e os arquivos, se e houver algum que aqueles buffers listados estejam visitando. Vocˆ pode sair desta tela dividida e digitando C x 1. Nota: Sob o X, a lista de buffers tamb´m est´ dispon´ no menu Buffer na barra de menu. e a ıvel

17.3

Modos

Todo buffer no emacs tem a si associado, um modo. Este modo ´ muito diferente da id´ia e e de modos do vi: um modo lhe diz em que tipo de buffer vocˆ se encontra. Por exemplo, existe e o modo texto (text-mode) para arquivos normais de texto, por´m existem tamb´m modos tais e e como o modo c (c-mode) para edi¸˜o de programas escritos em C, modo sh (sh-mode) para ca edi¸˜o de shell scripts, modo latex (latex-mode) para edi¸˜o de arquivos latex, modo mail ca ca (mail-mode) para edi¸˜o de e-mail, not´ ca ıcias, mensagens e etc. Um modo provˆ customiza¸˜es e e co funcionalidades especiais que s˜o uteis para o tipo de arquivo que vocˆ est´ editando. Tamb´m a ´ e a e ´ poss´ para um modo, a redefini¸˜o de teclas e comandos. Por exemplo, no modo texto, e ıvel ca a tecla Tab simplesmente pula para a pr´xima tabula¸˜o e p´ra, mas em muitos modos de o ca a linguagens de programa¸˜o, a tecla Tab identa a linha atual de acordo com a pronfundidade ca do bloco no qual a linha se encontra. Os modos mencionados acima s˜o chamados de modos principais. Cada buffer tem exataa mente um modo principal. Adicionalmente, um buffer pode ter um ou mais modos secund´rios. a Um modo secund´rio provˆ recursos adicionais que podem ser uteis para certas tarefas de a e ´ edi¸˜o. Por exemplo, se vocˆ pressiona a tecla INSERT, vocˆ invoca o modo de subscri¸˜o ca e e ca (overwrite-mode), que faz o que vocˆ sup˜e que fa¸a. H´ tamb´m um modo de auto preene o c a e chimento (auto-fill-mode), que ´ util em combina¸˜o com o modo texto (text-mode) ou com o e´ ca modo latex (latex-mode): ele far´ com que cada linha que vocˆ digita seja automaticamente a e embalada, uma vez que a linha alcance um certo n´mero de caracteres. Sem o modo de auto u preenchimento (auto-fill-mode), vocˆ teria que digitar M- q para preencher um par´grafo. (Que e a vocˆ pode tamb´m utilizar para reformatar um par´grafo ap´s ter editado algum texto e ele e e a o tenha deixado de ser preenchido.) 17.3.1 Abrindo Arquivos

Para abrir um arquivo no Emacs, digite: C-x C-f O Emacs ir´ lhe perguntar o nome do arquivo que vocˆ deseja abrir, preechendo algum a e caminho padr˜o para vocˆ (que ´ usualmente ˜/ ). Ap´s vocˆ digitar o nome do arquivo que a e e o e deseja abrir (vocˆ tamb´m pode usar aqui a tecla Tab para completar) e pressionar a tecla e e ENTER , o Emacs ir´ abrir o arquivo em um novo buffer e mostrar este buffer na tela. a

148

CAP´ ITULO 17. EMACS

Nota: O Emacs ir´ automaticamente criar um novo buffer, ele n˜o ir´ carregar o arquivo a a a no buffer atual. Para criar um novo arquivo no Emacs, vocˆ n˜o pode apenas ir digitando algo. Vocˆ primeie a e ramente deve criar um buffer para ele, e dar um nome para o arquivo. Vocˆ faz isso digitando e C x C f e digitando um nome para o arquivo, exatamente como se vocˆ estivesse abrindo um e arquivo existente. O Emacs ir´ notar que o arquivo cujo nome vocˆ digitou n˜o existe, e criar´ a e a a um novo buffer e informar a cria¸˜o de um novo arquivo (New file) no minibuffer. ca Quando vocˆ digita C x C f e ent˜o entra com um nome de um diret´rio ao inv´s de um e a o e nome de arquivo, o Emacs ir´ criar um novo buffer no qual vocˆ ir´ encontrar uma lista de a e a todos os arquivos existentes naquele diret´rio. Vocˆ pode mover o cursor para o arquivo que o e vocˆ est´ procurando e digitar, e o Emacs ir´ abr´ e a a ı-lo. (H´ de fato muitas outras a¸˜es que a co pode tomar aqui, tais como apagar, renomear e mover arquivos, etc. O Emacs est´ agora no a dired-mode, que ´ basicamente um simples gerenciador de arquivos.) e Quando vocˆ estiver digitado C-x C-f e derepente mudar de id´ia, vocˆ pode digitar C-g e e e para cancelar a a¸˜o. C-g funciona em quase todo lugar que vocˆ desejar cancelar uma a¸˜o ca e ca ou comando que vocˆ estiver iniciado mas que n˜o queira terminar. e a

17.4

Edi¸˜o B´sica ca a

Quando vocˆ tiver aberto um arquivo, vocˆ obviamente poder´ mover-se ele com o cursor. e e a As teclas do cursor e PgUp, PgDn fazem o que vocˆ possa supor. Home e End pulam e para o in´ e final da linha. (Em vers˜es mais antigas, elas podem pular para o in´ e fim do ıcio o ıcio buffer.) Entretanto, h´ tamb´m a combina¸˜o das teclas Control e Meta (Alt) para mover o a e ca cursor. Porque vocˆ n˜o precisa mover suas m˜os para outra parte do teclado para utiliz´-las, e a a a elas s˜o muito mais facilmente acess´ a ıveis uma vez que vocˆ se acostume com elas. Os mais e importantes comandos semelhantes est˜o listados na tabela abaixo. a Comandos B´sicos de Edi¸˜o a ca Comando* C-b C-f C-n C-p C-a C-e M-b M-f M-} M-{ M-a M-e C-d M-d C-v M-v M-< M-> CC-k C-s C-r

Resultado** volta um caractere avan¸a um caractere c vai para a linha abaixo vai para a linha acima vai para o in´ da linha ıcio vai para o fim da linha vai para a palavra anterior vai para a palavra seguinte vai para o par´grafo seguinte a vai para o par´grafo anterior a vai para a senten¸a anterior c vai para a senten¸a seguinte c apaga o caractere sob o cursor apagar at´ o fim da palavra atual e abaixa uma tela (assim como a tecla., PgDn) sobe uma tela (assim como a tecla., PgUp) vai para o in´ do buffer ıcio vai para o fim do buffer desfaz a ultima altera¸˜o (pode ser repetido); note que vocˆ realmente tem que digitar Shif ´ ca e apaga at´ o fim da linha atual e efetua uma busca ` frente do cursor at´ o fim do arquivo a e efetua uma busca anteriormente ao cursor at´ o in´ do arquivo e ıcio

17.5. SALVANDO ARQUIVOS

149

Note que muitos comandos com a tecla Meta s˜o paralelos aos comandos com a tecla a Control exceto pelo fato de que eles operam em amplas unidades: enquanto C-f avan¸a um c caractere, M-f avan¸a em uma palavra inteira, etc. c Tamb´m note que M-<** e M-> requerem que vocˆ digite Shift Alt comma e Shift Alt e e dot respectivamente, desde que &lt; e &gt; estejam ligadas Shift comma e Shift dot.(A menos ´ claro que vocˆ tenha um teclado em condi¸˜es diferentes (layout), do teclado padr˜o e e co a US.) Note que C k apagar (apaga, como ´ freq¨entemente chamada) todo o texto ap´s o cursor e u o at´ o fim da linha, por´m n˜o apaga a linha em si (por exemplo, n˜o apaga a indica¸˜o de nova e e a a ca linha). Ele apenas apaga a linha se n˜o houver texto ap´s o cursor. Em outras palavras, para a o apaga uma linha completamente, vocˆ tem que posicionar o cursor no in´ e pressionar C k e ıcio duas vezes: uma para apaga o texto na linha e uma para apagar a linha em si.

17.5

Salvando Arquivos

Para salvar um arquivo, vocˆ deve digitar e C-x C-s O Emacs n˜o ir´ lhe solicitar um nome para o arquivo, o buffer atual apenas ser´ salvo a a a para o arquivo que foi carregado inicialmente nele. Se vocˆ deseja salvar o seu texto em outro e arquivo, digite C-x C-w Quando vocˆ salva o arquivo pela primeira vez nesta sess˜o, o Emacs ir´ normalmente salvar e a a a antiga vers˜o do seu arquivo em uma c´pia de seguran¸a (arquivo de backup), que possui a o c o mesmo nome acompanhado de um sinal de til (˜): ent˜o se vocˆ est´ editando um arquivo a e a //cars.txt//, o Emacs criar´ uma c´pia de seguran¸a chamada //cars.txt˜//. Esta c´pia de a o c o seguran¸a ´ uma c´pia do arquivo que vocˆ abriu. Enquanto vocˆ estiver trabalhando, o Emacs c e o e e ir´ regularmente criar automaticamente uma c´pia do trabalho que vocˆ est´ fazendo, para um a o e a arquivo nomeado com sinais de hash: #cars.txt#. Esta c´pia de seguran¸a ´ apagada quando o c e vocˆ salva o arquivo com C-x C-s. Quando vocˆ tesiver finalizado a edi¸˜o de um arquivo, vocˆ e e ca e poder´ matar o buffer que cont´m o arquivo digitado a e C-x k O Emacs ir´ perguntar a vocˆ qual buffer vocˆ deseja matar, com o buffer atual como padr˜o, a e e a o qual vocˆ pode selecionar simplesmente pressionando a tecla ENTER. Se vocˆ n˜o estiver e e a salvado seu arquivo ainda, o Emacs ir´ lhe perguntar se realmente deseja matar o buffer. a 17.5.1 Saindo do Emacs

Quando vocˆ estiver terminado todo o trabalho com o Emacs, vocˆ poder´ digitar e e a C-x C-c Este comando encerra o Emacs. Se vocˆ estiver arquivos n˜o salvos, o Emacs ir´ lhe dizer e a a isto, e pedir para que vocˆ os salve, um por vez. Se vocˆ responder n˜o para algum destes, o e e a Emacs ir´ lhe solicitar uma confirma¸˜o final e ent˜o sair. a ca a

150

CAP´ ITULO 17. EMACS

Cap´ ıtulo 18

Gerenciamento de Pacotes do Slackware
Um pacote de software ´ um conjunto de arquivos que est˜o prontos para que vocˆ possa e a e instalar. Quando vocˆ faz o download de um c´digo fonte, vocˆ precisa configurar, compilar, e e o e instalar tudo manualmente. Um pacote de software j´ est´ pronto para vocˆ utilizar. Tudo o a a e que vocˆ precisa fazer ´ instalar o pacote. Outras caracter´ e e ısticas do uso de pacotes de softwares s˜o a facilidade na remo¸˜o e atualiza¸˜o do pacote, se vocˆ assim o desejar. Slackware possui a ca ca e programas para vocˆ gerenciar seus pacotes. Vocˆ pode instalar, remover, atualizar, criar, e e e examinar o conte´do de um pacote muito facilmente. u Existe um mito sobre o gerenciador de Pacotes da Red Hat, e que o slackware n˜o possui a nenhuma ferramenta de gerenciamento de Pacotes. Isto simplesmente n˜o ´ verdade, pois o a e Slackware possui uma ferramenta de gerenciamento de pacotes antes mesmo do RedHat existir. N˜o possui tantas caracter´ a ıstics como um rpm (ou como um pacote deb), o pkgtool e seus programas derivados s˜o t˜o bons quanto os instaladores de pacotes rpm. A verdade ´ que o a a e pkgtool n˜o faz nenhuma verifica¸˜o de dependˆncia. a ca e Aparentemente muitas pessoas da comunidade Linux acham que a defini¸˜o do gerencica amento de pacotes ´ a de verificar dependˆncias. Isto ´ muito simples e n˜o ´ o caso, no e e e a e Slackware certamente vocˆ n˜o ter´ isso. Isso n˜o significa que os pacotes do Slackware n˜o e a a a a possuem dependˆncias, mas o gerenciador de pacotes n˜o verifica se existe uma dependˆncia. e a e Gerenciamento de dependˆncia ´ responsabilidade do Administrador de Sistemas, e isso n˜o e e a cabe a n´s resolver. o

18.1

Vis˜o Geral do Formato de um Pacote a

Antes de aprender os utilit´rios de pacotes do Slackware, vocˆ precisa se familiarizar com a e o formato do pacote do Slackware. No Slackware, um pacote ´ simples como um arquivo tar e compactado com gzip. Os pacotes s˜o feitos para serem extra´ a ıdos no diret´rio raiz. o Veja um programa fict´ como um exemplo de um pacote do Slackware: ıcio ./ usr/ usr/bin/ usr/bin/makehejaz usr/doc/ usr/doc/makehejaz-1.0/ usr/doc/makehejaz-1.0/COPYING usr/doc/makehejaz-1.0/README usr/man/ usr/man/man1

151

152

CAP´ ITULO 18. GERENCIAMENTO DE PACOTES DO SLACKWARE

usr/man/man1/makehejaz.1.gz install/ install/doinst.sh O pacote ser´ extra´ no diret´rio ra´ na instala¸˜o. Um registro do pacote ´ adicionado a ıdo o ız ca e no banco de dados de pacotes onde conter´ informa¸˜es sobre o pacote e ser´ utilizado para a co a atualizar ou remover o pacote posteriormente. Informa¸˜es sobre o subdiret´rio install/. Este ´ um diret´rio especial que cont´m um script co o e o e de p´s-instala¸˜o chamado doinst.sh. Se o sistema encontrar esse arquivo no pacote, ele ser´ o ca a executado ap´s a instala¸˜o do pacote. o ca Outros scripts podem ser adicionados no pacote mas ser˜o discutidos com maiores detalhes a logo em seguida.

18.2

Utilit´rios de Pacotes a

Existem quatro utilit´rios principais para o gerenciamento de pacotes. Eles s˜o respons´veis a a a pela instala¸˜o, remo¸˜o e atualiza¸˜o dos pacotes. ca ca ca

18.2.1

pkgtool

pkgtool (8) ´ um programa em formato de menu que permite instalar e remover pacotes. O e menu principal ´ exibido na figura abaixo. e Menu Principal do Pkgtool

A instala¸˜o ´ realizada a partir do diret´rio atual, outro diret´rio, ou a partir de disquetes. ca e o o Basta simplesmente selecionar o tipo de instala¸˜o que o pkgtool ir´ procurar pacotes v´lidos ca a a para serem instalados no local selecionado. Vocˆ tamb´m pode visualizar uma lista de todos os pacotes instalados como ´ mostrado na e e e figura abaixo. Modo de visualiza¸˜o Pkgtool ca

´ 18.2. UTILITARIOS DE PACOTES

153

Caso vocˆ desejar remover algum pacote, escolha a op¸˜o remover e ent˜o ser˜o apresentados e ca a a todos os pacotes instalados cada um com um checklist. Selecione os pacotes que deseja remover e ent˜o selecione OK. O pkgtool remover´ os pacotes. a a Alguns usu´rios preferem o utilit´rio em linha de comando. Entretanto, deve-se notar que a a cada linha de comando oferece muito mais op¸˜es. Al´m disso, a capacidade para atualizar co e pacotes somente ´ poss´ atrav´s de utilit´rios de linha de comando. e ıvel e a 18.2.2 installpkg

O installpkg(8) permite instalar um novo pacote no sistema. A sintaxe ´ mostrada abaixo: e # installpkg op¸~es nome_pacote co Trˆs op¸˜es podem ser utilizadas com o installpkg. Por´m somente uma op¸˜o pode ser utilizada e co e ca por vez. Op¸˜es do installpkg co

Op¸˜o Descri¸˜o ca ca -m Executa o makepkg no diret´rio atual. o -warn Mostra o que aconteceria se vocˆ instalar o pacote especificado. Isto ´ util para sistemas em pr e e´ -r Instala todos os pacotes recursivamente a partir do diret´rio atual. Pode-se utilizar coringas no o Caso vocˆ especifique antes a vari´vel de ambiente ROOT installpkg, utilizar´ o caminho e a a especificado. Isso ´ util na configura¸˜o de novos drives para o seu diret´rio raiz. Eles ser˜o e ´ ca o a montados tipicamente em /mnt ou em algum outro lugar diferente de /. O banco de dados com os pacotes instalados ´ armazenado em /var/log/packages. O registro e ´ um arquivo texto, sendo um para cada pacote. Se o pacote possui um script de p´s-instala¸˜o, e o ca este ´ escrito em /var/log/scripts/. e Vocˆ tamb´m pode especificar multiplos pacotes ou utilizar coringas no nome do pacote. O e e installpkg n˜o o avisar´ em caso de reinstala¸˜o do pacote existente. Simplesmente instalar´ o a a ca a novo pacote sobre o pacote antigo. Caso vocˆ queira remover com toda a seguran¸a os arquivos e c antigos do pacote enterior vocˆ dever´ utilizar o comando upgradepkg. e a

154

CAP´ ITULO 18. GERENCIAMENTO DE PACOTES DO SLACKWARE

18.2.3

removepkg

O removepkg(8) permite remover os pacotes instalados no sistema. A sintaxe ´ mostrada e abaixo: # removepkg option package_name Quatro op¸˜es podem ser utilizadas com o removepkg. Por´m somente uma op¸˜o pode ser co e ca utilizada por vez. Op¸˜es do removepkg co

Op¸˜o ca A¸˜o ca ´ -copy E criado uma ´rvore de diret´rios do pacote preservando o pacote original enquanto ´ removi a o e -keep S˜o criados arquivos tempor´rios durante a remo¸˜o. Possuem a finalidade de debug. a a ca -preserve O pacote ´ removido, mas uma c´pia ´ realizada para preservar o pacote durante a remo¸˜o. e o e ca -warn Exibe informa¸˜es sobre a remo¸˜o do pacote. co ca Se vocˆ passar a vari´vel de ambiente ROOT antes do removepkg, tal caminho ser´ utilizado e a a como diret´rio raiz. Isso ´ util na configurar¸˜o de novos drives para o seu diret´rio raiz. Eles o e´ ca o ser˜o montados tipicamente em /mnt ou em algum outro lugar diferente de /. a O removepkg procura os pacotes instalados e somente remove os arquivos referentes ao pacote que vocˆ especificou. Tamb´m ir´ procurar por um script de p´s-instala¸˜o para o e e a o ca pacote especificado e remover´ os links simb´licos que foram criados pelo pacote. a o Durante o processo de remo¸˜o, um status ´ mostrado. Ap´s a remo¸˜o, o registro no ca e o ca banco de dados de pacote ´ movido para o arquivo /var/log/removed pacotes e o script de e p´s-instala¸˜o ´ movido para /var/log/removed scripts. o ca e Assim como o installpkg, vocˆ pode espeficicar os pacotes pelo nome ou utilizando os coringas e para o nome do pacote. 18.2.4 upgradepkg

O upgradepkg(8) atualiza um pacote instalado do Slackware package. A sintaxe ´ mostrada e abaixo: # upgradepkg nome_do_pacote ou # upgradepkg nome_pacote_antigo %nome_novo_pacote O upgradepkg primeiro instala o novo pacote e em seguida remove o pacote antigo. Assim os arquivos antigos n˜o ficar˜o no sistema. Caso o nome do pacote tenha sido alterado, utilize a a a sintaxe do sinal de porcentagem para informar o pacote antigo (aquele que est´ instalado) e o a novo pacote (aquele que vocˆ est´ atualizando). Se vocˆ passar a vari´vel de ambiente ROOT e a e a antes do upgradepkg, tal caminho ser´ utilizado como diret´rio raiz. Isso ´ util na configura¸˜o a o e´ ca de novos drives para o seu diret´rio raiz. Eles ser˜o montados tipicamente em /mnt ou em o a algum outro lugar diferente de /. O upgradepkg n˜o ´ livre de falhas. Vocˆ sempre dever´ realizar um backup dos seus arquivos a e e a de configura¸˜o. Caso eles sejam removidos ou substitu´ ca ıdos, vocˆ ter´ uma c´pia dos arquivos e a o originais caso necessite de algum reparo no sistema. Assim como o installpkg e removepkg, vocˆ pode espeficicar os pacotes pelo nome ou utilie zando os coringas para o nome do pacote.

18.3. CRIANDO PACOTES

155

18.2.5

rpm2tgz/rpm2targz

Atualmente o Gerenciador de Pacotes da Red Hat ´ o sistema mais popular. Muitos softwares e s˜o distribu´ a ıdos no formato RPM. Mas este formato n˜o ´ o nosso padr˜o, n´s n˜o recomendaa e a o a mos que as pessoas confiem neles. Entretanto, algumas coisas s´ est˜o dispon´ o a ıveis em pacotes RPM (at´ mesmo o c´digo fonte). e o N´s temos um programa que converte pacotes RPM em nosso formato padr˜o .tgz. Isto ´ o a e realizado, extra´ ındo o pacote (talvez com o explodepkg) para um diret´rio tempor´rio e examio a nando o seu conte´do. u rpm2tgz ´ o programa utilizado para criar um pacote Slackware com a extens˜o .tgz enquanto e a que rpm2targz cria um arquivo com a extens˜o .tar.gz. a

18.3

Criando Pacotes

Criar um pacote para o Slackware pode ser uma tarefa f´cil ou dif´ a ıcil. N˜o ser´ especificado a a um m´todo para a constru¸˜o de um pacote. O unico requisito para um pacote ´ ser um arquivo e ca ´ e gzipado e, se houver algum script de p´s-instala¸˜o, este deve estar no arquivo /install/doinst.sh. o ca Se vocˆ ´ interessado em criar pacotes para o seu sistema ou para a rede que vocˆ gerencia, ee e vocˆ dever´ dar uma olhada nos diversos build scripts na ´rvore fonte do Slackware. Existem e a a diversos m´todos que podem ser utilizados para criar pacotes. e 18.3.1 explodepkg

O explodepkg(8) faz a mesma coisa que o installpkg para extrair os arquivos do pacote, por´m e n˜o instala e n˜o registra o pacote no banco de dados. Apenas extrai os arquivos no diret´rio a a o atual. Se vocˆ verificar a ´rvore de fontes do Slackware, vocˆ ver´ que pode-se utilizar o comando e a e a para alicer¸ar os pacotes. Estes pacotes possuem um esqueleto que criar´ o pacote final. Ele c a cont´m todos os nomes de arquivos (tamanho-zero), permiss˜es, e donos. O build script criar´ e o a um pacote a partir do diret´rio fonte do pacote . o 18.3.2 makepkg

O makepkg(8) cria um pacote v´lido para o Slackware a partir do diret´rio atual. Ele buscar´ a o a na ´rvore de diret´rio por links simb´licos, adicionar´ e criar´ um script de p´s-instala¸˜o a o o a a o ca durante a cria¸˜o do pacote. Avisar´ por arquivos de tamanho zero na sua ´rvore de pacotes. ca a a Este comando ´ usado ap´s vocˆ criar sua ´rvore de pacotes. e o e a 18.3.3 SlackBuild Scripts

Pacotes Slackware s˜o criados de muitas maneiras diferentes de acordo com a necessidade. a Nem todos os pacotes s˜o criados pelos pr´prios programadores que os criaram. Muitos coma o pilam com op¸˜es que n˜o s˜o inclusas nos pacotes do Slackware. Caso necessite de alguma co a a funcionalidade da qual o pacote n˜o foi compilado, vocˆ dever´ criar seu pr´prio pacote. Fea e a o lizmente para muitos pacotes do Slackware, vocˆ pode encontrar scripts SlackBuild no c´digo e o fonte do pacote. Mas o que ´ um script SlackBuild? Scripts SlackBuild s˜o shell scripts execut´veis que vocˆ e a a e executa como root para configurar, compilar, e criar pacotes Slackware. Vocˆ pode modificar e os scripts e criar seus pacotes Slackwares com sua necessidades espec´ ıficas.

156

CAP´ ITULO 18. GERENCIAMENTO DE PACOTES DO SLACKWARE

18.4

Criando Tags e Tagfiles (para configura¸˜o) ca

O programa de configura¸˜o do Slackware gerencia a instala¸˜o dos pacotes no seu sistema. ca ca Existem arquivos que dizem ao programa de configura¸˜o quais pacotes devem ser instalados, ca quais s˜o opcionais, e quais s˜o selecionados por padr˜o pelo programa de configura¸˜o. a a a ca Um tagfile est´ no diret´rio do primeiro conjunto de software e ´ chamado de tagfile. Ele a o e lista os pacotes daquele disco em particular e o status, que pode ser: Status das Op¸˜es do Tagfile co Op¸˜o ca ADD SKP REC OPT O O O O Caracter´ ıstica

pacote ´ necess´rio para a execu¸˜o necess´ria do sistema e a ca a pacote ser´ automaticamente pulado a pacote n˜o ´ necess´rio, mas recomendado a e a pacote ´ opcional e

O formato ´ simples: e nome_pacote: status Um pacote por linha. As tagfiles originais de cada pacote s˜o armazenadas como um taga file.org. Dessa forma, caso bagunce o seu, vocˆ pode restaurar o original. e Muitos administradores preferem escrever seus pr´prios tagfiles e recome¸ar o instalador o c selecionando full. O programa da instala¸˜o ir´ ler os tagfiles e executar´ a instala¸˜o de acordo ca a a ca com seus ´ ındices. Caso vocˆ utilize REC ou OPT, uma caixa de di´logo ser´ apresentada ao e a a usu´rio perguntando se quer ou n˜o um pacote espec´ a a ıfico. Recomenda-se que vocˆ utilize ADD e e SKP ao escrever tagfiles para automatizar instala¸˜o. ca Certifique-se apenas que seus tagfiles foram gravados no mesmo lugar que os originais. Ou vocˆ pode especificar um tagfile customizado, criado de acordo com as suas necessidades. e

Cap´ ıtulo 19

ZipSlack
19.1 O que ´ o ZipSlack? e

O ZipSlack ´ uma vers˜o especial do Slackware Linux. Ele ´ uma vers˜o j´ instalada do e a e a a ´ Slackware que est´ pronta para rodar a partir da sua parti¸˜o DOS ou Windows. E uma a ca instala¸˜o b´sica, e n˜o tem todos os recursos do Slackware. ca a a O ZipSlack tem esse nome porque ´ distribu´ em um grande arquivo .ZIP. Usu´rios de e ıdo a DOS e Windows provavelmente ter˜o mais familiaridade com esse tipo de arquivo. Eles s˜o a a arquivos compactados. O arquivo do ZipSlack cont´m tudo que vocˆ precisa para utilizar o e e Slackware. ´ E importante notar que o ZipSlack ´ significativamente diferente de uma instala¸˜o normal. e ca Apesar de funcionarem da mesma maneira e terem os mesmos programas, o p´blico alvo e a u suas fun¸˜es s˜o diferentes. As principais vantagens e desvantagens do ZipSlack s˜o discutidas co a a abaixo. Uma ultima dica, vocˆ deve sempre consultar a documenta¸˜o inclu´ no diret´rio do ´ e ca ıda o ZipSlack. Ela cont´m as ultimas informa¸˜es relativas a instala¸˜o, boot e uso do produto. e ´ co ca 19.1.1 Vantagens

• N˜o requer o reparticionamento do seu disco rigido. a • Uma ´tima maneira de se aprender a utilizar o Slackware sem ter que passar pelo processo o de instala¸˜o. ca 19.1.2 Desvantagens

• Usa o sistema de arquivos do DOS, que ´ mais lento que um sistema de arquivos nativo e do Linux. • N˜o funciona com o Windows NT. a

19.2

Obtendo o ZipSlack

Obter o ZipSlack ´ f´cil. Se vocˆ comprou a caixa de CDs oficial do Slackware, ent˜o vocˆ e a e a e j´ tem o ZipSlack. Apenas encontre o CD que cont´m o diret´rio zipslack e coloque-o no seu a e o drive de CD-ROM. Esse CD costuma ser o terceiro ou o quarto disco, mas sempre confie mais nas etiquetas do que nessa documenta¸˜o j´ que o disco em que ele est´ pode mudar. ca a a Se vocˆ quiser fazer o download do ZipSlack, vocˆ deve primeiro vistar nossa p´gina Get e e a Slack para obter as ultimas informa¸˜es referentes a downloads: ´ co http://www.slackware.com/getslack
157

158

CAP´ ITULO 19. ZIPSLACK

O ZipSlack faz parte de todas as vers˜es do Slackware. Localize a vers˜o que vocˆ quer e v´ o a e a para o diret´rio da mesma no FTP. A ultima vers˜o pode ser encontrada no seguinte endere¸o: o ´ a c ftp://ftp.slackware.com/pub/slackware/slackware/ Vocˆ encontrar´ o ZipSlack no subdiret´rio /zipslack. Ele ´ distribu´ como um grande e a o e ıdo arquivo .ZIP ou em partes do tamanho de um disquete. As partes est˜o no diret´rio /zipsa o lack/split. N˜o fique apenas com os arquivos .ZIP. Vocˆ tamb´m pode fazer o download da documena e e ta¸˜o e qualquer imagem de boot que estiver no diret´rio do ZipSlack. ca o 19.2.1 Instala¸˜o ca

Ap´s ter feito o download dos componentes necess´rios, vocˆ precisar´ extrair o arquivo .ZIP. o a e a Assegure-se que est´ usando um descompactador 32-bit. O tamanho e os nomes dos arquivos a s˜o muito grandes para um descompactador de 16-bit. Exemplos de descompactadores 32-bit a s˜o o WinZip e o PKZIP para Windows. a O ZipSlack ´ desenvolvido para ser descompactado no diret´rio raiz de uma unidade (tal e o como C: ou D:). Um diret´rio \LINUX onde estar´ a instala¸˜o do Slackware ser´ criado. o a ca a Vocˆ tamb´m encontrar´ os arquivos necess´rios para iniciar (bootar) o sistema nesse diret´rio. e e a a o Ap´s descompactar os arquivos, vocˆ ter´ um diret´rio \LINUX na unidade que vocˆ escoo e a o e lheu (n´s usaremos C: a partir de agora). o

19.3

Bootando o ZipSlack

H´ varias maneiras de se bootar o ZipSlack. A mais comum ´ usar o arquivo LINUX.BAT a e para bootar o sistema a partir do DOS (ou a partir do modo DOS do Windows 9x). Esse arquivo deve ser editado para refletir seu sistema antes de utiliz´-lo. a Comece abrindo o arquivo //C:\LINUX\LINUX.BAT // em seu editor de textos favorito. No topo do arquivo vocˆ ver´ um grande coment´rio. Ele explica o que vocˆ precisa editar nesse e a a e arquivo (e tamb´m o que fazer se vocˆ estiver bootando atrav´ de um Zip drive externo). N˜o e e e a se preocupe se vocˆ n˜o entender o paramˆtro <literal>root=</literal>. H´ v´rios exemplos, e a e a a sinta-se a vontade para escolher um e test´-lo. Se n˜o funcionar, vocˆ pode editar o arquivo a a e novamente, comentar a linha que vocˆ usou, e escolher outra. e Ap´s habilitar a linha que vocˆ quiser, removendo a palavra rem do come¸o da linha, salve o e c o arquivo e saia do editor de textos. Reboot sua m´quina em modo DOS. a ˜ e Um prompt do DOS no Windows 9x NAO ´ suficiente. Digite C:\LINUX\LINUX.BAT para bootar o sistema. Se tudo correr bem, vocˆ dever´ ver um prompt de login. e a Logue como root, sem senha. Vocˆ provavelmente vai querer definir uma senha para root, e assim como adicionar uma conta para vocˆ. A partir desse ponto vocˆ pode consultar outras e e se¸˜es desse livro sobre a utiliza¸˜o do sistema. co ca Se vocˆ n˜o conseguir bootar o sistema usando o arquivo LINUX.BAT, vocˆ dever´ consultar e a e a o arquivo C:\LINUX\README.1ST incluso sobre outras formas de boot.

Cap´ ıtulo 20

Gloss´rio a
Ambiente gr´fico a Uma interface gr´fica para o usu´rio (GUI - Graphical User Interface) que ´ executado sobre a a e o sistema de janelas X e provˆ as funcionalidades dos aplicativos instalados, interface coerente e entre programas e componentes, gerenciadores de janelas e arquivos, etc. Um passo a frente de um simples gerenciador de janelas. ´ Area de troca (Swap) ´ Espa¸o do disco r´ c ıgido que ´ utilizado pelo kernel como uma mem´ria RAM virtual. E e o mais lento que a mem´ria RAM, mas como espa¸o em disco ´ mais barato, a ´rea de troca o c e a (swap) pode ser mais abundante. A ´rea de troca ´ util para o kernel manter dados n˜o muito a e´ a utilizados e como op¸˜o quando a mem´ria RAM est´ sendo toda utilizada. ca o a Arquivo oculto (Dot file) No Linux, os nomes de arquivos ocultos come¸am com um ponto (’.’). c Biblioteca Uma cole¸˜o de fun¸˜es que podem ser compartilhadas entre programas. ca co Carregador dinˆmico a Quando programas s˜o compilados no Linux, eles geralmente usam peda¸os de c´digo (funa c o co ¸˜es) de bibliotecas externas. Quando estes programas executam, estas bibliotecas devem ser encontradas e as fun¸˜es requeridas devem ser carregadas na mem´ria. Esta ´ a fun¸˜o do co o e ca carregador dinˆmico. a C´digo fonte o O c´digo (mais ou menos) leg´ o ıvel aos humanos com o qual a maioria dos programas s˜o a escritos. C´digos fontes s˜o compilados em c´digo bin´rio. o a o a Comandos internos do interpretador de comandos Um comando do interpretador de comandos, ao inv´s de ser fornecido por um programa e externo. Por exemplo, o bash tem o comando interno cd. Compilar Converter um c´digo fonte em c´digo bin´rio. o o a Conjunto de ferramentas GUI Um conjunto de ferramentas GUI, ´ uma cole¸˜o de bibliotecas que permite ao programador, e ca a partir de c´digos, desenhar componentes gr´ficos como barras de rolagem, checkboxes, etc. o a e construir uma interface gr´fica. O conjunto de ferramentas GUI usado por um programa, a geralmente define seu aspecto. Conta Todas informa¸˜es de um usu´rio, incluindo login, senha, informa¸˜es para o finger, UID, co a co GID e diret´rio base. Criar uma conta ´ adicionar um usu´rio e criar suas defini¸˜es. o e a co Daemon Um programa designado para exectar em segundo plano e, sem a interven¸˜o de usu´rios, ca a desempenha uma tarefa espec´ ıfica (geralmente provendo um servi¸o). c Darkstar
159

160

´ CAP´ ITULO 20. GLOSSARIO

O hostname padr˜o do Slackware; seu computador ter´ o nome de darkstar se vocˆ n˜o a a e a especificar outro. Um dos computadores de desenvolvimento de Patrick Volkerding, nomeado depois de Dark Star, uma m´sica de Grateful Dead u Diret´rio base o O diret´rio base home de um usu´rio ´ o diret´rio em que o usu´rio ´ colocado imediatamente o a e o a e ap´s registrar-se no sistema. Os usu´rios tem permiss˜es totais ´, mais ou menos, um reino o a o e livre em seu diret´rio base. o Diret´rio ra´ o ız Representado por /, o diret´rio ra´ existe no topo do sistema de arquivos, com todos os o ız outros diret´rios se ramificando abaixo dele em uma ´rvore de arquivos. o a Diret´rio de trabalho o O diret´rio em que um programa se considera estar enquanto est´ executando. o a Disco de inicializa¸˜o ca Um disquete contendo um sistema operacional (no nosso caso, o kernel do Linux) com o qual ´ poss´ iniciar um computador. e ıvel Disco ra´ (rootdisk) ız O disco (geralmente fixo) no qual o diret´rio ra´ est´ armazenado. o ız a Disco suplementar No Slackware, ´ um disquete usado durante a instala¸˜o que n˜o cont´m nem o kernel (que e ca a e est´ no disco de inicializa¸˜o), nem o sistema de arquivos raiz (que est´ no disco raiz), mas a ca a contem arquivos adicionais necess´rios como m´dulos para rede ou suporte para PCMCIA. a o DNS Domain Name Service (Sistema de Nomes de Dom´ ınios). Um sistema que traduz nomes para endere¸os num´ricos em uma rede de computadores. c e Dotted quad Formato do endere¸o IP, ´ assim chamado pois consiste em quatro n´meros (na faixa decimal c e u 0-255) separados por pontos. Drivers de dispositivos Um peda¸o de c´digo no kernel que controla diretamente uma parte do hardware. c o Entrada padr˜o (stdin) a A entrada de dados padr˜o do Unix. Dados podem ser redirecionados ou concatenados para a a stdin dos programas, vindos de qualquer fonte. ´ Epoca ´ Um per´ ıodo da hist´ria; em Unix, a Epoca come¸a `s 00:00:00 UTC Janeiro 1, 1970. Esta o c a ´ considerada a alvorada do tempo pelo Unix e sistemas operacionais Unix-like, e todas outras e datas s˜o calculadas em rela¸˜o a esta. a ca Framebuffer Um tipo de dispositivo gr´fico; no Linux, geralmente se refere ao programa framebuffer, a o qual provˆ uma interface framebuffer padr˜o para as aplica¸˜es enquanto mant´m drivers e a co e espec´ ıficos ocultos. Esta camada de abstra¸˜o libera os programas de falarem com v´rios ca a drivers de dispositivos. FTP O protocolo de transferˆncia de arquivos (File Transfer Protocol). FTP ´ um m´todo base e e tante utilizado para transferir dados entre computadores. Gateway Um computador que repassa dados de uma rede para outra. Gerenciador de janelas Um programa gr´fico (ambiente X) que provˆ uma interface gr´fica al´m do simples desenho a e a e retangular do Sistema de janelas X. Gerenciadores de janelas geralmente provˆem barras de e t´ ıtulo, menus para os programas em execu¸˜o, etc. ca GID

161

Identificador de grupo (Group IDentifier). O GID ´ um n´mero unico atribu´ a um grupo e u ´ ıdo de usu´rios. a Grupo Usu´rios em Unix pertencem a grupos, que podem conter v´rios usu´rios e s˜o utilizados a a a a para controles de acessos mais generalizados, que ´ bem mais pr´tico que dar permiss˜es para e a o cada usu´rio individualmente. a GUI Interface gr´fica do usu´rio (Graphical User Interface). Uma interface de programas que a a utiliza elementos gr´ficos como bot˜es, barras de rolagem, janelas, etc. ao inv´s de somente a o e entrada e sa´ de textos. ıda HOWTO Um documento descrevendo como fazer (how to) algo, como configurar um firewall ou gerenciar usu´rios e grupos. Existe uma vasta cole¸˜o deste tipo de documento dispon´ a ca ıvel no projeto de documenta¸˜o Linux (LDP - Linux Documentation Project). ca HTTP O protocolo de transferˆncia de hiper-texto (HyperText Transfer Protocol). HTTP ´ o e e protocolo prim´rio, no qual, a World Wide Web (WWW) opera. a ICMP Protocolo de controle de mensagens na Internet (Internet Control Message Protocol). Um protocolo muito b´sico, utilizado geralmente para pings. a Interface de Rede Uma representa¸˜o virtual de um dispositivo de rede, provido pelo kernel. Interfaces de rede ca permitem usu´rios e programas comunicarem com dispositivos de rede. a Interpretador de comandos (shell) Os interpretadores de comandos provˆem uma interface de linha de comando para o usu´rio. e a Quando vocˆ estiver olhando para uma tela em modo texto, vocˆ est´ em um interpretador de e e a comandos. LILO O carregador do Linux (LInux LOader). O LILO ´ o gerenciador de inicializa¸˜o (boot) e ca mais utilizado com o Linux. Link simb´lico o Um arquivo especial que simplesmente aponta para a localidade de um outro arquivo. Links simb´licos s˜o usados para evitar duplica¸˜o de dados quando ´ necess´rio ter um determinado o a ca e a arquivo em v´rios locais. a LOADLIN LOADLIN ´ um programa que ´ executado no MS-DOS ou Windows e inicializa um sistema e e ´ Linux. E geralmente usado em computadores com m´ltiplos sistemas operacionais (incluindo u Linux e DOS/Windows, ´ claro). e MBR O registro mestre de inicializa¸˜o (Master Boot Record). Um espa¸o reservado no disco ca c r´ ıgido onde est˜o armazenadas as informa¸˜es sobre o que fazer durante a inicializa¸˜o. LILO a co ca e outros gerenciadores de inicializa¸˜o podem ser gravados aqui. ca M´dulo do kernel o Um peda¸o do c´digo do kernel, geralmente um tipo de driver, que pode ser carregado c o ou descarregado da mem´ria separadamente do corpo principal do kernel. M´dulos s˜o uteis o o a ´ para atualizar drivers ou testar configura¸˜es do kernel, porque eles podem ser carregados e co descarregados sem reiniciar. MOTD Mensagem do dia (Message Of The Day). O motd (armazenado no Linux em /etc/motd ) ´ um arquivo de texto que ´ exibido a todos usu´rios durante seu registro no sistema (login). e e a Tradicionalmente, ´ utilizado pelo administrador de sistemas como um quadro de avisos para e se comunicar com os usu´rios. a

162

´ CAP´ ITULO 20. GLOSSARIO

Motif Um conjunto de ferramentas de programa¸˜o popularmente utilizado em muitos programas ca X antigos. NFS O sistema de arquivo de rede (Network FileSystem). NFS permite montar sistemas de arquivos remotos como se fossem locais, provendo assim, um m´todo transparente de compare tilhamento de arquivos. N´ de Dispositivo (Device Node) o Um tipo de arquivo especial no sistema de arquivos /dev que representa um componente de hardware para o sistema operacional. Nome de dom´ ınio O nome DNS de um computador, excluindo seu hostname. N´ cleo (Kernel) u O cora¸˜o do sistema operacional. O n´cleo ´ a parte que provˆ controle b´sico de processos ca u e e a e interfaces com o hardware do computador. Octal Sistema de n´meros de Base-8, com d´ u ıgitos de 0-7. Pacote de programas Um programa e os arquivos a ele associados, empacotados e comprimidos em um unico ´ arquivo, junto com os scripts ou informa¸˜es necess´rias para ajudar no gerenciamento da co a instala¸˜o, atualiza¸˜o e remo¸˜o destes arquivos. ca ca ca Pacote de senhas Shadow O pacote de senhas shadow permite que senhas criptografadas sejam escondidas dos usu´rios, a enquanto o resto das informa¸˜es do arquivo /etc/passwd permanecem vis´ co ıveis para todos. Isto ajuda a prevenir ataques de brute-force para quebrar senhas. Pager Um programa gr´fico (X) que permite aos usu´rios visualisar e alternar entre v´rias ´reas a a a a de trabalho. Parti¸˜o ca Uma divis˜o do disco r´ a ıgido. Sistemas de arquivos residem sobre as parti¸˜es. co Ponto de montagem Um diret´rio vazio em um sistema de arquivos onde um outro sistema de arquivos pode ser o montado ou anexado. PPP Protocolo Ponto-a-Ponto (Point-to-Point Protocol). PPP ´ utilizado principalmente para e conectar, via modem, a um provedor de servi¸os de Internet (ISP - Internet Service Provider). c Primeiro plano Um programa que aceita entrada de um terminal ´ dito que est´ sendo executado em primeiro e a plano. Processo Um programa em execu¸˜o. ca Processo suspenso Um processo que foi congelado at´ que seja morto ou reiniciado. e Programa wrapper Um programa cuja a unica finalidade ´ executar outros programas, mas que as vezes muda ´ e seu comportamento alterando seus ambientes ou filtrando sua entrada. Runlevel O estado geral do sistema, definido pelo init. Runlevel 6 significa re´ ıniciar o computador (reboot), runlevel 1 ´ o modo monousu´rio, runlevel 4 ´ o login em modo gr´fico, etc. Existem e a e a 6 runlevels dispon´ ıveis em um sistema Slackware. Sa´ padr˜o (stdout) ıda a

163

A sa´ padr˜o de informa¸˜es no Unix. Textos normais de sa´ s˜o reportados na stdout, ıda a co ıda a que ´ separada das mensagens de erro, reportadas na stderr, e podem ser concatenadas ou e redirecionadas para a stdin de outros programas ou para um arquivo. Sa´ padr˜o de erro (stderr) ıda a O padr˜o Unix para reportar erros. Os programas reportam qualquer mensagem de erro na a stderr, desta forma esta pode ser separa de uma sa´ normal. ıda Se¸˜o Man ca P´ginas no padr˜o de manuais online do Unix (man) s˜o agrupadas em se¸˜es para facia a a co litar referˆncias. Todas as p´ginas sobre programa¸˜o em C est˜o na se¸˜o 3, p´ginas sobre e a ca a ca a administra¸˜o de sistemas est˜o na se¸˜o 5, etc. ca a ca Segundo plano (Background) Qualquer processo que esteja executando e n˜o aceite entradas ou controles do terminal ´ a e dito que est´ sendo executado em segundo plano. a S´ries de programas e Uma cole¸˜o de pacotes de softwares relacionados no Slackware. Todos os pacotes do KDE ca est˜o na s´rie kde, pacotes de rede est˜o na s´rie n, etc. a e a e Servi¸o c O compartilhamento de informa¸˜es e/ou dados entre programas ou computadores de um co unico servidor para m´ltiplos clientes. HTTP, FTP, NFS, etc. s˜o servi¸os. ´ u a c Servidor de nomes Um servidor de informa¸˜es DNS. Servidores de nomes traduzem nomes DNS em endere¸os co c IP num´ricos. e Servidor X Um programa no Sistema de Janelas X que faz a interface com o hardware gr´fico e abriga a os programas gr´ficos que est˜o em execu¸˜o. a a ca Shell seguro (SSH - Secure SHell) Um m´todo encriptado (assim seguro) de se conectar remotamente a um computador. Muitos e programas de shell seguro est˜o dispon´ a ıveis; ambos cliente e servidor s˜o necess´rios. a a Sinal Programas Unix podem comunicar uns com os outros atrav´s de simples sinais, os quais s˜o e a enumerados e geralmente possuem significados espec´ ıficos. kill -l listar´ os sinais dispon´ a ıveis. Sistema de arquivos Uma representa¸˜o dos dados armazenados onde arquivos de dados s˜o mantidos organizados ca a em diret´rios. O sistema de arquivos ´ a forma de representa¸˜o, mais pr´xima da universal, o e ca o de dados armazenados em discos (tanto fixos como remov´ ıveis). Sistema de janelas X Interface gr´fica com suporte a rede usada na maioria dos sistemas operacionais Unix-like, a incluindo o Linux. SLIP Protocolo de interface de linha serial (Serial Line Interface Protocol). SLIP ´ um protocolo e similar ao PPP e ´ utilizado para conectar duas m´quinas via interface serial. e a Sub-rede Uma faixa de endere¸os IP que ´ parte de uma faixa maior. Por exemplo, 192.168.1.0 ´ uma c e e sub-rede de 192.168.0.0 (onde 0 ´ uma mascara indefinida); ´, na verdade, a sub-rede .1. e e Superbloco No Linux as parti¸˜es s˜o definidas em blocos. Um bloco possui 512 bytes. O superbloco co a s˜o os primeiros 512 bytes de uma parti¸˜o. a ca Tabela de roteamento Um conjunto de informa¸˜es que o kernel utiliza para rotear dados ao redor da rede. Possui co informa¸˜es como: onde est´ o seu gateway default, qual interface de rede est´ conectada a co a a determinada rede, etc. Tagfile

164

´ CAP´ ITULO 20. GLOSSARIO

Um arquivo usado pelo programa de configura¸˜o (setup) do Slackware durante a instala¸˜o, ca ca o qual descreve um conjunto de pacotes a serem instalados. Terminal Uma interface homem-m´quina que consiste de pelo menos uma tela (ou tela virtual) e de a algum m´todo de entrada de dados (geralmente um teclado). e Terminal virtual O uso de programas para simular m´ltiplos terminais enquanto utiliza um simples conjunto u de dispositivos de entrada/sa´ (teclado, monitor, mouse). Um conjunto especial de teclas, ao ıda serem pressionadas, alterna entre os terminais virtuais a partir de um unico terminal f´ ´ ısico. UID Identificador de usu´rio (User IDentifier). Um n´mero unico que identifica um usu´rio no a u ´ a sistema. UIDs s˜o usados pela maioria dos programas ao inv´s dos nomes de usu´rio, uma a e a vez que n´meros s˜o mais f´ceis de manejar; nomes de usu´rio geralmente s˜o usados somente u a a a a quando o usu´rio precisa ver as coisas acontecendo. a Vari´vel de ambiente a Uma vari´vel configurada no shell do usu´rio que pode ser referenciada pelo usu´rio ou a a a por programas executados por este usu´rio nesta shell. Vari´veis de ambiente s˜o geralmente a a a utilizadas para armazenar preferˆncias e parˆmetros padr˜o. e a a VESA Associa¸˜o de padr˜es eletrˆnicos de video (Video Electronics Standards Association). O ca o o termo VESA ´ geralmente usado para denotar um padr˜o especificado por esta associa¸˜o. e a ca Atualmente todos os adaptadores de v´ ıdeo modernos s˜o compat´ a ıveis com VESA.

Cap´ ıtulo 21

The GNU General Public License
GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

21.1

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software–to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation’s software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author’s protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors’ reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone’s free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow.

21.2

TERMS AND CONDITIONS
165

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

166

CAP´ ITULO 21. THE GNU GENERAL PUBLIC LICENSE

• This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The ”Program”, below, refers to any such program or work, and a ”work based on the Program”means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term ”modification”.) Each licensee is addressed as ”you”. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. • You may copy and distribute verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. • You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: • You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. • You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. • If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

21.2. TERMS AND CONDITIONS

167

• You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: – Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, – Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, – Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. • You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. - You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. - Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients’ exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. - If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License

168

CAP´ ITULO 21. THE GNU GENERAL PUBLIC LICENSE

and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. - The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and ”any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. • If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - NO WARRANTY BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ”AS IS”WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

21.3. HOW TO APPLY THESE TERMS TO YOUR NEW PROGRAMS

169

OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS

21.3

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the ”copyright”line and a pointer to where the full notice is found. //<one line to give the program’s name and a brief idea of what it does.> Copyright (C) <year> <name of author> // This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA// Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: ”’ Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type ‘show w’. This is free software, and you are welcome to redistribute it under certain conditions; type ‘show c’ for details. ”’ The hypothetical commands ‘show w’ and ‘show c’ should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than ‘show w’ and ‘show c’; they could even be mouse-clicks or menu items–whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a ”copyright disclaimer”for the program, if necessary. Here is a sample; alter the names:

170

CAP´ ITULO 21. THE GNU GENERAL PUBLIC LICENSE

Yoyodyne, Inc., hereby disclaims all copyright interest in the program ‘Gnomovision’ (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.

Cap´ ıtulo 22

Contributing Authors
Author David Cantrell Alan Hicks Logan Johnson Keith Keller Joost Kremers Chris Lumens Jurgen Philippaerts David G. Sizemore Murray Stokely Simon Williams Contribution Co-author of first edition. Project Organizer, lead author of second edition. Co-author of first edition. Wrote the wireless networking section. Contributed the Emacs chapter. Co-author of first edition. Updated the Basic Networking Commands chapter. Updated the Introduction Wrote the Preface, index, and prepared the book for print publication Contributed the Emacs chapter.

22.1

Contribuidores para o Portuguˆs do Brasil e
Tradu¸˜o ca Tradu¸˜o ca Revis˜o a Tradu¸˜o ca Tradu¸˜o ca Tradu¸˜o ca Tradu¸˜o ca Tradu¸˜o ca Compila¸˜o ca Tradu¸˜o ca Tradu¸˜o ca Tradu¸˜o ca Tradu¸˜o ca Revis˜o a Revis˜o a Reposit´rio SVN o Revis˜o a Revis˜o a Revis˜o a Revis˜o a Revis˜o a Revis˜o a Revis˜o a Revis˜o a Revis˜o a Site Site

Diogo Leal (estranho) Bruno T. Russo (BrunoRusso) Ellington Santos Artur Souza (MoRpHeUz) Thiago Diniz Jos´ Luiz Moquenco de Figueiredo (zecafig) e Waldemar Silva J´nior (wsjunior) u Jo˜o Carlos de Oliveira Coutinho (BitDesigner) a Raphael Bastos (ChemonZ) Gabriel Favaro Rodrigo Amorim Ferreira Tiago T3 Neumar Malheiros Gabriel Marrocos Magalh˜es (Manda Chuva) a Ariel Jairo Lucas Frederico

Agradecemos muito a todos que contribuiram, fazendo com que este projeto fosse poss´ ıvel

171

Sign up to vote on this title
UsefulNot useful