41773876 linux basico

Upload: douglas-lopes

Post on 18-Jul-2015

353 views

Category:

Documents


0 download

TRANSCRIPT

Sumrio1 GNU / Linux, Distribuies e GPL.................................................. ...................4 1.1 Objetivos.......................................................................................... .............4 1.2.Introduo........................................................................................... ..........4 1.3 Distribuies GNU/Linux..............................................................................5 . 1.4 Caractersticas de Algumas Distribuies....................................................6 . 1.4.1 RedHat .............................................................. .............6 1.4.2 SuSe................................................................................................. ..........7 1.4.3 Mandriva................................................................................ ....................7 1.4.4 Slackware............................................................................................... ....7 1.4.5 Debian....................................................................................................... .8 1.4.6 Ubuntu............................................................................... ........................8 1.4.7 Fedora....................................................................................... .................8 1.4.8 OpenSuSe..................................................................... .............................9 1.4.9 Knoppix...................................................................................... ................9 1.4.10 Gentoo........................................................................... ..........................9 2 Instalando o sistema GNU/Linux............................................................ ........10 3 Primeiros Passos.................................................................... ........................51 3.1 Objetivos......................................................................................... ............51 3.2 Logon................................................................................. .........................51 3.3 Logout......................................................................................... ................51 3.4 Introduo......................................................................................... ..........51 3.5 T erminal Virtual......................................................................... ..................53 3.6 Desligando o Computador.........................................................................53 . 3.7 Reiniciando o Computador................................................................. ........54 4 Sistema de Arquivos e Diretrios.................................................................. .55 4.1 Objetivos......................................................................................... ............55 4.2 Introduo......................................................................................... ..........55 4.3 Estrutura de Diretrios GNU/Linux..................................................... .........55 4.5 Diretrios Opcionais............................................................................. .......58 4.6 Aprendendo comandos do GNU/Linux.......................... ..............................59 4.6.1 Explorando o sistema.............................................................................59 . 4.6.2 Coringas......................................................................................... ..........61 4.6.3 Usando coringas no Shell..................................................................... ....62 4.6.4 Criao, movimentao, cpia e remoo de arquivos e diretrios........63 5 Buscando Documentao.......................................................... ....................66 5.1 Objetivos......................................................................................... ............66 5.2 Introduo T erica.................................................................................... ...66 5.3 Comando help.................................................................................... .........66 5.4 Comando man........................................................................................... ..67 5.5 Comando apropos.......................................................................... .............68 5.6 Comando whatis............................................................. ............................68 5.7 Comando info........................................................................................ ......69 5.8 Comando whereis......................................................... ..............................69 5.9 Comando wich............................................................ ................................70

1

5.10 Howto's.............................................................................. .......................70 6 Editor de textos Vi.......................................................... ...............................71 6.1 Objetivos......................................................................................... ............71 6.2 Introduo......................................................................................... ..........71 6.3 Comandos de Edio.................................................................................72 . 6.4 Comandos de Movimentao.................................................................. ....72 6.5 Comandos de Localizao........................................................................ ...73 6.6 Comandos de Alterao.................................................................. ............73 6.7 Comandos de Execuo.................................................................. ............74 7 Configurando a rede ................................................................. ....................75 7.1 Objetivos......................................................................................... ............75 7.2 Introduo T erica.................................................................................... ...75 7.3 Prtica Dirigida....................................................... ....................................75 8 Manipulando Hardware e Dispositos............................................................. .79 8.1 Objetivos......................................................................................... ............79 8.2 Arquitetura de Computadores e Dispositivos de Hardware........................79 8.3 Acesso aos dispositivos.............................................................................79 . 8.4 Dispositivos em Linux............................................................ .....................80 8.4.1 Explorando o /dev..................................................................... ...............81 8.5 Dispositivos de armazenamento............................................................ .....81 8.5.1 Usando os dispositivos de armazenamento............................................83 8.5.2 Pendrives................................................................... ..............................84 9 Administrao de Usurios...................................................... ......................86 9.1 Objetivos................................................................................................. ....86 9.2 Gerenciamento de usurios........................................................ ................86 9.3 Permisses................................................................................. .................87 9.4 Resgistro de usurios no sistema ................................. .............................89 . 9.4.1 Arquivo /etc/passwd............................................................................. ....89 9.4.2 Arquivo /etc/shadow...............................................................................90 . 9.5 Levantamento de informaes dos usurios..............................................91 9.5.1 Comando id........................................................................................ ......91 9.5.2 Comando finger.......................................................... .............................91 9.5.3 Comando users...................................................................... ..................91 9.5.4 Comando who....................................................................... ...................91 9.5.5 Comando w............................................................................ ..................92 9.6 Criando Usurios ................................................................................. ........92 9.6.1 Comando adduser.............................................................................. ......92 9.7 Adicionar um usurio a outro grupo.......................... .................................92 9.7.1 Comando gpasswd............................................................................. ......93 9.8 Modificando usurios........................................................... .......................93 9.8.1 Comando passwd.............................................................................. .......93 9.8.2 Comando usermod.............................................................................. .....94 9.9 Removendo usurios................................................................................... 94 10 Administrao da Shell............................................................ ....................95 10.1 Objetivos....................................................................................... ............95 10.2 O que uma shell?........................................................... ........................95

2

10.3.1 Variveis Locais e de Ambiente (globais)..............................................96 10.4 Alias............................................................................... ...........................97 10.5 Arquivos de Login.................................................... .................................97 10.5.1 Arquivos /etc/issue e /etc/motd............................... .............................98 . 10.6 Tipos de shell........................................................................ ....................99 11 Comandos teis de linha de comando...................................................... .100 11.1 Objetivos...................................................................................... ...........100 11.2 Trabalhando com entrada e sada de dados......................... ..................100 11.3 Comandos para paginao....................................................................101 . 11.3.1 Mostrando o contedo e/ou concatenando.......................................... 01 1 11.3.2 Controlar o fluxo: more e less.............................................................102 . 11.3.3 Pores especficas: head e tail..........................................................102 . 11.3.4 Contagem: wc......................................................................... .............103 11.3.5 Classificao: sort................................................................. ...............103 11.3.6 Mostrar algo: echo............................................................ ...................104 11.4 Filtragem..................................................................................... ............105 11.4.2 Filtrar colunas: cut................................................... ............................106 11.4.3 Determinando o tipo de arquivo: file............................... ...................107 . 11.5.1 Verificar espao em disco: df................................................... ............107 11.5.2 Verificar espao de uma pasta ou arquivo: du....................................108 11.5.3 Mostrar o uso de memria RAM: free..................................................109 11.5.4 Mostrar e/ou ajustar a data do sistema: date............................ .........109 . 11.5.5 Mostrar por quanto tempo o computador est ligado: uptime............110 11.6 Diversos............................................................................... ...................110 11.6.1 Diferena entre arquivos....................................................................110 . 11.6.2 T empo de execuo de um programa: time........................................111 11.7 Localizao............................................................. ................................111 11.7.2 Localizao usando base de dados: locate............................... .........113 . 12 Compactadores, Empacotadores e Procedimentos de Backup..................114 12.1 Objetivos...................................................................................... ...........114 12.2 Empacotador TAR..................................................................................114 . 12.3 Compactadores GZIP e BZIP2................................................................116 . 13 Instalando, removendo e atualizando programas.....................................117 13.1 Objetivos...................................................................................... ...........117 13.2 O que um pacote?............................................................................ ....117 13.3 Gerenciamento de pacotes.......................................................... ...........117 13.4 Espelhos e o arquivo /etc/apt/sources.list..............................................118 13.5 Instalao, Remoo e Atualizao........................................................119 13.5.1 Consultas de pacotes...................................................................... .....119 13.6 Atualizao via Internet..................................................... .....................119

3

Captulo 1

GNU / Linux, Distribuies e GPL1.1 ObjetivosUtilizar um sistema GNU/Linux muito mais do que optar por uma soluo isenta de custos de licena. usufruir de uma filosofia que antecedeu o software proprietrio, e que permitiu, por exemplo, que a internet cresesse de forma aberta como a conhecemos hoje. Como usurio de software livre, precisamos compreender um pouco mais sobre essa ideologia e como ela promoveu o surgimento das vrias distribuies.

1.2.IntroduoO sistema GNU/Linux frequentemente chamado apenas pelo seu segundo nome, Linux. Entretanto, essa designao no faz justia a todos os desenvolvedores que vm desenvolvendo o sistema. GNU, que um acrnimo recursivo de GNU's not Unix, um grupo que foi fundado em 1984 por seu idealizador, Richard Stallman, com o intuito de criar um sistema operacional Unix-Like. Sendo assim, diversos softwares passaram a ser criados e mantidos pela comunidade que se formara, entretanto, havia um pedao de cdigo essencial que ainda no tinha sido criado: o Kernel. Em 1991, um jovem filands chamado Linus Torvalds disponibilizou para o mundo a primeira verso do Linux, um kernel Unix-Like. A partir desse ponto, foi possvel unir o , kernel Linux com os softwares GNU, originando o que chamamos de GNU/Linux. O mundo GNU/Linux no apenas um conjunto de programas mas tambm uma filosofia de mundo livre e colaborativo, no qual as pessoas podem utilizar esses softwares livremente e, acima de tudo, aprender com eles, uma vez que seu cdigo fonte deve ser disponvel a todos que queiram melhor-lo ou apenas aprender com ele. Para que esse mundo continue livre, Richard Stallman fundou a FSF Free Software Foundation, que mantm a licena chamada GNU GPL GNU General Public License.

liberdade 0 liberdade para rodar o programa para quaisquer propsitos; liberdade 1 liberdade para estudar como o programa trabalha e adaptlo s suas necessidades. Ter acesso ao cdigo fonte essencial para isso. liberdade 2 liberdade de redistribuir cias de forma que voc possa ajudar outras pessoas.

4

liberdade 3 liberdade para melhorar o programa e disponibilizar as melhorias para o pblico de forma que toda a comunidade possa se beneficiar disso. Ter acesso ao cdigo fonte essencial tambm para isso.

Mais informes a respeito do kernel Linux podem ser obtidas no site oficial de seus mantenedores: http://www.kernel.org e informaes a respeito do GNU e da FSF podem ser obtidas nos sites: http://www.gnu.org e http://www.fsf.org .

1.3 Distribuies GNU/LinuxVoc j deve ter ouvido falar em Debian, Redhat, Slackware, Suse, Conectiva, Mandrake, Ubuntu entre outras. Mas, o que realmente isso? O que so todos esses nomes? Todos esses nomes so o que chamamos de distribuies GNU/Linux. Uma distribuio nada mais do que o kernel, Linux, softwares GNU e outros aplicativos que so desenvolvidos por outra comunidades ou grupos. Mas, por que tantas distribuies? Justamente porque se voc no se identifica com nenhuma delas, voc livre pra fazer a sua prpria. Ou seja, em 1993, um rapaz chamado Patrick Volkerding, juntou o kernel e vrios outros aplicativos em uma distribuio chamada Slackware, que foi a primeira a ser distribuda em CD. A partir desse ponto, foram surgindo diversas outras distribuies que de alguma forma diferiram da filosofia do Slackware: como Debian ou RedHat, por exemplo. Atualmente existem centenas de distribuies, algumas mais famosas que outras. Em sua maioria, as distribuies GNU/Linux so mantidas por grandes comunidades de colaboradores, entretanto, h outras distribuies que so mantidas por empresas. Dessa forma, podemos dividir as distros, abreviao bastante utilizada na comunidade e que se refere s distribuies, em duas categorias bsicas: livres e corporativas.

Distribuies Livres - mantidas por comunidades de colaboradores sem fins lucrativos. Exemplos so: Debian, Ubuntu, Slackware, Gentoo, Knoppix e CentOS, entre outras. Distribuies Corporativas mantidas por empresas que vendem o suporte ao seu sistema. Exemplos so: RedHat, Suse e Mandriva.

Neste ponto vale ressaltar o fato de que o produto vendido pelas empresas que comercializam sistemas GNU/Linux, so na verdade, os servioes relacionados ao sistema vendido, como suporte tcnico, garantias e treinamentos, ou seja, o conhecimento do sistema. O fato de o produto no ser mais o software, mas sim o servio, devido Licena GPL que garante as j citadas quatro liberdades bsicas. Com isso, por mais que uma empresa queira fazer seu prprio sistema

5

GNU/Linux, enquanto ela estiver utilizando softwares registrados com GPL, sero obrigadas a distribuir o cdigo fonte gratuitamente. Dentro do conjunto de Disttribuies Livres, podemos divid-las novamente em duas outras categorias: Convencionais e Live.

Distribuies Convencionais so distribudas da forma tradicional, ou seja, uma ou mais mdias que so utilizdas para instalar o sistema no disco rgido; Distribuies Live so distribudas em mdias com o intuito de rodarem a partir delas, sem a necessidade de instalar no disco rgido.

As distribuies Live ficaram famosas pois tm a inteno de fornecer um sistema GNU/Linux totalmente funcional, de forma fcil e sem a necessidade de o instalar na mquina. O fator que favoreceu essa abordagem que em uma distribuio Live praticamente todos os componentes j vm configurados, funcionando e com interface agradveis aos usurios finais. Exemplos desse tipo de distribuio so o Knoppix, do qual se originaram diversas outras como Kurumin ou Kalango, que so verses brasileiras do Knoppix, e o Ubuntu, bastante difundido atualmente.

1.4 Caractersticas de Algumas DistribuiesSer mostrado a seguir a caracterstica de algumas distribuies. Voc pode encontrar uma lista das distribuies existentes, bem como das estatstica de downloads, no site: http://distrowatch.com

1.4.1 RedHat

tipo: corporativa; descrio: primeira distribuio corporativa a ser criada. Muito utilizada nas empresas por oferecer suporte tcnico e ter seu sistema compatvel com as diversas tecnologias disponveis; interface padro: GNOME; sistema de pacote: RPM RedHat Package Manager; site oficial: http://www.redhat.com

1.4.2 SuSe

6

tipo: corporativa; descrio: comprada pela Novell em 2003, a principal concorrente da RedHat, atuando no meio corporativo tanto em servidores quanto em desktops. Assim como a RedHat, possui parcerias com diversas empresas, a fim de manter seu sistema operacional compatvel com produtos de terceiros; interface padro: GNOME; sistema de pacote: baseado em RPM, mas no segue o formato da RedHat risca, tendo implementado algumas variaes; site oficial: http://www.novell.com/linux

1.4.3 Mandriva

tipo: corporativa; descrio: originada da fuso da Mandrake e Conectiva, especializada em servios e projetos embarcados; interface padro: KDE; sistema de pacote: RPM; site oficial: http://www.mandriva.com

1.4.4 Slackware

tipo: livre; descrio: primeira distribuio GNU/Linux a ser distribuda em CD, considerada como sendo a primeira distribuio. Organizada por seu criador Patrick Volkerding, caracteriza-se por sua filosofia de ser a distribuio mais Unix-Like do mundo GNU/Linux. interface padro: KDE; sistema de pacote: tgz; site oficial: http://www.slackware.com

7

1.4.5 Debian

tipo: livre; descrio: criada com o intuito de prover um sistema operacional totalmente livre e gratuito, foi uma das primeiras distribuies GNU/Linux a serem criadas. Atualmente uma das maiores distribuies e a que mais gerou distribuies derivadas. Por ser uma referncia em sistemas GNU/Linux, a distribuio mais utilizada em rgos pblicos e governos; interface padro: GNOME; sistema de pacote: DEB Debian Package; site oficial: http://www.debian.org

1.4.6 Ubuntu

tipo: livre (convencional e Live); descrio: com seu slogan Linux for Human Beings voltada para o usurio final, apesar de ter verso para servidores. Patrocinada pelo milionrio Mark Shuttleworth , atualmente, a maior distribuio em nmero de downloads. interface padro: GNOME ou KDE (para Kubuntu); sistema de pacote: DEB Debian Packge; site oficial: http://www.ubuntu.com

1.4.7 Fedora

tipo: livre; descrio: mantida pela RedHat, serve de teste para o carro chefe da empresa, o RedHat Enterprise. interface padro: GNOME; sistema de pacote: RPM RedHat Package Manager; site oficial: http://fedora.redhat.com

8

1.4.8 OpenSuSetipo: livre; descrio: patrocinada pela Novell, baseia-se no SuSe Linux; interface padro: GNOME ou KDE; sistema de pacote: RPM; site oficial: http://en.opensuse.org

1.4.9 Knoppixtipo: livre (Live); descrio: distribuio Live que popularizou distribuies do gnero, devido sua ferramenta de remasterizao que facilitou o processo de gerar novas distribuies; interface padro: KDE; sistema de pacote: DEB; site oficial: http://www.knoppix.org

1.4.10 Gentootipo: livre (Live); descrio: todos os programas so compilados na prpria mquina. As principais vantagens so a performance e a personalizao conforme as necessidades do usurio. A principal desvantagem o trabalho e tempo necessrios a sua instalao. interface padro: a escolha do usurio; sistema de pacote: no utiliza; site oficial: http://www.gentoo.org Bem, agora que j conhecemos um pouco de cada distribuio, chegou a hora de comearmos nosso trabalho instalando a distruibuio Debian, que ser usada como base para esse curso.

9

Capitulo 2

Instalando o sistema GNU/LinuxPara comear, necessrio alterar a ordem de boot de seu computador acessando sua bios atravs da tecla Del ou F1 depe ndendo da sua placa me. Altere as configuraes para iniciar o boot a partir do "CDROM", em seguida seguiremos com o boot. Insira o DVD 1 do Debian Etch 4.0 no seu leitor de CD/DVD e vamos instalao:

Essa a primeira tela que voc ver assim que iniciar o boot Aqui voc pode escolher opes de boot tanto para usurios experientes como para iniciantes. Escolheremos a mais simples digitando installgui ou apertando a tecla F3 para ver mais opes e escolhendo a opo installgui.

10

Escreva installgui como forma de iniciar a instalao em modo grfico

11

Agora voc seleciona a linguagem portugus do brasil e clique em continue.

12

Agora voc seleciona o pas e clique em continuar

13

Selecione o layout do teclado portu gus brasileiro (br-abnt2) e clique em continuar

14

Aps detectar o cdrom e carregar os componentes, agora podemos configurar a rede escolhendo a(s) interface(s) de rede (placa(s) de rede), caso voc tenha um servidor DHCP na sua rede ser atribudo um endereo IP para seu computador, caso contrrio a configurao DHCP automtica de IP ir falhar. Se voc for instalar o Debian Linux em sua casa e voc no tiver conexo com a internet, voc no precisa configurar a rede agora, ser necessrio somente se voc tiver com uma conexo coma internet (Banda larga) ou se estiver em uma rede, onde ser necessrio configurar manualmente o endereo IP, mscara de rede, gateway , DNS e hostname (nome do computador).

15

Caso voc no tenha um servidor DHCP ir falhar a configurao automtica

16

Agora voc pode escolher em configurar manualmente ou no configurar a rede agora.

17

Digite o endereo IP da sua rede, abaixo temos um IP de uma r ede classe C 192.168.0.0

18

Digite a mscara de rede, abaixo temos uma mscara de uma rede classe C 192.168.0.0/255.255.255.0

19

Digite o endereo IP do gateway, ou seja do computador que est compartilhando a internet na sua rede.

20

Digite o endereo IP do do(s) servidor(es) DNS, solicite os endereos com o Administrador da rede ou com o seu provedor de internet. Os endereos dos servidores DNS (podem conter at 3 endereos IP DNS), mas sendo necessrio apenas um ou dois endereos IP(DNS1 e DNS2) e podem ser separados por espao. Ex: 200.204.0.10 200.204.0.138

21

Agora chegou a hora de particionar o disco rgido, onde podemos escolher as opes de particionamento assistido on o particionador ir de gui-lo e oferecendo a opo de revisar e personalizar o particionamento, ou voc pode escolher a opo manual, onde voc ter que criar as parties manualmente. Para instalar o Linux voc precisa de pelo menos duas parties: um a partio raiz representado pela ( / ) onde ser instalado sistema operacional e outra partio de memria virtual ( SWAP ) sendo que a partio da memria virt ual swap dever ser o dobro da memria RAM do seu computador. Ex : 256 MB de RAM - 512 MB de SWAP.

22

Chegamos no particionador onde temos uma viso geral do(s) disco(s) rgido(s) onde podemos escolher o espao livre, para podermos criar e alterar as parties, sistema de arquivos, ponto de montagem, etc. Para criar a partio swap (memria virtual) e a partio raiz ( / ) onde ser instalado o Linux, selecione o espao livre e continuar.

23

Agora voc pode criar uma nova partio selecione criar nova partio e depois clique me continuar.

24

Aqui voc pode primeiramente criar a partio swap, sendo que dever ser o dobro da sua memria RAM, no caso abaixo temos 512 de RAM e ser criado a partio swap com 1 GB.

25

Agora selecione o tipo da partio primria ou e xtendida. Neste caso como ir ter apenas duas parties escolha primria.

26

Agora selecione a opo incio, para criar a partio no incio do espao livre.

27

Agora voc dever cria o sistema de arquivos para a partio, onde podemos escolher entre ext3, reiserfs ou swap. Como estamos criando uma partio swap escolha a opo Usar como: sistema de arquivos com journaling ext3 e clique em continuar para poder editar e trocar de sistema de arquivos de ext3 para swap.

28

Selecione a opo rea de troca para a partio SWAP e clique em continuar.

29

Agora finalize a configurao da partio SW na opo finalizar e AP clique em continuar.

30

Repare que foi criada a partio swap com 1.0 GB com a opo F (indicando que a partio ir ser formatada). Agora selecione o espao livre e clique em continuar para criar a partio raiz ( / ) onde iremos usar o restante do espao livre.

31

Agora voc pode criar uma nova partio selecione criar nova partio e depois clique me continuar.

32

Aqui voc pode criar a partio raiz ( / ) onde ser instalado o Linux , abaixo temos 13.6 GB que corresponde ao restante do disco se voc deseja criar outras parties informe o tamanho em MB ou GB ou em porcentagem 20%, 30%, etc. Se no for criar mais parties basta clicar em continuar.

33

Agora selecione o tipo da partio primria para a partio raiz ( / ).

34

Agora selecione a opo incio, para criar a partio no incio do espao livre.

35

Agora selecione a opo flag inicializvel e clique em continuar, para ativar a partio como inicializvel onde sero gravadas informaes da inicializao do sistema.

36

Agora finalize a configurao da partio raiz ( / ) na opo finalizar e clique em continuar.

37

Repare que foi criada a partio raiz / com 13.6 GB com a opo F (indicando que a partio ir ser formatada) e B(boot - indicando que a partio uma partio inicializvel). Agora finalize o particionamento selecionado a opo Finalizar o particionamento e gravar as mudanas no disco e depois clique em continuar.

38

Agora finalize o particionamento selecionado a opo Finalizar o particionamento e gravar as mudanas no disco e depois clique em continuar.

39

Agora selecione a opo sim para gravar as mudanas no disco.

40

Agora coloque a senha de root (Administrador do sistema) , no coloque uma senha muito fcil e anote para no esquecer. Aps isso clique em continuar.

41

Agora digite o nome de usurio do computador, por exemplo: Linus Tovalds ou apenas Linus.

42

Agora digite o nome de usurio para sua conta no sistema, aps a escolha clique em continuar.

43

Agora digite senha de usurio.

44

Caso voc deseje informar aos desenvolvedores da distribuio Debian Linux, sobre quais so os programas que voc mais utiliza escolha sim, caso contrrio escolha no.

45

Nessa seo voc poder escolher quais pacotes instalar, para uma instalao bsica escolha Ambiente Desktop e Sistema Bsico ou voc poder personalizar a instalao com outros pacotes.

46

Agora ajuste seu fuso horrio escolhendo o estado e o relgio para o padro internacional UTC escolhendo a opo sim.

47

Agora ser iniciado o processo de instalao de pacotes, caso voc tenha outros sistema operacionais instalados no seu disco, ser adicionado automaticamente pelo gerenciador de boot GRUB, onde ele ir perguntar se deseja gravar as informaes no primeiro setor do disco MBR. Nesse caso escolha sim e depois o computador ser reiniciado e aparecer a tela do gerenciador de boot (GRUB) exibido na imagem abaixo, onde voc poder apertar ENTER e carregar o Debian Linux.

48

Esse o menu do Grub, que perguntou anteriormente se havia outros sistemas operacionais instalados na mquina. Selecionando o Debian GNU/Linux, voc estar iniciando o seu sistema Debian recm-instalado.

49

Agora s digitar o nome de usurio e senha criado na instalao e entrar no sistema. Acabamos de instalar o sistema Debian GNU/Linux em nosso computador, viu s o Linux no nenhum bicho de sete cabeas como dizem os mitos. E daqui para frente aprenderemos como dominar esse sistema operacional.

50

Captulo 3

Primeiros Passos3.1 ObjetivosNeste captulo iremos aprender os primeiros passos na utiizao de um sistema GNU/Linux. Desde ligar e desligar o computador bem como fazer o login e logout do sistema.

3.2 LogonLogon a entrada do usurio, root ou comum, onde deve ser digitado seu nome de usurio, e logo depois sua senha. Caso voc digite algo de forma errada, ir aparecer uma mensagem de erro e voc no ser logado no sistema.

3.3 LogoutLogout a sada do sistema. Ela feita pelos comandos logout, exit, , ou quando o sistema reiniciado ou desligado.

3.4 IntroduoNo mundo GNU/Linux, utilizamos o shell, que funciona como interpretador de comandos. Inicialmente devemos saber como us-lo. O shell a interface entre o usurio e o kernel do sistema e por meio dele, podemos digitar os comandos. O shell padro do GNU/Linux o bash. Existem tambm outros shells, como, por exemplo, csh, tcsh, ksh, e zsh. O kernel a parte mais prxima do hardware do computador. o ncleo do Sistema Operacional. Se seu GNU/Linux estiver com problemas, no chute seu computador, a culpa no dele. O local onde o comando ser digitado marcado por um trao piscante na tela, chamado de cursor. Tanto em shells texto como nos shells grficos necessrio o uso do cursor para sabermos onde devemos in iciar a digitao de textos e nos orientarmos quanto posio na tela.

51

Popularmente conhecido como linha de comandos, o shell interpreta o usurio que ir efetuar uma ao de duas maneiras, so elas: Super usurio, popularmente conhecido como root. No se engane, root no de raiz, da lngua inglesa. O usurio root o administrador do sistema, e seu diretrio (pasta) padro o /root, diferentemente dos demais usurios que ficam dentro de /home. No prximo captulo falaremos mais sobre a estrutura de diretrios do GNU/Linux. O shell de um usurio root diferente de um usurio comum. Antes do cursor, ele identificado com # (jogo da velha). O segundo o usurio comum, qualquer usurio do sistema que no seja root e no tenha poderes administrativos no sistema. Como j haviamos dito anteriormente, o diretrio padro para os usurios o /home. Antes do cursor, o shell de um usurio comum identificado com $ (cifro). Existem muitas funcionalidades no shell, uma delas retornar comandos que j foram digitados anteriormente. Para fazer isso s pressionar as teclas seta para cima e seta para baixo, caso queira retornar. Outra funcionalidade tambm muito utilizada, serve para visualizarmos a nossa tela de modo que possamos ir para cima ou para baixo, parecido com o scroll. Para rolarmos a tela para cima, seguramos o Shift e pressionamos o Page Up, para rolarmos a tela para baixo, seguramos o Shift e pressionamos o Page Down. Isto til para ver textos que rolaram rapidamente para cima. A seguir, algumas funcionalidades da linha de comandos (no necessrio se preocupar em decor-los, com o passar do tempo, pegamos um pouco mais de prtica): Pressione a tecla Back Space para apagar um caractere esquerda do cursor; Pressione a tecla Delete para apagar o caractere acima do cursor; Pressione a telca Home para ir ao comeo da linha de comando; Pressione a telca End para ir ao final da linha de comando; Pressione as teclas Ctrl + A para mover o cursor para o nicio da linha de comandos; Pressione as telcas Ctrl + E para mover o cursor para o final da linha de comandos; Pressione as telcas Ctrl + U para apagar o Ctrl + y; Pressione as teclas Ctrl + L para limpar a tela e manter a linha de comando na primeira linha. Mas se voc der um Shift + Page Up voc ainda consegue enxergar o contedo. O Ctrl + L funciona igual ao comando clear, que tem a mesma funo; Pressione as telcas Ctrl + C para abrir uma nova linha de comando, na posio atual do cursor; Pressione as teclas Ctrl + D para sair do shell. Este equivalente ao comando exit; Pressione as teclas Ctrl + R para procurar x letra relacionada ao ltimo

52

comando digitado que tinha x letra como contedo;

3.5 Terminal VirtualTerminal (ou console) o teclado e a tela conectados em seu computador. O GNU/Linux faz uso de sua caracterstica multi-usurio, ou seja, suporta vrios usurios, usando os terminais virtuais. Um terminal virtual uma segunda seo de trabalho completamente independente de outras e que pode ser acessado no computador local ou remotamente, utilizando os programas telnet, rsh, rlogin, rdesktop, vnc, ssh, etc. Nos dias de hoje, o acesso remoto muito importante. A qualquer distncia que esteja o cliente, possvel atende-lo. No GNU/Linux possvel, em modo texto, acessar outros terminais virtuais,segurando a tecla Alt e pressionando F1 at F6. Cada tecla tem funo correspondente a um nmero de terminal do 1 ao 6, isso por default, e pode ser mudado (o stimo, por default, usado pelo ambiente grfico X-WindowSystem). O GNU/Linux possui mais de 63 terminais virtuais, mas deles, apenas 6 esto disponveis, inicialmente por motivos de economia de memria RAM. Se voc estiver usando o modo grfico, deve segurar Ctrl + Alt enquanto pressiona uma tecla de atalho de F1 F6. Um exemplo prtico: se voc estiver utilzando o sistema no terminal 1, pressione Ctrl + Alt + F2, e veja na primeira linha nome e verso do sistema operacional, nome da mquina e o terminal que voc est. Voc pode utilizar quantos terminais quiser, do F1 ao F6 (inclusive utilizando o X) e pode ficar saltando de terminal para terminal.

3.6 Desligando o ComputadorPara desligar o computador, primeiro digite (como root): # shutdown -h now # halt # poweroff A palavra halt vem do comando em assembly chamado HLT, que quer dizer parada de processamento. Assim, o GNU/Linux finalizar os programas e gravar os dados em seu disco rgido.

53

Quando for mostrada a mensagem power down, pressione o boto POWER em seu gabinete para desligar a alimentao de energia do computador. NUNCA desligue o computador diretamente sem utilizar o comando shutdown, halt ou poweroff, pois podem ocorrer perdas de dados ou falhas no sistema de arquivos de seu disco rgido, devido a programas abertos e dados ainda no gravados no disco. Os comandos halt e poweroff disparam uma srie de procedimentos, como encerramento de servios e desmontagem de sistemas de arquivos, que so executados antes da mquina ser desligada. Salve seus trabalhos para no correr riscos de perd-los durante o desligamento do computador. O comando shutdown tem a seguinte sintaxe: # shutdown Onde: ao: o que voc quer fazer. As opes so -h para desligar e -r para reiniciar. tempo: tempo em minutos que voc deseja para comear a executar a ao. Exemplo: # shutdown h now (Delisgar agora) #shutdown -h 12 (Desligar daqui 12 minutos)

3.7 Reiniciando o ComputadorReiniciar quer dizer Iniciar novamente o sistema. No possvel desligar e ligar constantemente o computador pelo boto ON/OFF ou RESET. Por isso, existem recursos para reiniciar o sistema sem desligar o computador. No GNU/Linux voc pode usar o comando reboot, shutdown -r now e tambm pressionar simultaneamente as teclas para reiniciar de forma segura. Observaes: Salve seus trabalhos. Utilize comandos e no o dedo. Prefira o mtodo de reinicializao explicado acima e use o boto reset somente em ltimo caso. # shutdown r now (Reiniciar agora) # shutdown -r 5 (Reiniciar daqui 5 minutos)

54

Captulo 4

Sistema de Arquivos e Diret rios4.1 ObjetivosQuem j teve algum contato com o GNU/Linux, mesmo que superficial, deve ter percebido a presena de vrios diretrios (pastas) no sistema. Entretanto, eles esto organizados de uma forma talvez no muito familiar. Neste captulo, vamos conhecer a organizao e explorar a esttutura de diretrios de um sistema GNU/Linux.

4.2 IntroduoDesde que o GNU/Linux foi criado, muito se tem feito para seguir um padro em relao estrutura de diretrios. O primeiro esforo para a padronizao de sistemas de arquivos para o GNU/Linux foi FSSTND Filesystem Standard, lanado no ano de 1994. Cada diretrio do sistema tem seus respectivos arquivos que so armazenados conforme regras definidas pela FHS Filesystem Hierarchy Standard, ou Hierarquia Padro do Sistema de Arquivos, que define que tipo de arquivo deve ser guardado em cada diretrio. Isso muito importante, pois o padro ajuda manter a compatibilidade entre as verses Linux existentes no mercado, permitindo que qualquer software escrito para o GNU/Linux seja executado em qualquer distribuio desenvolvida de acordo com os padres FHS. Atualmente, o FHS est na sua verso 2.3, e mantido pelo Free Standard Group, uma organizao sem fins lucrativos formada por grandes empresas como HP, IBM, Red Hat e Dell.

4.3 Estrutura de Diretrios GNU/LinuxA estrutura de diretrios tambm conhecida como rvore de Diretrios porque tem a forma de uma rvore. Mas, antes de estudarmos a estrutura de diretrios, temos que ter em mente o

55

que so diretrios. Um diretrio nada mais do que o local onde os arquivos so guardados no sistema. O arquivo pode ser um texto, uma imagem, planilha, etc. Os arquivos devem ser identificados por nomes para que sejam localizados por quem deseja utiliz-los. Um detalhe importante a ser observado que o GNU/Linux case sensitive, isto , ele diferencia letras maisculas e minsculas nos arquivos e diretrios. Sendo assim, um arquivo chamado Arquivo diferente de ARQUIVO e diferente de arquivo. A rvore de diretrios do GNU/Linux tem a seguinte estrutura: / bin boot cdrom dev etc home lib media mnt opt proc sbin root srv var tmp

usr

Da estrutura mostrada acima, o FHS determina que um sistema GNU/Linux deve conter obrigatoriamente 14 diretrios, especificados a seguir: / (raiz) Este o principal diretrio GNU/Linux, e representado por uma / (barra). no diretrio raiz que ficam todos os demais diretrios do sistema. Estes diretrios, que vamos conhecer agora, so chamados de subdiretrios pois esto dentro do diretrio /. /bin O diretrio /bin guarda os comandos essenciais para o o funcionamento do sistema. Esse um diretrio pblico, sendo assim, os comandos que esto nele podem ser utilizados por qualquer usurio do sistema. Entre os comandos, esto o bash, ls, echo, cp e outros. /boot No diretrio /boot esto os aquivos estticos necessrios inicializao do sistema, e o gerenciador de boot. O gerenciador de boot um programa que carrega um sistema operacional e/ou permite escolher qual ser iniciado. /dev No diretrio /dev ficam todos os arquivos de dispositivos. O linux faz a comunicao com os perifricos por meio de links especiais que ficam armazenados nesse diretrio, facilitando assim o acesso aos mesmos.

56

/etc No diretrio /etc esto os arquivos de configurao do sistema. Nesse diretrio vamos encontrar vrios arquivos de configurao, tais como: scripts de inicializao do sistema, tabela do sistema de arquivos, configurao padro para logins dos usurios, etc. /lib No diretrio /lib esto as bibliotecas compartilhadas e mdulos do kernel. As bibliotecas so funes que podem ser utilizadas por vrios programas. /media Ponto de montgem para dispotivos removveis, tais como: cd, dvd, disquete, pendrive, cmera digital, etc. /mnt Esse diretrio utilizado para montagem temporria de sistemas de arquivos, tais como compartilhamentos de arquivos entre Windows e Linux, Linux e Linux, etc. /opt Normalmente, utilizado por programas proprietrios ou que no fazem parte oficialmente da distribuio. /sbin O diretrio /sbin guarda os comandos utilizados para inicializar, reparar, restaurar e/ou recuperar o sistema. Isso quer dizer que esse diretrio tambm de comandos essenciais, mas os mesmos so utilizados apenas pelo usurio r oot. Entre os comandos esto o halt, ifconfig, init, iptables e outros. /srv Diretrio para dados de servios fornecidos pelo sistema cuja aplicao de alcance geral, ou seja, os dados no so especficos de um usurio. Por exemplo, /srv/www (servidor web), /srv/ftp (servidor ftp), etc. /tmp Diretrio para armazenamento de aqu ivos temporrios. utilizado principalmente para guardar pequenas informaes que precisam estar em

57

algum lugar at que a operao seja completada, como o caso de um download. Enquanto no for concludo, o arquivo fica registrado em /tmp, e assim que finalizado, encaminhado para o local correto. /usr O diretrio /usr contm programas que no so essenciais ao sistema e seguem o padro GNU/Linux, como por exemplo, navegadores, gerenciadores de janelas, etc. /var O diretrio /var contm arquivos de dados variveis. Por padro, os programas que geram um arquivo de registro para consulta, mais conhecido como log, ficam armazenados nesse diretrio. Alm de log, os arquivos que esto aguardando em filas, tambm ficam localizados em /var/spool. Os principais arquivos que se utilizam do diretrio /var so as mensagens de email e os arquivos a serem impressos. /proc O /proc um diretrio virtual, mantido pelo kernel, onde encontramos a configurao atual do sistema, dados estatsticos, dispositivos j montados, interrupes, endereos e estados das portas fsicas, dados sobre as redes, etc. Aqui, temos subdiretrios com o nome que corresponde ao PID (Process ID) de cada processo. Dentro deles, vamos encontrar diversos arquivos texto contendo vrias informaes sobre o respectivo processo em execuo.

4.5 Diretrios OpcionaisOs diretrios /root e /home podem estar disponveis no sistema, mas no precisam obrigatoriamente possuir este nome. Por exemplo, o diretrio /home poderia se chamar /casa, que no causaria nenhum impacto na estrutura do sistema. /home O /home contm os diretrios pessoais dos usurios cadastrados no sistema. /root

58

Diretrio pessoal do superusurio r oot. O root o administrador do sistema, e pode alterar a configurao (dele), configurar interfaces de rede, manipular usurios e grupos, alterar a prioridade dos processos, entre outras. Dica: Utilize uma conta de usurio normal em vez da da conta r oot para operar seu sistema. Uma razo para evitar usar privilgios root por causa da facilidade de se cometer danos irreparveis como root; alm de que, voc pode ser enganado e rodar um programa Cavalo de Tria (programa que obtm poderes do super usurio) comprometendo a segurana do seu sistema sem que voc saiba.

4.6 Aprendendo comandos do GNU/LinuxComandos so instrues passadas ao computador para executar uma determinada tarefa. No mundo *NIX (Linux, Unix), o conceito de comandos diferente do padro MSDOS. Um comando qualquer arquivo executvel, que pode ser ou no criado pelo usurio. Uma das tantas vantagens do Linux a variedade de comandos que ele oferece, afinal, para quem conhece comandos, a administrao do sistema acaba se tornando um processo mais rpido. O shell o responsvel pela interao entre o usurio e o sistema operacional, interpretando os comandos. no shell que os comandos so executados.

4.6.1 Explorando o sistemaVeremos agora os comandos bsicos para navegao no sistema. # pwd O comando pwd exibe o diretrio corrente. Ele muito til quando estamos navegando pelo sistema e no lembramos qu o diretrio atual. al Exemplo: # pwd O comando cd utilizado para mudar o diretrio atual de onde o usurio est. Exemplos: # cd # cd ~

59

Ir para o incio da rvore de diretrios, ou seja, o diretrio / : # cd / Ir para um diretrio especfico: # cd /etc Sobe um nvel na rvore de diretrios: # cd .. Retorna ao diretrio anterior: # cd Entra em um diretrio especfico: # cd /usr/include/X11 Sobe 2 nveis da rvore de diretrios: # cd ../../ Ateno! Note a diferena entre caminhos absolutos e relativos: Absolutos: /et/ppp; /usr/share/doc; /lib/modules; Relativos: etc/ppp; ../doc; ../../usr; O comando ls utilizado para listar o contedo dos diretrios. Ser no for especificado nenhum diretrio, ele ir mostrar o contedo do diretrio onde estamos no momento. Lista o contedo do diretrio atual: # ls O comando ls possui muitos parmetros, veremos aqui opes mais utilizadas. A primeira dela o -l que lista os arquivos ou diretrios de uma forma bem detalhada (quem criou, data de criao, tamanho, dono e grupo a qual eles pertencem). # ls -l / drwxr-xr-x 4 root root 1024 2009-01-15 21 :32 boot

Veja que a sada desse comando bem detalhada. Falando sobre os campos,

60

para os primeiro caractere temos algumas opes: d -> indica que se trata de um diretrio l -> indica que se trata de um link (como se fosse um atalho tambm vamos falar sobre ele depois) -> hfen, indica que se trata de um arquivo c -> indica dispositivo de caractere b -> indica dispositivo de bloco O campo rwxr-xr-x lista a permisses, enquanto os campos root indica quem usurio e grupo dono desse diretrio que, no nosso caso, o administrador do sistema, o root. O nmero antes do dono indica o nmero de hard links, um assunto abordado apenas em cursos mais avanados. O campo 1024 indica o tamanho do arquivo, e o campo 2009-01-15 21:32 informa a data e hora em que o diretrio foi criado. Finalmente, no ltimo campo temos o nome do arquivo ou diretrio listado, que no nosso exemplo, o boot. Com relao a diretrios, importante ressaltar que o tamanho mostrado no corresponde ao espao ocupado pelo diretrio e seus arquivos e subdiretrios. Esse espao aquele ocupado pela entrada no sistema de arquivos que corresponde ao diretrio. # ls -a /root . .. .aptitude .bash_history .bashrc .kde .profile Veja que, da sada do comando anterior, alguns arquivos so iniciados por . (ponto). Esses arquivos so ocultos. No Linux, arquivos e diretrios ocultos so iniciados por um . (ponto). Lista arquivos de forma recursiva, ou seja, lista tambm os subdiretrios que esto dentro do diretrio /: # ls -R /

4.6.2 CoringasO significado da palavra coringa no dicionrio o seguinte: carta de baralho, que em certos jogos, muda de valor e colocao na sequencia. No sistema GNU/Linux bem parecida a utilizao desse recurso. Os coringas so utilizados para especificar um ou mais arquivos ou diretrios. Eles podem substituir uma palavra completa ou somente uma letra, seja para listar, copiar, apagar, etc. So usados trs tipos de coringas no GNU/Linux: * - Utilizado para um nome completo ou restante de um arquivo/diretrio; ? - Esse coringa pode substituir uma ou mais letras em determinada posio;

61

[padro] - utilizado para referncia a uma faixa de caracteres de um arquivo/diretrio. [a-z][0-9] - Usado para trabalhar com caracteres de a at z seguidos de um caractere de 0 at 9. [a,z][1,0] - Usado para trabalhar com os caracteres a e z seguidos de um caractere 1 ou 0 naquela posio. [a-z,1,0] - Faz referncia do intervalo de caracteres de a at z ou 1 ou 0 naquela posio. A diferena do mtodo de expanso dos demais, que a existncia do arquivo ou diretrio opcional para o resultado final. Isto til para criao de diretrios. Lembrando que os 3 tipos de coringas mais utilizados (*,?,[]) podem ser usados juntos. Vejamos alguns exemplos: Supondo que existam 5 arquivos no diretrio /home/usurio. Podemos list-los: # ls arq1.txt arq2.txt arq3.txt arq4.txt.novo arq5.novo Vamos listar todos os arquivos do diretrio /home/usurio que tenham novo no nome: # ls *novo* arq4.txt.novo arq5.novo No caso, o comando # ls /tmp/teste/* foi citado, mas no tem muito sentido utilizar esse comando, importante ressaltar que a utilizao do * se aplica para um diretrio cheio de arquivos, como mostrado no caso dois, utilizado para procurar o arquivo em especfico.

4.6.3 Usando coringas no ShellListar todos os arquivos que comeam com qualquer nome e terminam com .txt: # ls *.txt Listar todos os arquivos que comeam com o nome arq, tenham qualquer

62

caractere no lugar do coringa, e terminam com .txt: # ls arq?.txt Para listar todos os arquivos que comeam com o nome arq, tenham qualquer caractere entre o nmero 1-3 no lugar da 4 letra e terminem com .txt. Neste caso, se obtm uma filtragem mais exata, pois o coringa especifica qualquer caractere naquela posio e [] especifica nmeros, letras ou intervalo que sero usados. # ls arq[1-3].txt Para listar somente arq4.novo e arq5.novo podemos usar os seguintes mtodos: # ls *.novo # ls *novo* # ls arq?.novo # ls arq[4,5].* # ls arq[4,5].novo Existem muitas outras maneiras de fazer a mesma coisa mas depende muito de cada um que vai utilizar. A criatividade nesse momento conta muito. No exemplo anterior, a ltima forma resulta na busca mais especfica. O que pretendemos mostrar como visualizar mais de um arquivo de uma s vez. O uso de coringas til para copiar arquivos, mover, apagar, renomear e nas mais diversas partes do sistema.

4.6.4 Criao, movimentao, cpia e remoo de arquivos e diretriosPara criar um arquivo, podemos simplesmente abrir um editor de texto e salvlo. Mas existem outras formas. Uma das formas mais simples usando o comando touch: # touch arquivo O comando mkdir utilizado para criar um diretrio no sistema. Um diretrio como uma pasta onde voc guarda seus arquivos. Exemplo: Criar o diretrio Eduardo:

63

# mkdir Eduardo Cria o diretrio curso e o subdiretrio aluno: # mkdir -p curso/aluno A opo -p ir criar o diretrio curso e o subdiretrio aluno, caso no existam. O comando rm utilizado para apagar arquivos, diretrios e subdiretrios que estejam vazios ou que contenham arquivos. Exemplos: Remove o arquivo teste.txt: # rm teste.tx Remove o arquivo eduardo.txt pedindo confirmao: # rm -i eduardo.txt rm: remove arquivo comum vazio `eduardo.txt'? A opo -i solicita a confirmao para remover o arquivo eduardo.txt. Remove o diretrio curso: # rm -r curso A opo -r recursivo, ou seja, ir remover o diretrio curso e o seu contedo. Observao: Muita ateno ao usar o comando rm! Uma vez que os arquivos e diretrios so removidos no podem mais ser recuperados! O comando rmdir utilizado para remover diretrios vazios. Exemplos: Remove o diretrio eduardo # rmdir eduardo Remove o diretrio curso e o subdiretrio aluno: # rmdir -p curso/aluno O comando mv serve tanto para renomear um arquivo quanto para mov-lo: # # # # mv arquivo caminho/diretrio-destino/ mv arquivo novo-nome mv diretrio novo-nome mv diretrio caminho/diretrio-destino/

64

O comando cp serve para faze cpias de arquivos e diretrios: # # # # cp cp cp cp arquivo-origem arquivo-destino arquivo-origem caminho/diretrio-destino/ -R diretrio-origem nome-destino -R diretrio-origem caminho/diretrio-destino/

65

Captulo 5

Buscando Documentao5.1 Objetivos

Hoje em dia, no basta conhecermos bem alguma coisa. Especialmente nas reas de tecnologia, devido a sua constante evoluo, preciso saber aprender para manter-nos atualizados. Neste captulo, vamos aprender a consultar as documentaes existentes e como buscar informaes sobre o que precisamos.

5.2 Introduo TericaO sistem operacional GNU/Linux possui uma vasta biblioteca de documentao. Antes de recorrermos a ajuda de outras pessoas, devemos lembrar que podemos ter as repostas que precisamos no prprio sistema, bem a nossa frente, ao teclar de um simples comando. Essa documentao em grande parte dos casos de extrema qualidade. O GNU/Linux cresceu porque a comunidade que contribui para o sistema e sua documentao no tem medo ou receio de compatilhar informaes e coloca o que foi desenvolvido no prprio sistema. Essa ajuda provida por meio dos manuais, as famosas Man Pages, outros comandos que podem nos informar de maneira rpida os parmetros que podemos utilizar e pelos How-Tos que cada aplicao instalada pode nos fornecer.

5.3 Comando helpO comando help fornece ajuda rpida; til para saber que opes podem ser usadas com os comandos internos do interpretador de comandos (shell). Para visualizar uma ajuda rpida para todos os comandos internos do sistema, podemos fazer da seguinte forma: # help Caso desejamos visualizar a ajuda rpida para somente um comando interno, usamos esta outra sintaxe: # help [comando]

66

Observao: O comando help somente mostra a ajuda para comandos internos. Para comandos externos, o help aparece como parmetro. Desse modo, caso desejemos visualizar uma ajuda rpida sobre um comando externo, devemos fazer da seguinte forma: # [comando] --help O parmetro --help pode ser utilizado em qualquer comando para ter uma consulta rpida dos parmetros que determinado comando pode nos oferecer.

5.4 Comando manO comando man o responsvel por trazer a documentao mais completa sobre determinado comando ou arquivo de configurao no qual estamos trabalhando. Os manuais do sistema so dividos em nveis que so os seguintes: man 1 Programas executveis e comandos do Shell; man 2 Chamadas de sistema (funes providas pelo Kernel); man 3 Chamadas de bibliotecas (funes como bibliotecas do sistema); man 4 Arquivos de dispositivo (localizados normalmente no /dev); man 5 Arquivos de configurao e convenes; man 6 Jogos; man 7 Variados (incluindo pacotes de macros e convenes); man 8 Comandos de administrao do sistema (normalmente usado somente pelo root); man 9 Rotinas de Kernel. Sintaxe do comando man: # man [coamndo] ou # man [seo] [comando] Observao: Essas informaes sobre as sees do comando man podem ser

67

achadas no seu prprio manual digitando o comando man man. Caso desejemos visualizar o manual do comando passwd, podemos fazer da seguinte forma: # man passwd Estamos consultando o manual do comando passwd. Para navegar pelo manual, o comando man abre um arquivo que est compactado na pasta /usr/share/man/man1 para o passwd ou outro nvel de manual dependendo do comando ou arquivo. O passwd conhecido no sistema GNU/Linux como um comando que adiciona ou modifica a senha do usurio e como o arquivo de usurios do sistema (/etc/passwd). Veremos agora o manual do arquivo de usurios passwd: # man 5 passwd Podemos ver que para visualizar o manual do arquivo de usurio passwd precisamos informar em qual nvel de manual ele se encontra, pois j existe um passwd no nvel 1 que o comando, ento ele aparece primeiro quando digitamos man passwd. Esse manual do arquivo passwd est compactado na pasta /usr/share/man/man5

5.5 Comando aproposO comando apropos utilizado quando no se sabe qual documentao acessar para um determinado assunto, mostrando as man pages que contm a palavrachave que foi especificada. A sintaxe utilizada para usar o apropos a seguinte: # apropos [palavra-chave] Para localizar as man pages, o comando apropos utiliza um banco de dados construdo com o comando catman (executado pelo administrador do sistema, root). Para construir o banco de dados do coma ndo apropos deveremos fazer seguinte forma: # catman

5.6 Comando whatisO comando whatis tem basicamente a mesma funo do comando apropos, s que as buscas do comando whatis so mais especficas. O apropos busca as

68

pginas de manuais e descries de maneira mais genrica; se digitarmos a palavra passwd ele nos trar tudo que tiver passwd, seja como nome ou parte do nome do manual ou na descrio. E o whatis nos trar somente o manual com nome exato da palavra pesquisada. A sintaxe utilizada no comando whatis a seguinte: # whatis [comando]

5.7 Comando infoAs info pages so como as pginas de manuais, porm so utilizadas com navegao entre as pginas. Elas so acessadas pelo comando info. O comando info til quando j sabemos o nome do comando e s queremos saber qual sua respectiva funo. A navegao das info pages feita atravs de nomes marcados com um * (hipertextos) que, se pressionarmos Enter, nos levar at a seo correspondente, e backspace volta pgina anterior . Podemos tambm navegar pelas pginas com as teclas n (next/prximo); p (previous/anterior); u (up/sobe um nvel). Para sair do comando info, basta teclar q. Caso desejemos exibir a lista de todos os manuais de comandos/programas disponveis, podemos fazer da seguinte forma: # info Para exibir as informaes somente de um determinado comando, usaremos a seguinte sintaxe: # info [comando]

5.8 Comando whereisO comando whereis utilizado para mostrar a localizao do binrio do comando, do arquivo de configurao (caso exista) e a localizao das pginas de manuais do determinado comando ou arquivo. Para visualizarmos a localizao destes dados para um determinado comando ou arquivo, utilizamos a seguinte sintaxe: # whereis [comando] ou # whereis [arquivo]

69

5.9 Comando wichO comando wich bem semelhante ao comando whereis, s que o comando wich s mostra a localizao do binrio do comando. Para visualizar a localizao do binrio do comando, utilizamos a seguinte sintaxe: # wich [comando]

5.10 Howto'sOs Howt'os so documentos que focam uma necessidade especfica, como montar um firewall, instalar uma webcam, configurar placas de som, configurar um servidor web e muitos outros. Normalmente esses documentos so instalados junto com suas respectivas aplicaes, ou em algumas vezes existe um pacote especfico para a documentao daquela aplicao. O diretrio de Howto's do GNU/Linux o /usr/share/doc. Por exemplo, se desejamos saber como configurar um firewall, podemos consultar os arquivos do diretrio: # cd /usr/share/doc/iptables/html/

70

Captulo 6

Editor de textos Vi6.1 ObjetivosA grande maioria das configuraes em sistemas GNU/Linux so feitas editandose diretamente arquivos de configurao em modo texto. Para podermos fazer isso, devmos conhecer o editor de texto padro do GNU/Linux, que o Vi.

6.2 IntroduoO Vi o editor bsico do GNU/Linux. Ele est presente em quase todas as distribuies Linux, mesmo naquelas que vm em apenas um disquete. Hoje em dia, as distribuies usam uma verso mais completa e com mais recursos do que o Vi que o Vim (VI iMproved). Segue a tela do vim. ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

VIM - Vi IMproved version 7.0.235 by Bram Moolenaar et al. Vim is open source and freely distributable Sponsor Vim development! type :help sponsor for information type :q to exit type :help or for on-line help type :help version7 for version info

71

~ 0,0-1 All

Ao invocar o Vim, este entra direto para o modo visualizao. Para modificar o arquivo, usam-se os modos de insero, deleo e de substituio. Para voltar ao modo de visualizao, sempre se usa a tecla Esc. ------------EDIO-------> | | | | Esc | | | | ------------COMANDO --> INSERT REPLACE VISUAL

ESCRITA ATALHO SHELL

6.3 Comandos de EdioComandos bsicos de insero de texto: i a r A o O Ctrl + h Insere texto antes do cursor; Insere texto depois do cursor; Insere texto no incio da linha onde se encontra o cursor; Insere texto no final da linha onde se encontra o cursor; Adiciona linha abaixo da linha atual; Adiciona linha acima da linha atual; Apaga o ltimo caractere;

6.4 Comandos de MovimentaoComandos bsicos de movimentao: Ctrl + f Ctrl + b H M L Move o Move o Move o Move o Move o cursor para cursor para cursor para cursor para cursor para a prxima tela; a tela anterior; a primeira linha da tela; o meio da tela; a ltima linha da tela;

72

h j k l w W espao; b B espao; 0 (zero) ^ $ nG :n gg G

Move o Move o Move o Move o Move o Move o

cursor um caractere esquerda; cursor para a prxima linha; cursor para a linha anterior; cursor um caractere direita; cursor para o incio da prxima palavra; cursor para o incio da prxima palavra, separadas por

Move o cursor para o incio da palavra anterior; Move o cursor para o incio da palavra anterior, separadas por Move o Move o Move o Move o Move o Move o Move o cursor para cursor para cursor para cursor para cursor para cursor para cursor para o incio da linha atual; o primeiro caractere no branco da linha atual; o final da linha atual; a linha n; a linha n; a primeira linha do arquivo; a ltima linha do arquivo.

6.5 Comandos de LocalizaoComandos bsicos para localizar texto; /palavra ?palavra n N Ctrl + g linhas. Busca pela palavra ou caractere em todo o texto; Move o cursor para a ocorrncia anterior da palavra; Repete o ltimo comando / ou ?; Repete o ltimo comando / ou ?, na direo reversa; Mostra o nome do arquivo, o nmero da linha atual e o total de

6.6 Comandos de AlteraoComandos bsicos para alterao de texto: x dw dd D :A,Bd rx u U J yy Deleta o caractere que est sob o cursor; Deleta a palavra, da posio atual do cursor at o final; Deleta a linha atual, e copia o contedo para rea de transferncia; Deleta a linha a partir da posio atual do cursor at o final; Deleta da linha A at a linha B, copia para rea de transferncia; Substitui o caractere sob o cursor pelo especificado em x; Desfaz a ltima modificao; Desfaz todas as modificaes feitas na linha atual; Une a linha corrente prxima; Copia 1 linha para a rea de transferncia;

73

yNy Copia N linhas para a rea de transferncia; p Cola o contedo da rea de transferncia; Np Cola N vezes o contedo da rea de transferncia; cc Apaga o contedo da rea de transferncia; cNc Apaga o contedo de N linhas, e copia para rea de transferncia; :%s/string1/string2/g Substitui string1 por string2.

6.7 Comandos de ExecuoComandos para salvar o texto: :wq ou :x :w nome_do_arquivo :w! nome_do_arquivo :q :q! Salvam o arquivo e saem do editor; Salva o arquivo corrente com o nome especificado; O mesmo que :w, mas forando sobrescrita; Sai do editor; Sai do editor sem salvar as alteraes realizadas.

74

Captulo 7

Configurando a rede7.1 ObjetivosNeste captulo, iremos aprender a configurar o IP da mquina e a mscara de rede. Tambm, como definir a rota padro e os DNS, bem como salvar essas configuraes nos seus respectivos arquivos.

7.2 Introduo TericaA configurao de rede em um sistema GNU/Linux muito importante pois esses sistemas so, intrinsecamente, sistemas de rede. Ou seja, mesmo que no haja nenhum tipo de interface de rede ou modem ou qualquer outra coisa do gnero, ainda assim uma mquina GNU/Linux ser um sistema de rede. Isso possvel pois em todo GNU/Linux h uma interface lgica, chamada loopback (lo) cujo endereo IP ser 127.0.0.1 e que sempre deve estar apropriadamente configurada. Estando essa interface configurada, todo tipo de servio pode ser ativado na mquina, desde um simples servidor de ssh at um servidor de DNS passando por um servidor de pginas Web. Voc pode estar se perguntando, mas por que raios eu poderia querer um servidor web rodando em uma mquina que no fala com o mundo externo?. A resposta simples, voc pode desenvolver suas pginas e sistemas web e testlas localmente, por que no? Ou testar a implantao de um servidor DNS ou um proxy. Resumindo, voc pode fazer qualquer coisa que voc queira e no necessariamente precisa ter contato com o mundo exterior. Alm da interface lo podemos configurar outras interfaces, basta que elas estejam presentes e sejam suportadas pelo kernel.

7.3 Prtica DirigidaVerifique as configuraes de rede que esto ativas: # ifconfig Verifique que rotas esto sendo utilizadas:

75

# route -n Determine quais interfaces de rede esto disponveis: # ifconfig -a Configure a interface eth0 manualmente para que utilize um IP da rede 192.168.200.X com mscara de sub-rede 255.255.255.0, sendo X o nmero da sua mquina: # ifconfig eth0 192.168.200.X Verifique as configuraes de rotas: # route -n Adicione uma rota para o gateway 192.168.200.254 # route add default gw 192.168.200.254 # route -n Envie um icmp tipo echo-request (ping) para uma outra mquina da rede: # ping 192.168.200.Y Se possvel, pingue todas as mquinas da rede utilizando o endereo de broadcast: # ping -b 192.168.200.255 Determine os endereos MAC das interfaces que responderam ao ping: # arp -n Desative a interface de rede e ative-a novamente: # # # # ifconfig eth0 down ifconfig ifconfig eth0 up ifconfig

Vamos configurar nossas interfaces de rede editando o arquivo /etc/network/interfaces (Debian): # vim /etc/network/interfaces Altere o contedo dele para satisfazer as configuraes da sua rede:

76

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.200.X netmask 255.255.255.0 broadcast 192.168.200.255 network 192.168.200.0 gateway 192.168.200.254 Pare o servio de rede e reinicie-o na sequencia: # /etc/init.d/networking stop # /etc/init.d/networking start # ifconfig Efetue pingues para determinar que voc est conseguindo pingar as outras mquinas da rede e a mquina do instrutor: # ping -b 192.168.200.255 # ping 192.168.200.254 Agora que j estamos com a rede configurada vamos tentar acessar a internet: # ping www.fatectatui.edu.br Como que o ping sabe qual o endereo IP do servidor www.fatectatui.edu.br? Configure o arquivo para um cliente DNS: # vim /etc/resolv.conf nameserver 200.204.0.10 nameserver 200.204.0.138 Tente pingar o site novamente e verifique que a resoluo de nomes est funcionando:

77

# ping www.fatectatui.edu.br Agora que determinamos quem so nossos servidores de nomes podemos configurar tambm nosso mini resolvedor de nomes internos: # vim /etc/hosts Esse aruivo deve sempre conter as informaes corretas para o loopback, caso contrrio, servios internos podem deixar de funcionar. Adicione as linhas apropriadas a esse arquivo 127.0.0.1 localhost.localdomain localhost 192.168.200.X microX.treinamento.xxx.br microX 192.168.200.254 gateway .treinamento.xxx.br instrutor Realize testes para ver que esses nomes esto funcionando: # ping instrutor # ping localhost Adicione a seguinte linha ao nosso resolvedor de nomes: 192.168.200.254 www .fatectatui.edu.br fatec Pingue o servidor da fatec: # ping www.fatectatui.edu.br Configure dinamicamente o hostname (nome da mquina): # hostname Altere o nome da mquina de microX para maqX, de forma que a alterao fiue permanente: # vim /etc/hostname Verifique qual o FQDN (Fully Qualified Domain Name) da sua mquina # hostname -f Para que o novo nome seja estabelecido, reinicie a mquina: # shutdown -r now

78

Captulo 8

Manipulando Hardware e Disposit os8.1 ObjetivosNeste captulo iremos aprender de que forma os dispositos de hardware so mapeados e manipulados no Linux. Para que esse assunto faa mais sentido, primeiramente veremos alguns conceitos sobre arquitetura de computadores e dispositivos de hardware. Agora s digitar o nome de usurio e senha criado na instalao e entrar no sistema.

8.2 Arquitetura de Computadores e Dispositivos de HardwarePodemos dividir um computador em 3 partes parte principais: CPU, memria RAM e dispositivos. A CPU, muitas vezes denominada como o crebro do computador, responsvel por executar todo o processamento das informaes, que so armazenadas na memria RAM. Mas, um computador no tem muita utilidade se no for capaz de se comunicar com o mundo exterior. Um teclado e um monitor, ou uma rede, so exemplos de meios de comunicao. At mesmo um simples boto (no lugar do teclado) e uma lmpada (no lugar do monitor) poderamos considerar como exemplo. A esses elementos damos o nome de dispositivos de hardware, e incluem interfaces de rede, controladoras de disco, as prprias unidades de disco, portas seriais, paralelas e USB, apenas para exemplificar. Arquitetura do computador o nome que damos forma como essas 3 coisas so organizadas numa mquina. Afigura a seguir ilustra a arquitetura tpica dos Pcs.

8.3 Acesso aos dispositivosO acesso aos dados da memria RAM feito de forma rpida e eficiente atravs de otimizados canais de comunicao. Entretanto, o acesso aos dispositivos mais lento, e as tecnologias responsveis por essa funo podem ser dividas em duas categorias. A primeira, chamada PIO (Programmed Input/Output) envolve a CPU na transferncia das informaes. Para identificar os dispositivos, so associados a

79

eles os chamados endereos de I/O. Assim, por exemplo, a COM1 tem o endereo 3F8h, a LPT1 o endereo 378h. Na verdade, um certo intervalo desses endereos so utilizados para cada dispositivo. Esses endereos podem ser consultados no arquivo /proc/ioports. Alm desses endereos, em alguns casos temos uma interrupo associada a um dispositivo. Isso porque, como so mais lentos que a CPU, precisam de algum mecanismo para infomar CPU de que o trabalho ter minou. Do contrrio, a CPU teria de ficar constantemente consultando o dispositivo para saber quando enviar ou ler o prximo byte, e consequentemente per dendo tempo. Entretanto, a tecnologia PIO limita a velocidade de transferncia de dados. Ela apropriada apenas para dispositivos como teclado, portas seriais e paralelas, unidade antigas de CD-ROM, etc. Outro problema relacionado a ela o envolvimento da CPU. Isso porque, vrios ciclos de processamento so perdidos no processo de transferncia dos dados, o que se agrava tanto quanto maior for a velocidade dessa transferncia. Para contornar essa situao, foi criado o DMA (Direct Memory Access). Essa tecnologia permite que o dispositivo acesse diretamente a memria RAM, escrevendo ou lendo dados, sem interferncia da CPU. Para isso, so utilizados os chamados canais de DMA, um para cada dispositivo e tambm uma controladora de DMA. Os canais utilizados podem ser consultados no arquivo /proc/dma. Mas essa tecnologia, desenvolvida para os antigos barramentos ISA, tambm ficou ultrapassada, e cedeu lugar ao Nus Mastering. Nesse caso, o prprio dispositivo faz todo o controle de acesso a memria RAM, de modo que os canais DMA no so mais necessrios. Essa nova tecnologia permitiu o surgimento do UDMA (Ultra DMA). Dispositivo COM1 COM2 COM3 COM4 LPT1 LPT2 Nome no Linux /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 /dev/lp0 /dev/lp1 3F8 2F8 3E8 2E8 378 278 End. [Hex] 4 3 4 3 7 5 Int.

Dispositivos de hardware legados.

8.4 Dispositivos em LinuxO ncleo do sistema operacional GNU/Linux, o kernel, se comunica com os dispositivos de uma maneira muito interessante: praticamente todos os

80

dispositivos e, GNU/Linux so representados por um arquivo correspondente dentro do sstema de arquivos. Excees a esta regra so as placas de rede. O local onde so armazenadas estas representaes o diretrio /dev. Uma listagem deste diretrio mostrar uma srie de arquivos, todos eles representado uma parte do seu computador. A intereo com estes arquivos pelo sistema operacional GNU/Linux realiza as leituras dos pedidos, processa estes pedidos e retorna as respostas controlando os sinais enviados aos dispositivos, por exemplo, comandando a placa de vdeo para coordenar as respostas no seu monitor.

8.4.1 Explorando o /devOs nomes dos dispositivos e a maneira como so representados na hierarquia do diretrio /dev/podem ser bastante difcies a primeira vista. Com um pouco de prtica, a nomenclatura usada far sentido. Um mouse USB representado pelo arquivo /dev/input/mice, que pode ser traduzido como: dispositivo (DEV) de entrada (INPUT) do tipo apontador (MICE outro termo para rato, em ingls). Um mouse PS/2 segue uma nomenclatura um pouco mais complicada e representada pelo arquivo /dev/psaux, que pode ser interpretado como dispositivo auxiliar na porta PS. Para alguns dispositivos como o mouse podemos realmente ver a interao com o arquivo que representa o dispositivo. No exemplo abaixo, usamos o comando cat para mostrar o contedo do arquivo de dispositivo de mouse (mexa o mouse depois de pressionar ENTER aps os comandos abaixo): Para mice USB: # cat /dev/input/mice Para mice PS/2: # cat /dev/psaux As sadas, ilegveis para humanos, representam os dados que o sistema operacional GNU/Linux usa para avaliar a movimentao, posicionamento e apertar de botes do mouse.

8.5 Dispositivos de armazenamentoOutro exemplo importante so os dispositivos de armazenamento principais do seu computador, os discos rgidos. Existem trs tecnologias principais de discos

81

rgidos, IDE, SATA e SCSI. Os discos IDE como o SATA so considerados econmicos e mais voltados para computadores pessoais ou estaes de trabalho. Os discos do padro SCSI usam uma tecnologia de acesso mais sofisticada, so geralmente mais velozes que similares IDE e SATA e mais robustos. So usados principalmente em servidores e mquinas de alto desempenho. Os dispositivos IDE so representados na hierar quia do diretrio /dev com um padro que comea co hd. O disco rgido conectado como mestre na m controladora principal ser designado por hda. J o escravo, nesta mesma controladora, ser representado por hdb. Analogamente, temos hdc e hdd respectivamente para os discos mestre e escravo conectados na controladora secundria. Por outro lado, o padro dos dispositivos SATA e SCSI comeam por sd. Assim sendo, temos sda para o primeiro dispositivo SATA ou SCSI, sdb para o segundo, etc. Uma controladora SCSI de 8 bits pode comportar at 7 dispositivos, alm da prpria controladora. Para as de 16 bits, o nmero mximo de dispositivos de 15. Podemos verificar o contedo de um disco usando novamente o comando cat. Para inspecionar o contedo do primeiro disco rgido IDE de um computador, podemos usar o comando abaixo: # cat /dev/hda A sada gerada no parece ter nenhum sentido. Os dados mostrados so aquele dados gravados no seu disco. Contudo, esto em uma forma que compreensvel apenas pelo sistema operacional. Uma partio uma diviso lgica do seu disco rgido, criada por questes de organizao, convenincia, flexibilidade ou segurana. Nos sistemas baseados em representao por letras, um disco rgido IDE pode se dividido, particionado de forma a ser visto com as letras C: e D:. No sistema operacional GNU/Linux, est mesma diviso levaria aos arquivos representados em /dev/hda1 e /dev/hda2. Ou seja, a primeira partio o disco hda representada por /dev/hda1 e a segunda por /dev/hda2. Qualquer partio adicional seguiria o mesmo padro. Assim, para inspecionar o contedo da primeira partio, pode-se usar o comando abaixo: # cat /dev/hda1

82

Para interromper a sada do comando que pode ser bastante demorada, pressione a combinao de teclas Ctrl + C (mantenha a tecla Ctrl pressionada e pressione a tecla C). Caso a tela do seu console continue a mostrar caracteres estranhos, digite reset. O ltimo comando mostra uma sada que seres humanos no conseguem entender. Elas representam a maneira como os dados foram armazenados em /dev/hda1. Para que o sistema operacional GNU/Linux apresente estes dados de uma forma mais legvel, necessrio solicitar ao sistema um processo de traduo. Este processo chamado de montagem de dispositivos. Ento para que a partio /dev/hda1 seja usada, necessrio montar esta partio em algum local e acess-lo. Este local, que um diretrio no sistema de arquivos, chamado de ponto de montagem. Podemos montar um dispositivo de armazenamento em qualquer diretrio do sistema de arquivos, contudo, existem algumas convenes: Dispositivos removveis devem ser montados em /media (em outras pocas em /mnt) Exemplos: Um CD-ROM convencional, representado por /dev/cdrom ou /dev/hdc, pode ser montado em /media/cdrom. Um leitor de disquetes, representado por /dev/fd0, pode ser montado em /media/floppy. No caso de discos rgidos, uma partio montada diretamente na raiz do sistema de arquivos ou em um diretrio diretamente abaixo da raiz.

8.5.1 Usando os dispositivos de armazenamentoPara termos acesso a um arquivo armazenado em mdia removvel, necessrio conectar a mdia removvel ao seu leitor correspondente e montar o dispositivo adequado. O comando usado para montar dispositivos o mount. Sem o uo de nenhum parmetro, ele mostra os dispositivos de armazenamento que esto montados em seu computador junto com a configurao usada para mont-los. # mount Para montar um dispositivo de armazenamento em seu ponto de montagem, o comando mount pode ser usado da seguinte forma: # mount -t -o

83

Para um CD-ROM, a sintaxe do comando seria: # mount -t iso9660 /dev/cdrom /media/cdrom Na maioria dos ambientes grficos, este processo de montagem automatizado. A simples insero ou conexo de mdia removveis faz com que elas sejam montadas e acessveis pelos navegadores de arquivos grficos. Para facilitar o processo de montagem de dispositivos e definir regras e opes pr-definidas, o sistema operacional GNU/Linux usa o arquivo de configurao /etc/fstab: # # proc /dev/hda1 /dev/hda9 /dev/hda8 /dev/hda5 /dev/hda6 /dev/hda7 /dev/hdd /dev/fd0 /proc / /home /tmp /usr /var none proc ext3 ext3 ext3 ext3 swap defaults defaults defaults defaults defaults sw 0 0 0 0 0 0 2 2 0 0 0 0 0 1 2 2

defaults,errors=remount-ro 0

ext3

/media/cdrom0 udf,iso9660 user,noauto /media/floppy0 auto rw,user,noauto 0

No exemplo acima, o disco rgido hda foi dividido e cada partio montada em seu respectivo ponto de montagem. Para desmontar um dispositivo, o comando usado o umount. Neste caso possvel usar como parmetro o ponto de montagem ou o dispositivo: Por exemplo: # umount /media/cdrom ou de forma equivalente: # umount /dev/cdrom

8.5.2 Pendrives

84

Um caso especial de dispositivo de armazenamento bastante popular so os pendrives. Aps a insero destes aparelhos USB no computador, eles podem ser acessados geralmente pelos dispositivos /dev/sda1. Dependendo do nmero de discos rgidos de seu computador e do tipo de padro usado, pode ser que os pendrives sejam acessados por dispositivos diferentes como /dev/sdb1, /dev/sda ou variantes. Por exemplo, aps a insero de um pendrive USB, podemos mont-lo usando o comando mount: # mount /dev/sda1 /media/usbdisk possvel ento acessar os dados: # ls /media/usbdisk E aps o uso, desmontar o dispositivo: # umount /media/usbdisk Para aprofundar o assunto recomendo o comando: # info mount (parmetros de montagem) E o arquivo /etc/fstab # info fstab

85

Captulo 9

Administrao de Usurios

9.1 Objetivos

O GNU/Linux um sistema multiusurio e portanto, possui um esquema de permisses que prov a privacidade e/ou compartilhamento de arquivos entre usurios. Na verdade, esse esquema de permisses parte fundamental do sistema. Neste captulo, iremos aprender sobre ele e tambm como criar e remover contas de usurios.

9.2 Gerenciamento de usuriosQuando comeamos a trabalhar com usurios no sistema GNU/Linux podemos divid-los em 3 categorias: 1 Usurio Administrador (Super Usurio): usurio conhecido como root no sistema. esse usurio que controla todo o sistema e o possui restrio. Mas devemos ter uma certa cautela ao us-lo pois com qualquer deslize podemos danificar todo o sistema. 2 Usurios de Sistema: so aqueles que no precisam logar no sistema, so utilizados para controlar servios. Esses usurios no devem possu senhas nem ir Shell's vlidas. Um exemplo desses usurios o usurio www-data que usado exclusivamente para controlar o servidor web Apache. 3 Usurios Comuns: so utilizados para trabalhar no sistema GNU/Linux. So contas criadas para aqueles que utilizam ou operam o sistema. sempre aconselhvel que cada usurio comum ou administrador tenha sua prpria conta e s utilize a conta root para administrao do sistema. Tanto para o usuro root quanto para o usurio comum, sempre aconselhvel criar uma boa poltica de criao de senhas para que um possvel invasor no se aproveite de um usurio com uma senha fraca, mesmo que seja um usurio comum, pois isso seria o primeiro passa para o invasor escalar privilgios no sistema e virar o usurio administrador root. Evite usar senhas com datas de aniversrio, casamento e outras datas que so fceis de serem descobertas e

86

evite usar palavras do dicionrio. Uma boa dica mesclar a senha com letras maisculas e minsculas, caixa alta e caixa baixa e caracteres especiais. Observao: alguns sistemas GNU/Linux podem ter usurios que chamamos de administradores. Esses usurios no vm configurados por padro, ele so usurios normais mas que possuem al uns privilgios a mais em algumas g aplicaes. Para que os usurios comuns e root tenham acesso ao sistema e consigam trabalhar normalmente, so necessrios 5 elementos. Nome; Senha; Diretrio Home; Shell; Grupo Primrio; Devemos ter em mente que um usurio sempre deve estar vinculado a um grupo, pis isso afeta diretamente a questo de permisses dentro do sistema.

9.3 PermissesCada arquivo no sistema possui trs permisses bsicas: r (4) read para leitura, w (2) write para escrita e x (1) execute para execuo. A cada permisso atribudo um valor, mostrado entre parnteses, que ser utilizado para atribuio de permisses. Alm disso, cada arquivo contm ts conjuntos de permisses, sendo elas: permisso do dono (u) user do arquivo, do grupo (g) group ao qual pertence e outros (o) others aqueles que no pertencem ao grupo e no so donos o arquivo. Sendo assim, considere a seguinte sada do comando ls -l: debian:~# ls -l total 0 -rw-r--r-- 1 root root 0 2009-01-21 06:33 arquivo Para um arquivo e para um diretrio: debian:~# ls -l total 1 drwxr-xr-x 2 root root 1024 2009-01-21 06:34 diretorio Vamos entender o que essas linhas significam, o primeiro caractere pode ser:

indicando que o ue est sendo listado um arquivo comum;

d indicando um diretrio; l indicando um link simblico;

87

p s c b

indicando um pipe nomeado; indicando um socket; indicando um dispositivo de caractere; indicando um dispositivo de bloco.

Os prximos trs conjuntos de trs caracteres indicam as permisses do usurio dono do arquivo, permisses de grupo e permisses para outros usurios. Nesses trs conjuntos, se o caractere encontrado for um '-' (hfen) significa que a permisso est ausente, ou seja, no h a respectiva permisso. Se alguma ou todas as letras (r,w e x) forem encontradas, indicar as permisses que o aruivo tem. Seguindo o conjunto de permisses, h um nmero que indica a quantidade de links simblicos que o arquivo ou diretrio tem. Aps o nmero de links, vem a indicao do usurio dono do arquivo seguido do grupo ao qual ele pertence. A atribuio de permisses realizada utilizando o comando chmod. H duas sintaxes possveis. A primeira delas a literal. Vejamos o exemplo abaixo: # chmod u+rw arquivo O parmetro u+rw que define o esquema de permisses. A primeira letra indica a qual(is) usurio(s) as permisses esto sendo alteradas. Usamos a letra u para indicar o prprio dono, g para indicar o grupo, o para os outros e ainda a letra a para indicar todos. O caractere seguinte poder ser um sinal + para garantir a permisso ou para retirar a permisso. Por fim, detalhamos a permisso: A letra r significa leitura, w escrita e x execuo, como era de se esperar. Assim, o exemplo anterior garante as permisses de leitura e escrita para o usurio dono do arquivo. Vejamos mais um exemplo: # chmod g-w arquivo Este comando retira a permisso de escrite para os usurios pertencentes ao mesmo grupo ao qual o arquivo pertence. As demais permisses no so alteradas. A segunda sintaxe a forma numrica. Neste caso, o parmetro que define as permisses composto de trs nmeros de 0 a 7 que correspondem s permisses para o usurio dono, para o grupo e para outros. Cada nmero formado pela soma das permisses atribudas, seno que execuo vale 1, escrita vale 2 e leitura 4. A tabela abaixo resume esse esquema: r (4) 0 0 0 w (2) 0 0 1 x (1) 0 1 0 Total 0 1 2 Permisses ----x -w-

88

0 1 1 1 1 Vejamos um exemplo: # chmod 640 arquivo

1 0 0 1 1

1 0 1 0 1

3 4 5 6 7

-wx r-rx rwrwx

Neste caso, estamos atribuindo permisso de leitura e escrita 6 (r=4 + w=2) ao usurio dono, leitura 4 (r=4) ao grupo e 0 (sem permisses) a outros usurios. importante observar que quando usamos a forma literal, alteramos apenas o parmetro especificado, no alterando as demais permisses. J na forma numrica, alteramos todas as permisses simultaneamente.

9.4 Resgistro de usurios no sistema

Os usurios no GNU/Linux so armazenados em dois arquivos de controle: /etc/passwd /etc/shadow O arquivo /etc/group tambm mantm uma relao com os usurios. Nesse arquivo sero armazenados os grupos e onde ficam registrados quais usurios pertencem a determinados grupos secundrios. No nos aprofundaremos nesse arquivo.

9.4.1 Arquivo /etc/passwdCada usurio cadastrado no sistema identificado por uma linha do arquivo /etc/passwd. Os campos so separados pelo caractere ':' (dois pontos). O formato do arquivo o seguinte: eduardo:x:1000:1000:eduardo,,,:/home/eduardo:/bin/bash Onde:

89

Campo 1: Login do usurio; Campo 2: Referncia da senha do usurio, pois ela fica armazenada em outro arquivo. Campo 3: UID User Identify) o nmero de identificao do usurio. Essa identificao dividida conforme a categoria dos usurios: UID 0 o nmero do usurio administrador root; UID de 1 a 999 So os nmeros para usurios de sistema; UID de 1000 a 65535 So os nmeros para usurios normais. Observao: Essas definies de usurios de sistema e usurios normais podem variar nas distribuies, somente o UID 0 padro em todas as distribuies. Campo 4: GID Group Identify o nmero de identificao do grupo primrio do usurio. Essa identificao tambm dividida em 3 categorias como o UID: GID 0 o nmero do grupo administrador root; GID de 1 a 999 So os nmeros para grupos de sistema; GID de 1000 a 65535 So os nmeros para grupos normais. Campo 5: Comentrios e informaes adicionais sobre os usurios; Campo 6: Diretrio pessoal; Campo 7: Shell;

9.4.2 Arquivo /etc/shadowAs senhas dos usurios ficam armazenadas no arquivo /etc/sahdow conhecido como senhas sombras (shadow passwords). As senhas ficam nele pois um arquivo mais seguro que o arquivo /etc/passwd. No arquivo /etc/passwd qualquer usurio pode visualiz-las e copi-las para outro diretrio ou mquina remota. No caso de /etc/shadow, suas permisses so muito mais restritas no permitindo que sejam copiadas e nem visualizadas. Isso uma grande ajuda na questo de segurana pois se as senhas estivessem no prprio /etc/passwd seria muito fcil para um invasor com um usurio comum copiar esse arquivo para outro sevidor e aplicar uma ferramenta de brute force para quebrar as senhas. O suporte a senhas shadow costuma vir por padro nas distribuies. Em algumas delas, se forem instaladas no modo expert, pode-se optar por ativar ou no esse suporte. sempre recomendado deixar as senhas shadow ativadas. Caso encontremos algum servidor GNU/Linux sem as senhas shadow configuradas, podemos utilizar o comando pwconv para ativ-las e pwunconv para desativ-las.

90

9.5 Levantamento de informaes dos usurios 9.5.1 Comando idO comando id mostra as informaes de UID, GID e grupos secundrios dos usurios. Para ver essas informaes do usurio corrente, fazemos da seguinte foma: # id Para ver as informaes de qualquer outro usurio usamos a seguinte sintaxe: # id [usurio]

9.5.2 Comando fingerO comando finger mais amigvel e nos traz maiores informaes como: login, nome, diretrio home, shell e os horrios dos ltimos logins que esse usurio realizou. A sintaxe do comando finger a seguinte: # finger [usurio]

9.5.3 Comando usersO comando users mostra de uma maneira bem simpl