apostila ubuntu basico

Upload: israelfilho

Post on 19-Oct-2015

117 views

Category:

Documents


2 download

TRANSCRIPT

  • Professores: Eduardo Batisto. Coordenador: Fabiano Trov.

    Curso: Tcnico em Informtica.

    Componente curricular: Gesto de sistemas operacionais II.

    - Introduo ao Linux. - Principais caractersticas. - Instalao do SO Linux (Ubuntu). - Conhecendo os principais diretrios Linux. - Manipulando arquivos texto. - Manipulando diretrios. - Criando contas de usurios. - Gerenciamento de usurios, grupos e permisses. - Manipulando pacotes utilizando apt-get. - Introduo a servidores Linux. - Tipos de servidores Linux. - Implementao de servidor de arquivos (Samba). - Implementao de servidor Proxy (Squid). - Implementao de servidor de banco de dados mysql. - Compiladores. - Testando IDE Lazarus.

  • 2

    Sumrio

    1. Introduo ao Linux.................................................................................. 03 2. Principais caractersticas.......................................................................... 05 3. Instalao do SO Linux (Ubuntu)............................................................. 07 4. Conhecendo os principais diretrios Linux............................................... 18 5. Manipulando arquivos texto...................................................................... 21 6. Manipulando diretrios/Arquivos.............................................................. 25 7. Criando contas de usurios...................................................................... 28 8. Gerenciamento de usurios, grupos e permisses.................................. 33 9. Manipulando pacotes utilizando apt-get................................................... 39 10. Introduo a servidores Linux................................................................ 45 11. Tipos de servidores Linux....................................................................... 46 12. Implementao de servidor de arquivos (Samba).................................. 49 13. Implementao de servidor Proxy (Squid)............................................. 53 14. Implementao de servidor de banco de dados mysql.......................... 58 15. Compiladores......................................................................................... 61 16. Testando IDE Lazarus............................................................................ 65

  • 3

    Histrico. Desenvolvido para uso acadmico e parecido com o Unix, o sistema operacional Minix foi criado em 1987 pelo professor de engenharia da computao Andrew S. Tanenbaum para suas aulas sobre sistemas operacionais.

    Naquela poca, o cdigo fonte do Minix estava disponvel para o estudo, porm a sua modificao e redistribuio eram restritas e o sistema ainda no havia sido inteiramente adaptado para a plataforma de 32bits, arquitetura de hardware que comeava a ficar popular com as vendas de PCs com processadores Intel 386.

    O kernel Linux. Em 1991, Linus Torvalds iniciou o desenvolvimento de um kernel para substituir o kernel do Minix, enquanto era estudante da Universidade de Helsinque. O projeto recebeu o nome de kernel Linux. Em suas primeiras verses, o kernel Linux usava o conjunto de aplicaes do Minix. Quando Linus Torvalds mudou o licenciamento do Linux para a licena GPL, tornando-o legalmente compatvel com o projeto GNU, os desenvolvedores do GNU e do kernel Linux trabalharam juntos para integrar os dois softwares e gerar um sistema operacional completo e de cdigo livre.

    O sistema completo ficou conhecido como sistema operacional Linux. Para a Free Software Foundation (instituio que sustenta o projeto GNU), o nome correto do sistema deveria ser GNU/Linux, uma vez que todos os aplicativos vieram do sistema GNU e o termo Linux refere-se apenas ao kernel. Essa diferena de termos gerou muita discusso na comunidade de software livre.

    As distribuies Linux

    J com os aplicativos e bibliotecas do sistema GNU e licenciado sob a GPL, tornando-se um software livre, ter o sistema completo instalado em um computador ainda era uma tarefa para poucos. Para fazer isso os usurios necessitavam de todos os cdigos fontes, bibliotecas, um ambiente de compilao e conhecimento dos detalhes tcnicos de

  • 4

    configuraes e dos arquivos no sistema, tarefa nada fcil para um usurio comum.

    Para facilitar o processo de instalao do sistema e dos aplicativos, grupos de desenvolvedores comearam a empacotar o Linux em sistemas de instalao, juntando o sistema com os aplicativos bsicos que seus usurios viessem a usar. Comearam a ento surgir as primeiras distribuies Linux.

    Cada distribuio prov um mtodo de instalao do sistema, ferramentas para ajudar os usurios nas configuraes e ferramentas para a instalao e remoo de aplicativos. Atualmente, as principais distribuies Linux so: Debian, Ubuntu, Red Hat, Mandriva, SUSE e Slackware.

    Grande parte das distribuies so mantidas pela comunidade, como a Debian. Outras so mantidas pela comunidade e/ou por empresas que comercializam servios de suporte, como Red Hat, Ubuntu, SUSE e Mandriva. Dependendo do pblico alvo que a distribuio quer atingir, ela pode ter mais ou menos participao da comunidade de usurios. J outras, como a Slackware, so mantidas por uma nica pessoa.

    No Brasil o Linux ficou conhecido com o Conectiva Linux, distribuio baseada em Red Hat que era desenvolvida em Curitiba. A Conectiva foi comprada pela empresa francesa Mandrake, que na poca desenvolvia o Mandrake Linux, outro linux baseado em Red Hat. A fuso entre essas duas empresas deu origem distribuio Mandriva.

    Embora uma distribuio de Linux possa ser feita e mantida por uma nica pessoa, seus softwares so criados por vrios desenvolvedores ao redor do mundo, como o kernel Linux e todo o ecossistema de aplicativos do projeto GNU.

    O trabalho da distribuio, neste caso, apenas empacot-los, criando uma infra-estrutura para a instalao e configurao do sistema, bem como de seus aplicativos. Valendo-se da liberdade de redistribuio e alterao, algumas distribuies personalizam os softwares que distribui, alterando-os para as necessidades de seus usurios e dando a eles garantias de segurana que o projeto original do software no capaz de dar.

  • 5

    Caractersticas gerais. Multi-usurio e multitarefa

    O Linux um sistema multi-usurio. Isso significa que possvel ter vrias contas de usurio no mesmo sistema cada um tendo sua prpria rea no disco rgido sem interferir na rea dos outros. possvel tambm definir reas de compartilhamento e grupos de usurio, em que usurios do mesmo grupo podem ter acesso aos mesmos dados em uma rea comum.

    O Linux tambm um sistema multitarefa, o que significa que os usurios podem executar vrios aplicativos ao mesmo tempo.

    Dentro do sistema, o usurio com maior poder administrativo o root. Seu uso recomendado apenas para tarefas administrativas, como instalao e remoo de softwares. Outros usurios podem ser criados com qualquer outro nome, durante ou depois da instalao, no terminal texto ou pelas ferramentas administrativas da distribuio.

    Vrias sesses

    O sistema tambm permite conexo simultnea de vrios usurios, por rede ou localmente, abrindo vrios terminais ou usando mais de um monitor e teclado/mouse adicionais.

    Para conseguir isso, o sistema utiliza o conceito de sesses de usurios, que gerenciam a memria de cada processo de aplicativo carregado pelos usurios, garantindo assim que um programa iniciado por um usurio no interfira no processamento do programa de outro.

    Em uma instalao Linux, o mesmo usurio pode abrir vrias sesses, tanto sesses de terminal texto como sesses de terminal grfico.

  • 6

    Uma sesso Linux aberta remotamente no Windows pelo

    protocolo SSH. O comando who permite verificar as sesses abertas no sistema e seus respectivos usurios

  • 7

    Instalao do Linux (Ubuntu).

    1. Inicializando a instalao. J configurado o setup para a execuo correta do boot via CD, basta inserir o CD no drive e aguardar a inicializao do boot loader do GNU/Linux Ubuntu. Rapidamente o sistema chega tela de instalao do GNU/Linux Ubuntu. necessrio realizar a mudana de algumas opes para mudar a linguagem do sistema para Portugus do Brasil e caso necessrio, alterar o mapa de teclados (keymap) para o teclado compatvel com o computador ser instalado o sistema.

    Figura 1 Selecionando a opo F2 e escolhendo a linguagem Portugus do Brasil

    Caso seja necessrio, pode ainda o usurio alterar outras opes. Para efeitos de maior compreenso, enumeramos todas as opes com suas respectivas funes.

  • 8

    F1 (Ajuda) O usurio iniciante pode utilizar-se desta opo para decidir qual o melhor caminho tomar para o incio da instalao; F2 (Linguagem) Normalmente acessa-se esta opo para a alterao da linguagem do sistema; F3 (Mapa de teclas) Esta opo altera o mapa de teclados do sistema, ajustando-o ao existente no computador. No Brasil, normalmente encontramos a opo ABNT2, pela existncia da tecla (c-cedilha); F4 (VGA) - Placas de vdeo mais novas normalmente suportam resolues de vdeo com at 1024x768 e 32bpp de cores. Caso seja necessrio, esta opo pode ser alterada, para maior ou menor grau de resoluo; F5 (Acessibilidade) - O projeto do GNU/Linux Ubuntu preocupou-se em oferecer opes de acessibilidade para deficientes, tanto visuais como auditivos. Com a escolha desta opo, a instalao torna-se mais amigvel para portadores de alguma deficincia; F6 (Outras opes) Esto mostra nesta opo, escolhas como instalao via texto ou parametrizao do kernel, se necessrio. Basta ento, aps o usurio estar certificado de todas as opes escolhidas, teclar na opo Iniciar Ubuntu. O GNU/Linux Ubuntu ser ento iniciado via CD, para a posterior instalao no Disco Rgido (HD) por parte do usurio. Para realizar a instalao do sistema no Disco Rgido (HD) basta acessar a opo Install presente na tela principal do sistema. A partir desta ao, necessrio seguir os passos de acordo com o desejado para a instalao do sistema de acordo o mtodo de utilizao do sistema (Desktop ou Servidor). Deste ponto em diante, o acompanhamento da instalao ser basicamente visual.

  • 9

    Figura 2 Sistema carregado via CD , pronto para instalao no Disco Rgido O sistema pergunta (vide prxima figura) ao usurio se ele realmente quer continuar a instalao na linguagem j escolhida anteriormente. O idioma escolhido ser o idioma padro de todo o sistema, ou seja, se escolhermos o Portugus do Brasil teremos toda a parte grfica do sistema adaptada linguagem escolhida, bem como arquivos de ajuda (tanto em modo grfico como texto). A estrutura do GNU/Linux Ubuntu toda baseada em Live CD, permitindo ao usurio rodar o sistema sem necessariamente instal-lo na mquina. O que o processo de instalao faz, na medida do possvel justamente jogar todos os dados do sistema em um Disco Rgido (HD).

  • 10

    Figura 3 - Escolha da linguagem padro do sistema (Passo 1) Feita a escolha da opo desejada no passo 1, o sistema avana para a escolha do Time Zone (Zona de Horrio). Neste passo, necessrio escolher a zona de hora de acordo com a sua regio. Caso o sistema j tenha um link disponvel de Internet, pode-se de antemo realizar a sincronizao com um servidor de horrio.

  • 11

    Figura 4 - Escolha da zona de horrio do sistema (Passo 2) Como podemos perceber o horrio atual do fica atrasado 3 horas em relao ao horrio original do sistema. necessrio realizar a sincronizao ou configurao manual do horrio. Basta clicar ento no boto Setar Hora para realizar a alterao.

  • 12

    Figura 5 - Acessando as configuraes de data e hora (Passo 2) Pode-se sincronizar o relgio automaticamente acessando a opo Sincronizar Agora ou ainda realizando a configurao manual acertando os parmetros de data e hora. Feito este procedimento, basta prosseguirmos com a instalao.

  • 13

    Figura 6 - Escolha do layout do teclado (keymap) e acessando a rea de teste (Passo 3) O passo 3 nos pede para escolhermos o layout do teclado, de acordo com o teclado existente no computador. A escolha pode ser testada na caixa de teste. Neste caso em especial, o layout do teclado escolhido foi o Portugus Brasileiro (Abnt2). Basta clicar em Avanar para dar prosseguimento instalao.

  • 14

    Figura 7 - Definindo usurio, senha e nome do computador (Passo 4) Este passo sem dvida nenhuma um dos mais importantes exigidos pelo instalador do sistema. necessrio informar corretamente todos os dados exigidos, tais como nome do usurio, nome para entrada no sistema, senha do usurio e nome do computador. recomendvel voc escolher uma boa senha, com preferncia em mistura de nmero e letras para maior segurana. Tambm interessante evitar escolher senhas que contenham datas, nmeros de telefone ou qualquer espcie que tenha ligao com a sua pessoa. Feito esta etapa, basta clicar no boto Avanar para seguimento da instalao.

  • 15

    Figura 8 - Realizando a configurao do particionamento (Passo 5) Esta uma parte essencial para a instalao do sistema. Se o computador ser instalado o sistema no possui nenhum outro sistema em conjunto, basta acessar a opo que apaga todo o disco e o prepara para o recebimento dos arquivos do sistema. Como no caso disponibilizado para esta apostila, o computador ir receber unicamente o GNU/Linux Ubuntu, no sendo necessria nenhuma alterao para estes parmetros, bastando acessar a opo Avanar.

  • 16

    Figura 9 - Configuraes finais para a instalao do sistema (Passo 6) J realizadas todas as etapas com sucesso, basta conferi-las e clicar na opo Install. Deste ponto em diante, o GNU/Linux Ubuntu ir realizar a instalao do sistema automaticamente. Na possibilidade de j existir uma conexo de Internet auto - configurvel (dhcpd habilitado na rede), o sistema verifica a verso de alguns arquivos necessrios instalao e os instala.

  • 17

    Figura 12 - Finalizao da Instalao Com o trmino da instalao, basta acessar a opo Reiniciar agora, para que a mquina reinicie com o sistema GNU/Linux Ubuntu de forma nativa. Lembre-se de retirar o CD do drive para que no ocorra o boot novamente via CD.

  • 18

    Estrutura de diretrios e arquivos do Linux.

    No Linux, o sistema de diretrios e arquivos comea na raiz /. Abaixo dela possvel achar os diretrios dos usurios, das configuraes globais, dos programas instalados e dos dispositivos disponveis no computador. Essa estrutura foi inspirada no Unix e usada em quase todas as distribuies Linux.

    A tabela e as imagens abaixo listam e explicam a funo de cada diretrio (ou pasta) do sistema:

    /bin Contm arquivos programas do sistema que so usados com freqncia pelos usurios. /boot Contm arquivos necessrios para a inicializao do sistema. /cdrom Ponto de montagem da unidade de CD-ROM. /media Ponto de montagem de dispositivos diversos do sistema (rede, pen-drives, CD-ROM em distribuies mais novas). /dev Contm arquivos usados para acessar dispositivos (perifricos) existentes no computador. /etc Arquivos de configurao de seu computador local. /floppy Ponto de montagem de unidade de disquetes /home Diretrios contendo os arquivos dos usurios. /lib Bibliotecas compartilhadas pelos programas do sistema e mdulos do kernel. /lost+found Local para a gravao de arquivos/diretrios recuperados pelo utilitrio fsck.ext2. Cada partio possui seu prprio diretrio lost+found. /mnt Ponto de montagem temporrio. /proc

  • 19

    Sistema de arquivos do kernel. Este diretrio no existe em seu disco rgido, ele colocado l pelo kernel e usado por diversos programas que fazem sua leitura, verificam configuraes do sistema ou modificar o funcionamento de dispositivos do sistema atravs da alterao em seus arquivos. /root Diretrio do usurio root. /sbin Diretrio de programas usados pelo superusurio (root) para administrao e controle do funcionamento do sistema. /tmp Diretrio para armazenamento de arquivos temporrios criados por programas. /usr Contm maior parte de seus programas. Normalmente acessvel somente como leitura. /var Contm maior parte dos arquivos que so gravados com freqncia pelos programas do sistema, e-mails, spool de impressora, cache, etc.

    Listando os diretrios da raiz usando o terminal grfico

  • 20

    Listando os diretrios da raiz usando o terminal texto, com o comando ls /

  • 21

    Configuraes em arquivos texto. Diferentemente de sistemas como o Microsoft Windows, que utilizam um registro para guardar as configuraes de sistema e de usurio, toda a configurao do Linux baseada em arquivos texto.

    As configuraes globais que valem para todos os usurios do sistema, como a de rede (endereo de ip, gatway e DNS), ficam em arquivos texto no diretrio /etc. J as configuraes especficas de cada usurio, como o papel de parede, ficam dentro do diretrio pessoal, localizado em /home/usuario, onde usuario o nome do usurio usado para iniciar a sesso.

    Para os usurios avanados, esta forma de configurar o sistema bastante til. Leva-se bastante tempo para entender os arquivos e configurar o sistema, mas possvel configurar o software minuciosamente para ser executado da maneira desejada, e em caso de panes no sistema como a falha de um disco rgido, basta reinstalar o Linux e restaurar o backup da pasta /etc e /home que tudo voltar ao normal.

    Um editor de texto no terminal grfico editando o arquivo de configurao de conexo de

    rede, localizado em /etc/network/interfaces

  • 22

    O que as distribuies atuais fazem para que o usurio leigo configure o Linux de forma rpida criar interfaces grficas que alteram os arquivos de configurao, facilitando assim configuraes bsicas como alterao de senhas, configuraes de rede e internet, impresso e etc.

    Essas ferramentas so chamadas front-ends e so normalmente includas no conjunto de ferramentas administrativas que cada distribuio prov, elas podem variar dependendo da distribuio que voc est usando.

    Editando as configuraes de rede atravs de um front-end na distribuio Ubuntu

  • 23

    Terminais de texto. Mais do que uma simples janelinha de fundo preto onde o usurio insere linhas de comando para dizer ao computador o que deve ser feito, o terminal texto uma ferramenta muito poderosa, pois permite que muitas instrues sejam enviadas ao computador de forma precisa e rpida.

    Muitas distribuies Linux, voltadas para Desktop, j iniciam o sistema com um terminal grfico, porm os terminais texto so as primeiras interfaces de usurio carregadas no sistema. Muitas tarefas no Linux s podem ser feitas atravs do terminal texto.

    Com terminais texto tambm possvel controlar mquinas distncia pela internet, usando conexes fracas como uma linha discada, uma vez que todos os dados transferidos so apenas texto.

    Terminal texto aberto esperando nome de usurio e

    senha para inicializar a sesso

    Os terminais finitos

    Em uma instalao padro de Linux, o sistema inicializa com 6 terminais texto. Esses terminais so referenciados pelo sistema por ttyX, onde X o nmero do terminal, iniciando com 1. Voc pode navegar entre eles usando as teclas ALT+F1, ALT+F2, ALT+F3 e assim por diante at ALT+F6.

    Se o sistema j estiver inicializado em um terminal grfico e voc estiver nele, acrescente a tecla CTRL na seqncia de comandos, ficando: CTRL+ALT+F1. Voc pode navegar entre os terminais texto de 1 a 6.

  • 24

    Os terminais 7 a 12 (F7 a F12 seguindo as teclas de um teclado de PC) so reservados para ambientes grficos, em que somente um j suficiente. Para voltar ao terminal grfico utilize a sequncia ALT+F7.

    Um usurio pode, se desejar, criar mais terminais texto editando as configuraes do sistema, porm isso no feito normalmente, uma vez que o sistema suporta terminais virtuais.

    Os terminais infinitos

    Os terminais virtuais so infinitos e podem ser criados utilizando emuladores de terminais. Emulador um software que permite simular o funcionamento de outro. No sistema os terminais virtuais so referenciados por pst/X, onde X o nmero do terminal virtual, iniciando com 0.

    O programa de linha de comando screen permite a criao de terminais virtuais dentro de um terminal texto. J os programas grficos como o xterm e o gnome-terminal permitem a criao e o uso de terminais texto dentro do ambiente grfico, privando o usurio de ter que mudar de tela sempre que precisar executar um programa na linha de comando. Terminais remotos tambm so exemplos de terminal virtual.

    Um terminal texto virtual sendo executado dentro do terminal grfico. O comando who lista,

    alm dos usurios logados no sistema, o nmero do terminal que o usurio est usando

  • 25

    Manipulando diretrios e arquivos

    So utilizados para criar, renomear, remover e copiar diretrios e arquivos. mkdir: Cria diretrios. mkdir [opes] nome_diretrio

    Opes: -m 775 : Cria um diretrio com permisso padro. Exemplo: $ mkdir /usr/clientes/Banco11 {Cria o diretrio Banco11 dentro de /usr/clientes} $ mkdir /usr/clientes_internos clientes_externos {Cria os dois diretrios clientes_internos e clientes_externos dentro de /usr}

    rmdir: Remove diretrios vazios.

    rmdir [opes] diretrio

    Opes: -p : Remove um diretrio junto com os diretrios (caso estejam vazios) que estiverem dentro do mesmo. Exemplo: $ rmdir /usr/clientes_internos {Remove o diretrio clientes_internos}

    $ rmdir -p /usr/clientes_externos {Remove o diretrio clientes_externos e todos os diretrios que estiverem dentro dele}

    rm:

  • 26

    Remove arquivos.

    rm [opes] arquivo Opes: -i : Pede confirmao antes de eliminar; -f : Elimina o arquivo sem pedir confirmao; -r : Elimina o contedo de um diretrio junto com o contedo dos sub-diretrios.

    Exemplo:

    $ rm -i /usr/clientes/banco01/Arquivo01.doc {Pede confirmao antes de eliminar o arquivo}

    $ rm -r /usr/clientes {Elimina todos os arquivos do diretrio /usr/clientes e seus sub-diretrios}.

    mv: Move ou renomeia um arquivo ou diretrio.

    mv [opes] fonte destino

    Opes: -i : Pede confirmao antes de mover um arquivo que ir sobrescrever o outro; -f : No pede confirmao antes de mover um arquivo; -b : faz um backup de arquivos que esto sendo movidos ou renomeados.

    Exemplo:

    $ mv /usr/clientes/Banco02/Pgto.doc /usr/clientes/Banco03 {Remove o arquivo Pgto.doc do Banco02 para o Banco03}

    $ mv /usr/cliente/Banco01/Transf.doc /usr/cliente/Banco01/Efetuado.doc {Renomeia o arquivo Transf.doc para Efetuado.doc}

  • 27

    cp: Copia arquivos. cp [opes] arquivo_fonte arquivo_destino

    Opes: -b : Faz um backup antes de copiar; -i : Pede confirmao antes de sobrescrever um arquivo; -r : Copia todos os arquivos de um diretrio e seus subdiretrios.

    Exemplo:

    $ cp /usr/clientes/Banco01/Contas.xls /usr/clientes/Banco11 {Copia o arquivo Contas.xls do Banco01 para o Banco11}

    $ cp -i /usr/recebimento/cheques.doc /usr/clientes/Banco05 {Pergunta antes de sobrescrever o arquivo cheques.doc}

  • 28

    Contas de usurios.

    O gerenciamento de usurios no Linux um tema bem conhecido, mas, ao mesmo tempo, fonte de vrias dvidas.

    As restries bsicas de acesso so implementadas atravs de um sistema de permisses simples, porm eficiente, que consiste num conjunto de trs permisses de acesso (ler, gravar e executar) e trs grupos (dono, grupo e outros), que combinadas permitem fazer muita coisa.

    Os dois comandos mais bsicos so o "adduser" e o "passwd", que permitem respectivamente adicionar novos usurios e alterar as senhas de acesso posteriormente, como em:

    # adduser joao (cria o usurio joao, especificando uma senha inicial). # passwd joao (altera a senha posteriormente).

    O prprio usurio pode alterar a senha usando o comando "passwd", desde que ele saiba a senha antiga. Se o usurio esqueceu a senha, voc pode definir uma nova executando o comando como root; Nesse caso o sistema pede a nova senha diretamente, sem solicitar a senha antiga.

    Os usurios so cadastrados no sistema atravs do arquivo "/etc/passwd". Se tiver curiosidade em olhar dentro do arquivo voc ver uma entrada para cada usurio, incluindo o diretrio home e o shell usado, como em:

    joao:x:1001:1001:,,,:/home/joao:/bin/bash

  • 29

    Assim como qualquer outro arquivo de configurao, o "/etc/passwd" pode ser editado manualmente. Existem diversas situaes em que voc pode desejar trocar o shell padro ou o diretrio home do usurio, de forma a limitar o acesso ao servidor. Em um servidor web compartilhado por muitos usurios, por exemplo, o diretrio home de cada usurio seria a pasta contendo os arquivos do site, e o shell padro seria um aplicativo como o MySecureShell, destinado a limitar o acesso do usurio a esta pasta especfica.

    Para alterar o shell do usurio voc usa o parmetro "-s", como em:

    # usermod -s /usr/bin/rssh manuel

    Para alterar o home, voc usa o parmetro "-d", como em:

    # usermod -d /var/www/manuel manuel

    Voc pode tambm especificar estes parmetros diretamente ao criar o usurio, como em:

    # adduser --home /var/www/manuel --shell /usr/bin/rssh manuel

    Bem antigamente, as senhas eram salvas no prprio arquivo "/etc/passwd", juntamente com as demais informaes, o que abria brecha para diversos tipos de ataques. A partir de um certo ponto (por volta de 1996) todas as distribuies passaram a utilizar o sistema shadow, onde as senhas so armazenadas de forma encriptada em

  • 30

    um arquivo separado, o "/etc/shadow". Dentro do arquivo voc ver entradas contendo a senha encriptada, como em:

    joao:$1$LpQPRMC5$eHXLjiW7ks80LQcepW0Rz.:13993:0:99999:7:::

    As senhas so encriptadas usando um algoritmo de mo nica, que permite apenas encriptar as senhas, mas no recuper-las. Durante o login, o sistema aplica o mesmo algoritmo senha digitada pelo usurio e compara a string resultante com a armazenada no arquivo. Se o resultado for o mesmo, o sistema sabe que a senha confere e o acesso autorizado.

    Este sistema faz com que as senhas no sejam recuperveis, j que a senha propriamente dita no salva em lugar nenhum. Se o usurio esqueceu a senha, voc pode usar (como root) o comando "passwd" para definir uma nova, mas no possvel recuperar a senha antiga.

    Ferramentas como o John the ripper permitem descobrir as senhas armazenadas no arquivo "/etc/shadow" usando um ataque de fora bruta, que consiste em simplesmente testar todas as possibilidades (incluindo alguns refinamentos, como descobrir senhas fceis, baseadas em palavras do dicionrio) at descobrir a senha. Este mtodo funciona bem em senhas fceis, com at 6 caracteres, mas invivel no caso de boas senhas, com 8 caracteres ou mais.

    Para remover um usurio anteriormente criado, utilize o comando "deluser", como em:

    # deluser joao

  • 31

    Por questo de segurana, o comando remove apenas a conta, sem apagar o diretrio home, ou outras pastas (como o diretrio de spool dos e-mails). O diretrio home especialmente importante, pois ele guarda todas as configuraes e os arquivos do usurio, de forma que em um servidor voc s deve remov-lo depois de ter realmente certeza do que est fazendo. Para remover o usurio apagando tambm o diretrio home, adicione o parmetro "--remove-home", como em:

    # deluser joao --remove-home

    O diretrio home importante, por concentrar todos os arquivos do usurio. Uma opo saudvel ao remov-lo criar um backup, de forma que voc possa restaur-lo mais tarde caso necessrio. Para isso, use a opo "--backup", que cria um arquivo compactado, contendo os arquivos do usurio, salvo no diretrio onde o comando for executado:

    # deluser joao --remove-home --backup

    Se executasse o comando "ls" depois de remover o usurio "joao" usando a opo de backup, veria que foi criado o arquivo "joao.tar.bz2", referente ao backup.

    Voc tambm pode bloquear temporariamente um usurio, sem remover o home ou qualquer outro arquivo usando o comando "passwd -l", como em:

    # passwd -l joao

  • 32

    O "passwd -l" realmente trava a conta, fazendo com que o sistema passe a recursar qualquer senha inserida na hora do login. Para desbloquear a conta posteriormente, use o "passwd -u", como em:

    # passwd -u joao

  • 33

    Gerenciamento de usurios, grupos e permisses.

    Alm da configurao dos usurios, temos a configurao dos grupos, que permitem organizar os usurios, definindo as permisses de acesso de forma mais granular.

    Imagine um caso em que voc tenha um servidor compartilhado entre vrios usurios, onde apenas trs deles, "maria", "jose" e "joao" devem ter acesso pasta "/var/www/intranet", que contm os arquivos do site interno da empresa.

    Uma forma simples de fazer isso criar um grupo, adicionar os trs usurios ao grupo e ajustar as permisses da pasta de forma que o grupo tenha permisso de escrita. Para adicionar o grupo, usamos o comando "groupadd", como em:

    # groupadd intranet

    Para adicionar os usurios desejados ao grupo, usamos o prprio comando "adduser", seguido pelo login e o grupo ao qual ele deve ser adicionado (um de cada vez), como em:

    # adduser maria intranet

    Em outras distribuies derivadas do Red Hat, o comando "adduser" um link para o comando "useradd", que no suporta essa opo. No caso delas, usamos o comando "usermod -a -G", seguido do usurio e do grupo ao qual ele ser adicionado, como em:

    # usermod -a -G maria intranet

  • 34

    Existem algumas outras pequenas diferenas entre as opes aceitas pelo comando "adduser" entre distribuies derivadas do Debian e derivadas do Red Hat, pois ele na verdade um script, que pode ser alterado pelos desenvolvedores para adicionar atalhos ou funes diversas.

    Voltando ao tema principal, depois de adicionar os usurios ao grupo, falta ajustar as permisses de acesso, o que feito usando os comandos "chmod" e "chown". O primeiro permite ajustar as permisses dos arquivos e pastas, enquanto o segundo permite transferir a posse, dizendo a qual usurio e a qual grupo determinada pasta ou arquivo pertence.

    No Linux, as permisses so agrupadas em 3 atributos principais: leitura, gravao e execuo (no caso dos arquivos) ou listagem do contedo (no caso das pastas). Eles so representados, respectivamente, pelas letras r, w e x.

  • 35

    As permisses so definidas de forma separada para o dono, o grupo (que inclui todos os usurios includos nele) e para os outros ou seja, todos os demais usurios do sistema. Em geral, o dono tem acesso completo, o grupo tem permisses variveis, de acordo com a funo da pasta, e os demais podem apenas ler os arquivos, sem alterar o contedo.

    Se a pasta "/var/www/intranet" no nosso exemplo anterior foi criada pelo root, as permisses de acesso (informadas pelo comando "ls -l") sero:

    drwxr-xr-x 2 root root 4096 Jun 18 09:43 intranet

    O primeiro "d" indica que se trata de um diretrio. As trs letras seguintes (rwx) indicam as permisses de acesso para o dono da pasta, que no caso possui acesso completo. Em seguida, temos as permisses de acesso para o grupo (r-x), cujos integrantes podem listar o contedo da pasta (x) e podem ler os arquivos (r), sem poderem alterar nada. As trs ltimas letras (r-x) indicam as permisses para os demais usurios, que tambm podem apenas ler.

    O "root root" indica o dono e o grupo ao qual pertence a pasta, no caso o root. Ao cadastrar um usurio no sistema sempre criado um grupo com o mesmo nome (contendo apenas o prprio usurio), o que explica o fato da pasta pertencer ao usurio "root" e tambm ao grupo "root". :)

    Para que os usurios do grupo "intranet" possam alterar o contedo da pasta, o primeiro passo alterar as permisses, transferindo a posse do grupo "root" para o grupo "intranet". Nesse caso no precisamos alterar o dono da pasta, que pode continuar sendo o root:

  • 36

    # chown -R root:intranet /var/www/intranet

    O "-R" no exemplo faz com que a alterao seja aplicada de forma recursiva, afetando todos os arquivos e sub-pastas. Sem ele, a alterao seria aplicada apenas pasta propriamente dita, mas no ao seu contedo. Em seguida, especificamos o novo dono e o novo grupo, separados por :, seguido da pasta. Com isso, as permisses sero alteradas para:

    drwxr-xr-x 2 root intranet 4096 Jun 18 09:51 intranet

    Falta agora alterar as permisses de acesso para o grupo, de forma que os usurios possam finalmente escrever na pasta. Para isso, usamos o comando "chmod -R g+rw", que especifica que o grupo (g) ter permisso de leitura e escrita (+rw):

    # chmod -R g+rw /var/www/intranet

    Se voc quisesse fazer o oposto, ou seja, remover a permisso de escrita para o grupo, usaria o "chmod -R g-w /var/www/intranet", se quisesse remover a permisso de leitura para todos os demais usurios usaria o "chmod -R o-r" e, se quisesse abrir as permisses para todo mundo, usaria o "chmod -R ugo+rwx".

    Aqui vai uma pequena cola com os parmetros:

    -R : Recursivo, altera as permisses de todo o contedo da pasta, opcional.

  • 37

    u : Permisses para o dono da pasta (user). g : Permisses para o grupo (group). o : Permisses para os demais (others).

    + : Adiciona a permisso - : Remove a permisso

    r : Permisso de leitura w : Permisso de escrita x : No caso dos arquivos indica permisso de escrita e, no caso da pasta, permisso para ver o contedo.

    Voc pode tambm especificar as permisses de acesso no formato clssico, onde as permisses so representadas por trs nmeros, como em:

    # chmod -R 775 /var/www/intranet

    Nesse caso, os trs nmeros indicam, respectivamente, as permisses de acesso para o dono, grupo e para os outros. Cada nmero representa a soma das permisses desejadas, sendo que:

    4 : Leitura 2 : Gravao 1 : Execuo / listagem

    Voc simplesmente soma estes nmeros para ter o nmero referente ao conjunto de permisses que deseja:

    0 : Sem permisso alguma. Acesso negado. 1 : Permisso apenas para executar (no possvel ler o arquivo ou alter-lo, apenas executar um programa) ou, no caso das pastas,

  • 38

    permisso apenas para ver a lista dos arquivos dentro da pasta, sem poder abrir. 4 : Apenas leitura. Se usado em uma pasta, o usurio no conseguir listar o contedo, ou seja, conseguir abrir os arquivos apenas caso indique o caminho completo. 5 (4+1): Ler e executar (no caso de um arquivo) ou ver os arquivos e abri-los, no caso de uma pasta. 6 (4+2): Leitura e gravao. Assim como no caso do "4", se usado em uma pasta faz com que o usurio no consiga listar o contedo, apenas acessar os arquivos diretamente. 7 (4+2+1): Controle total.

  • 39

    Instalao de pacotes com apt-get.

    O apt-get um recurso desenvolvido originalmente para a distribuio Debian que permite a instalao e a atualizao de pacotes (programas, bibliotecas de funes, etc) no Linux de maneira fcil e precisa. Este artigo, dividido em duas partes, mostrar como utilizar seus principais recursos.

    Vale frisar que o apt-get deve ser utilizado atravs de um usurio com privilgios de administrador.

    Em qualquer sistema operacional h a necessidade de se instalar programas para que o uso do computador faa sentido. O problema que, muitas vezes, o processo de instalao trabalhoso, forando o usurio a procurar arquivos indispensveis ao software (dependncias) ou a editar scripts, por exemplo.

    Para poder lidar com esse e com problemas oriundos, desenvolvedores da distribuio Debian Linux criaram o APT (Advanced Packaging Tool), uma ferramenta para instalar e atualizar pacotes (e suas dependncias) de maneira rpida e prtica. No demorou para que o APT fosse utilizado em outras distribuies, sendo padro no Debian e no Ubuntu (j que este baseado no Debian).

    Atualizando a lista de pacotes

    Quando o apt-get utilizado no Linux, o comando consulta um arquivo denominado sources.list, geralmente disponvel no diretrio /etc/apt/. Esse arquivo informa onde esto os locais (repositrios) nos quais ele obter os pacotes requisitados pelo usurio.

    Pelo arquivo /etc/apt/sources.list o APT sabe onde procurar os pacotes solicitados. O problema que ele precisa conhecer o que est instalado no sistema operacional para saber exatamente o que procurar. Se no tiver essas informaes, o APT no saber que um determinado pacote essencial a um programa no est instalado e no providenciar sua instalao, por exemplo. Para lidar com essa situao, o APT utiliza um banco de dados prprio e o compara aos

  • 40

    repositrios registrados no sources.list para saber quando um pacote est atualizado ou quando h uma nova verso de um determinado aplicativo. Para fazer o APT executar essa tarefa, basta digitar em um terminal o seguinte comando:

    apt-get update

    Instalando pacotes

    Antes de instalar um programa, necessrio executar o comando mostrado no tpico anterior para o APT saber o que est e o que no est instalado no computador. por isso que esse comando foi explicado primeiro.

    Depois de ter executado o apt-get update, basta digitar o seguinte comando para instalar os pacotes desejados:

    apt-get install nomedoprograma

    Por exemplo, suponha que voc queira instalar o cliente de e-mail Mozilla Thunderbird. Para isso, basta dar o comando:

    apt-get install mozilla-thunderbird

    Quando esse comando executado, o APT procura nos repositrios os pacotes correspondentes e os instala imediatamente aps baix-los.

    Caso o programa necessite de um outro pacote, o APT o procurar e perguntar se voc deseja instal-lo, no que voc dever responder com Y (sim) ou N (no), como mostra a situao abaixo:

    0 packages upgraded, 6 newly installed, 0 to remove and 2 not upgraded. Need to get 6329kB of archives. After unpacking 14.1MB will be used. Do you want to continue? [Y/n] Removendo pacotes com o apt-get

  • 41

    Se voc no quer mais utilizar um determinado programa, pode desinstal-lo atravs do comando apt-get. Para isso, basta digitar:

    apt-get remove nomedoprograma

    Por exemplo, suponha que voc queira desinstalar o Mozilla Thunderbird. O comando ficar ento da seguinte forma:

    apt-get remove mozilla-thunderbird

    importante destacar que o comando acima remove o programa, mas mantm os arquivos de configurao, caso estes existam. Para uma desinstalao total do programa, incluindo arquivos extras, deve-se usar o comando:

    apt-get --purge remove nomedoprograma

    Atualizando pacotes com o apt-get

    Verses novas de programas so lanadas periodicamente por conterem correes de segurana, disponibilizarem novos recursos ou por executarem de forma melhor. Com o comando apt-get possvel obter e instalar verses mais novas de pacotes. Para isso basta digitar o comando:

    apt-get -u upgrade

    O parmetro -u serve para o apt-get mostrar os pacotes que esto sendo atualizados, portanto, seu uso opcional.

    Um detalhe importante: na atualizao de pacotes, tambm importante executar antes o comando apt-get update.

    Descobrindo nomes de pacotes

    Voc viu que necessrio conhecer o nome de um pacote para poder instal-lo. Em muitos casos, o nome segue a mesma denominao do aplicativo. Por exemplo, se voc quer instalar o programa para bate-papo XChat, basta digitar:

    apt-get install xchat

  • 42

    Entretanto, nem sempre o nome do pacote trivial e muitas vezes no sabemos sequer o nome do programa, apenas estamos procura de um software que atenda a uma determinada necessidade. O que fazer ento?

    No APT pode-se usar o seguinte comando:

    apt-cache search termo

    Por exemplo, suponha que voc queira procurar jogos para o Linux. O comando a ser usado :

    apt-cache search games

    Ao fazer essa pesquisa, o APT mostrar uma lista dos pacotes encontrados exibindo seus respectivos nomes seguidos de uma descrio, como mostra o exemplo abaixo:

    Se voc quer ter uma descrio mais detalhada de um dos pacotes listados, basta digitar o seguinte comando:

    apt-cache show nomedopacote

  • 43

    A imagem a seguir mostra um exemplo, onde o comando apt-cache show znes foi usado para obtermos detalhes do pacotes znes:

    importante frisar que existem outras formas para descobrir nomes de pacotes, porm essa uma das mais conhecidas. Uma alternativa interessante para quando voc no sabe ao certo a denominao do software, digitar as primeiras letras do nome deste e pressionar a tecla Tab duas vezes no teclado para ele auto-completar at a denominao desejada aparecer.

    Arquivo sources.list

    Voc viu no incio deste artigo que o arquivo sources.list indica os locais ou repositrios onde o APT deve buscar pacotes. possvel indicar vrios servidores, por isso importante entender como esse arquivo funciona para acrescentar, ou se necessrio, retirar repositrios.

    Ao abrir o arquivo sources.list (no editor de textos de sua preferncia, como o emacs ou vi), voc encontrar algo mais ou menos semelhante a:

  • 44

    deb http://us.archive.ubuntu.com/ubuntu breezy main restricted universe multiverse deb-src http://us.archive.ubuntu.com/ubuntu breezy main restricted universe multiverse

    O sources.list contm uma lista de repositrios, sendo cada um adicionado linha por linha. O primeiro termo - deb - indica o tipo de pacote disponvel naquele repositrio. O termo "deb" indicado porque esse o tipo de arquivo usado como pacote. A alternativa a extenso deb-src, que indica que o repositrio oferece pacotes com cdigo-fonte dos programas (til a programadores e desenvolvedores).

    O termo seguinte o endereo do servidor do repositrio. Ele pode ser HTTP, FTP, file (arquivos locais), entre outros.

    No final da linha vm os atributos, que indicam, por exemplo, a que verso da distribuio o repositrio se refere.

    Note que voc tambm encontrar vrias linhas com o smbolo # em seu incio. Neste caso, a linha ser ignorada pelo APT, tal como se no existisse, permitindo desativar temporariamente repositrios ou a incluso de comentrios com orientaes.

  • 45

    Servidores Linux. A histria do Linux e do Unix de uma forma geral, mostra que ele foi desenvolvido originalmente para uso em servidores, compartilhados por muitos usurios. Mais tarde, ele passou a ser usado tambm em desktops, PDAs, smartphones e vrios outros tipos de dispositivos, sem entretanto abandonar suas origens. Um servidor uma mquina que fica o tempo todo ligada, sempre fazendo a mesma coisa. Existem vrios tipos de servidores, como servidores web, servidores de arquivos, servidores de impresso, etc., sendo que uma nica mquina pode rodar simultaneamente vrios servios, dependendo apenas dos recursos de hardware e da carga de trabalho. A palavra "servio" indica, nesse caso, um aplicativo destinado a responder requisies dos clientes, como no caso do Apache (servidor web) ou do Samba (servidor de arquivos) Os servidores Linux podem ser divididos em dois grandes grupos: os servidores de rede local e os servidores de Internet. Os servidores de rede local so tipicamente usados para compartilhar a conexo, compartilhar arquivos e impressoras, autenticar os usurios e servirem como firewall, enquanto os servidores de Internet hospedam sites e aplicaes disponveis para a grande rede. De incio, configurar um servidor Linux pode parecer complicado, pois existem muitas opes de distribuies e de ferramentas de configurao. Praticamente qualquer distribuio Linux pode ser usada como servidor, pois os servios utilizados, como o Apache, Bind, MySQL, etc. so os mesmos, mudando apenas o processo de instalao. Contudo, as distribuies mais usadas so o Debian, CentOS, Fedora (ou o Red Hat Enterprise, para quem precisa de suporte comercial), Ubuntu, SuSE e Mandriva. Cada uma delas oferece um conjunto diferente de ferramentas de configurao, junto com utilitrios de uso geral, como o Webmin e o Swat, que podem ser usados em qualquer uma delas.

  • 46

    Tipos de servidores Linux.

    Com o crescimento exponencial da tecnologia e o barateamento do hardware, as empresas tm investido cada dia mais em servios do dia a dia implementado em software livre, com o principal objetivo, o custo e a estabilidade pelo qual o sistema operacional Linux proporciona.

    Segue abaixo alguns dos servios implementados em servidores Linux:

    Servidor de Fax: Servidor para transmisso e recepo automatizada de fax pela Internet, disponibilizando tambm a capacidade de enviar, receber e distribuir fax em todas as estaes da rede.

    Servidor de arquivos: Servidor que armazena arquivos de diversos usurios.

    Servidor web: Servidor responsvel pelo armazenamento de pginas de um determinado site, requisitados pelos clientes atravs de browsers.

    Servidor de e-mail: Servidor responsvel pelo armazenamento, envio e recebimento de mensagens de correio eletrnico.

    Servidor de impresso: Servidor responsvel por controlar pedidos de impresso de arquivos dos diversos clientes.

    Servidor de banco de dados: Servidor que possui e manipula informaes contidas em um [[banco de dados

    Servidor DNS: Servidores responsveis pela converso de endereos de sites em endereos IP e vice-versa.

    Servidor proxy: Servidor que atua como um cache, armazenando pginas da internet recm-visitadas, aumentando a velocidade de carregamento destas pginas ao cham-las novamente.[1]

    Servidor de imagens: Tipo especial de servidor de banco de dados, especializado em armazenar imagens digitais.

    Servidor FTP: Permite acesso de outros usurios a um disco rgido ou servidor. Esse tipo de servidor armazena arquivos para dar acesso a eles pela internet.

    Servidor webmail: servidor para criar emails na web. Servidor de virtualizao: permite a criao de mquinas virtuais

    (servidores isolados no mesmo equipamento) mediante

  • 47

    compartilhamento de hardware, significa que, aumentar a eficincia energtica, sem prejudicar as aplicaes e sem risco de conflitos de uma consolidao real.

    Servidor de sistema operacional: permite compartilhar o sistema operacional de uma mquina com outras, interligadas na mesma rede, sem que essas precisem ter um sistema operacional instalado, nem mesmo um HD prprio.

    Os clientes e os servidores comunicam atravs de protocolos, assim como dois ou mais computadores de redes.

    Um computador, ocasionalmente, pode prover mais de um servio simultaneamente. Pode existir em uma rede, um computador que atue como um servidor web e servidor de banco de dados, por exemplo; ou um computador pode atuar como servidor de arquivos, de correio eletrnico e proxy ao mesmo tempo. Computadores que atuem como um nico tipo de servidor chamado de servidor dedicado. Os servidores dedicados possuem a vantagem de atender a uma requisio de um cliente mais rapidamente.

    Um Cluster com trs servidores.

    Com exceo do servidor de banco de dados (um tipo de servidor de aplicao), os demais servidores apenas armazenam informaes, ficando por conta do cliente o processamento das informaes. No servidor de aplicaes, os papis se invertem, com o cliente recebendo o resultado do processamento de dados da mquina servidora.

    Em uma rede heterognea (com diversos hardwares e softwares) um cliente tambm pode ser um servidor e assim um servidor pode ser "cliente do cliente" tal como "servidor do servidor". Por exemplo, uma

  • 48

    rede tem um servidor de impresso e um de arquivos, supondo que voc est no servidor de arquivos e necessita imprimir uma folha de um documento que voc est escrevendo, quando voc mandar imprimir a folha o servio do servidor de impresso ser utilizado, e assim a mquina que voc est usando, que o servidor de arquivos, est sendo cliente do servidor de impresso, pois est utilizando de seu servio. muito comum esse fato em redes de compartilhamento como o bittorrent, pois ao mesmo tempo que um host pode ser um cliente por fazer download de um arquivo, pode simultaneamente ser um servidor, uma vez que outros computadores podem fazer download a partir do mesmo.

  • 49

    Criando Servidor de Arquivos (Samba). O Samba um "software servidor" para Linux (e outros sistemas baseados em Unix) que permite o gerenciamento e compartilhamento de recursos em redes formadas por computadores com o Windows, e Linux. Assim, possvel usar o Linux como servidor de arquivos, servidor de impresso, entre outros, como se a rede utilizasse servidores Windows (NT, 2000, XP, Server 2003). Primeiramente devemos instalar um editor de texto mais visual (Midnight Commander), caso queria utilizar o editor VI, fica a critrio do tcnico. Antes de utilizar o comando apt-get devemos atualizar a base de dados de aplicativos instalados no Linux, para isso utilizamos o comando: sudo apt-get update

    Lembre-se que o comando sudo utilizado para executar tarefas com privilgio de super usurio, caso esteja logado como root esse comando sudo no se faz necessrio.

    Para instalar o Midnight basta utilizar o comando: sudo apt-get install mc Feita a instalao do midnight, a prxima tarefa instalar o servio do servidor samba, para isso utiliza-se o comando: sudo apt-get install samba Com base no documento anterior, o gerenciador de pacotes apt-get, instala automaticamente as dependncias do pacote a ser instalado, contudo o usurio ser questionado se deseja instalar algumas dependncias do pacote samba, o usurio dever confirmar a instalao dessas dependncias.

  • 50

    Com a instalao dos pacotes devidamente instalados o usurio dever realizar as configuraes no arquivo de configurao do samba, que se encontra no caminho:

    /etc/samba/smb.conf Note que para editar as configuraes deve-se utilizar do comando: sudo mcedit /etc/samba/smb.conf se for utilizar o midnight como editor ou sudo vi /etc/samba/smb.conf se for utilizar o VI como editor. Note que sero exibidos bastantes cdigos comentados no arquivo, com a finalidade de ser o mais auto-explicativo possvel. Utilizaremos uma configurao bastante simples para utilizar o servidor samba, que posteriormente utilizaremos como base para novas implementaes. Lembre-se de sempre fazer uma copia de segurana do arquivo smb.conf antes de alter-lo. Limpe por completo as configuraes atuais do arquivo, e insira as configuraes abaixo. [global] workgroup = workgroup # (Nome Do Domnio ou grupo) netbios name = Linux # (Nome do Servidor) server string = Samba # (Descricao do servidor) security = user # (Segurana por usurio, poderia ser por grupo ou alow) encrypt passwords = yes # (Utilizar senhas criptografadas) os level = 100 [compartilhamento] comment = compartilhamento publico #(Comentrio do compartilhamento) path = /home/compartilhamento #(Caminho do diretrio compartilhado) browseable = yes #(Se ser visto via browser).

  • 51

    read only = no #(Se somente leitura) guest ok = Yes Salve o arquivo e saia do editor. Habitua-se sempre utilizar o comando testparm, aps realizar configuraes para que se houver algo errado exiba uma mensagem de erro. Se tudo correr bem, ser exibida uma mensagem que seu servidor samba j est rodando. A prxima etapa criar os usurios que utilizaro o samba, esses usurios devero ser cadastrados anteriormente no Linux juntamente com suas respectivas senhas. Lembre-se que a senha de usurio utilizada no samba dever ser a mesma que a do Linux (sincronismo de senhas). Logo aps devemos inserir o usurio no samba com o comando: sudo smbpasswd a usurio E assim sucessivamente para todos os usurios que logaro no servidor samba. No se esquea de criar o arquivo que ser compartilhado, que no nosso exemplo dever se encontrar no caminho /home/compartilhamento, com as devidas permies configuradas. Como no criamos estrutura de grupos de acesso, para apenas teste, pode-se utilizar a permio total para todos os usurios, lembrando que comercialmente, isso seria inadmissvel, pois no teria segurana nenhuma. Para dar permies para todo, o comando ser: sudo chmod 777 compartilhamento Feito isso para testar o servidor, reinicie o servio com o comando. sudo service smbd restart Logo aps em uma maquina Windows, insira-a no mesmo grupo de trabalho que a do servidor workgroup e execute o comando:

  • 52

    \\endereo_IP_Servidor Ser exibida uma tela de login, onde se deve entrar com uma conta de usurio cadastrada no servidor samba.

  • 53

    Servidor Proxy. Introduo O Squid permite compartilhar a conexo entre vrios micros, servindo como um intermedirio entre eles e a internet. Usar um proxy diferente de simplesmente compartilhar a conexo diretamente, via NAT. Ao compartilhar via NAT, os micros da rede acessam a internet diretamente, sem restries. O servidor apenas repassa as requisies recebidas, como um garoto de recados. O proxy como um burocrata que no se limita a repassar as requisies: ele analisa todo o trfego de dados, separando o que pode ou no pode passar e guardando informaes para uso posterior. Compartilhar a conexo via NAT mais simples do que usar um proxy como o Squid sob vrios aspectos. Voc compartilha a conexo no servidor, configura os clientes para o utilizarem como gateway e pronto. Ao usar um proxy, alm da configurao da rede, necessrio configurar o navegador e cada outro programa que for acessar a Internet (em cada um dos clientes da rede) para usar o proxy. Esta uma tarefa tediosa e que acaba aumentando bastante seu volume de trabalho, pois toda vez que um micro novo for colocado na rede ou for preciso reinstalar o sistema, ser preciso fazer a configurao novamente. A configurao do proxy muda de navegador para navegador. No Internet Explorer, a configurao est em "Opes da Internet > Opes > Configuraes da Lan > Usar um servidor Proxy":

  • 54

    Alm do navegador, outros programas podem ser configurados para trabalhar atravs do proxy: clientes de MSN, VoIP e at mesmo programas P2P. As vantagens de usar um proxy so basicamente trs: 1- possvel impor restries de acesso com base no horrio, login, endereo IP da mquina e outras informaes, alm de bloquear pginas com contedo indesejado. por isso que quase todos os softwares de filtro de contedo envolvem o uso de algum tipo de proxy, muitas vezes o prprio Squid (j que, como o software aberto, voc pode inclu-lo dentro de outros aplicativos, desde que respeitando os termos da GPL). Mais adiante estudaremos sobre a configurao do SquidGuard e do DansGuardian. 2- O proxy funciona como um cache de pginas e arquivos, armazenando informaes j acessadas. Quando algum acessa uma pgina que j foi carregada, o proxy envia os dados que guardou no cache, sem precisar acessar a mesma pgina repetidamente. Isso acaba economizando bastante banda, tornando o acesso mais rpido. Hoje em dia, os sites costumam usar pginas dinmicas, onde o contedo muda a cada visita, mas, mesmo nesses casos, o proxy d uma boa ajuda, pois embora o html seja diferente a cada visita e

  • 55

    realmente precise ser baixado de novo, muitos componentes da pgina, como ilustraes, banners e animaes em flash, podem ser aproveitados do cache, diminuindo o tempo total de carregamento.

    Dependendo da configurao, o proxy pode apenas acelerar o acesso s pginas ou servir como um verdadeiro cache de arquivos, armazenando atualizaes do Windows Update, downloads diversos e pacotes instalados atravs do apt-get, por exemplo. Em vez de ter que baixar o ltimo Service Pack do Windows ou a ltima atualizao do Firefox nos 10 micros da rede, voc vai precisar baixar apenas no primeiro, pois os outros 9 vo baixar a partir do cache do Squid. 3- Uma terceira vantagem de usar um proxy que ele loga todos os acessos realizados atravs dele. Voc pode visualizar os acessos posteriormente usando o Sarg, um gerador de relatrios que transforma as longas listas de acessos dos logs em arquivos html bem organizados. Mesmo assim, voc pode estar achando que as vantagens no vo compensar o trabalho de sair configurando micro por micro, programa por programa para usar o proxy, e que mais fcil simplesmente compartilhar via NAT. Entretanto, existe a possibilidade de juntar as vantagens das duas formas de compartilhamento, configurando um proxy transparente como veremos adiante.

  • 56

    Ao usar um proxy transparente, voc tem basicamente uma conexo compartilhada via NAT, com a mesma configurao bsica nos clientes. O proxy entra na histria como um adicional. Uma regra de firewall envia as requisies recebidas na porta 80 do servidor para o proxy, que se encarrega de responder aos clientes. Toda a navegao passa a ser feita automaticamente atravs do proxy (incluindo o cache dos arquivos do Windows update, downloads diversos e os pacotes instalados atravs do apt-get), sem que voc precise fazer nenhuma configurao adicional nos clientes.

    Instalando o squid Primeiramente vamos instalar o pacote de instalao do Squid com o comando: sudo apt-get install squid Aps a instalao do Squid partiremos para o arquivo de configurao dele, que est localizado em /etc/squid/squid.conf. Com um editor de texto de sua preferncia descomente (retirar o sinal # do inicio das TAGs do arquivo texto): http_port 3128 cache_mem 8 MB cache_dir ufs /var/spool/squid 100 16 256

  • 57

    Agora preciso localizar a linha "http_access deny all". Substitua-a por estas 3 linhas na mesma ordem: acl sites url_regex -i sites http_access deny sites all http_access allow all Feito essa alterao salve e saia do arquivo. Execute o seguinte comando para que se possa criar a estrutura do cache do Squid de acordo com as definies da opo cache_dir no arquivo squid.conf. sudo squid -z Agora preciso criar o arquivo /etc/squid/sites, nele estaro s palavras ou URL que sero bloqueadas. Coloque cada palavra ou endereo por linha. radio chat music bate-papo Sempre que for adicionada alguma nova URL no arquivo sites, vai ser preciso forar o Squid a ler novamente o contedo do arquivo para bloquear as novas alteraes, para isso basta digitar: # sudo squid -k reconfigure

  • 58

    Servidor de banco de dados (MySql).

    Como descrito logo cima, no planejamento de um servidor, se deve ter a relao de servios que o mesmo deve atender.

    Um desses servios poder ser um servidor de banco de dados mysql, alguns especialista defendem a opinio de que o mysql tem um maior rendimento no sistema operacional Linux.

    Exibiremos uma configurao do servidor de banco de dados mysql, interagindo com estaes Windows, onde os clientes Microsoft acessaro o banco de dados mysql via rede.

    Para utilizar um banco de dados, necessrio:

    Criar um novo banco de dados.

    Dar, a um usurio do banco de dados, as permisses de acesso a um banco de dados.

    Conceder, a este usurio, todos os direitos para utilizar o banco de dados especfico.

    O que faremos:

    Criaremos um banco de dados chamado aluno

    Um usurio chamado Eduardo

    Com a senha 123

    Poder acessar o banco a partir da prpria mquina (localhost ou em rede). Passos: 1) Instalar um servidor mysql $ sudo apt-get install mysql-server

  • 59

    2) Na instalao ser solicitada uma senha de root para o acesso com todas as permisses do banco de dados, guarde bem esta senha.

    3) Para logar com o usurio root, utilize o parmetro extra -p, assim: $ mysql -u root -p Ser exibido um prompt para inserir a senha: Enter password:

    O interpretador de comandos do mysql exibir seu prompt: mysql>

    4) Aps ter se logado, o prximo passo criar um banco de dados: mysql> create database aluno; Query OK, 1 row affected (0.00 sec)

    5) D permisso ao usurio eduardo para conectar ao servidor a partir de localhost utilizando a senha 123: mysql> grant usage on *.* to eduardo@localhost identified by 123; Query OK, 0 rows affected (0.00 sec)

    6) Conceda todos os privilgios no banco de dados aluno para este usurio: mysql> grant all privileges on aluno.* to eduardo@localhost ; Query OK, 0 rows affected (0.00 sec)

    Digite exit para sair do prompt do mysql e retornar ao prompt do sistema.

    Para se conectar ao servidor mysql, utilize este comando: $ mysql -u eduardo -p123 aluno

    O mysql exibir uma mensagem semelhante a esta abaixo e disponibilizar seu prompt.

    Your MySQL connection id is 2.

    Server version: 5.0.38-Ubuntu_0ubuntu1-log Ubuntu 7.04 distribution.

  • 60

    Localmente a configurao est pronta, no entanto a real idia desse captulo acessar o MySql a partir de uma maquina Windows, para isso algumas configuraes se faz necessrio no arquivo de configurao do MySql, por padro esse recurso vem bloqueado.

    Para isso com nosso editor de texto vamos alterar o arquivo de configurao a partir do comando:

    sudo mcedit /etc/mysql/my.cnf

    Na tag Basic settings devemos comentar a seguinte linha de comando:

    bind-address = 127.0.0.0

    E logo aps restart o servio com o comando:

    sudo service mysql restart

    Proto agora com alguma ferramenta administrativa que no nosso caso o SqlYog conectaremos remotamente no banco de dados.

  • 61

    Compiladores.

    O compilador um software que tem a funo de traduzir o cdigo-fonte desenvolvido pelo programador em um software que possa ser executado diretamente pelo usurio, ou seja, voc escreve todo o cdigo-fonte e depois pede para o compilador convert-lo em um programa. Uma vez tendo o programa em mos, voc pode distribu-lo. O compilador um tipo de tradutor, como veremos adiante. Quando um programador desenvolve um software por meio de um cdigofonte, ele necessita converter esse cdigo para uma linguagem de mquina, ou seja, que a mquina entenda. Para isso, usa-se um tradutor, que um utilitrio com a funo de facilitar a vida do programador, convertendo o cdigo desenvolvido em uma linguagem de alto nvel (entendida mais facilmente pelo programador) em uma linguagem de mquina (entendida pelo computador). Dependendo da linguagem utilizada pelo programador, o tradutor pode ser de um destes dois tipos: Montador: traduz o cdigo-fonte que foi desenvolvido em linguagem de montagem, como por exemplo, a Assembly; Compilador: traduz o cdigo-fonte que foi desenvolvido em linguagem de alto nvel, como C, C++, Pascal, Java etc. Softwares compiladores: Javac: compilador da linguagem Java; g++: compilador OpenSource da linguagem c++ . Na maioria das vezes, para melhorar sua rotina o programador adota uma IDE (Integrated Development Environment), ou seja, um ambiente de desenvolvimento integrado, onde h alm de um editor de textos, muitas vezes capaz de corrigir e sugerir o cdigo durante sua digitao um depurador, um compilador, um linker e uma interface facilitada para executar o software, depois de compilado. Exemplos de IDEs so o NetBeans, o Eclipse (Java) e o DevC++ (C++), Lazarus.

  • 62

    Interpretador um tipo de tradutor que no gera programas, simplesmente executa as instrues no momento em que o usurio as solicita. Exemplos de linguagens de programao interpretadas: PHP, Perl e Basic. A maior desvantagem, nesse caso, que o cdigo-fonte fica visvel para o usurio, de maneira que qualquer pessoa poder copiar o que voc criou. Outra ressalva o desempenho, j que toda vez que o programa for executado o processador ter de processar as instrues linha a linha. Linker (ou ligador) o utilitrio responsvel por pegar um programa que j foi traduzido e introduzir as bibliotecas necessrias para seu correto funcionamento. Muitas vezes, quando desenvolvemos programas, precisamos adicionar bibliotecas externas com recursos teis para o programa que estamos desenvolvendo.

  • 63

    O linker te essa funo de comcretizar essa adio gerando programa final, (software binrio) alguns compiladores, mais suas funes bsicas, agregam tambm as do linker, que, neste caso, se torna desnecessrio, j que o prprio compilador resolve tambm essas referncias simblicas a bibliotecas externas. Se voc j programa em alguma linguagem ou j se atreveu a escrever alguma linha de cdigo em algum software de desenvolvimento, deve ter ouvido falar do depurador, tambm conhecido como debugger. Trata-se de uma ferramenta muito til para o programador. Imagine que voc esteja desenvolvendo um programa e o resultado apresentado por ele no o que voc esperava. Da mesma forma, pode ocorrer que esse programa tenha muitas linhas de cdigo e voc no tem a mnima ideia de onde est acontecendo o problema. A utilidade do depurador est em sua funo de permitir ao usurio acompanhar a execuo do programa, visualizando os resultados em tempo real, em busca de possveis erros de lgica. Com ele voc pode seguir cada linha de cdigo, verificando a sada do programa para localizar onde o problema est e podendo, assim, corrigi-lo.

  • 64

    O depurador tambm pode ser utilizado em conjunto com o copilador para apresentar as linhas onde existem possveis erros de codificao constatados durante o processo de compilao. Em IDEs, o depurador normalmente entra em execuo durante o processo de compilao, depois que o usurio executa essa ao, clicando no boto Compilar. O debugger normalmente apresentado na parte de baixo da janela e muito importante para quem pretenda desenvolver um bom software.

  • 65

    Testando uma IDE. Como dito logo acima, IDE (Integrated Development Environment), nada mais que uma que uma ferramenta para nos auxiliar no desenvolvimento de novos aplicativos. A IDE composta de um editor de textos, um depurador, um compilador, um linker e uma interface facilitada para executar o software, depois de compilado. Vamos ento testar uma IDE bastante prxima ao delphi seu nome Lazarus. Para isso vamos instalar o seu pacote de instalao com o comando: sudo apt-get install lazarus Agora como o software instalado, vamos testar alguns comandos: