CEETEPS – CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA Tópicos para a disciplina - GSO Gestão de Sistemas Operacionais Monte Alto – Fevereiro/2010 CEETEPS – CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA Tópicos para a disciplina - GSO Gestão de Sistemas Operacionais Informações sobre este material Professor: Curso: Disciplina: Período: Semestre/Ano: Datas: Nº de páginas: Marcio Roberto Gonçalves de Vazzi Técnico em Informática GSO – Gestão de Sistemas Operacionais 1º, 2º e 3º Módulos 01/2010 Criação: Agosto de 2007 - Tempo de edição 11:15:47 - Última alteração 22/02/2010 126 Versão: 1.1.80 Sumário 1 Capítulo 1 – Sistemas Operacionais..............................................................................................6 1.1 Introdução......................................................................................................................................6 1.2 Tipos de Sistema Operacional.......................................................................................................7 1.3 Windows........................................................................................................................................8 1.3.1 Significado do nome...................................................................................................................8 1.3.2 Origem e História.......................................................................................................................8 1.3.3 Windows 1.01.............................................................................................................................9 1.3.4 Windows 2.03.............................................................................................................................9 1.3.5 Windows 2.1...............................................................................................................................9 1.3.6 Windows 3.x.............................................................................................................................10 1.3.7 Windows 95..............................................................................................................................11 1.3.8 Windows NT.............................................................................................................................11 1.3.9 Windows 98..............................................................................................................................13 1.3.10 Windows ME..........................................................................................................................13 1.3.11 Windows 2000........................................................................................................................14 1.3.12 Windows XP...........................................................................................................................14 1.3.13 Windows Server 2003.............................................................................................................15 1.3.14 Windows Vista........................................................................................................................15 1.3.15 Outras versões........................................................................................................................16 1.3.16 Características Técnicas.........................................................................................................17 1.4 MacOS.........................................................................................................................................17 1.5 Solaris..........................................................................................................................................18 1.6 FreeBSD......................................................................................................................................19 1.6.1 Características...........................................................................................................................19 1.6.2 Compatibilidade binária com Linux.........................................................................................19 1.6.3 Mascote e Lema........................................................................................................................20 1.6.4 História e desenvolvimento do FreeBSD.................................................................................20 1.7 UNIX...........................................................................................................................................21 1.7.1 Particularidades........................................................................................................................21 1.8 Linux............................................................................................................................................22 1.8.1 A História do Sistema Operacional LINUX.............................................................................22 1.9 Principais Comandos do DOS.....................................................................................................22 1.10 Criando arquivos de lote............................................................................................................25 1.11 Exercícios de Fixação................................................................................................................27 2 Capítulo 2 – Distribuições Linux.................................................................................................28 2.1 Debian..........................................................................................................................................29 2.2 Mandriva......................................................................................................................................29 2.3 Open Suse....................................................................................................................................30 2.4 Ubuntu.........................................................................................................................................31 2.5 Slackware....................................................................................................................................31 2.6 Fedora..........................................................................................................................................32 2.7 Distribuições Brasileiras..............................................................................................................32 2.8 Time Line.....................................................................................................................................33 2.9 Ambientes de Trabalho/Interface Gráfica (Desktop)...................................................................34 2.9.1 KDE..........................................................................................................................................34 2.9.1.1 Principais características do KDE.........................................................................................34 2.9.1.2 Benefícios do KDE................................................................................................................35 2.9.1.3 Deficiências do KDE.............................................................................................................36 2.9.1.4 Configurações de hardware suportadas.................................................................................37 2.9.1.5 Comparação com a GUI do Windows...................................................................................37 2.9.2 Gnome......................................................................................................................................38 2.9.2.1 Metas.....................................................................................................................................38 2.9.2.2 Origem...................................................................................................................................38 2.9.2.3 Liberdade...............................................................................................................................39 2.9.3 X Window System ou simplesmente X....................................................................................39 2.10 Exercícios de Fixação................................................................................................................41 3 Capítulo 3 – Principais Comandos em Linux............................................................................42 3.1 Comandos de manipulação de diretório......................................................................................42 3.1.1 mkdir.........................................................................................................................................42 3.1.2 rmdir.........................................................................................................................................42 3.1.3 rm -rf.........................................................................................................................................42 3.1.4 cd..............................................................................................................................................43 3.1.5 pwd, ls, df, du e whereis...........................................................................................................43 3.2 Comandos para manipulação de arquivos...................................................................................44 3.2.1 cat, tac, vi, vim, rm, cp, mv, chmod, chown, > e >>................................................................44 3.3 Comandos para administração.....................................................................................................45 3.3.1 Man, du, find, whoami, ps, kill, su, chown..............................................................................45 3.3.2 adduser......................................................................................................................................45 3.3.3 addgroup...................................................................................................................................47 3.3.4 sg...............................................................................................................................................48 3.3.5 userdel.......................................................................................................................................49 3.3.6 Groupdel...................................................................................................................................49 3.3.7 passwd......................................................................................................................................50 3.3.8 users..........................................................................................................................................51 3.3.9 groups.......................................................................................................................................51 3.3.10 Who........................................................................................................................................51 3.4 Comandos para administração de rede........................................................................................52 3.5 Exercícios de Fixação..................................................................................................................53 3.6 Permissões de acesso a arquivos e diretórios..............................................................................54 3.6.1 Donos, grupos e outros usuários...............................................................................................54 3.6.2 Tipos de Permissões de acesso.................................................................................................55 3.6.3 Etapas para acesso a um arquivo/diretório...............................................................................56 3.6.4 Exemplos práticos de permissões de acesso.............................................................................57 3.6.4.1 Exemplo de acesso a um arquivo..........................................................................................57 3.6.4.2 Criando LINKS.....................................................................................................................59 3.6.4.3 Exemplo de acesso a um diretório.........................................................................................59 3.7 Permissões de Acesso Especiais..................................................................................................61 3.8 A conta root..................................................................................................................................62 3.9 chmod..........................................................................................................................................63 3.10 chgrp..........................................................................................................................................65 3.11 chown.........................................................................................................................................65 3.12 Modo de permissão octal...........................................................................................................66 3.13 umask.........................................................................................................................................68 3.14 Outros comandos importantes...................................................................................................71 3.14.1 ps.............................................................................................................................................71 3.14.2 Kill..........................................................................................................................................71 3.14.3 top...........................................................................................................................................71 3.14.4 df e du.....................................................................................................................................72 3.15 Exercícios de Fixação................................................................................................................73 3.16 Montando Dispositivos..............................................................................................................74 3.16.1 O que são dispositivos?..........................................................................................................74 3.16.2 Montando os dispositivos.......................................................................................................75 3.17 Exercícios de Fixação................................................................................................................79 3.18 Compactando arquivos..............................................................................................................80 3.18.1 Compressão de arquivos.........................................................................................................80 3.19 Estrutura de diretórios...............................................................................................................82 3.20 Exercícios de Fixação................................................................................................................84 4 Capítulo 4 – Gestão de T.I............................................................................................................85 4.1 Projetando redes de computadores e sistemas de informação.....................................................85 4.2 TCO.............................................................................................................................................86 4.3 ROI - Return On Investment......................................................................................................87 4.3.1 O que é......................................................................................................................................87 4.3.2 Definições.................................................................................................................................87 4.3.3 Conceitos..................................................................................................................................88 4.3.4 Categorias de ROI....................................................................................................................89 4.3.5 Calculando o ROI.....................................................................................................................89 4.3.6 Quanto custa.............................................................................................................................90 4.4 Conclusão....................................................................................................................................90 4.5 Licença de software.....................................................................................................................90 4.6 Exercícios de Fixação..................................................................................................................92 5 Capítulo 5 – Servidores................................................................................................................93 5.1 SAMBA......................................................................................................................................93 5.1.1 Implementação.........................................................................................................................93 5.1.2 Configuração do Servidor.........................................................................................................94 5.1.3 Criando usuários no SAMBA:..................................................................................................96 5.1.4 smb.conf comentado.................................................................................................................96 5.2 Apache.........................................................................................................................................99 5.2.1 O httpd.conf............................................................................................................................101 5.3 Squid..........................................................................................................................................104 5.3.1 Squid.conf...............................................................................................................................105 5.4 Exercícios de Fixação................................................................................................................110 6 Capítulo 6 – Acesso Remoto e Firewall.....................................................................................111 6.1 SSH............................................................................................................................................111 6.2 VNC...........................................................................................................................................111 6.3 Vino e Vinagre (Gnome)............................................................................................................111 6.4 Firewall – NetFilter/IPTABLES................................................................................................112 6.4.1 Configurando..........................................................................................................................113 6.5 Exercícios de fixação.................................................................................................................115 7 Capítulo 7 - Extras......................................................................................................................116 7.1 linuxconf....................................................................................................................................116 7.2 Interface do Linuxconf..............................................................................................................116 7.3 Arquivos de configuração..........................................................................................................118 7.3.1 /etc/resolv.conf........................................................................................................................118 7.3.2 /etc/hosts.................................................................................................................................118 7.4 Comando “sudo”........................................................................................................................119 7.5 Crontab e at................................................................................................................................120 7.5.1 Crontab...................................................................................................................................120 7.5.2 at.............................................................................................................................................122 7.6 Exercícios de Fixação................................................................................................................124 8 Exercícios Gerais........................................................................................................................125 Tópicos para a disciplina GSO 6 1 Capítulo 1 – Sistemas Operacionais 1.1 Introdução Um sistema operativo (português europeu) ou sistema operacional (português brasileiro) é um programa ou um conjunto de programas cuja função é servir de interface entre um computador e o usuário. O sistema operacional (SO) é a primeira coisa que o computador carrega. Sem um sistema desse tipo, o computador se torna inútil. Segundo alguns autores (Silberschatz et al, 2005; Stallings, 2004; Tanenbaum, 1999), existem dois modos distintos de conceituar um sistema operacional: • pela perspectiva do usuário ou programador (visão top-down): é uma abstração do hardware, fazendo o papel de intermediário entre o aplicativo (programa) e os componentes físicos do computador (hardware); ou • numa visão bottom-up, de baixo para cima: é um gerenciador de recursos, controla quais aplicações (processos) podem ser executadas, quando, que recursos (memória, disco, periféricos) podem ser utilizados. Programadores, Analistas e Usuários Usuários Programas, Sistemas e Aplicativos Sistema Operacional Discos Hardware Terminais Periféricos Impressoras Memória Processador Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 7 1.2 Tipos de Sistema Operacional Existem 4 tipos básicos de sistemas operacionais. Eles são divididos em grupos relacionados com o tipo de computador que controlam e o tipo de aplicativos que suportam. Estas são as categorias mais abrangentes: • • • • sistema operacional de tempo real (RTOS - Real-time operating system). É utilizado para controlar máquinas, instrumentos científicos e sistemas industriais. Geralmente um RTOS não tem uma interface para o usuário muito simples e não é destinado para o usuário final, desde que o sistema é entregue como uma "caixa selada". A função do RTOS é gerenciar os recursos do computador para que uma operação específica seja sempre executada durante um mesmo período de tempo. Numa máquina complexa, se uma parte se move mais rapidamente só porque existem recursos de sistema disponíveis, isto pode ser tão catastrófico quanto se uma parte não conseguisse se mover porque o sistema está ocupado. monousuário, monotarefa. O sistema operacional foi criado para que um único usuário possa fazer uma coisa por vez. O Palm OS dos computadores Palm é um bom exemplo de um moderno sistema operacional monousuário e monotarefa. monousuário, multitarefa. Este tipo de sistema operacional é o mais utilizado em computadores de mesa e laptops. As plataformas Microsoft Windows e Apple MacOS são exemplos de sistemas operacionais que permitem que um único usuário utilize diversos programas ao mesmo tempo. Por exemplo, é perfeitamente possível para um usuário de Windows escrever uma nota em um processador de texto ao mesmo tempo em que faz download de um arquivo da Internet e imprime um e-mail. multiusuário. Um sistema operacional multiusuário permite que diversos usuários utilizem simultaneamente os recursos do computador. O sistema operacional deve se certificar de que as solicitações de vários usuários estejam balanceadas. Cada um dos programas utilizados deve dispor de recursos suficientes e separados, de forma que o problema de um usuário não afete toda a comunidade de usuários. Unix, VMS e sistemas operacionais mainframe como o MVS são exemplos de sistemas operacionais multiusuário. Os módulos típicos em um grande SO multiusuário geralmente são: • Núcleo (Kernel em inglês - também conhecido como " executivo") • Gerenciador de processo • Escalonador (Scheduler, em inglês) • Gerenciador de arquivo É importante diferenciar os sistemas operacionais multiusuário dos sistemas operacionais monousuário que suportam rede. O Windows Server e o Novell Open Enterprise Server podem suportar centenas ou milhares de usuários em rede, mas os sistemas operacionais em si não são sistemas multiusuário de verdade. O administrador do sistema é o único "usuário" do Windows Server ou do Novell Open Enterprise Server. O suporte à rede e todos os usuários remotos são, do ponto de vista do sistema operacional, um programa sendo executado pelo administrador. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 8 1.3 Windows Fonte: Richard Batista Silveira (Material garimpado na Internet) 1.3.1 Significado do nome A palavra windows em inglês significa janelas. A sua interface é baseada num padrão de janelas que exibem informações e recebem respostas dos utilizadores através de um teclado ou de cliques do mouse. Este padrão de interface não foi, no entanto, criado pela Microsoft, como veremos adiante. O registro da marca Windows foi legalmente complicado, pelo fato de essa palavra ser de uso corrente em inglês. Podemos dizer que um computador não possui nenhuma utilidade prática sem pelo menos um sistema operacional instalado. Resumidamente, ele é responsável pelo funcionamento do computador, controle dos periféricos, execução de aplicativos, gerência de memória, rede, etc. Mais detalhes podem ser vistos no artigo específico de sistemas operacionais. 1.3.2 Origem e História A Microsoft começou o desenvolvimento de um Gerenciador de Interface (subseqüente renomeado Microsoft Windows) em setembro de 1981. O Windows só começa a ser tecnicamente considerado como um SO a partir da versão Windows NT, lançada em Agosto de 1993. O que havia antes eram sistemas gráficos sendo executados sobre alguma versão dos sistemas compatíveis com DOS, como MSDOS, PC-DOS ou DR-DOS. Somente o MSDOS era produzido pela própria Microsoft. O MS-DOS é um sistema operativo que não dispõe de interface gráfica, funciona através de comandos de texto introduzidos no teclado pelo utilizador. O Windows surgiu inicialmente como uma interface gráfica para MS-DOS, que permitia correr programas em modo gráfico, o que permitiu a utilização do mouse, que até à altura era considerado supérfluo em computadores de tipo IBM-PC. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 1.3.3 9 Windows 1.01 Windows 1.01 era uma interface gráfica bidimensional para o MSDOS e foi lançado em 20 de Novembro de 1985. Era necessário o MS-DOS 2.0, 256 KB RAM e um disco rígido. Naquela altura, o MS-DOS só consegue suportar 1 MB de aplicações. Era uma primeira tentativa de criar um sistema multitarefa. Nessa época, instalado em computadores XTs que tinham apenas 512Kb de memória, ocupava praticamente toda a memória disponível. O Windows 1.01 não foi nenhum grande sucesso comparado com seus sucessores da década de 1990, devido à limitação do hardware da época. Inicialmente, ele foi lançado em quatro disquetes de 5.25 polegadas de 360 KB cada um. Continha o Reversi (jogo), um calendário, bloco de notas, calculadora, relógio, command prompt , Write, Control Panel, Paint e programas de comunicação. Permite a utilização de mouse, janelas e ícones. Nesta versão ainda não havia sobreposição de janelas. 1.3.4 Windows 2.03 O Windows 2.03 foi lançado em 1 de Novembro de 1987 e praticamente tem a mesma interface do Windows 1.01, com a diferença de apresentar mais recursos, ferramentas e maior paleta de cores, embora os computadores daquela época eram ainda muito lentos quando estes utilizavam uma interface gráfica de boa qualidade. Permite a sobreposição de janelas e estas podem maximizar e minimizar. Era apresentado em oito disquetes de alta densidade de 5,25" de 360 KB cada um. 1.3.5 Windows 2.1 Em 27 de Maio de 1988, foi lançado o Windows 2.1, que era apresentado em sete disquetes de dupla densidade de 3,5" de 720 KB cada um, e era nada mais do que o Windows 2.03 reformulado. Existem duas versões especiais do Windows 2.1: Windows 2.1/286 foi lançada para aproveitar todos os recursos dos Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 10 microprocessadores 286; Windows 2.1/386 foi lançada para aproveitar todo o potencial dos microprocessadores 386. Existe uma outra versão da família Windows 2.xx, o Windows 2.11, que foi lançada em Março de 1989, com pequenas mudanças em gerenciamento de memória, melhor impressão e drivers Postscript. 1.3.6 Windows 3.x O Windows 3.0 foi o primeiro sucesso amplo da Microsoft e foi lançado em 22 de Maio de 1990. Ao contrário das versões anteriores, ele era um Windows completamente novo. Tecnicamente, esta versão é considerada o primeiro sistema gráfico da empresa. Era um sistema gráfico de 16 bits, mas ainda precisava ativar primeiro o MS-DOS para ativar o Windows. Substituiu o MS-DOS Executive pelo Gerenciador de Programas e o Gerenciador de Arquivos que simplificavam as aplicações e tornava o sistema mais prático. Melhorou bastante a interface, o gerenciamento de memória e o sistema multitarefa. Conseguiu ultrapassar o limite de 1 MB do MSDOS e permitiu a utilização máxima de 16 MB de aplicações. Naquela época era o único possível de compatibilizar todos os programas das versões anteriores. Utilizava o CPU Intel 80286 e Intel 80386. Também existe a versão 3.0a, que foi lançada em 31 de Outubro de 1990. Pode ter sido responsável pela saída do mercado de empresas como Novell e Lantastic, que dominavam como fornecedoras de NOSes (sistemas operacionais para redes) em plataformas cliente-servidor e ponto a ponto, respectivamente. Existem cinco versões especiais do Windows 3.0: Windows with Multimedia Extensions - foi lançada por vários fabricantes de periféricos multimídia, por isso ela não tem uma certa data de lançamento. Tinha recursos multimídia (semelhantes aos do Windows 3.1) e era um pouco mais estável. • • • • Windows 3.1 - foi lançada em 6 de Abril de 1992 e tinha softwares para multimédia e fontes TrueType (aumenta muito o número de tipos de letras disponíveis) e era mais estável do que o Windows 3.0. Ele era apresentado em oito disquetes de alta densidade de 3,5" de 1,44 MB cada um. Nesta versão permitiu o uso de um maior número de línguas de trabalho, incluindo o Cirílico e o Japonês. O Minesweeper substituiu o Reversi. Windows for Workgroups 3.1 - foi lançada 28 de Outubro de 1992, e era praticamente o Windows 3.1 com suporte a rede, fax-modem e correio eletrônico. Ele era apresentado em nove disquetes de alta densidade de 3,5" de 1,44 MB cada um. Windows for Workgroups 3.11 - foi lançada 8 de Novembro de 1993 e era praticamente a revisão da versão anterior. Windows for Pen Computing - foi lançada em Abril de 1994 e tinha todos os recursos do Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO • 1.3.7 11 Windows for Workgroups 3.11 mais o suporte a canetas para PCs. Windows 3.2 - nesta versão limitou-se em acrescentar o Chinês como uma língua de trabalho. Windows 95 É o primeiro S.O. de 32 bits e foi lançada em 24 de Agosto de 1995. Ele era um Windows completamente novo, e de nada lembra os Windows da família 3.xx. O salto do Windows 3.0 ao Windows 95 era muito grande e ocorreu uma mudança radical na forma da apresentação do interface. Introduziu o Menu Iniciar e a Barra de Tarefas. Nesta versão, o MS-DOS perdeu parte da sua importância visto que o Windows já consegue activarse sem precisar da dependência prévia do MS-DOS. As limitações de memória oferecidas ainda pelo Windows 3.0 foram praticamente eliminadas nesta versão. O sistema multitarefa tornou-se mais eficaz. Utilizava o sistema de ficheiros FAT-16 (VFAT). Os ficheiros (arquivos) puderam a partir de então ter 255 caracteres de nome (mais uma extensão de três caracteres que indica o programa que abre o arquivo). Existe uma outra versão do Windows 95, lançada no início de 1996, chamada de Windows 95 OEM Service Release 2 (OSR 2), com suporte nativo ao sistema de arquivos FAT32. Já o Windows 95, a partir da revisão OSR 2.1, incluía o suporte nativo ao Barramento Serial Universal (USB). 1.3.8 Windows NT O Windows NT foi lançado pela primeira vez pela Microsoft em 1993 com o objectivo principal de fornecer mais segurança e comodidade aos utilizadores de empresas e lojas (meio corporativo), pois as versões do Windows disponíveis até então não eram suficientemente estáveis e confiáveis. Foi um sistema operativo de 32 bits, multitarefa e multiutilizador. A sigla NT significa New Technology (nova tecnologia em inglês). Trazia a funcionalidade de trabalhar como um servidor de arquivos. Os NTs têm uma grande estabilidade e têm a vantagem de não ter o MSDOS. A arquitectura desta versão é fortemente baseada no microkernel. Assim, em teoria, pode-se remover, actualizar ou substituir qualquer módulo sem a necessidade de alterar o resto do sistema. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 12 Foi criado com base no sistema operacional OS/2 da IBM - que havia deixado de ser comercializado e não representava mais um competidor no mercado, VMS e Lan Manager. Ele não era muito popularizado até ao aparecimento do Windows 2000 (NT 5.0). O Windows NT aceita dois tipos de sistemas de arquivos: FAT (Windows NT 3.xx e Windows NT 4.0); NTFS (Windows NT 4.0, Windows 2000, Windows XP e Windows 2003). Existem edições especiais: NT 3.1 era muito semelhante ao Windows 3.1. Foi lançado em 1993. Pode ser utilizado no Intel x86, DEC Alpha e MIPS CPUs. NT 3.5 foi lançado em 1994 e era semelhante ao NT 3.1. NT 3.51 foi lançado em 1995 e tinha uma interface semelhante ao Windows 3.1 e trouxe algumas inovações nas áreas de gestão e distribuição de energia, podia executar um grande número de aplicações Win 32 do Windows 95. Mas foi rapidamente ultrapassado porque não oferecia bons serviços de Internet. NT 4.0 foi lançado em 1996 tinha uma interface semelhante ao Windows 95 e era mais estável mas menos flexível do que o Windows 95. Introduziu o Web Server, o Microsoft FrontPage, softwares de criação e gestão de web sites, o Microsoft Transaction Server e o Microsoft Message Queuing (o MSMQ melhora a comunicação). NT 5.0 só foi produzido em versão Beta e posteriormente foi mudado para Windows 2000. Tinha uma interface semelhante ao Windows 98. Este Windows permaneceu sem popularidade até o fim da era 9x/ME, quando lançaram o Windows 2000. Nesta edição também foi implementada a idéia de Serviços (ou Processos), no qual o sistema operacional trabalha a partir de serviços, tendo assim menores chances de travar, pois era possível reinicializar apenas um serviço ao invés da máquina por inteiro. Estas versões do Windows aceitam quatro tipos de sistemas de arquivos: FAT 12 e 16 - Windows 1.0x, Windows 2.xx, Windows 3.xx, Windows 95, Windows 98, Windows ME, Windows NT 3.xx e Windows NT 4.0; FAT 32 - Windows NT 3.51 (com o PowerPack), Windows 95 OSR 2.x, Windows 98, Windows 2000, Windows XP e Windows Server 2003; NTFS - Windows NT 3.xx, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003 e o Windows Vista(atualmente). Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 1.3.9 13 Windows 98 Esta versão foi lançada em 25 de Junho de 1998. Foram corrigidas muitas das falhas do seu antecessor. A maior novidade desta versão era a completa integração do S.O. com a Internet. Utilizava o Internet Explorer 4. Introduziu o sistema de arquivos FAT 32 e começou a introduzir o teletrabalho (só foi possível devido à integração do Web). Melhorou bastante a interface gráfica. Incluiu o suporte a muitos monitores e ao USB (Universal Serial Bus). Mas, por ser maior do que o Windows 95 e possuir mais funções, era também mais lento e mais instável. Nessa versão, nasce a restauração de sistema via MS-DOS (Scanreg.exe /restore). A restauração de sistema visava corrigir problemas retornando o computador a um estado anteriormente acessado (ontem, antes de ontem, etc). Existe uma versão especial, conhecida como Windows 98 Segunda Edição (Windows 98 SE). Foi lançada em 1999 e esta versão visava corrigir as falhas (bugs) e resolver os problemas de instabilidade do Windows 98. Incluía drivers e programas novos. Substituiu o Internet Explorer 4 pela versão 5, que era mais rápida, e introduziu a Internet Connection Sharing, que permite a partilha de uma rede de internet para muitos computadores. Acrescentou também o NetMeeting 3 e suporte a DVD. Muitos utilizadores classificam este sistema como um dos melhores da Microsoft, apesar de ser tratar de um sistema operacional sem suporte a multitarefa real, e ainda tendo o DOS como o seu núcleo principal. 1.3.10 Windows ME Foi lançado pela Microsoft em 14 de Setembro de 2000, sendo esta a última tentativa de disponibilizar um sistema baseado, ainda, no antigo Windows 95. Essa versão trouxe algumas inovações, como o suporte às máquinas fotográficas digitais, aos jogos multi jogador na Internet e à criação de redes domésticas (home networking). Introduziu o Movie Maker e o Windows Media Player 7 (para competir com o Real Player) e atualizou alguns programas. Possuía a Restauração de Sistema (um programa que resolvia problemas e corrigia bugs). Introduziu o Internet Explorer 5.5. Algumas pessoas crêem que este foi apenas uma terceira edição do Windows 98 e que foi apenas um produto para dar resposta aos clientes que esperavam por uma nova versão. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 14 Muitas pessoas achavam-no defeituoso e instável, o que seria mais tarde comprovado pelo abandono deste segmento em função da linha OS/2-NT4-2000-XP, criada originalmente pela IBM e posteriormente adquirida pela Microsoft. Na mesma época, foi lançada uma nova versão do Mac OS X e a Microsoft, com receio de perder clientes, lançou o Windows ME para que os fãs aguardassem o lançamento do Windows XP. 1.3.11 Windows 2000 O lançamento desse Windows, em Fevereiro de 2000 (apesar do sistema estar datado 1999), que também era chamado de Windows NT 5.0 na sua fase Beta, marcou o começo da era NT (Nova Tecnologia) para usuários comuns. Ainda com falhas de segurança, como, por exemplo, o armazenamento de senhas em um arquivo próprio e visível, o que facilitava a ação de hackers e invasores. Ainda não apresentava muita semelhança com o XP no visual, que até então ainda era o mesmo do ME. Trata-se de um sistema operacional bastante estável, multiusuário e multitarefa real. Nesta versão foi iniciada a criação e utilização de um novo sistema de gerenciamento, baseado em LDAP, chamado pela Microsoft de Active Directory, o que trazia diversas funções, como suporte a administração de usuários e grupos (como no NT 3.51 e 4.0) além das novas opções como computadores, periféricos (impressoras, etc...) e OU´s (Organization Unit). Versões: Professional, Server, Advanced Server, Datacenter Server e Small Business Server. 1.3.12 Windows XP Lançada em 25 de Outubro de 2001 e é também conhecida como Windows NT 5.1. Roda em formatações FAT 32 ou NTFS. A sigla XP deriva da palavra eXPeriência. Uma das principais diferenças em relação às versões anteriores é quanto à interface. Trata-se da primeira mudança radical desde o lançamento do Windows 95. Baseada no antigo OS/2 da IBM, cujos direitos foram comprados pela Microsoft, e, seguindo a linha OS/2-NT-2000-XP, a partir deste Windows, surgiu uma nova interface, abandonando o antigo formato 3D acinzentado. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 15 Nota-se uma melhoria em termos de velocidade em relação às versões anteriores, especialmente na inicialização da máquina. O suporte a hardware também foi melhorado em relação às versões 9xMillenium, abandonada definitivamente. Esta versão do Windows foi considerada como a melhor versão já lançada pela Microsoft para usuários domésticos, possui uma interface totalmente simples a inovadora. Um dos problemas é seu consumo, ele só pode ser instalado em estações com mais de 128Mb de memória, e cada vez que a Microsoft lança uma nova versão, é cada vez maior e mais abstraido do hardware. Versões: Home, Professional, Tablet PC Edition, Media Center Edition, Embedded, Starter Edition e 64-bit Edition O nome de código desta versão, antes do lançamento era Whistler. 1.3.13 Windows Server 2003 Versão do Windows lançada em 24 de Abril de 2003, e é também conhecida como Windows NT 5.2, e é o sucessor do Windows 2000 para o ambiente corporativo. Novidades na área administrativa, Active Directory, e automatização de operações. Esta versão do Windows é voltada principalmente para servidores e empresas de grande porte, possui recursos de servidores na ativa e garante a segurança de dados. Versões: Web Edition, Standard Edition, Enterprise Edition, Data Center Edition e Small Business Server (32 e 64 bits). 1.3.14 Windows Vista Também conhecido como Windows NT 6.0, pelo nome de código Longhorn e pelo proprio nome oficial Vista, é o mais novo S.O da Microsoft,e que terá seis versões, uma delas simplificada e destinada aos países em desenvolvimento. O Windows Vista começou a ser vendido em 30 de Janeiro de 2007. As seis edições diferentes do Windows Vista foram projetadas para se ajustar ao modo como você pretende usar seu PC. Ele tem uma interface intitulada Aero,com recursos de transparência,que não existe na Versão Starter e um sistema de alternância 3D de janelas chamado Flip 3D, que é ativado pelo atalho Logotipo do Windows + Tab. A versão básica e popular do Windows Vista (Limitada): Vista Starter Edition, destinado aos mercados emergentes e paises em desenvolvimento. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 16 São duas versões destinadas ao usuário doméstico: Vista Home Basic Vista Home Premium As duas versões voltadas para o público corporativo são: Vista Business Edition (projetado para atender às necessidades de empresas de todos os portes) Vista Enterprise Edition (necessidades de grandes empresas globais) A versão Ultimate é a edição mais abrangente do Windows Vista. Reúne todos os recursos de infraestrutura avançados de um sistema operacional empresarial, todos os recursos de gerenciamento e eficiência de um sistema operacional móvel, e todos os recursos de entretenimento digital de um sistema operacional voltado ao consumidor Vista Ultimate Edition O Windows Vista Ultimate Edition é a versão do Windows Vista que mais requer recursos do computador. Para que o desempenho seja razoável, a Microsoft recomenda um processador de 1Ghz e 1GB de memória RAM. 1.3.15 Outras versões Windows Server 2007 Nova versão do windows para ser lançada já com versão beta. Windows Seven Anteriormente com o codinome Vienna,esse será o sucessor do Windows Vista,onde se incluirão alguns aplicativos que não se encontram no Vista. Previsto para o final de 2009. Windows CE Versão minimalista que equipa dispositivos com sistemas embarcados automotivos,consolas de videojogos (Dreamcast), celulares, PDAs, robôs e Tvs. como rádios Compatibilidade Os primeiros Windows, como o 1.0, 2.0 e 3.x, só são compatíveis em partições formatadas com o sistema de ficheiros FAT, ou como é chamado, FAT 16. No salto do 3.1 para o 95B (Windows 95 OSR 2/OSR 2.1), os HD's poderiam ser formatados em FAT 32. Inicialmente lançado com o Windows NT, a tecnologia NTFS é agora o padrão de facto para esta classe. Com a convergência de ambos sistemas, o Windows XP passou também a preferir este formato. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 1.3.16 17 Características Técnicas A principal linguagem de programação usada para escrever o código-fonte das várias versões do Windows é a linguagem C. Até à versão 3.11, o sistema rodava em 16 bits (apesar de poder instalar um update chamado Win32s para adicionar suporte a programas 32 bits), daí em diante, em 32 bits. As últimas versões (como o XP, o 2003 Server e o Windows Vista (nome de código Longhorn) está preparado para a tecnologia 64 bits. Esse sistema deveria incluir o sistema de arquivos WinFS, que acabou retirado do Windows Vista. 1.4 MacOS O Macintosh Operating System (Mac OS) é a denominação do sistema operacional padrão dos computadores Macintosh produzidos pela Apple. Sua evolução ocorreu até a versão Mac OS X. A primeira versão foi lançada em 1984. Até antes da versão 7.6, era chamado apenas de System (ex.: System 4, System 7), da versão 7.6 em diante passou a ser chamado de Mac OS. Foi o primeiro sistema gráfico amplamente usado em computadores a usar ícones para representar os itens do computador, como programas, pastas e documentos. Também foi pioneiro na disseminação do conceito de Desktop, com uma Área de Trabalho com ícones de documentos, pastas e uma lixeira, em analogia ao ambiente de escritório. De início as pastas eram criadas renomeando-se uma "Pasta Vazia" que estava sempre na raiz do disco. A partir do System 2.0 o sistema foi modificado, com a inclusão do comando "Nova Pasta" no menu Arquivo do Finder. O lançamento do Mac OS X foi um marco para o sistema operacional. Em sua décima versão, o sistema foi remodelado como um todo, inclusive o kernel, que passou a ser baseado no do Unix BSD. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 18 1.5 Solaris Para se falar da origem do SOLARIS, são necessárias algumas referências aos sistemas UNIX, uma vez que este serviram de base para o seu desenvolvimento. No final dos anos 60, Ken Thompson do Bell laboratories, queria criar um sistema operacional que suportasse e coordenasse os esforços de uma equipe de programadores em um ambiente de pesquisa. Dessa forma surge o sistema UNIX, cuja primeira versão foi escrito em Assembler para o PDP 7. Em 1978, Dennis Ritchie produziu a sétima versão do UNIX, que por ter sido reescrito em linguagem C, tornou possível transportá-lo de uma arquitetura para outra sem muitas dificuldades, A partir desta data, o código fonte foi licenciado para outros estabelecimentos comerciais e de pesquisas, passando a ocorrer o desenvolvimento de versões distintas em paralelo. Nos anos 80, o sistema tornou-se popular entre pesquisadores e usuários comerciais. Várias versões foram desenvolvidas, entre elas o Xenix e o SCO-Unix da SCO. Com a fundação da Sun em 1982, surgiu mais uma linha de desenvolvimento, o SunOS. Nessa época, viu-se a necessidade de unificar as várias versões de sistemas UNIX existentes com a intenção de torná-lo realmente um sistema aberto padrão. Com o comprometimento de vários fabricantes em adotá-lo, foi desenvolvido um UNIX único, conhecido como System V Release 4 (SVR4), aproveitando o que havia de melhor e cadê linha. Já baseado nesse novo sistema, a Sun Microsystems lança o SunOS 5.x, e em 1992, surge a primeira versão do SOLARIS, que era muito semelhante ao SunOS. O SOLARIS é um sistema operacional voltado para grandes empresas, com um conjunto de softwares para desenvolvimento e gerenciamento de informações e comunicação entre aplicativos. Criado para obter uma alta performance em aplicações cliente/servidor, o SOLARIS permite acesso transparente e ilimitado a sistemas, servidores, dispositivos periféricos, base de dados remota e uma série de outros recursos, com escalabilidade para suportar várias aplicações e configurações. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 19 1.6 FreeBSD O FreeBSD é um sistema operacional livre do tipo Unix descendente do BSD desenvolvido pela Universidade de Berkeley. Está disponível para as plataformas Intel x86, DEC Alpha, Sparc, PowerPC e PC98 assim como para as arquiteturas baseadas em processadores de 64bits IA-64 e AMD64. Considerado como robusto e estável, geralmente é utilizado em servidores, como de Internet ou Proxies, mas também pode ser utilizado como estação de trabalho. 1.6.1 Características O FreeBSD é um sistema operacional multiusuário, capaz de executar em multitarefa. Ainda que o FreeBSD não possa ser chamado apropriadamente de Unix por não estar sob a licença do The Open Group, ele foi desenvolvido para ser compatível com a norma POSIX assim como outros clones do Unix. O FreeBSD possui um sistema de arquivos próprio chamado Fast File System (FFS) que é uma derivação do Unix File System (UFS). 1.6.2 Compatibilidade binária com Linux O FreeBSD fornece compatibilidade binária com muitas outras variações do Unix. O mesmo também é compativel com o OS GNU/Linux. A razão por trás disso está em poder utilizar programas desenvolvidos para Linux, geralmente comerciais, que só são distribuídos em forma binária e que por isso não podem ser portados para o FreeBSD sem a vontade de seus criadores. Esta extensão permite que os usuários usem a maioria dos programas que são distribuídas apenas em binários Linux. Quando comparado com o número de programas nativos disponíveis pelo Ports, a quantidade desses programas é insignificante. Alguns aplicativos que podem ser utilizados sobre a compatibilidade Linux incluem StarOffice, Netscape, Adobe Acrobat, RealPlayer, VMware, Oracle, WordPerfect, Skype, Doom 3, Quake 4, a série Unreal Tournament, Beonex e outros. Geralmente não há perda de performance na utilização de binários Linux em vez de programas nativos do FreeBSD. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 1.6.3 20 Mascote e Lema Os derivados do BSD em geral tem como mascote um diabinho vermelho chamado Daemon que significa demônio em grego, mas na realidade se refere a programas que rodam na memória autonomamente para servir requisições. Até 2005, o Beastie era o "logotipo" do FreeBSD, quando foi aberta uma competição para escolher um novo símbolo para o projeto. Em 8 de outubro, ganhou o desenho feito por Anton K. Gural para ser o novo símbolo do FreeBSD. O lema do FreeBSD é The Power to Serve, ou seja, "O Poder de servir", obviamente se referindo a sua aplicação como servidor. 1.6.4 História e desenvolvimento do FreeBSD O projeto FreeBSD teve seu nascimento no início de 1993, em parte como uma consequência do conjunto de manutenção não-oficial do 386BSD (Unofficial 386BSD Patchkit). O primeiro lançamento oficial foi o FreeBSD 1.0 em dezembro de 1993, coordenado por Jordan Hubbard, Nate Williams e Rod Grimes. O objetivo original era produzir um snapshot intermediário do 386BSD, de forma a poder corrigir uma série de problemas com este sistema, que o mecanismo de manutenção não era capaz de resolver. Alguns se lembrarão do nome inicial do projeto que era 386BSD 0.5 ou 386BSD Interim em referência a este fato. 386BSD era o sistema operacional de Bill Jolitz, que já estava naquele instante sofrendo quase um ano de negligência. Como o mecanismo de manutenção patchkit se tornava mais e mais desconfortável a cada dia que passava, fomos unânimes em decidir que algo tinha que ser feito e decidimos ajudar Bill oferecendo a ele este snapshot interim. Tais planos foram bruscamente interrompidos quando Bill Jollitz decidiu repentinamente retirar sua sanção ao projeto sem nenhuma indicação clara do que deveria ser feito. Não levou muito para decidirmos que o objetivo continuava a valer a pena, mesmo sem a ajuda de Bill, e então adotamos o nome FreeBSD, sugerido por David Greenman. A primeira distribuição em CDROM (e na Internet em geral) foi o FreeBSD 1.0, lançado em Dezembro de 1993. Era baseado na fita 4.3BSD-Lite (Net/2) da Universidade da Califórnia, Berkeley (U.C. Berkeley), com muitos componentes originados do 386BSD e da Fundação do Software Livre (Free Software Foundation). Foi um sucesso razoávelmente grande para uma primeira aparição e nós continuamos o ciclo com uma versão altamente bem sucedida, o FreeBSD 1.1 release de Maio de 1994. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 21 1.7 UNIX Unix é um sistema operativo (ou sistema operacional) portátil (ou portável), multitarefa e multiutilizador (ou multiusuário) originalmente criado por Ken Thompson, que trabalhava nos Laboratórios Bell (Bell Labs) da AT&T. A marca UNIX é uma propriedade do The Open Group, um consórcio formados por empresas de informática. Em 1965 formou-se um grupo de programadores, incluindo Ken Thompson, Dennis Ritchie, Douglas McIlroy e Peter Weiner, num esforço conjunto da AT&T (Laboratórios Bell), da General Electric (GE) e do MIT (Massachussets Institute of Technology) para o desenvolvimento de um sistema operacional chamado Multics. Um marco importante foi estabelecido em 1973, quando Dennis Ritchie e Ken Thompson reescreveram o Unix, usando a linguagem C, para um computador PDP-11. A linguagem C havia sido desenvolvida por Ritchie para substituir e superar as limitações da linguagem B, desenvolvida por Thompson. O seu uso é considerado uma das principais razões para a rápida difusão do Unix. Finalmente, ao longo dos anos 70 e 80 foram sendo desenvolvidas as primeiras distribuições de grande dimensão como os sistemas BSD (na Universidade de Berkeley na Califórnia) e os System III e System V (nos Bell Labs). Em 1977, a AT&T começou a fornecer o Unix para instituições comerciais. Iniciava-se a abertura do chamado mercado Unix. 1.7.1 Particularidades Um sistema Unix é orientado a arquivos, quase tudo nele é arquivo. Seus comandos são na verdade arquivos executáveis, que são encontrados em lugares previsíveis em sua árvore de diretórios, e até mesmo a comunicação entre entidades e processos é feita por estruturas parecidas com arquivos. O acesso a arquivos é organizado através de propriedades e proteções. Toda a segurança do sistema depende, em grande parte, da combinação entre as propriedades e proteções definidas em seus arquivos e suas contas de usuários. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 22 1.8 Linux 1.8.1 A História do Sistema Operacional LINUX O Sistema Operacional Linux foi originalmente criado por Linus Torvalds na Universidade de Helsinki na Finlândia. Ele foi desenvolvido com a ajuda de vários programadores através da Internet. Linus teve seu projeto inspirado pelo seu interesse em Minix, um pequeno sistema Unix desenvolvido por Andy Tannenbaum. No dia cinco de Outubro de 1991, Linus anunciou a primeira versão "oficial'' de Linux, versão 0.02. Desde então, vários programadores responderam à sua chamada, e haviam ajudado a tornar Linux o completo sistema operacional que ele é hoje. 1.9 Principais Comandos do DOS CLS Comando para limpar a tela. ATTRIB Comando que serve para ocultos, de sistema, etc. Para mais informações sobre o ATTRIB, digite no prompt do DOS ATTRIB/? DIR Mostra o diretório do disco. Sintaxe: DIR [unidade:] /W /P Exemplo: C:\DIR C: /W /P (Onde: /W - apresenta os arquivo no sentido horizontal e /P - apresenta uma página de cada vez) FORMAT Prepara um disco virgem, ou seja, ainda não utilizado, para que possam ser armazenadas informações. Sintaxe: FORMAT [unidade:] /S Exemplos: C:\FORMAT A: /S (formata o disco do drive A e copia o Sistema Operacional para o mesmo) C:\FORMAT A: (formata o disco do drive A) DEL Apaga um ou mais arquivos. Sintaxe: DEL <arquivo.ext> Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO Exemplos: 23 C:\ DEL A:INTEGRADO.TXT (apaga o arquivo INTEGRADO.TXT do disco do drive A:) C:\ DEL INTEGRADO.TXT (apaga o arquivo INTEGRADO.TXT do winchester) DELTREE Existem três maneiras de utilizar o comando DELTREE: 1ª - DELTREE C:\WINDOWS < BUG, vai aparecer a pergunta se vc deseja realmente deletar o diretorio WINDOWS. 2ª - DELTREE/Y C:\WINDOWS EXCUINDO C:\WINDOWS\NOMEARQUIVO.??? 3ª - DELTREE/Y C:\WINDOWS > NULL COPY Copia um ou mais arquivos para outro local. Sintaxe: COPY <arquivo-fonte> <arquivo-destino> Exemplos: C:\COPY INTEGRADO.txt escola.txt (duplica um arquivo com nome diferente no mesmo disco) C:\COPY integrado.txt a:escola.txt (copia um arquivo com novo nome e no disco do drive A) C:\COPY integrado.txt a: (copia um arquivo para o disco do drive A com o mesmo nome) RENAME Renomeia um arquivo já existente. Sintaxe: RENAME <nome-antigo> <nome-novo> Exemplo: C:\RENAME ESCOLA.TXT INTEGRADO.TXT (Renomeia o arquivo ESCOLA.TXT para o nome INTEGRADO.TXT) DISKCOPY Copia o conteúdo de um disquete para outro. Sintaxe: DISKCOPY [unidade-fonte] [unidade-destino] Exemplo: C:\DISKCOPY A: B: (Copia todo o conteúdo do disquete do drive A para o disquete do drive B) Obs.: Os dois discos devem ser do mesmo tipo/tamanho. MD Cria um sub-diretório. Sintaxe: MD <nome-do-subdiretório> Exemplo: C:\MD ALUNO (Cria um sub-diretório com o nome de ALUNO) CD Permite que o usuário possa trocar o diretório atual pôr outro. Sintaxe: CD <nome-do-subdiretório> Exemplo: C:\CD ALUNO <ENTER> Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 24 C:\ALUNO\_ (Entra no sub-diretório ALUNO) RD Elimina um sub-diretório. Sinatxe: RD <nome-do-subdiretório> Exemplo: C:\RD ALUNO (Elimina o sub-diretório ALUNO) Obs.: Para que um sub-diretório seja eliminado ele deve estar vazio, ou seja, não deve conter nenhum arquivo gravado nele. Outros Comandos DATE Exibe ou define a data. Sintaxe: DATE Exemplo: C:\DATE dd/mm/aa (Onde: dd é o dia, mm é o mês, e aa o ano) TIME Exibe ou define a hora. Sintaxe: TIME Exemplo: C:\TIME hh:mm (Onde: hh é a hora e mm são os minutos) CHKDISK Verifica o estado do disco e exibe um relatório do sistema. Sintaxe: CHKDISK [drive] Exemplo: CHKDISK A: (Análisa e faz o diagnóstico de eventuais problemas no seu disco A) MEM Exibe a quantidade de memória utilizada e disponível no sistema. Sintaxe: MEM TREE Exibe a estrutura do diretório de uma unidade. Sintaxe: TREE VER Exibe a versão do MS-DOS. Sintaxe: VER UNDELETE Restaura arquivos que tenham sido excluídos pelo comando DEL. Sintaxe: UNDELETE LABEL Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 25 Cria, altera e exclui o nome de volume de um disco. Sintaxe: LABEL [unidade:] <nome-do-volume> Exemplo: LABEL A: INTEGRADO (Modifica o nome do volume atual do disquete A para INTEGRADO) DOSKEY Edita linha de comando. Sintaxe: DOSKEY Obs.: O usuário deve se utilizar das setas para cima/baixo para editar os últimos comandos digitados. EDIT Inicia o editor do MS-DOS. Sintaxe: EDIT SYS Copia os arquivos de sistema para o disco definido. Sintaxe: SYS [drive] Exemplo: C:\SYS A: (Copia os arquivos de sistema para o disquete do drive A) HELP Inicia a ajuda do MS-DOS para os comandos do MS-DOS. Sintaxe: HELP <comando> Exemplo: C:\HELP DOSKEY (Mostra o que o comando DOSKEY pode fazer) 1.10 Criando arquivos de lote Arquivos de lote são pequenos arquivos, mas que podem fazer um estrago gigante dependendo de como usado (são conhecidos também por BADCOM) mas pode também ser usado como criação de programas ou instaladores ou ainda controladores de arquivos ( mas não modificalos completamente... ) bom vamos começar a aprender alguns comando... quem ja conhece um pouco de MS-DOS vai ser um pouco mais facil mas nada muito louco!!!:) ECHO OFF Serve para não mostrar na tela os comandos que o arquivo .BAT esta executando. Como por exemplo, se você faz um arquivo malicioso e não usa este comando e o arquivo contem o comando DEL*.* aparecera na tela da vitima C:\DEL *.* assim dando tempo da vitima desligar o computador antes de ter seus arquivos deletados. Se você usar o comando ECHO OFF não aparecera nada na tela, e a vitima nem saberá o que aconteceu. @ECHO Serve para mostrar texto na tela, por exemplo eu quero que apareça na tela o seguinte texto: Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 26 @ECHO To te invadindo agora: ATENÇÃO: Um erro cometido, e ja vi muita gente fazer é confundir os dois primeiros comandos da seguinte maneira: @ECHO OFF < Você queria digitar ECHO OFF e digitou @ECHO OFF ECHO >NOMEARQUIVO COMANDO Serve para que um arquivo de lote (.BAT no nosso caso) crie outro arquivo. Exemplo: ECHO> PIRATA.BAT DIR Neste exemplo ele criou um arquivo chamado PIRATA.BAT que possui dentro dele o comando DIR Outro exemplo de arquivo de lote: @echo off ECHO COMECAR LIMPEZA: ECHO LIMPANDO ARQUIVOS TEMPORARIOS DO SISTEMA *../..* @DELTREE /Y C:\*.TMP >nul @DELTREE /Y C:\WINDOWS\*.TMP >nul @DELTREE /Y C:\WINDOWS\TEMP\*.* >nul @DELTREE /Y C:\WINDOWS\RECENT\*.* >nul @DELTREE /Y C:\WINDOWS\TEMPOR~1\*.* >nul @DELTREE /Y C:\WINDOWS\COOKIES\*.* >nul @DELTREE /Y C:\WINDOWS\HISTÓR~1\*.* >nul @DELTREE /Y C:\WINDOWS\APPLIC~1\MICROS~1\OFFICE\RECENTE\*.* >nul ECHO LIMPEZA TERMINADA *..\..* ECHO CONTINUANDO A CARREGAR O WINDOWS ... Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 27 1.11 Exercícios de Fixação 1 – O que é um Sistema Operacional? O que ele faz? Dê exemplos. 2 – Segundo Silberschatz, Stallings e Tanenbaum, existem dois modos distintos de conceituar um sistema operacional. Cite e comente cada um deles. 3 – Existem 4 tipos básicos de sistemas operacionais. Fale brevemente sobre eles. 4 – Descreva as funções dos seguintes comandos do DOS: DIR DEL DELTREE MD XCOPY 5 – O que é um arquivo de lote, para que serve? Como exemplo, faça um arquivo de lote comentado. 6 – Trace uma linha do tempo (timeline) das versões do Windows e destaque os pontos principais de cada versão. 7 – Qual versão do Windows é a melhor? Justifique sua resposta. 8 – Cite três S.O. De desenvolvedores diferentes e comente suas principais diferenças. 9 – Fale sobre o LINUX. (Quando surgiu, quem o inventou, foi feito a partir de onde, etc.) Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 28 2 Capítulo 2 – Distribuições Linux Fonte: Revista on line Guiadohardware - http://www.gdhpress.com.br Uma Distribuição Linux (ou simplesmente distro) é composta do kernel Linux e um conjunto variável de software, dependendo de seus propósitos. Essa coleção de software livre e não-livre, é criada e mantida por indivíduos, grupos e organizações de todo o mundo, incluindo o grupo Linux. Indivíduos como Patrick Volkerding, companhias como a Red Hat, a SuSE, a Mandriva e a Canonical, bem como projetos de comunidades como o Debian ou o Gentoo, compilam softwares e fornecem a usuários diversos sistemas completos, prontos para instalação e uso. As distribuições do Linux começaram a receber uma popularidade limitada desde a segunda metade dos anos 90, como uma alternativa livre para os sistemas operacionais Microsoft Windows e Mac OS, principalmente por parte de pessoas acostumadas com o Unix na escola e no trabalho. O sistema tornou-se popular no mercado de Desktops e servidores, principalmente para a Web e servidores de bancos de dados. No decorrer do tempo, várias distribuições surgiram e desapareceram, cada qual com sua característica. Algumas distribuições são maiores outras menores, dependendo do número de aplicações e sua finalidade. Algumas distribuições de tamanhos menores cabem num disquete com 1,44 MB, outras precisam de vários CDs, existindo até algumas versões em DVD. Todas elas tem o seu público e sua finalidade, as pequenas (que ocupam poucos disquetes) são usadas para recuperação de sistemas danificados ou em monitoramento de redes de computadores. De entre as maiores, distribuídas em CDs, podem-se citar: Slackware, Debian, Suse, e Mandriva. Abaixo seguem algumas logomarcas de distros linux. As principais diferenças entre as distros são: Formato dos pacotes para instalação; Aplicativos e alguns comandos específicos de cada distro. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 29 2.1 Debian Embora o Debian "puro" seja mais usado em servidores, ele também pode perfeitamente ser usado em desktops. Se você se sente confortável em usar o apt-get/aptitude e gosta da estrutura geral do sistema, mas está em busca de um sistema mais leve e personalizável, o Debian pode ser a melhor opção. O Debian é a base para o Ubuntu e inúmeras outras distribuições. O próprio repositório "universe" do Ubuntu nada mais é do que um snapshot do repositório instável do Debian, com alguns patches e personalizações adicionais. Se somarmos o Ubuntu, Kubuntu e todos os descendentes diretos e indiretos, as distribuições da família Debian são usadas em mais de 70% dos desktops Linux. O maior problema em utilizar o Debian diretamente, em vez de usar o Ubuntu ou outro derivado é que o sistema é bastante espartano, carecendo de muitas ferramentas de configuração automática. Em compensação, ele é bem mais leve que o Ubuntu, pois muitos pacotes são compilados com menos componentes e opções mais otimizadas, o que resulta em um desempenho geral sensivelmente superior, sobretudo nas máquinas mais modestas. O Debian Lenny é composto por nada menos do que 5 DVDs (ou 31 CDs!), que totalizam 23.2 GB de download. Entretanto, como pode imaginar, estes DVDs todos incluem uma cópia completa dos repositórios oficiais, que é necessária apenas para quem realmente quer fazer uma instalação completa do sistema e não quer correr de precisar baixar pacotes adicionais. Para situações normais, você pode escolher entre baixar apenas o primeiro CD ou o primeiro DVD. Os pacotes são organizados dentro das mídias com base na relevância, de maneira que a primeira mídia contém os pacotes mais usados e a segunda contém os seguintes, uma organização que vai até a última mídia, que contém os pacotes mais incomuns. Além do instalador tradicional, outra opção é baixar um dos CDs do "Debian-Live", uma série de live-CDs, contendo instalações com o KDE, Gnome, XFCE ou LXDE, que permitem que você grave e use o sistema diretamente, sem precisar instalar. 2.2 Mandriva O Mandriva Linux (que nasceu da fusão da MandrakeSoft e da Conectiva) é uma das distribuições Linux mais fáceis de usar, desenvolvida com foco no usuário doméstico. O Mandriva foi uma das primeiras distribuições a incluir um instalador gráfico e ferramentas de configuração fáceis de usar, ainda na época em que o Linux estava restrito ao público técnico. Ele é distribuído em três versões. O Mandriva One é um live-CD, que pode ser também instalado no HD, de forma muito similar ao Ubuntu Desktop. O One é a versão mais fácil de usar, já incluindo plugins e outro componentes proprietários e por isso é também a mais usada. Como o espaço é restrito, devido à necessidade de colocar todo o sistema em um único CD, existem versões Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 30 separadas do Mandriva One com o KDE e com o Gnome. Em seguida, temos o Mandriva Free que corresponde à versão tradicional, onde você dá boot e faz a instalação através do DrakX, o instalador tradicional, usado desde os tempos do Mandrake. Além da tradicional versão em 3 CDs, está disponível também um DVD contendo todos os pacotes. A principal observação com relação ao Mandriva Free é que, como o nome sugere, ele inclui apenas pacotes livres, deixando de fora plugins e codecs, que podem ser adicionados manualmente após a instalação do sistema. Temos ainda o Mandriva Powerpack, uma versão comercial que se diferencia do Mandriva Free por incluir alguns drivers e aplicativos proprietários (como os drivers para placas Atheros, drivers para placas da nVidia e da ATI, o Acrobat Reader, RealPlayer, alguns CODECS e outros componentes adicionais), que não fazem parte do Mandriva Free por não serem open-source. Na verdade, estes componentes podem ser instalados no Mandriva Free através de repositórios adicionais, o fato de não serem incluídos nas mídias de instalação são apenas uma forma que a Mandriva encontrou para estimular o uso da versão paga. 2.3 Open Suse Apesar de oferecer um bom conjunto de recursos, o SuSE sempre foi uma distribuição pouco usada no Brasil, devido ao fato de ser uma distribuição comercial, baseada na venda de caixinhas com as mídias de instalação e manuais impressos. Não existia nenhuma versão gratuita do sistema para download e não era permitido fazer cópias dos CDs (naturalmente, ninguém iria prendê-lo por distribuir CDs do SuSE, mas a prática não era encorajada). Isso mudou a partir do final de 2003, quando a empresa foi adquirida pela Novell, que abriu o código fonte do Yast e passou a recrutar voluntários para o desenvolvimento do sistema, dando origem ao OpenSUSE, cuja primeira versão (o 10.0) foi lançado em outubro de 2005. O principal destaque do OpenSUSE é a boa combinação de facilidade de uso e recursos. Em vez de remover recursos do sistema com o objetivo de reduzir o volume de escolhas e assim tornar o sistema mais simples de usar, os desenvolvedores optam por manter todos os recursos disponíveis e organizá-los através de opções do Yast e nos menus. Com isso, chegaram a uma distribuição com uma excelente apresentação visual e relativamente simples de usar, que ao mesmo tempo oferece um volume muito grande de opções avançadas. Estão disponíveis duas versões live-CD, uma baseada no KDE e outra no Gnome e também uma versão em DVD, contendo todos os pacotes. Assim como no caso do Mandriva, as versões live-CD incluem uma imagem pré-instalada do sistema, onde você não tem a opção de personalizar a seleção de pacotes ao instalar no HD, enquanto a versão em DVD oferece um instalador tradicional, com um volume muito maior de opções de personalização. Para quem prefere fazer uma instalação via rede, está disponível também o "Internet Installation Boot Image", um ISO de apenas 70 MB, que inclui apenas o instalador e alguns pacotes básicos e baixa todos os demais durante o processo de instalação. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 31 Além das versões regulares, para processadores de 32 bits, estão disponíveis também versões para processadores de 64 bits e uma versão para PPC (os Macs antigos, baseados em processadores PowerPC). 2.4 Ubuntu O Ubuntu não é a distribuição mais estável, nem a mais fácil de usar, mas a grande disponibilidade dos CDs de instalação e toda a estrutura de suporte criada em torno da distribuição acabaram fazendo com que ele se tornasse uma espécie de "default", uma escolha segura que a maioria acaba testando antes de experimentar outra distribuições. Isso faz com que ele seja a distribuição com mais potencial para crescer além da base atual. Ele é, sob diversos pontos de vista, o oposto exato do Slackware. No Slack, a principal dificuldade é entender como o sistema funciona, conseguir configurá-lo e instalar os aplicativos que quer usar. A estrutura do sistema é relativamente simples e você tem total liberdade para fuçar e brincar com o sistema (já que consertá-lo é quase tão fácil quanto quebrá-lo), mas, em compensação, quase tudo precisa ser feito manualmente. O Ubuntu, por outro lado, segue uma lógica completamente diferente, tomando decisões por você sempre que possível, mostrando apenas as opções mais comuns e escondendo a complexidade do sistema. Isso faz com que o Ubuntu seja usado por um volume muito maior de usuários, uma vez que oferece respostas para dificuldades comuns, como instalar o sistema, configurar a rede wireless, acessar arquivos em uma câmera ou em um pendrive, e assim por diante. As versões regulares do Ubuntu recebem atualizações e correções durante um período de 18 meses, de forma que você acaba sendo obrigado a atualizar o sistema a cada três versões. Como uma opção para quem quer mais estabilidade e a opção de manter o sistema por mais tempo, existem as versões LTS (long term support), que recebem atualizações por um período de 3 anos (5 anos no caso dos servidores). Elas são as versões recomendáveis para estações de trabalho e para uso em empresas. 2.5 Slackware À primeira vista, o Slackware parece ser um sistema extremamente complicado. Ele é uma das poucas distribuições Linux que ainda não possuem instalador gráfico e toda a configuração do sistema é feita manualmente, com a ajuda de alguns poucos scripts simples de configuração. Entretanto, o Slackware oferece um estrutura de arquivos de configuração e de pacotes muito mais simples que outras distribuições, o que o torna uma distribuição ideal para entender mais profundamente como o sistema funciona. Se as distribuições fossem carros, o Slackware seria o Fusca. Ele não possui nenhum dos confortos encontrados em outros carros atuais, mas em compensação possui uma mecânica extremamente simples, o que também o torna fácil de modificar e de consertar. É justamente por isso que o Slackware possui tantos fans, apesar da idade avançada. Ele é complicado na superfície, porém Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 32 simples e confiável no interior. Ele é também uma distribuição interessante para uso em PCs com poucos recursos, já que usa configurações bastante otimizadas na compilação dos pacotes e mantém poucos serviços ativados por padrão. Ele é uma das poucas distribuições que ainda podem ser utilizadas sem grandes percalços em micros com apenas 128 MB de memória RAM. 2.6 Fedora O Fedora é o sucessor do antigo Red Hat Desktop, descontinuado em 2003. Ele combina os esforços da Red Hat, com um grande número de voluntários e usuários fiéis. O Fedora é uma das distribuições mais utilizada em servidores, graças a inovações como o SeLinux, mas também possui um público fiel no Desktop. O ambiente de trabalho do Fedora é bastante similar ao do Ubuntu, já que ambas as distribuições são baseadas no GNOME (e, normalmente, utilizam versões bastante próximas do ambiente) e utilizam o visual clássico, com duas barras. As versões recentes do Fedora também utilizam o NetworkManager para a configuração da rede e, além dele, você notará que o Fedora possui diversas outras ferramentas em comum com o Ubuntu, o que torna as duas distribuições ainda mais parecidas na superfície. Isso acontece por que a maioria destes utilitários, incluindo o próprio NetworkManager, foram originalmente desenvolvidos pelas equipes do Red Hat e do Fedora e, a partir daí, incorporados em outras distribuições que utilizam o GNOME, incluindo o próprio Ubuntu. Uma das principais características do Fedora é o frenético ritmo das atualizações. O sistema não é apenas atualizado a cada seis meses, mas inclui sempre um conjunto formidavelmente atualizado de pacotes. Naturalmente, isso também tem seu preço, já que usar as versões mais recentes de cada software implica em ter acesso também a todos os novos bugs e problemas. Em resumo, se você quer apenas um desktop estável, que possa utilizar por muito tempo, instalando somente correções de segurança e pequenas atualizações, o Ubuntu LTS, o Debian estável ou o CentOS seriam opções mais recomendáveis. Entretanto, se você gosta de fortes emoções, não tem medo de problemas e quer ter acesso a novas versões dos pacotes e novos recursos antes que eles estejam disponíveis em outras distribuições, então o Fedora é para você. 2.7 Distribuições Brasileiras http://informando.wordpress.com/2008/02/12/23-distribuicoes-linux-brasileiras/ Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 2.8 Time Line Professor Marcio R. G. de Vazzi - www.vazzi.com.br 33 Tópicos para a disciplina GSO 34 2.9 Ambientes de Trabalho/Interface Gráfica (Desktop) 2.9.1 KDE Fonte: http://www.zago.eti.br/kde/kde3.htm KDE: Uma visão geral deste gerenciador de Janelas Open Source André L. Rodrigues Analize e Suporte Técnico em Informática OBJETIVO Este texto tem como objetivo apresentar a Interface Gráfica KDE e identificar seus principais pontos fortes e fracos, em comparação com a interface gráfica do Windows. Será apresentado uma série de características deste gerenciador de janelas, como a sua interface gráfica, seu pacote de ferramentas, sua fácil interação com o usuário e principais vantagens e desvantagens em comparação com os gerenciador de janela do Windows. 2.9.1.1 Principais características do KDE O KDE (K Desktop Environment) é um gerenciador de janelas de código fonte aberto (significa que qualquer um pode alterar o código fonte para adaptar a suas necessidades) lançado em julho de 1998 na cidade de Arnsberg, Alemanha e tem seu desenvolvimento mantido pelo Time KDE, uma rede mundial de engenheiros de software comprometidos com o desenvolvimento do software livre (Linux e Free BSD). Teve como base de desenvolvimento o gerenciador de janelas CDE, um gerenciador de janelas desenvolvido para trabalhar em sistemas SCO (Unix). Esta é a imagem do KDE 1.1, rodando num Linux Caldera em um Pentium 166 com 64 Mb RAM. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 2.9.1.2 35 Benefícios do KDE O KDE possui inúmeros benefícios, pois é um gerenciador de janelas robusto, intuitivo e funcional, tem suporte a vários idiomas (incluindo Português do Brasil), um incrível pacote de programas integrados (também open source) e constante desenvolvimento e atualizações. Imagem do KDE ao ser iniciado O KDE tem versões pré-definidas para cada sistema GNU/Linux. Seu site disponibiliza estas versões pré-definidas para download em www.kde.org/download/. Por ser open source, o download é gratuito. Entre os aplicativos integrados ao KDE, citamos o Konqueror, um navegador web com ferramentas para e-mail, edição de sites e navegação de pastas/arquivos, KIO Network Transparency, plug-in que oferece suporte para acesso e navegação de arquivos compartilhados em redes Windows/Linux por NFS e SAMBA, o KOffice, uma suíte de programas para escritório, o K3B, uma ferramenta poderosa para cópias e gravações de CDs e DVDs, aRts Multimedia Architecture (Analog Realtime Synthesizer / Sintetizador analógico em tempo real) que oferece um sistema de áudio incluindo filtros, mixer e outras funções de áudio, suporte a arquivos de vídeo (inclusive formatos da Microsoft) entre outras funções mais de interatividade, acessibilidade e coisas mais. O gerenciador de janelas KDE também pode importar aplicativos integrados de outros gerenciadores de janela, desde que estejam instalados no mesmo computador. Se o usuário preferir, pode executar estes programas importados como utilitário padrão do sistema. É o caso do Ximian Evolution, um gerenciador de e-mails com interface gráfica muito semelhante a do Microsoft Outlook (o que facilita ainda mais os usuários que planejam migrar de sistema), Blue Fish, uma aplicação para o desenvolvimento de sites e aplicações web (semelhante ao Dreamweaver da Macromedia para Windows) ou o GNUCash, um software utilizado para aplicações financeiras. O recurso de importação vale também para outros gerenciadores de janelas open source, significa que um determinado usuário poderá utilizar um outro gerenciador de janelas como padrão do sistema (por exemplo, o GNOME, Black Box ou Window Maker) e utilizar as aplicações do KDE. Um outro recurso bastante interessante do KDE é a sua personalização, cada usuário do sistema pode configurar (afrescalhar) o KDE da maneira que achar mais funcional e/ou atraente, criando atalhos e modificando seus menus. Este é um recurso que todos os gerenciadores têm, mas o KDE Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 36 permite que sejam feitas configurações ainda mais simples ou complexas com uma ferramenta chamada kpersonalizer (que modifica drasticamente o ambiente, podendo deixar ele com a cara de gerenciadores como o Mac OS 10 ou mesmo do Windows9X / XP) e pode gerenciar até 16 ambientes de trabalho simultaneamente, dependendo das necessidades de cada usuário do sistema. Fora os benefícios comentados, podemos citar também que o KDE é um gerenciador de janelas que funciona em diversas plataformas (Linux, Sparcs e Free BSD). 2.9.1.3 Deficiências do KDE Como qualquer gerenciador de janelas, o KDE ainda deve em alguns pontos. O KDE ainda não pode fazer o gerenciamento de usuários simultaneamente como é o caso do Windows XP, não tem um guia de ajuda rápida que seja de simples entendimento ao usuário que migra de sistema e não tem a tradução de todos os textos apresentados ao usuário traduzidos em 100%. Centro de Controle do KDE, uma espécie de “Painel de Controle” para Linux. O Guia de Ajuda não tem uma ajuda rápida e sua tradução não está em 100% A alteração de seus menus também não é das mais agradáveis, dificultando um pouco o usuário inexperiente que pensa que vai conseguir fazer isso apenas clicando em cima do ícone a ser alterado e arrastá-lo para onde deseja. É preciso utilizar uma ferramenta de personalização de menus que dará suporte a alteração dos menus do KDE. Um outro ponto fraco reconhecido até pelo time de desenvolvimento do KDE é a falta de suporte ao se instalar uma determinada aplicação. Seria o problema com “dependências” de bibliotecas de arquivos (conhecidas no Windows como dll) e a deficiência de algumas aplicações não terem seus respectivos atalhos logo após a instalação, tendo que ser feita manualmente pelo usuário ou Administrador do sistema. A instalação de alguns programas também é uma tortura para o usuário que está migrando. O KPackage pode auxiliar a instalar pacotes RPM no seu sistema, caso alguma dependencia esteja faltando, poderá fazer o download desta dependencia que será informada pelo sistema. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 2.9.1.4 37 Configurações de hardware suportadas As primeiras versões estáveis do KDE eram bastante simples, com poucos recursos (se comparados com os recursos das versões mais atuais) e poderiam ser instalado em computadores Pentium 100 com 32 Mb RAM. Com o passar do tempo, das atualizações e correções, o KDE se tornou um sistema relativamente pesado, tendo em vista que ele é mais funcional em computadores com mais de 700Mhz e no mínimo 128 Mb RAM, embora não se tenha nenhum tipo de recomendação em específico relatada pelo time de desenvolvimento, seja no site oficial, fóruns, etc. Porem, podemos verificar os requisitos mínimos de sistema de acordo com as distribuições de mercado. Embora toda distribuição Linux tenha um requisito mínimo recomendado para a sua instalação no sistema, cada distribuição vem com seu pacote de ferramentas e configuração por padrão de quem faz a distribuição. Por exemplo: o Conectiva Linux 10 funciona com KDE 3.3.x e seu requisito mínimo é de 700Mhz e 128 Mb RAM. Por outro lado, uma distribuição Fedora 3 requer no mínimo um processador acima do 2 Ghz e 256 Mb RAM. Em compensação, seu uso em disco é pequeno (levando em conta o enorme conjunto de pacotes) podendo chegar a apenas 300 Mb, dependendo da distribuição. 2.9.1.5 Comparação com a GUI do Windows Por ser um gerenciador de janelas altamente configurável, o KDE chega a rodar em menor velocidade se compararmos ele ao gerenciado de janelas do Windows 2000 Professional e na mesma velocidade de um Windows XP com o recurso do Active Desktop habilitado, o que o torna pesado em relação ao Windows, mas se tratando de funcionalidade, o KDE é disparado melhor que o gerenciador de janelas do Windows por causa dos pacotes de aplicativos que o acompanha e sua estabilidade. Fica no empate com o gerenciador de janelas do Windows se avaliarmos sua facilidade para o uso no dia a dia e por ser tão intuitivo quanto ao gerenciador de janelas do Windows. Bibliografia/referências utilizadas Para a realização deste trabalho, foram consultados os sites: www.kde.org www.kde-look.org Como referência, foi utilizdado o KDE 3.3.2 e 3.4.1 rodando numa distribuição Conectiva Linux 10 e o KDE 1.1 rodando em um Linux Caldera. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 2.9.2 38 Gnome Fonte: http://pt.wikipedia.org/wiki/GNOME (10/07/2009) GNOME (acrônimo para GNU Network Object Model Environment) é um esforço global para a criação de um ambiente de trabalho completo, gratuito e composto inteiramente por software livre. GNOME é parte do Projeto GNU e pode ser utilizado por vários sistemas baseados em Unix, principalmente por sistemas Linux e sistemas BSD. 2.9.2.1 Metas "O projeto GNOME oferece duas coisas: O ambiente de trabalho GNOME, um ambiente intuitivo e atrativo para os usuários, e a plataforma de desenvolvimento GNOME, uma plataforma extensa para desenvolvimento de aplicações que se integram com o resto do ambiente." - GNOME.org O projeto GNOME dá ênfase à simplicidade, usabilidade, e fazer as coisas simplesmente funcionarem. As outras metas do projeto são: • Liberdade - para criar um ambiente de trabalho que sempre terá o código fonte disponível para reutilização. • Acessibilidade - assegurar que o ambiente pode ser usado por qualquer pessoa, independentemente de habilidades técnicas, ou deficiências físicas. • Internacionalização - fazer o ambiente disponível em vários idiomas. No momento o GNOME está sendo traduzido para mais de 160 idiomas. • Facilidade para o desenvolvedor - assegurar que seja fácil escrever um programa que se integra com o ambiente, e dar aos desenvolvedores liberdade de escolher sua linguagem de programação. • Organização - um ciclo de versões regular e uma estrutura disciplinada. • Suporte - assegurar suporte a outras instituições fora da comunidade GNOME. 2.9.2.2 Origem Em 1951, iniciava-se o projeto AGF. Muito embora o Ambiente AMD fosse livre, ele era construído através da toolkit TR, que era livre naquele momento. Membros do projeto GNU ficaram preocupados com a possibilidade de que um ambiente de trabalho livre fosse feito sobre uma toolkit proprietária. Diante de tal dilema, o projeto HJD nasceu em agosto de 1997 pelos esforços de Miguel de Icaza e Federico Mena. No começo, o objetivo principal do GNOME foi fornecer uma suíte amigável ao usuário de aplicações e um desktop fácil de usar. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 39 O GNOME foi escrito originalmente na linguagem de programação C. Logo depois um grande número de linguagens foram encorpando o GNOME e suas aplicações, por exemplo, linguagens como: C++, Ruby, Python, Perl e muitas outras. No lugar do Qt, o GTK foi escolhido como a base para desenvolvimento do GNOME. A licença é a GNU GPL General Public License (GPL). O GNOME conta com uma coleção rica de ferramentas, bibliotecas, e dos componentes para desenvolver aplicações poderosas em Unix. A distribuição completa do GNOME inclui uma suite para escritório (Office) através da integração de vários projectos independentes: processador de texto (AbiWord), folha de cálculo (Gnumeric), gestão de projetos (Planner), editor de diagramas (Dia), programa para desenhos vetoriais (Inkscape) e de imagem (GIMP). 2.9.2.3 Liberdade O projeto GNOME foi o primeiro a oferecer um desktop inteiramente livre para sistemas baseados em Unix. Software livre significa apoderar os usuários, e garantir direitos sobre os softwares que eles usam. Com Software Livre, o usuário possui vários direitos: • O direito de utilizar o software. • O direito de redistribuir o software: se você tem um componente de Software Livre, você pode compartilhá-lo com outro (nenhuma taxa de licença é requerida). • O direito de aprender o software. • O direito de alterar o software (todo o código fonte, arquivos de dados e imagens). Por exemplo, usuários podem melhorá-lo, estendê-lo, reduzi-lo, consertar problemas, aprender ou experimentar. • O direito de redistribuir suas versões modificadas do software. Isto significa que, uma vez que você tenha feito suas modificações no software, você pode redistribuir estas mudanças para seus amigos, clientes ou qualquer pessoa. Estes direitos e liberdades estão no núcleo do projeto GNOME. Os efeitos laterais dos Softwares Livres são que eles tendem a ser de qualidade muito elevada, eles evoluem muito rapidamente, os problemas são reparados rapidamente, e em geral o sistema é bom para ambos, Usuário e Colaborador. 2.9.3 X Window System ou simplesmente X X Window System, X-Window, X11 ou simplesmente X é um protocolo e seu software associado possibilita o emprego de uma interface gráfica com o conceito de janelas. Originalmente chamado simplesmente de X, foi desenvolvido no MIT em 1984. Atualmente está na versão 11 e por isso carrega no nome este número. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 40 X-Window é o toolkit e protocolo padrão para GUI nos sistemas Unix e assemelhados, como o Linux, mas existem versões para outros sistemas operacionais, como o Microsoft Windows e o Mac OS, por exemplo. Os servidores do sistema X-Window são executados em computadores com displays baseados em mapas de bits (bitmap). O servidor distribui as ações de entrada do usuário (mouse e teclado) e aceita os pedidos de saída através de vários programas clientes através de uma variedade de diferentes canais de comunicação entre processos. Mesmo sabendo que o caso mais comum de uso é de programas clientes rodando na mesma máquina do servidor, os clientes podem rodar de forma transparente em máquinas diferentes (inclusive com arquiteturas e sistemas operacionais diferentes). Captura de tela do X em execução com diversos aplicativos sendo utilizados O X (como é comumente chamado) funciona segundo o modelo cliente-servidor: o servidor X recebe os pedidos via uma porta, um cliente X conecta-se ao servidor X e envia seus pedidos utilizando o protocolo X através da biblioteca X (Xlib). Este modelo de comunicação permite o uso de janelas de modo transparente através da rede. O X suporta operações de janelas (overlapping hierarchical subwindows) e operações de texto e gráficos, em displays preto e branco ou coloridos. O número de programas que utilizam o X é enorme. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 2.10 Exercícios de Fixação 1 – Porque existem tantas distros Linux a quais as princicipais diferenças entre elas? 2 – Qual é a melhor distribuição Linux? Justifique sua resposta. 3 – O que é um gerenciador de janelas? 4 – Qual é a utilidade de um gerenciador de janelas no linux? Dê exemplos. 5 – Quantas distros do LINUX existem? É muito ou pouco? Disserte sobre sua resposta. 6 – Compare o KDE com o Windows (interface gráfica). Explique o que cada um é e comente os pontos fortes e fracos de cada um. Professor Marcio R. G. de Vazzi - www.vazzi.com.br 41 Tópicos para a disciplina GSO 3 Capítulo 3 – Principais Comandos em Linux 3.1 Comandos de manipulação de diretório 3.1.1 mkdir Cria um diretório # mkdir docs 3.1.2 rmdir exclui um diretorio (se estiver vazio) 3.1.3 rm -rf exclui um diretório e todo o seu conteúdo (cuidado com este comando) Professor Marcio R. G. de Vazzi - www.vazzi.com.br 42 Tópicos para a disciplina GSO 3.1.4 cd Entra num diretório # cd docs Opções: cd / cd ~ cd - 3.1.5 muda o diretório root vai direto para o diretório home do usuário logado. volta ao último diretório acessado pwd, ls, df, du e whereis pwd - Exibe o local do diretório atual ls - lista o conteúdo do diretório ls -alh - mostra o conteúdo detalhado do directório ls -ltr - mostra os arquivos no formado longo(l) em ordem inversa(r) de data (t) df - mostra a utilização dos sistemas de arquivos montados du -msh - mostra o tamanho do diretório em Megabytes whereis - mostra onde se encontra determinado arquivo (binários) exemplo: whereis samba Professor Marcio R. G. de Vazzi - www.vazzi.com.br 43 Tópicos para a disciplina GSO 44 3.2 Comandos para manipulação de arquivos 3.2.1 cat, tac, vi, vim, rm, cp, mv, chmod, chown, > e >> cat - mostra o conteúdo de um arquivo binário ou texto tac - semelhante ao cat mas inverte a ordem vi - editor de ficheiros de texto vim - versão melhorada do editor supracitado rm - remoção de arquivos (também remove diretórios, mas com o parâmetro -r, que significa recursividade) cp - copia diretórios 'cp -r' copia recursivamente mv - move ou renomeia arquivos e diretórios chmod - altera as permissões de arquivos ou directórios chown - altera o dono de arquivos ou directórios cmd>txt - cria um novo arquivo(txt) com o resultado do comando(cmd) cmd>>txt - adiciona o resultado do comando(cmd) ao fim do arquivo(txt) Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 45 3.3 Comandos para administração 3.3.1 Man, du, find, whoami, ps, kill, su, chown man - mostra o manual do comando. du - exibe estado de ocupação dos discos/partições find - comando de busca ex: find ~/ -cmin -3 whoami - informa com qual usuário você está logado umask - define padrões de criação de arquivos e diretórios ps - mostra os processos correntes ps -aux - mostra todos os processos correntes no sistema kill - mata um processo killall - mata todos os processos com o nome informado su - troca para o super-usuário root (é exigida a senha) su user - troca para o usuário especificado em 'user' (é exigida a senha) chown - altera o proprietário de arquivos e pastas (dono) 3.3.2 adduser O useradd pode também ser usado. Adiciona um usuário ou grupo no sistema. Por padrão, quando um novo usuário é adicionado, é criado um grupo com o mesmo nome do usuário. Será criado um diretório home com o nome do usuário (a não ser que o novo usuário criado seja um usuário do sistema) e este receberá uma identificação. A identificação do usuário (UID) escolhida será a primeira disponível no sistema especificada de acordo com a faixa de UIDS de usuários permitidas no arquivo de configuração /etc/adduser.conf. Este é o arquivo que contém os padrões para a criação de novos usuários no sistema. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 46 adduser [opções] [usuário/grupo] Onde: usuário/grupo Nome do novo usuário que será adicionado ao sistema. Opções: -disable-passwd Não executa o programa passwd para escolher a senha e somente permite o uso da conta após o usuário escolher uma senha. --force-badname Desativa a checagem de senhas ruins durante a adição do novo usuário. Por padrão o adduser checa se a senha pode ser fácilmente adivinhada. --group Cria um novo grupo ao invés de um novo usuário. A criação de grupos também pode ser feita pelo comando addgroup. -uid [num] Cria um novo usuário com a identificação [num] ao invés de procurar o próximo UID disponível. -gid [num] Faz com que o usuário seja parte do grupo [gid] ao invés de pertencer a um novo grupo que será criado com seu nome. Isto é útil caso deseje permitir que grupos de usuários possam ter acesso a arquivos comuns. Caso estiver criando um novo grupo com adduser, a identificação do novo grupo será [num]. --home [dir] Usa o diretório [dir] para a criação do diretório home do usuário ao invés de usar o especificado no arquivo de configuração /etc/adduser.conf. --ingroup [nome] Quando adicionar um novo usuário no sistema, coloca o usuário no grupo [nome] ao invés de criar um novo grupo. --quiet Não mostra mensagens durante a operação. --system Cria um usuário de sistema ao invés de um usuário normal. Os dados do usuário são colocados no arquivo /etc/passwd após sua criação e os dados do grupo são colocados no arquivo /etc/group. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 47 OBSERVAÇÃO: Caso esteja usando senhas ocultas (shadow passwords), as senhas dos usuários serão colocadas no arquivo /etc/shadow e as senhas dos grupos no arquivo /etc/gshadow. Isto aumenta mais a segurança do sistema porque somente o usuário root pode ter acesso a estes arquivos, ao contrário do arquivo /etc/passwd que possui os dados de usuários e devem ser lidos por todos. Para listar usuários: # cat /etc/passwd | awk -F ":" '{print $1}' |more Para exluir um diretorio: # userdel -r <name_user> 3.3.3 addgroup O group add pode também ser usado. Adiciona um novo grupo de usuários no sistema. As opções usadas são as mesmas do adduser. # addgroup [usuário/grupo] [opções] Adicionando um novo grupo a um usuário Para incluir um novo grupo a um usuário, e assim permitir que ele acesse os arquivos/diretórios que pertencem àquele grupo, você deve estar como root e editar o arquivo /etc/group. Este arquivo possui o seguinte formato: NomedoGrupo:senha:GID:usuários Onde: NomedoGrupo É o nome daquele grupo de usuários. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 48 senha Senha para ter acesso ao grupo. Caso esteja utilizando senhas ocultas para grupos, as senhas estarão em /etc/gshadow. GID Identificação numérica do grupo de usuário. usuários Lista de usuários que também fazem parte daquele grupo. Caso exista mais de um nome de usuário, eles devem estar separados por vírgula. Deste modo para acrescentar o usuário "joao" ao grupo audio para ter acesso aos dispositivos de som do Linux, acrescente o nome no final da linha: "audio:x:100:joao". Pronto, basta digitar logout e entrar novamente com seu nome e senha, você estará fazendo parte do grupo audio (configura digitando groups ou id). Outros nomes de usuários podem ser acrescentados ao grupo audio bastando separar os nomes com vírgula. 3.3.4 sg Executa um comando com outra identificação de grupo. A identificação do grupo de usuário é modificada somente durante a execução do comando. Para alterar a identificação de grupo durante sua seção shell, use o comando newgrp, Seção 1.4. # sg [-] [grupo] [comando] Onde: - (traço) Se usado, inicia um novo ambiente durante o uso do comando (semelhante a um novo login e execução do comando), caso contrário, o ambiente atual do usuário é mantido. grupo Nome do grupo que o comando será executado. comando Comando que será executado. O comando será executado pelo bash. Quando este comando é usado, é pedida a senha do grupo que deseja acessar. Caso a senha do grupo esteja incorreta ou não exista senha definida, a execução do comando é negada. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 49 Exemplo: # sg root ls /root 3.3.5 userdel Apaga um usuário do sistema. Quando é usado, este comando apaga todos os dados da conta especificada dos arquivos de contas do sistema. # userdel [-r] [usuário] Onde: -r Apaga também o diretório HOME do usuário. OBSERVAÇÃO: Note que uma conta de usuário não poderá ser removida caso ele estiver no sistema, pois os programas podem precisar ter acesso aos dados dele (como UID, GID) no /etc/passwd. 3.3.6 Groupdel Apaga um grupo do sistema. Quando é usado, este comando apaga todos os dados do grupo especificado dos arquivos de contas do sistema. # groupdel [grupo] Tenha certeza que não existem arquivos/diretórios criados com o grupo apagado através do comando find. OBSERVAÇÃO: Você não pode remover o grupo primário de um usuário. Remova o usuário primeiro. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 3.3.7 50 passwd Muda a senha do usuário ou grupo. Um usuário somente pode alterar a senha de sua conta, mas o superusuário (root) pode alterar a senha de qualquer conta de usuário, inclusive a data de validade da conta, etc. Os donos de grupos também podem alterar a senha do grupo com este comando. Os dados da conta do usuário como nome, endereço, telefone, também podem ser alterados com este comando. # passwd [usuário/grupo] [opções] Onde: usuário Nome do usuário/grupo que terá sua senha alterada. Opções: -g Se especificada, a senha do grupo será alterada. Somente o root ou o administrador do grupo pode alterar sua senha. A opção -r pode ser usada com esta para remover a senha do grupo. A opção -R pode ser usada para restringir o acesso do grupo para outros usuários. Procure sempre combinar letras maiúsculas, minúsculas, e números ao escolher suas senhas. Não é recomendado escolher palavras normais como sua senha pois podem ser vulneráveis a ataques de dicionários cracker. Outra recomendação é utilizar senhas ocultas em seu sistema (shadow password). Você deve ser o dono da conta para poder modificar a senhas. O usuário root pode modificar/apagar a senha de qualquer usuário. Exemplo: # passwd root. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 3.3.8 51 users Mostra os nomes de usuários usando atualmente o sistema. Os nomes de usuários são mostrados através de espaços sem detalhes adicionais, para ver maiores detalhes sobre os usuários, veja os comandos id, Seção 1.9 e who, Seção 1.13. # Users Os nomes de usuários atualmente conectados ao sistema são obtidos do arquivo /var/log/wtmp. Trocar usuário: # su –login <usuário> 3.3.9 groups Mostra os grupos que o usuário pertence. groups [usuário] Exemplo: groups, groups root 3.3.10 Who Mostra quem está atualmente conectado no computador. Este comando lista os nomes de usuários que estão conectados em seu computador, o terminal e data da conexão. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 52 # who [opções] onde: opções -H, --heading Mostra o cabeçalho das colunas. -i, -u, --idle Mostra o tempo que o usuário está parado em Horas:Minutos. -m, i am Mostra o nome do computador e usuário associado ao nome. É equivalente a digitar who i am ou who am i. -q, --count Mostra o total de usuários conectados aos terminais. -T, -w, --mesg Mostra se o usuário pode receber mensagens via talk (conversação). · + O usuário recebe mensagens via talk · - O usuário não recebe mensagens via talk. · ? Não foi possível determinar o dispositivo de terminal onde o usuário está conectado. 3.4 Comandos para administração de rede ifconfig - mostra as interfaces de redes ativas e as informações relacionadas a cada uma delas route - mostra as informações referentes as rotas mtr - mostra rota até determinado IP nmap - lista as portas de sistemas remotos/locais atras de portas abertas. Pode verificar sistema operacional em execução no host remoto. netstat - exibe as portas e protocolos abertos no sistema. iptraf - analisador de trafego da rede com interface gráfica baseada em diálogos traceroute - traça uma rota do host local até o destino mostrando os roteadores intermediários Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 53 3.5 Exercícios de Fixação 1. Descreva a forma correta de criar uma usuária chamada “ana”. Suponha que ela é a primeira usuária a ser criada no sistema. 2. Continuando a questão anterior, explique como deve ser feito para fornecer uma senha para “ana”. 3. Cite como se faz para criar um grupo chamado “alunos”. 4. Numa empresa existem 3 usuários (jose, luis e aline), explique como deve ser feito para inserir estes usuários num grupo chamado “adm”. 5. Descreva a forma correta para remover o usuário jose. 6. Qual o nome do arquivo que armazena informações dos usuários? Como se faz para ver o conteúdo deste arquivo sem usar um editor de textos? 7. Que arquivo armazena informações sobre os grupos, e como visualizamos seu conteúdo sem um editor de textos? 8. Qual a importância do arquivo /etc/shadow? 9. Como faço para ver os usuários que estão cadastrados no Linux? Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 54 3.6 Permissões de acesso a arquivos e diretórios A permissão de acesso protege o sistema de arquivos Linux do acesso indevido de pessoas ou programas não autorizados. A permissão de acesso do GNU/Linux também impede que um programa mal intencionado, por exemplo, apague um arquivo que não deve, envie arquivos para outra pessoa ou forneça acesso da rede para que outros usuários invadam o sistema. O sistema GNU/Linux é muito seguro e como qualquer outro sistema seguro e confiável impede que usuários iniciantes (ou mal intencionados) instalem programas enviados por terceiros sem saber para que eles realmente servem e causem danos irreversiveis seus arquivos, seu micro ou sua empresa. Esta seção pode se tornar um pouco difícil de se entender, então recomendo ler e ao mesmo tempo prática-la para uma ótima compreensão. Não se preocupe, também coloquei exemplos para ajuda-lo a entender o sistema de permissões de acesso do ambiente GNU/Linux. 3.6.1 Donos, grupos e outros usuários O principio da segurança no sistema de arquivos GNU/Linux é definir o acesso aos arquivos por donos, grupos e outros usuários: dono É a pessoa que criou o arquivo ou o diretório. O nome do dono do arquivo/diretório é o mesmo do usuário usado para entrar o sistema GNU/Linux. Somente o dono pode modificar as permissões de acesso do arquivo. As permissões de acesso do dono de um arquivo somente se aplicam ao dono do arquivo/diretório. A identifição do dono também é chamada de user id (UID). A identificação de usuário e o nome do grupo que pertence são armazenadas respectivamente nos arquivos /etc/passwd e /etc/group. Estes são arquivos textos comuns e podem ser editados em qualquer editor de texto, mas tenha cuidado para não modificar o campo que contém a senha do usuário encriptada (que pode estar armazenada neste arquivo caso não estiver usando senhas ocultas). grupo Para permitir que vários usuários diferentes tivessem acesso a um mesmo arquivo (já que somente o dono poderia ter acesso ao arquivo), este recurso foi criado. Cada usuário pode fazer parte de um ou mais grupos e então acessar arquivos que pertençam ao mesmo grupo que o seu (mesmo que estes arquivos tenham outro dono). Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 55 Por padrão, quando um novo usuário é criado, o grupo dele será o mesmo de seu grupo primário (exceto pelas condições que explicarei adiante) (veja isto através do comando id, veja a id, Seção 1.9). A identificação do grupo é chamada de gid (group id). Um usuário pode pertencer a um ou mais grupos. Para detalhes de como incluir o usuário em mais grupos veja a Adicionando um novo grupo a um usuário, Seção 1.8. outros É a categoria de usuários que não são donos ou não pertencem ao grupo do arquivo. Cada um dos tipos acima possuem três tipos básicos de permissões de acesso que serão vistas na próxima seção. 3.6.2 Tipos de Permissões de acesso Quanto aos tipos de permissões que se aplicam ao dono, grupo e outros usuários, temos 3 permissões básicas: r - Permissão de leitura para arquivos. Caso for um diretório, permite listar seu conteúdo (através do comando ls, por exemplo). w - Permissão de gravação para arquivos. Caso for um diretório, permite a gravação de arquivos ou outros diretórios dentro dele. Para que um arquivo/diretório possa ser apagado, é necessário o acesso a gravação. x - Permite executar um arquivo (caso seja um programa executável). Caso seja um diretório, permite que seja acessado através do comando cd. As permissões de acesso a um arquivo/diretório podem ser visualizadas com o uso do comando ls -la. As 3 letras (rwx) são agrupadas da seguinte forma: -rwxrwxrwx gleydson users teste Virou uma bagunção não? Vou explicar cada parte para entender o que quer dizer as 10 letras acima (da esquerda para a direita): Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 56 A primeira letra diz qual é o tipo do arquivo. Caso tiver um "d" é um diretório, um "l" um link a um arquivo no sistema, um "-" quer dizer que é um arquivo comum, etc. Da segunda a quarta letra (rwx) dizem qual é a permissão de acesso ao dono do arquivo. Neste caso gleydson ele tem a permissão de ler(r - read), gravar (w - write) e executar (x - execute) o arquivo teste. Da quinta a sétima letra (rwx) diz qual é a permissão de acesso ao grupo do arquivo. Neste caso todos os usuários que pertencem ao grupo users tem a permissão de ler (r), gravar (w), e também executar (x) o arquivo teste. Da oitava a décima letra (rwx) diz qual é a permissão de acesso para os outros usuários. Neste caso todos os usuários que não são donos do arquivo teste tem a permissão para ler, gravar e executar o programa. Veja o comando chmod para detalhes sobre a mudança das permissões de acesso de arquivos/diretórios. 3.6.3 Etapas para acesso a um arquivo/diretório O acesso a um arquivo/diretório é feito verificando primeiro se o usuário que acessará o arquivo é o seu dono, caso seja, as permissões de dono do arquivo são aplicadas. Caso não seja o dono do arquivo/diretório, é verificado se ele pertence ao grupo correspondente, caso pertença, as permissões do grupo são aplicadas. Caso não pertença ao grupo, são verificadas as permissões de acesso para os outros usuários que não são donos e não pertencem ao grupo correspondente ao arquivo/diretório. Após verificar aonde o usuário se encaixa nas permissões de acesso do arquivo (se ele é o dono, pertence ao grupo, ou outros usuários), é verificado se ele terá permissão acesso para o que deseja fazer (ler, gravar ou executar o arquivo), caso não tenha, o acesso é negado, mostrando uma mensagem do tipo: "Permission denied" (permissão negada). O que isto que dizer é que mesmo que você seja o dono do arquivo e definir o acesso do dono (através do comando chmod) como somente leitura (r) mas o acesso dos outros usuários como leitura e gravação, você somente poderá ler este arquivo mas os outros usuários poderão ler/gravalo. As permissões de acesso (leitura, gravação, execução) para donos, grupos e outros usuários são independentes, permitindo assim um nível de acesso diferenciado. Para maiores detalhes veja a seção Tipos de Permissões de acesso. Lembre-se: Somente o dono pode modificar um arquivo/diretório! Para mais detalhes veja a chown e chgrp. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 3.6.4 57 Exemplos práticos de permissões de acesso Abaixo dois exemplos práticos de permissão de acesso: Os dois exemplos são explicados passo a passo para uma perfeita compreensão do assunto. Vamos a prática! 3.6.4.1 Exemplo de acesso a um arquivo Abaixo um exemplo e explicação das permissões de acesso a um arquivo no GNU/Linux (obtido com o comando ls -la, explicarei passo a passo cada parte: -rwxr-xr-- 1 gleydson user 8192 nov 4 16:00 teste -rwxr-xr-- Estas são as permissões de acesso ao arquivo teste. Um conjunto de 10 letras que especificam o tipo do arquivo, permissão do dono do arquivo, grupo do arquivo e outros usuários. Veja a explicação detalhada sobre cada uma abaixo: -rwxr-xr-A primeira letra (do conjunto das 10 letras) determina o tipo do arquivo. Se a letra for um d é um diretório, e você poderá acessa-lo usando o comando cd. Caso for um l é um link simbólico para algum arquivo ou diretório no sistema. Um - (traço) significa que é um arquivo normal. -rwxr-xr-Estas 3 letras (da segunda a quarta do conjunto das 10 letras) são as permissões de acesso do dono do arquivo teste. O dono (neste caso gleydson) tem a permissão para ler(r), gravar(w) e executar (x) o arquivo teste. -rwxr-xr-Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 58 Estas 3 letras (da quinta a sétima do conjunto das 10 letras) são as permissões de acesso dos usuários que pertencem ao grupo user do arquivo teste. Os usuários que pertencem ao grupo user tem a permissão somente para ler(r) e executar(x) o arquivo teste não podendo modifica-lo ou apaga-lo. -rwxr-xr-Estas 3 letras (da oitava a décima) são as permissões de acesso para usuários que não são donos do arquivo teste e que não pertencem ao grupo user. Neste caso, estas pessoas somente terão a permissão para ver o conteúdo do arquivo teste. gleydson Nome do dono do arquivo teste. user Nome do grupo que o arquivo teste pertence. teste Nome do arquivo. Além das permissões segue abaixo uma descrição mais completa. | 1 |2| 3 | 4 | 5 | 6 | 7 | -rwxr-xr-- 1 gleydson user 8192 nov 4 16:00 teste O que representa Cada coluna? Da esquerda para a direita 1 – Tipo de arquivo (1º caracter) e permissão de acesso (outros 9 caracteres); 2 – Número de conexões (links) para o referido arquivo; (veja abaixo como criar Links) 3 – Nome do proprietário do arquivo (usuário); 4 – Nome do grupo que tem acesso ao arquivo; 5 – Quantidade de caracteres (bytes); 6 – Data e hora de criação ou última modificação; 7 – Nome do arquivo ou diretório Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 3.6.4.2 59 Criando LINKS ln -s /home/teste linkTESTE Cria um link chamado linkTESTE apontando para o arquivo teste que está em /home Após a criação do link o comando ls -la ↓ -rwxr-xr-- 2 gleydson user 8192 nov 4 16:00 teste 3.6.4.3 Exemplo de acesso a um diretório Abaixo um exemplo com explicações das permissões de acesso a um diretório no GNU/Linux: drwxr-x--- 2 gleydson user 1024 nov 4 17:55 exemplo drwxr-x--Permissões de acesso ao diretório exemplo. É um conjunto de 10 letras que especificam o tipo de arquivo, permissão do dono do diretório, grupo que o diretório pertence e permissão de acesso a outros usuários. Veja as explicações abaixo: drwxr-x--A primeira letra (do conjunto das 10) determina o tipo do arquivo. Neste caso é um diretório porque tem a letra d. drwxr-x--Estas 3 letras (da segunda a quarta) são as permissões de acesso do dono do diretório exemplo. O Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 60 dono do diretório (neste caso gleydson) tem a permissão para listar arquivos do diretório(r), gravar arquivos no diretório(w) e entrar no diretório(x). drwxr-x--Estas 3 letras (da quinta a sétima) são as permissões de acesso dos usuários que pertencem ao grupo user. Os usuários que pertencem ao grupo user tem a permissão somente para listar arquivos do diretório(r) e entrar no diretório(x) exemplo. drwxr-x--Estas 3 letras (da oitava a décima) são as permissões de acesso para usuários que não são donos do diretório exemplo e que não pertencem ao grupo user. Com as permissões acima, nenhum usuário que não se encaixe nas condições de dono e grupo do diretório tem a permissão de acessa-lo. gleydson Nome do dono do diretório exemplo user Nome do grupo que diretório exemplo pertence. exemplo Nome do diretório. Para detalhes de como alterar o dono/grupo de um arquivo/diretório, veja os comandos chmod, Seção 2.7, chgrp, Seção 2.8 e chown, Seção 2.9. OBSERVAÇÕES: O usuário root não tem nenhuma restrição de acesso ao sistema. Se você tem permissões de gravação no diretório e tentar apagar um arquivo que você não tem permissão de gravação, o sistema perguntará se você confirma a exclusão do arquivo apesar do modo leitura. Caso você tenha permissões de gravação no arquivo, o arquivo será apagado por padrão sem mostrar nenhuma mensagem de erro (a não ser que seja especificada a opção -i com o comando rm.) Por outro lado, mesmo que você tenha permissões de gravação em um arquivo mas não tenha permissões de gravação em um diretório, a exclusão do arquivo será negada!. Isto mostra que é levado mais em consideração a permissão de acesso do diretório do que as permissões dos arquivos e sub-diretórios que ele contém. Este ponto é muitas vezes ignorado por muitas pessoas e expõem seu sistema a riscos de segurança. Imagine o problema que algum usuário que não tenha permissão de gravação em um arquivo mas que a tenha no diretório pode causar em um sistema mal administrado. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 61 3.7 Permissões de Acesso Especiais Em adição as três permissões básicas (rwx), existem permissões de acesso especiais (stX) que afetam arquivos executáveis e diretórios: s - Quando é usado na permissão de acesso do Dono, ajusta a identificação efetiva usuário do processo durante a execução de um programa, também chamado de bit setuid. Não tem efeito em diretórios. Quando s é usado na permissão de acesso do Grupo, ajusta a identificação efetiva do grupo do processo durante a execução de um programa, chamado de bit setgid. É identificado pela letra s no lugar da permissão de execução do grupo do arquivo/diretório. Em diretórios, força que os arquivos criados dentro dele pertençam ao mesmo grupo do diretório, ao invés do grupo primário que o usuário pertence. Ambos setgid e setuid podem aparecer ao mesmo tempo no mesmo arquivo/diretório. A permissão de acesso especial s somente pode aparecer no campo Dono e Grupo. t - Salva a imagem do texto do programa no dispositivo swap, assim ele será carregado mais rápidamente quando executado, também chamado de stick bit. Em diretórios, impede que outros usuários removam arquivos dos quais não são donos. Isto é chamado de colocar o diretório em modo append-only. Um exemplo de diretório que se encaixa perfeitamente nesta condição é o /tmp, todos os usuários devem ter acesso para que seus programas possam criar os arquivos temporários lá, mas nenhum pode apagar arquivos dos outros. A permissão especial t, pode ser especificada somente no campo outros usuários das permissões de acesso. X - Se você usar X ao invés de x, a permissão de execução somente é afetada se o arquivo já tiver permissões de execução. Em diretórios ela tem o mesmo efeito que a permissão de execução x. Exemplo da permissão de acesso especial X: 1. Crie um arquivo teste (digitando touch teste) e defina sua permissão para rw-rw-r-- (chmod ug=rw,o=r teste ou chmod 664 teste). 2. Agora use o comando chmod a+X teste 3. digite ls –l 4. Veja que as permissões do arquivo não foram afetadas 5. agora digite chmod o+x teste 6. digite ls -l, você colocou a permissão de execução para os outros usuários Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 62 7. Agora use novamente o comando chmod a+X teste 8. digite ls -l 9. Veja que agora a permissão de execução foi concedida a todos os usuários, pois foi verificado que o arquivo era executável (tinha permissão de execução para outros usuários). 10. Agora use o comando chmod a-X teste 11. Ele também funcionará e removerá as permissões de execução de todos os usuários, porque o arquivo teste tem permissão de execução (confira digitando ls -l). 12. Agora tente novamente o chmod a+X teste 13. Você deve ter reparado que a permissão de acesso especial X é semelhante a x, mas somente faz efeito quanto o arquivo já tem permissão de execução para o dono, grupo ou outros usuários. Em diretórios, a permissão de acesso especial X funciona da mesma forma que x, até mesmo se o diretório não tiver nenhuma permissão de acesso (x). 3.8 A conta root A conta root é também chamada de super usuário, este é um login que não possui restrições de segurança. A conta root somente deve ser usada para fazer a administração do sistema, e usada o menor tempo possível. Qualquer senha que criar deverá conter de 6 a 8 caracteres, e também poderá conter letras maiúsculas e minúsculas, e também caracteres de pontuação. Tenha um cuidado especial quando escolher sua senha root, porque ela é a conta mais poderosa. Evite palavras de dicionário ou o uso de qualquer outros dados pessoais que podem ser adivinhados. Se qualquer um lhe pedir senha root, seja extremamente cuidadoso. Você normalmente nunca deve distribuir sua conta root, a não ser que esteja administrando um computador com mais de um administrador do sistema. Utilize uma conta de usuário normal ao invés da conta root para operar seu sistema. Porque não usar a conta root? Bem, uma razão para evitar usar privilégios root é por causa da facilidade de se cometer danos irreparáveis como root. Outra razão é que você pode ser enganado e rodar um programa Cavalo de Tróia -- que é um programa que obtém poderes do super usuário para comprometer a segurança do seu sistema sem que você saiba. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 63 3.9 chmod Muda a permissão de acesso a um arquivo ou diretório. Com este comando você pode escolher se usuário ou grupo terá permissões para ler, gravar, executar um arquivo ou arquivos. Sempre que um arquivo é criado, seu dono é o usuário que o criou e seu grupo é o grupo do usuário (exceto para diretórios configurados com a permissão de grupo "s", será visto adiante). chmod [opções] [permissões] [diretório/arquivo] Onde: diretório/arquivo Diretório ou arquivo que terá sua permissão mudada opções -v, --verbose Mostra todos os arquivos que estão sendo processados. -f, --silent Não mostra a maior parte das mensagens de erro -c, --change Semelhante a opção -v, mas só mostra os arquivos que tiveram ae permissões mudadas. -R, --recursive Muda permissões de acesso do diretório/arquivo no diretório atual e sub-diretórios. ugoa+-=rwxXst ugoa - Controla que nível de acesso será mudado. Especificam, em ordem, usuário(u), grupo(g), outros(o), todos(a). + coloca a permissão - retira a permissão do arquivo e = define a permissão exatamente como especificado. rwx - r permissão de leitura do arquivo. w permissão de gravação. x permissão de execução (ou acesso a diretórios). chmod não muda permissões de links simbólicos, as permissões devem ser mudadas no arquivo alvo do link. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 64 Também podem ser usados códigos numéricos octais para a mudança das permissões de acesso a arquivos/diretórios. Para detalhes veja a Modo de permissão octal, Seção 11.10. DICA: É possível copiar permissões de acesso do arquivo/diretório, por exemplo, se o arquivo teste.txt tiver a permissão de acesso r-xr----- e você digitar chmod o=u, as permissões de acesso dos outros usuários (o) serão idênticas ao do dono (u). Então a nova permissão de acesso do arquivo teste.txt será r-xr--r-x Exemplos de permissões de acesso: # chmod g+r * Permite que todos os usuários que pertençam ao grupo dos arquivos(g) tenham(+) permissões de leitura(r) em todos os arquivos do diretório atual. # chmod o-r teste.txt Retira(-) a permissão de leitura(r) do arquivo teste.txt para os outros usuários (usuários que não são donos e não pertencem ao grupo do arquivo teste.txt). # chmod uo+x teste.txt Inclui (+) a permissão de execução do arquivo teste.txt para o dono e grupo do arquivo. # chmod a+x teste.txt Inclui (+) a permissão de execução do arquivo teste.txt para o dono, grupo e outros usuários. # chmod a=rw teste.txt Define a permissão de todos os usuários exatamente (=) para leitura e gravação do arquivo teste.txt. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 3.10 chgrp Muda o grupo de um arquivo/diretório. # chgrp [opções] [grupo] [arquivo/diretório] Onde: grupo Novo grupo do arquivo/diretório arquivo/diretório Arquivo/diretório que terá o grupo alterado. opções -c, --changes Somente mostra os arquivos/grupos que forem alterados. -f, --silent Não mostra mensagens de erro para arquivos/diretórios que não puderam ser alterados. -v, --verbose Mostra todas as mensagens e arquivos sendo modificados. -R, --recursive Altera os grupos de arquivos/sub-diretórios do diretório atual. 3.11 chown Muda dono de um arquivo/diretório. Opcionalmente pode também ser usado para mudar o grupo. # chown [opções] [dono.grupo] [diretório/arquivo] onde: dono.grupo Nome do dono.grupo que será atribuído ao diretório/arquivo. O grupo é opcional. Professor Marcio R. G. de Vazzi - www.vazzi.com.br 65 Tópicos para a disciplina GSO 66 diretório/arquivo Diretório/arquivo que o dono.grupo será modificado. opções -v, --verbose Mostra os arquivos enquanto são alterados. -f, --supress Não mostra mensagens de erro durante a execução do programa. -c, --changes Mostra somente arquivos que forem alterados. -R, --recursive Altera dono e grupo de arquivos no diretório atual e sub-diretórios. O dono.grupo pode ser especificado usando o nome de grupo ou o código numérico correspondente ao grupo (GID). Você deve ter permissões de gravação no diretório/arquivo para alterar seu dono/grupo. chown joao teste.txt - Muda o dono do arquivo teste.txt para joao. chown joao.users teste.txt - Muda o dono do arquivo teste.txt para joao e seu grupo para users. chown -R joao.users * - Muda o dono/grupo dos arquivos do diretório atual e sub-diretórios para joao/users (desde que você tenha permissões de gravação no diretórios e sub-diretórios). 3.12 Modo de permissão octal Ao invés de utilizar os modos de permissão +r, -r, etc, pode ser usado o modo octal para se alterar a permissão de acesso a um arquivo. O modo octal é um conjunto de oito números onde cada número define um tipo de acesso diferente. É mais flexível gerenciar permissões de acesso usando o modo octal ao invés do comum, pois você especifica diretamente a permissão do dono, grupo, outros ao invés de gerenciar as permissões de cada um separadamente. Abaixo a lista de permissões de acesso octal: Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO • • • • • • • • 67 0 - Nenhuma permissão de acesso. Equivalente a -rwx 1 - Permissão de execução (x) 2 - Permissão de gravação (w) 3 - Permissão de gravação e execução (wx) 4 - Permissão de leitura (r) 5 - Permissão de leitura e execução (rx) 6 - Permissão de leitura e gravação (rw) 7 - Permissão de leitura, gravação e execução. Equivalente a +rwx O uso de um deste números define a permissão de acesso do dono, grupo ou outros usuários. Um modo fácil de entender como as permissões de acesso octais funcionam, é através da seguinte tabela: • • • 1 = Executar 2 = Gravar 4 = Ler * Para Dono e Grupo, multiplique as permissões acima por x100 e x10 Basta agora fazer o seguinte: Somente permissão de execução, use 1 Somente a permissão de leitura, use 4 Somente permissão de gravação, use 2 Permissão de leitura/gravação, use 6 (equivale a 2+4 / Gravar+Ler) Permissão de leitura/execução, use 5 (equivale a 1+4 / Executar+Ler) Permissão de execução/gravação, use 3 (equivale a 1+2 / Executar+Gravar) Permissão de leitura/gravação/execução, use 7 (equivale a 1+2+4 / Executar+Gravar+Ler) Vamos a prática com alguns exemplos: # chmod 764 teste Os números são interpretados da direita para a esquerda como permissão de acesso aos outros usuários (4), grupo (6), e dono (7). O exemplo acima faz os outros usuários (4) terem acesso somente leitura (r) ao arquivo teste, o grupo (6) ter a permissão de leitura e gravação (w), e o dono (7) ter permissão de leitura, gravação e execução (rwx) ao arquivo teste. Outro exemplo: # chmod 40 teste O exemplo acima define a permissão de acesso dos outros usuários (0) como nenhuma, e define a Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 68 permissão de acesso do grupo (4) como somente leitura (r). Note usei somente dois números e então a permissão de acesso do dono do arquivo não é modificada (leia as permissões de acesso da direita para a esquerda!). Para detalhes veja a lista de permissões de acesso em modo octal no inicio desta seção (Modo de permissão octal, Seção 2.10). # chmod 752 teste O exemplo acima define a permissão de acesso dos outros usuários (2) para somente execução (x), o acesso do grupo(5) como leitura e execução (rx) e o acesso do dono(7) como leitura, gravação e execução (rwx). Resumindo Octal Binário Letras Descrição 0 000 --- Sem acesso 1 001 --x Somente execução 2 010 -w- Somente escrita 3 011 -wx Escrita e execução 4 100 r-- Somente leitura 5 101 r-x Leitura e execução 6 110 rw- Leitura e escrita 7 111 rwx Leitura, escrita e execução 3.13 umask FONTE: http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1541&pagina=5 Bom, agora que já sabemos como atribuir tipos de acesso a um arquivo para usuário e grupos de Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 69 usuários, vamos fazer uma introdução ao comando umask. A pergunta que não quer calar: Toda vez que crio um arquivo ou diretório, os mesmos já vem com uma permissão, mas eu não informei nenhum tipo de acesso a eles, de onde vieram essas permissões? O que é umask? Defino o umask como uma máscara padrão de permissão de acesso ao arquivo de sistema (File System) do GNU/Linux. Como assim? Quando criamos um arquivo ou diretório, os mesmos já vem com uma permissão padrão, para evitar que outros usuários e membros de outros grupos possam modificar os arquivos criados por você. Para saber qual máscara de arquivo que seu sistema estar usando, bastar digitar o comando umask sem parâmetros. Exemplo: $ umask 0022 O resultado acima é o seguinte: 0 : Este só indica que é o valor de uma umask; 0 : Dá acesso total ao arquivo criado pelo usuário; 2 : Dá acesso de Leitura e execução do arquivo, no caso de um diretório permiti que este seja acessado através do comando \"cd <diretório>\"; 2 : O Mesmo direitos acima, só que para os outros usuários do sistema. OK e como faço para modificar essa máscara? Vamos relembrar um pouco o modo octal, lembram que para determinar um nível de acesso para o Dono, Grupo, Outros bastava somar os números relacionados ao tipo de permissão e que o acesso total a um arquivo tem o valor 7 {4(r) + 2(w) + 1(x) =7(full}? No umask vamos utilizar o valor total de acesso do modo octal 777 para determinar o valor da umask, mas agora em vez de somarmos vamos subtrair. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 70 Exemplo: Toda vez que eu criar um arquivo ou diretório quero que eles tenham acesso total. 777 -> Acesso Total a um arquivo/diretório - 777 -> Acesso que desejamos ter através da umask ---------000 -> Valor da umask $ umask 000 Ou $ umask 0000 Resultado: -rw-rw-rwdrwxrwxrwx 1 gabriel users 178 2004-09-29 13:23 arquivo 2 gabriel users 48 2004-09-29 13:02 diretório OBS1: Por motivo de segurança o bit (x) que permitir a execução de um arquivo binário ou script é desabilitado na umask. OBS2: Lembrando que o primeiro 0 a esquerda é só para informar que é o valor de uma umask, e é opcional. Bom pessoal, tudo que eu sei e entendo por umask é isso, para maiores informações, consultem o manual do comando: $ man umask FONTE: http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1541&pagina=5 Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 71 3.14 Outros comandos importantes 3.14.1 ps # ps –aux Lista todos os serviços que estão rodando na máquina. Veja também o comando top. 3.14.2 Kill Lembre que programas com banco de dados aberto pode corromper arquivos, nestes cassos procure pela opção mais adequada, encerrar o processo com: service nome-do-daemom stop. Quando sabe o nome do processo, encerre o processo através do comando: # kill <nome_do_processo> Quando não sabe o nome do processo, procure o PID numero do processo, ps -aux vai listar todos os processos que estão rodando e seu numero PID depois é só executar: kill -9 <id_do_processo>. # kill -9 1232 “MATA” o processo cujo PID é 1232 3.14.3 top # top Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 72 Utilitario para acompanhar uso de CPU, memoria, processos e etc... Cuidado, basta apenas teclar a letra desejada para executar ou selecionar a opção, "q" encerra e sai, evite teclar varias opções simultaneas, demora um pouco entre as trocas de opções dando a impressão que travou. Muito útil para ver quanto cada processo consome de CPU, quanto está usando de swap e outras informações. Quando a maquina ficar lenta, ou queira monitorar algum processo com suspeita de consumir muito processamento, use o top para monitorar o uso de CPU, memória ou qual processo está provocando a lentidão e se quiser parar (matar) o processo use o kill. Enquanto roda o processo, mantenha o "top" aberto em um terminal, acompanhe a utilização de CPU e memória, pode executar o top a partir de console remoto aberto em conexão via ssh ou até mesmo a partir de estações windows conectadas via putty. Para sair do top digite a letra q em minusculo. Maquinas com 2 CPU ou com dois core como os Pentium IV, pressione o numero 1 (um) pra exibir o uso dos dois processadores. No top, para ordenar os resultados, tecle em maiusculo: 'M' para ordenar por uso (consumo0 de memória, 'P' para ordenar por uso (consumo) de CPU. Ou ulitize a tecla SHIFT mais a tecla desejada, exemplo: SHIFT+P -> por consumo de CPU. SHIFT+T -> por tempo. SHIFT+M -> por consumo de memória. SHIFT+C -> expande/resume nome dos processos SHIFT+U -> por usuário, após o comando digite o nome do usuário. tem outros comandos, tente usar as iniciais que aparece 3.14.4 df e du df ou du - exibe espaço ocupado por diretórios e sub-diretórios, varias opções de resultados, os maiores, por usuários e etc... # df Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 73 3.15 Exercícios de Fixação 1. Que comando é utilizado no Linux para listar o conteúdo de um diretório detalhadamente, permitindo visualizar as permissões, dono e grupo de arquivos e diretórios? 2. Cite 2 maneiras diferentes para alterar permissões no Linux. 3. De que forma pode-se alterar as permissões do dono, grupo e outros de um arquivo no prompt de comando do Linux? 4. Descreva a forma correta para alterar o dono de um arquivo chamado aula.txt através do prompt de comando. 5. Se eu digito no prompt “#chmod 465 teste”, qual será a permissão do dono, do grupo e outros em relação ao diretório “teste”? 6. Se for usada a seguinte sintaxe: #chmod 723 aula.txt. Qual será a permissão do dono, do grupo e outros em relação ao arquivo “aula.txt”? 7 – O que faz o comando KILL? Para que ele serve? 8 - O que faz o comando TOP? Para que ele serve? 9 - O que faz os comandos DF e DU? Para que eles servem? Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 74 3.16 Montando Dispositivos 3.16.1 O que são dispositivos? FONTE: http://www.devin.com.br/eitch/dispositivos/ Hugo Cisneiros, hugo_arroba_devin_ponto_com_ponto_br Um dispositivo é todo o componente de hardware, e do sistema operacional. Um dispositivo é "algo especial" que é compartilhado com o Kernel, ou seja, um exemplo de dispositivo são as impressoras, CD-ROMs, modems, portas, mouse, HDs, etc. No Linux, os dispositivos físicos são tratados como arquivos. Estes arquivos são um tipo especial no sistema de arquivos e se encontram no diretório /dev. Se você der um ls neste diretório, verá que existe um pouquinho de arquivos (Bota pouquinho nisso :)). Cada arquivo neste diretório corresponderá a um dispositivo de acordo com o seu tipo. Se você usava DOS/Windows antes, você acessava o drive C:, lembra? No Linux não existe isso! Vai ser um dispositivo no lugar... Você vai usar isso o tempo todo, porque você vai mexer com mouse, com impressora, IDE's, SCSI's, etc. Então aqui vai alguns arquivos do /dev e seus respectivos dispositivos: /dev/hdXX Aqui é correspondete as Interfaces IDEs, ou seja, tudo que tiver conectado nos cabos IDEs :) Exemplos, podemos citar HD's e CD-ROM's. O xx significa qual IDE, onde o primeiro x corresponde a qual IDE, e o segundo x (opcional) corresponde a partição. Veja a tabela à seguir: Dispositivo Descrição /dev/hda IDE Primária Master /dev/hda1 Partição 1 da IDE Primária Master /dev/hda2 Partição 2 da IDE Primária Master /dev/hdb IDE Primária Slave Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 75 /dev/hdb1 Partição 1 da IDE Primária Slave /dev/hdb2 Partição 2 da IDE Primária Slave /dev/hdc IDE Secundária Master /dev/hdc1 Partição 1 da IDE Secundária Master /dev/hdc2 Partição 2 da IDE Secundária Master /dev/hdd IDE Secundária Slave /dev/hdd1 Partição 1 da IDE Secundária Slave /dev/hdd2 Partição 2 da IDE Secundária Slave ... ... Perceba aqui que cada hdx vai até os números 2, mas não é apenas até o 2, pode ir mais longe. Dependendo de quantas partições tiver o seu HD, pode ser 3, ou 4, ou 9 por exemplo. /dev/fdX Aqui é o dispositivo equivalente ao drive de disquete, onde o x corresponde a qual driver. Caso você tenha apenas um drive, esse drive vai ser o /dev/fd0. Se tiver 2 drives, o primeiro será /dev/fd0 e o segundo /dev/fd1, e por aí vai. 3.16.2 Montando os dispositivos FONTE: http://www.devin.com.br/eitch/dispositivos/ Hugo Cisneiros, hugo_arroba_devin_ponto_com_ponto_br Primeiro eu espero que você tenha lido sobre o que é um dispositivo. Agora vamos saber como se Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 76 usar um dispositivo, ou seja, um HD, um disquete, um CD-ROM, etc. O comando que usaremos aqui é o mount, que pelo próprio nome, podemos ver que ele serve para 'montar' dispositivos em um certo lugar. Vamos falar primeiro sobre como montar o disco flexível. Para fazê-lo é o seguinte. O Linux trata todos os seus dispositivos como arquivos device, estes arquivos estão localizados no diretório "/dev". Para o caso do disco flexível, o Linux trata como /dev/fdx, onde x é o número do dispostivo: o primeiro será fd0, o segundo será fd1, e assim por diante. Aqui no caso, estamos com um driver de disquete, que é o /dev/fd0. Para montar o disco flexível então, colocamos o disquete, e executamos o seguinte comando: # mount /dev/fd0 /diretorio_onde_o_disco_vai_ser_montado O diretório_onde_o_disco_vai_ser_montado tem que existir, e tem que estar totalmente vazio. Este diretório, que você pode nomear como quiser funciona como se você estivesse no disquete. Agora se você quer montar outro disquete, você terá que desmontar o disquete montado primeiro, para depois poder montar outro. Para o desmonte, usa-se o comando "umount": # umount /dev/fd0 (ou) # umount /diretorio_onde_o_disco_esta_montado Você pode também fazer o seguinte, criar um shell script, que se chama, por exemplo de 'diskon' (Para ativar) e 'diskoff' (Para desativar). Então para melhor utilização, coloque este arquivo em um diretório PATH, ou então coloque o PATH no diretório onde você quiser colocar os scripts. Agora vamos montar uma partição. É o mesmo esquema de montar o disco flexível, só que o arquivo do dispositivo é diferente. Para partições em um HD IDE, os nomes dos dispositivos são /dev/hdxx, onde o primeiro x é a letra correspondente ao HD (na ordem a, b, c, d, e por aí vai), e o segundo x é correspondente ao número da partição. Para partições em um HD SCSI, os nomes dos dispositivos são /dev/sdxx, onde o primeiro x é a letra correspondente ao HD (na ordem a, b, c, d, e por aí vai), e o segundo x é correspondente ao número da partição. Se eu quero montar a partição /dev/hda2 (HD número 1, partição número 2), eu faço: # mount /dev/hda2 /diretório E para desmontar, usa-se o comando umount: # umount /dev/hda2 (ou) # umount /diretório Existe também no comando mount, o parâmetro -t, que vai indicar que tipo de sistema de arquivos a Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 77 partição usa (FAT32, FAT16, minix, ext2, UMSDOS, etc). Se você não colocar esta opção, o comando força uma compatibilidade para a montagem. O recomendado é colocar esta opção, pois às vezes o mount não consegue detectar qual o sistema de arquivos, e gera um erro. Um exemplo do uso da opção -t é: # mount -t vfat /dev/hda2 /diretorio Este comando montará uma partição FAT32 em /diretorio. Como eu disse anteriormente, utilizar-se de shell scripts facilita seu trabalho. Agora vamos montar um CD-ROM. O mesmo esquema, só que você deve saber qual o dispositivo referente ao seu CD-ROM, que tem como nome /dev/hdx, onde x é a letra correspondente à posição do CD-ROM na IDE. Para montar um exemplo, façamos: # mount /dev/cdrom /mnt/cdrom Para desmontar, a mesma coisa de sempre: # umount /dev/cdrom (ou) # umount /mnt/cdrom Nota: Se você der uma olhada no arquivo /dev/cdrom, você verá que ele não é um dispositivo, e sim um link simbólico para o dispositivo correspondente ao CD-ROM (/dev/hdx). Isso quer dizer que você pode substituir o /dev/cdrom pelo /dev/hdx tranqüilamente, assim como pode também modificar o link simbólico para apontar para outro dispositivo. Existe outro método de montagem muito mais prático do que os citados acima... É uma préconfiguração de montagem no arquivo /etc/fstab. Este arquivo contém as informações de montagem para os dispositivos e seus diretórios. Por exemplo, quando a sua distribuição inicia, ela procura no /etc/fstab para saber onde está a raiz do seu sistema, e vai montar no /. Também contém informações de montagem para os diretórios especiais como o /proc, e até mesmo para o uso da memória SWAP. Vejamos aqui o meu arquivo /etc/fstab como exemplo para estudarmos ele: $ cat /etc/fstab /dev/hda2 swap /dev/hda5 / /dev/hda1 /boot /dev/fd0 /mnt/floppy /dev/cdrom /mnt/cdrom none /proc none /dev/pts swap reiserfs ext2 auto iso9660 proc devpts Professor Marcio R. G. de Vazzi - www.vazzi.com.br defaults defaults defaults user,noauto user,noauto,ro defaults gid=5,mode=620 0 0 1 0 0 0 0 0 0 1 0 0 0 0 Tópicos para a disciplina GSO 78 Viu este exemplo? Por exemplo, peguemos a segunda linha. Esta segunda linha é a minha raiz, que está na partição /dev/hda5, será montada automaticamente ('defaults') no diretório "/" durante a inicialização. E esta partição tem o sistema de arquivos ReiserFS. Na primeira temos a montagem da memória SWAP... E vejamos a linha que começa com /dev/cdrom. Aqui facilita as coisas porque os parâmetros 'user,noauto,ro' significam que qualquer usuário pode montar o CD-ROM (user), não é montado automaticamente na inicialização (noauto) e é montado como somente leitura. Qual a diferença? O comando mount só pode ser usado pelo root, mas com essa opção no /etc/fstab, um usuário comum pode montar o cd-rom apenas com o comando "mount /mnt/cdrom", ou "mount /dev/cdrom". A sintaxe deste arquivo não é muito difícil, e vendo este exemplo aqui, você pode muito bem criar suas próprias configurações para dar mais praticidade no seu uso com os dispositivos no Linux! Mexa à vontade, mas nunca nas linhas que já vêm, pois se não o Linux pode não achar sua partição e poderá não conseguir iniciar o sistema, e você terá de bootar com um bootdisk para consertar isto... Então mexa, mas pense duas vezes antes de mexer :) Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 3.17 Exercícios de Fixação 1 - Faça o relacionamento entre as colunas: (1) hda ( ) segundo disco scsi; (2) hdb ( ) IDE primária (máster); (3) hdc ( ) primeiro disco scsi; (4) das ( ) IDE primária (slave); (5) sdb ( ) IDE secundária (máster); 2 - Como podemos ver quais são as partições que estão montadas? 3 - Qual diretório é usado para montar dispositivos no Linux? 4 - Que comando é usado para montar dispositivos no Linux? 6 - Que comando é usado para desmontar dispositivo no Linux? 7 - Descreva a forma correta para montar o primeiro disquete do micro no diretório “/mnt/floppy”. Professor Marcio R. G. de Vazzi - www.vazzi.com.br 79 Tópicos para a disciplina GSO 80 3.18 Compactando arquivos 3.18.1 Compressão de arquivos FONTE: http://www.ppgia.pucpr.br/~maziero/ensino/sei/unix-comandos.html Tradicionalmente, a compressão de arquivos em UNIX é feita em dois passos: 1. Aglutinação dos arquivos e diretórios em um único grande arquivo, usando o comando tar. 2. Compressão do arquivo único, usando comandos como compress, gzip ou bzip2. O comando tar é bastante antigo, e significa Tape ARchiving (tar também é "piche" em inglês, o que sugere o processo de aglutinação). Ele era muito usado para copiar diretórios em fitas magnéticas. Com as opções adequadas, permite guardar diversos arquivos e diretórios em um único arquivo. Sua sintaxe básica é: Para criar um arquivo ".tar": # tar cvf arq.tar dir1 dir2 dir3 ... Para abrir um arquivo ".tar": # tar xvf arq.tar Para listar o conteúdo de um arquivo ".tar": # tar tvf arq.tar As principais opções do comando tar são: c x t v : criar um novo arquivo ".tar" com o nome indicado : extrair dados do arquivo ".tar" indicado : listar o conteúdo do arquivo ".tar"indicado : verbose, mostra detalhes na tela sobre o que está sendo feito Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 81 f : indica que o próximo parâmetro é o nome do arquivo ".tar" a ser usado. Caso não seja indicado, é usado o conteúdo da variável $TAPE, ou o arquivo /dev/rst0 (fita magnética). z : para comprimir/expandir os arquivos tratados usando o gzip (ver abaixo). Z : para comprimir/expandir os arquivos tratados usando o compress (ver abaixo). Após feita a aglutinação, pode-se compactar o arquivo usando-se um dos comando abaixo: compress : compactador standard do UNIX, hoje em dia pouco usado, mas presente em todas as plataformas. Gera arquivos com extensão ".Z". gzip : GNU-Zip, um compactador extremamente popular, é muito eficiente. Gera arquivos com extensão ".gz". bz2 : De uso recente e ainda pouco difundido, certamente será muito usado nos próximos anos, por ser ainda mais eficiente que o gzip. Gera arquivos com extensão ".bz2". Um procedimento muito usado é o uso combinado dos comandos tar e gzip, através das opções "z" e "Z" do comando tar. Assim, para obter um arquivo comprimido "corrente.tar.gz" com todo o conteúdo do diretório corrente, basta executar o seguinte comando: # tar czvf corrente.tar.gz . (atenção ao ".", que indica o diretório corrente) Os arquivos ".tar.gz" também costumam ser nomeado como ".tgz", e definem o formato da maior parte dos arquivos UNIX encontrados na Internet. Arquivos nesse formato também podem ser abertos pelas versões recentes do compactador WinZip, do Windows. OBSERVAÇÃO: Pode-se utilizar também alguns parâmetros para se “construir” um SCRIPT para Backup bem mais amigável. Exemplo: # tar -czvf Backup-`date +%d.%b.%Y-%H-%M`.tar.gz -T /home/backup/copiasim --exclude-from=/home/backup/copianao >> Log_Backup-`date +%d.%b.%Y-%H-%M`-log.txt IMPORTANTE: Não há quebra de linhas. A linha acima deve ser digitada como sendo uma só linha, sem <ENTER> e sem quebras. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 82 3.19 Estrutura de diretórios /bin Contém arquivos programas do sistema que são usados com frequência pelos usuários. /boot Contém arquivos necessários para a inicialização do sistema. /cdrom Ponto de montagem da unidade de CD-ROM. /dev Contém arquivos usados para acessar dispositivos (periféricos) existentes no computador. /etc Arquivos de configuração de seu computador local. /floppy Ponto de montagem de unidade de disquetes /home Diretórios contendo os arquivos dos usuários. /lib Bibliotecas compartilhadas pelos programas do sistema e módulos do kernel. /lost+found Local para a gravação de arquivos/diretórios recuperados pelo utilitário fsck.ext2. Cada partição possui seu próprio diretório lost+found. /mnt Ponto de montagem temporário. /proc Sistema de arquivos do kernel. Este diretório não existe em seu disco rígido, ele é colocado lá pelo kernel e usado por diversos programas que fazem sua leitura, verificam configurações do sistema ou modificar o funcionamento de dispositivos do sistema através da alteração em seus arquivos. /root Diretório do usuário root. /sbin Diretório de programas usados pelo superusuário (root) para administração e controle do funcionamento do sistema. /tmp Diretório para armazenamento de arquivos temporários criados por programas. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 83 /usr Contém maior parte de seus programas. Normalmente acessível somente como leitura. /var Contém maior parte dos arquivos que são gravados com frequência pelos programas do sistema, emails, spool de impressora, cache, etc. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 84 3.20 Exercícios de Fixação 1) Quais são os efeitos de comprimir e empacotar arquivos para o backup?. ( ) Ganho de espaço e perda de flexibilidade. ( ) Ganho de espaço e ganho de flexibilidade. ( ) Perda de espaço e ganho de performance. ( ) Espelhamento. 2) Os comandos utilizados para agendar tarefas num horário pré-estabelecido são (Escolha dois). [ ] batch. [ ] recicle. [ ] crontab [ ] at 3) Somente o root pode executar o comando “tar” com compressão de dados. ( ) Sim, pois o “tar” está no diretório “/sbin”. ( ) Não, os usuários do grupo “bkp” também podem utilizá-lo. ( ) Não, qualquer usuário poderá utilizá-lo. 4) Dentre os compressores de dados abaixo, qual tem a maior taxa de compressão? ( ) zip. ( ) compress. ( ) pack. ( )bzip2. ( ) gzip. 5) Qual a extensão do arquivo gerado pelo comando “gzip”? ( ) .gz.tar ( ) .tar.gz.. ( ) .bzip2. ( ) bzip. ( ) .gz. 6) Quando um arquivo é comprimido pelo “gzip” ele gera uma cópia do original, de modos que teremos dois arquivos com o mesmo prefixo, um comprimido e outro não. ( ) Verdadeiro, não dá pra escolher o nome do arquivo .gz ( ) Falso, posso dar o nome que eu quizer ao arquivo comprimido .gz 7) Como podemos compactar um arquivo no linux chamado “arquivox” através do comando “tar”? E de que forma podemos descompactá-lo? 8) Que comando poderia listar o conteúdo de “/backup.tar”? ( ) cat /backup.tar; ( ) tar –xvf /backup.tar ( ) tar –tvjf /backup.tar ( ) tar –tvf /backup.tar. 9 – Qual o conteúdo do diretório /etc? 10 – Qual diretório contém os arquivos de usuários? 11 – Por que é importante a estrutura de diretórios do Linux? Comente suas vantagens e como pode ser utilizado isto em seu favor. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 85 4 Capítulo 4 – Gestão de T.I. 4.1 Projetando redes de computadores e sistemas de informação Adaptado do texto “Projetando Redes de Computadores” de José Mauricio Santos Pinheiro em 12/09/2004 Além da tecnologia, é preciso considerar uma série de outros fatores coadjuvantes na implementação do projeto de uma rede de computadores e de sistemas de informação. Os desafios englobam questões como qual tecnologia a adotar, compatibilidade entre equipamentos novos e existentes, suporte técnico, obsolescência, confiabilidade e performance esperados, entre outros. Um dos grandes desafios enfrentados pelo projetista de redes e de sistemas de informação ainda é fazer com que cada componente ou módulo se conecte a todos os outros. Conexões com pontos remotos podem apresentar problemas de lentidão, tornando-se de manutenção difícil e dispendiosa. Outros problemas com protocolos de rede, largura de banda de transmissão e gerenciamento da rede combinam-se para fazer da implementação da parte lógica um verdadeiro desafio. As diferentes linguagens e modelagens dos sistemas de informação e a heterogeneidade das equipes de T.I. Também favorecem o caos administrativo enfrentado pelos profissionais de gestão. O que acontece na verdade é que os padrões raramente conseguem acompanhar o passo da evolução nas tecnologias de redes e sistemas. A funcionalidade e a velocidade de uma solução adotada hoje pode não ser mais tão vantajosa num futuro próximo. Outro aspecto que deve ser observado diz respeito à integração dos sistemas de telefonia e de computação que consiste basicamente nas técnicas empregadas na coordenação das ações entre esses sistemas de comunicação. Essa integração permite inserir "inteligência" aos sistemas de telefonia, através do controle e tratamento da informação transmitida. Com isso possibilita-se, dentre outras coisas, que usuários tenham acesso a facilidades dos sistemas telefônicos utilizando computadores ou que chamadas telefônicas sejam incorporadas aos sistemas em rede. Existem diversas topologias e layouts de rede bem como vários métodos de modelagem de sistemas. Um projetista deve considerar todas as possibilidades e parâmetros relacionados ao projeto, entre eles: custo, performance, segurança, escalabilidade, crescimento tecnológico, TCO, ROI, gerenciamento, entre outros. Também é necessário considerar outros pontos importantes sobre a infra-estrutura de rede e sistemas, verificando desde o cabeamento novo ou já existente (especialmente sobre os padrões Ethernet), novas linguagens e tecnologias, até as distâncias, limitações, regras gerais, entre outros Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 86 itens. Ao mesmo tempo, é possível encontrar redes e sistemas onde outros elementos não foram considerados pelos projetistas por limitações orçamentárias, ou seja, basicamente o fator "custo" ainda é o principal elemento levado em consideração no momento de se projetar e executar a infraestrutura de uma rede de computadores ou sistemas de informação. Mesmo considerando essas limitações, algumas etapas fundamentais não podem ser negligenciadas durante o projeto sob pena de impactar negativamente na performance final da rede e do sistema. Dentre esses itens, a seleção das tecnologias, linguagens e dispositivos, tanto para redes/sistemas de campus quanto para redes/sistemas corporativaos e os testes e documentação de toda a rede/sistema, não podem ser esquecidos de forma alguma. Da seleção adequada das tecnologias de rede, que podem ser desde Ethernet, Fast Ethernet ou ATM, por exemplo, nas redes de campus e Frame Relay e ISDN, nas redes corporativas e da escolha dos dispositivos de rede como roteadores, switches, servidores, etc, até o próprio cabeamento, é que teremos os parâmetros necessários para avaliar a disponibilidade e a performance do sistema como um todo. Uma vez implementada a infra-estrutura, serão os resultados dos planos de testes do piloto da rede e do sistema que fornecerão os subsídios necessários para a otimização do projeto e a documentação final do que realmente foi implantado (também conhecido como As Built). 4.2 TCO Total Cost of Ownership (TCO): É o resultante de todos os custos pertinentes a um projeto de redes e sistemas em sua totalidade. Projeto, instalação, hardware, software, infra-estrutura, etc, determinam "parcialmente" o TCO. Quando estamos projetando redes e/ou sistemas é necessário idealizar as necessidades atuais e um possível crescimento tecnológico, além do aumento da demanda por performance, escalabilidade, segurança e fácil gerenciamento/administração da rede e do sistema. Definição (Wikipédia) TCO (Total cost of ownership) ou custo total da posse, é uma estimativa financeira projetada para consumidores e gerentes de empresas a avaliar os custos diretos e indiretos relacionados à compra de todo o investimento importante, tal como softwares e hardwares, além do gasto inerente de tais produtos para mantê-los em funcionamento, ou seja, os gastos para que se continue proprietário daquilo que foi adquirido. Uma avaliação de TCO oferece idealmente uma indicação final que reflete não somente o custo de compra mas de todos os aspectos no uso mais adicional e na manutenção do equipamento, do dispositivo, ou do sistema considerado. Isto inclui os custos do pessoal da manutenção e treinamento e aos usuários do sistema, os custos associados com a falha ou o outage (planejada ou não), incidentes diminuitivos do desempenho (por ex., se os usuários ficarem em espera), custos de Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 87 quebras de segurança (e custos por perda de reputação e recuperação), custos de preparação para o desastre e recuperação, espaço, eletricidade, despesas do desenvolvimento, infraestrutura e despesas de teste, garantia de qualidade, crescimento incremental, custo de desativação do equipamento, e mais. Conseqüentemente TCO é consultado às vezes como ao custo de operação total. TCO fornece uma base do custo determinando o valor econômico desse investimento. 4.3 ROI - Return On Investment Adaptado do texto de José Mauricio Santos Pinheiro (18/02/2005) No desenvolvimento de projetos de redes de computadores e sistemas de informação é muito comum se trabalhar com orçamentos apertados e prazos curtos e, mais comum ainda, não se poder precisar o quanto o usuário irá obter em termos de produtividade e lucratividade. Por esse motivo, é interessante tanto para a equipe que desenvolve o projeto quanto para o usuário calcular o Retorno do Investimento (ROI - Return On Investment). 4.3.1 O que é Criado em 1977, pelo Gartner, o conceito de Retorno do Investimento se disseminou e ganhou popularidade na área de Tecnologia da Informação na década de 1990, quando os projetos de implementação de ERP (os pacotes integrados de gestão), se tornaram uma febre. O ROI apresenta claramente uma estimativa das vantagens que um projeto poderá trazer. O retorno pode ser representado como corte nos custos, maior participação no mercado (market share), conscientização da marca (branding awareness), aumento direto nas vendas (no caso de ecommerce), influência nas compras, etc. Um preceito básico, no entanto, é que ele deve ser medido sempre em conjunto com o conceito de TCO (Total Cost of Ownership ou Custo Total de Propriedade). 4.3.2 Definições Embora muitos profissionais ainda considerem o ROI como um exercício de matemática que sofre constantes alterações e padece de erros, ele significa o retorno de determinado investimento realizado e contabilizado em meses nos quais ele será amortizado para então começar a gerar lucros. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 88 Ou seja, o ROI tende a precisar quanto tempo uma empresa deve demandar para recuperar aportes feitos em um determinado equipamento ou tecnologia e, assim, responder se o investimento é realmente viável. Outra definição para ROI seria a relação entre produção real e capacidade efetiva ou capacidade efetiva pela capacidade do projeto ou ainda capacidade do projeto por ativo total. Complexo? Talvez, mas como a origem do ROI é o mundo econômico suas nuances são uma evolução da velha máxima da entrada e saída de capital. Outros fatores, não tão concretos, podem fazer a diferença na adoção de um projeto como a melhoria da qualidade, a maior velocidade e a confiabilidade dos serviços obtidos com um investimento em TI, porém como são de complexa mensuração, eles dificilmente entram na formulação do ROI. Aqui, o objetivo é puramente econômico. O gerente do projeto precisa verificar a evolução e a projeção dos números. 4.3.3 Conceitos Todas as empresas assumem riscos se querem recompensas; em parte, é disso que trata o Retorno do Investimento (ROI). Em troca da quantia de dinheiro gasta, a empresa espera recuperar mais do que esse valor de volta. O projeto de uma rede deve oferecer resultados nos campos financeiro, tecnológico e estratégico, além é claro, de benefícios para seus usuários. O ROI, neste caso, é mais um elemento no processo de montagem do projeto, fornecendo subsídios poderosos para que os riscos do investimento sejam devidamente analisados. Embora o retorno do investimento de uma empresa nunca seja igual ao de outra, um componente primordial da equação que está presente para todas é a relação do tempo despendido no projeto, com a idéia do cumprimento de prazos e do número de meses que justificam o investimento. Atualmente busca-se um ROI (medido sempre em meses) cada vez mais rápido para os projetos, assim maior será o impacto no ciclo de produtos ou naquele setor envolvido e, maiores os lucros. Muitas vezes é preciso reavaliar o ROI com o projeto ainda em andamento e, de posse de dados mais concretos, expandir a métrica e as avaliações em outras etapas do projeto. Por sinal, o mercado sistematizou o ROI e criou uma série de ferramentas, quando não são os próprios sistemas que possuem um módulo que o contabiliza. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 4.3.4 89 Categorias de ROI O conceito do ROI evoluiu internamente em muitas empresas que criaram categorias de acordo com o tipo de investimento em TI: aqueles que reduzem custos, os que investem em segurança, aqueles que criam rendimentos e ainda os que simplificam os processos. Assim, surgiram diferentes evoluções ou variantes do ROI no mercado, como o Average ROI, que parte de médias alcançadas por empresas em determinado projeto, ou ainda o Cumulative ROI ou cROI, que representa os ganhos projetados no futuro pelo projeto, pós tempo do retorno propriamente dito. Também encontramos o ROSI, para calcular um retorno tangível para um investimento em segurança, entre outros. Um correlato do ROI é o VOI (Value on Investment), que seria a medida dos benefícios decorrentes de iniciativas que geram múltiplos ganhos. Também definido pelo Gartner, em 2001, é voltado especialmente para projetos Web como Intranets e Extranets, propondo a diferenciação de métricas para projetos de cunho eminentemente estratégico. No lugar de avaliar o retorno do investimento é visto o processo contínuo dos valores gerados. 4.3.5 Calculando o ROI A maioria das empresas que investe no treinamento de seu pessoal tem procurando avaliar esse investimento para mensurar seus resultados. O investimento tem que dar um retorno vantajoso e, para medir esse retorno do investimento em treinamento usa-se, com freqüência, o ROI. Por exemplo, uma empresa espera obter como benefícios do treinamento do seu pessoal de TI um valor da ordem de R$ 150.000,00. Os custos com esse treinamento são de R$ 15.000,00. Para calcular o ROI é necessário subtrair o custo do treinamento dos benefícios que se espera alcançar e, em seguida, dividir esse valor, que representa o benefício líquido, do custo: Benefícios = R$ 150.000,00 Custos = R$ 15.000,00 Benefícios – Custos = R$ 135.000,00 ROI = 135.000,00 / 15.000,00 = 9,0 Ou seja, para cada real investido no treinamento, houve um retorno de R$ 9,00 para a empresa. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 4.3.6 90 Quanto custa Mapear o ROI é uma missão onerosa e complexa. De acordo com a Price Waterhouse Coopers, algo entre 1% e 3% de um projeto de TI, que demora em média três meses, é consumido na montagem de um estudo de ROI. Outros institutos de pesquisa, como a IDC, questionam a aplicação do ROI, classificada como um desperdício de esforço e verbas. 4.4 Conclusão Para uma boa parte das empresas que pretendem investir em projetos de redes e sistemas de informação, o Retorno do Investimento não é apenas uma abstração matemática, é uma questão de sobrevivência. Existem vários métodos úteis para avaliar os resultados esperados de um projeto (melhoria da qualidade, aumento dos lucros, aumento da satisfação dos usuários e clientes, aumento de produção, aumento das vendas, redução de custos, etc) e o ROI é um deles. Resumidamente, as principais questões que devem ser respondidas no estudo do ROI são: qual o custo total de implementação, quais são as fases de implementação e em quanto tempo o projeto se pagará. Qualquer cálculo de ROI é um alvo em movimento, no qual os profissionais tentam refinar quais são os impactos das mudanças. Entretanto, os custos variáveis são definidos de forma muito mais concreta atualmente e este cálculo se torna um processo bastante interativo. Nesse contexto, o ROI pode oferecer um ponto de partida para determinar o valor da implementação de uma determinada solução de TI para avaliar o valor de um negócio. 4.5 Licença de software A legislação em informática pode ser analisada por vários aspectos. Englobam, no Brasil, o código civil, a propriedade intelectual e a propriedade industrial. Convencionou-se, mundialmente, que equipamentos são objeto de compra, enquanto que programas são objetos de licenciamento. Uma licença de um produto de software oferece ao usuário o direito legal de executar ou acessar um programa de software. O acordo de licenciamento rege o uso do programa licenciado de software. Um acordo de licenciamento permite que o software seja executado em um número limitado de computadores, autorizando a execução de cópias apenas para fins de backup. A Microsoft, por exemplo, dispõe de vários programas de licenciamento, cada um deles projetado Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 91 para atender a diferentes necessidades de licenciamento. Seguem, resumidamente, alguns dos principais termos em licenciamento de software: Software Freeware Software distribuído sem custos para o usuário. Software Shareware (trial version ou versão experimental) Software cuja licença permite a redistribuição gratuita de cópias, mas que exige um pagamento para continuação de seu uso após determinado período de experimentação. Após esse período, ele geralmente pára de funcionar ou continua operável, mas com funcionalidade reduzida. Se o consumidor aprovou o produto, poderá então licenciar a versão totalmente funcional. Software Adware (Software com Anúncios) licença de software sem custos de aquisição cuja remuneração ao desenvolvedor se dá através de colocação de anúncios nos programas. A maioria dos desenvolvedores adware possui versões sem anúncios, disponíveis por um custo baixo. Software de Domínio Público Software que não possui direitos autorais (copyright). GNU-GPL - Software Livre (Open Source Software) Software cujo código-fonte é de conhecimento público (aberto). Software Copyleft Software livre cuja licença de uso possui termos de distribuição que não permitem que os redistribuidores adicionem qualquer restrição adicional ao redistribuir ou modificar o software. Em termos práticos, isto significa que todas as cópias do software, mesmo aquelas que sofrerem modificações, devem permanecer livres. Software Proprietário É aquele que não é livre nem semilivre. Seu uso, redistribuição e modificações ou são proibidos ou requerem uma permissão. Ou, ainda, se partes do código-fonte são disponibilizadas, essas são tão restritas que não se pode trabalhar com ele livremente. Software Comercial Software com fins lucrativos desenvolvido por uma empresa. Apesar de, no contexto atual, a maioria dos software comerciais disponíveis serem proprietários, software comercial não é sinônimo de proprietário. Comercial tem a ver com a finalidade do desenvolvimento (social, filosófico, lucro) enquanto que proprietário te a ver com liberdades/restrições em relação ao código fonte (livre, semilivre, proprietário) Trustware Do inglês "Trust" é "confiança", ou seja, o autor está disponibilizando o programa totalmente funcional, sem restrições ou tempo limite de utilização, e se você achar o programa útil então fará uma contribuição de forma a manter o projeto. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 92 4.6 Exercícios de Fixação 1 – Além da tecnologia, é preciso considerar uma série de outros fatores coadjuvantes na implementação do projeto de uma rede de computadores e de sistemas de informação. 2 – O que é TCO? 3 – O que é ROI? Como é calculado? 4 – Compare os Sistemas Operacionais linux e Windows no que diz respeito a TCO e ROI e Faça uma tabela descrevendo suas comparações. 5 – O que é uma licença de software? Fale de sua importância e como funciona no Brasil. 6 – Cite três tipos de licenças de software e fale brevemente sobre elas. 7 – Se você tivesse um sistema pronto para comercializar, qual tipo de licença você escolheria para vender seu sistema? Justifique. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 93 5 Capítulo 5 – Servidores 5.1 SAMBA O Samba é um aplicativo que torna possível o compartilhamento de recursos com máquinas rodando Windows®. O nome Samba é derivado do protocolo utilizado pelo Windows® para compartilhar discos e impressoras: o protocolo SMB, Server Message Block. Através da utilização do Samba é possível criar redes mistas, utilizando servidores Linux e clientes Windows®. O Samba também permite que o Linux acesse discos exportados de máquinas Windows®. Além de compartilhar recursos, o Samba é capaz de executar várias funções de um servidor Windows®, como por exemplo autenticação de clientes, servidor WINS, e até mesmo agir como um Controlador Primário de Domínio (PDC). 5.1.1 Implementação A implementação desse serviço envolve a configuração do servidor, a definição dos recursos a serem exportados e a configuração dos clientes. Pré-requisitos Para a implementação de uma solução utilizando o Samba sua rede deve estar corretamente instalada e configurada, as estações Windows® devem utilizar o protocolo TCP/IP. Instalação Para instalar o Samba e seus aplicativos de configuração, selecione para instalação com o Synaptic os seguintes pacotes: samba-common samba-server samba-clients (para clientes) samba-swat (opcional) samba-doc (opcional) Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 94 Ou, utilizando o comando apt-get, instale os pacotes anteriores digitando em um terminal os seguintes comandos: # apt-get install samba-common samba-server # apt-get install samba-clients # apt-get install samba-swat samba-doc Ou #yum install samba.i386 #yum install samba-client.i386 #yum install samba-common.i386 5.1.2 Configuração do Servidor 5.2.1 – Alguns Comandos SAMBA # service smb stop Parar o samba, interrompe somente o serviço samba, os demais serviços Linux continuam rodando na maquina normalmente: # service smb start Iniciar o servidor samba, quando não iniciou no boot ou parou manualmente: # service smb reload Reiniciar o Samba, recarregar alterações efetuadas no smb.conf, equivalente a reiniciar, muito útil quando fizer alterações no smb.conf, com a diferença que não precisa parar e iniciar novamente, em um tacada só recarrega as modificações efetuadas no smb.conf. Quando falhar em versões mais antigas do samba, utilize; service smb restart Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 95 # smbstatus Sem parâmetros mostra as conexões ativas e alguns dados dos usuarios, também indica se o samba está rodando ou não. # smbstatus -u usuário Mostra o que um determinado usuário esta utilizando no samba. # chkconfig smb on Configurar para iniciar o Samba junto com o boot, inicia o Samba quando liga a maquina. # chkconfig --level 235 smb on Carrega o serviço do smb nos níveis 2, 3 e 5 Ou utilize o comando # ntsysv e marque a opção SMB Desmarcar inicialização com o boot - não iniciar samba junto com o boot. # chkconfig smb off chkconfig presente em algumas distros, serve para selecionar quais os serviços que devem ou não iniciar quando liga a maquina, utilize o equivalente em sua distro. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 5.1.3 96 Criando usuários no SAMBA: # smbadduser <nome do usuário> ou # smbpasswd <nome do usuário> Este comando cria o usuário quando o <nome do usuário> não existe. Para listar os usuário do SAMBA # cat /etc/samba/smbpasswd | awk -F ":" '{print $1}' |more 5.1.4 smb.conf comentado # SERVIDOR SAMBA PDC - DEBIAN GNU/LINUX # POR TIAGO ANDRÉ GERALDI [global] # Na sessão Global está definido a forma como o servidor samba irá funcionar. # Acompanhe com atenção cada campo. # No workgroup vai o nome do grupo de trabalho ou Domínio, no nosso caso, sendo um PDC, é o nome de Domínio. workgroup = empresa # netbios name, o nome do servidor na rede netbios name = SERVER # A descrição do servidor para a rede server string = PDC SERVER LINUX # Usuário Administrador de Domínio. Esses usuários serão administradores do domínio. # São eles que adicionaram os hosts windows no domínio entre outras funções administrativas. # Pode ser informado vários usuários separados por espaços e /ou grupos. No exemplo, usuários tiago, darci e o grupo cpd serão os administradores admin users = tiago darci @cpd # O PDC é um servidor de data e hora, habilitamos essa função e posteriormente faremos os # computadores da rede sincronizar seu relógio com o servidor time server = yes Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 97 # No caso de haver mais de um PDC na rede, como, por exemplo, um servidor Windows NT, as próximas linhas dizem se este servidor é o principal PDC e qual é seu OS LEVEL (o valor de concorrências com os outros). # Deixe assim como está se só houver um PDC na rede. preferred master = yes domain master = yes os level = 100 # O Servidor aceitará Logon dos usuários nas estações domain logons = yes local master = yes # As próximas duas linhas referem-se aos diretórios onde seriam armazenados os profiles dos usuários. # No nosso caso, o servidor não guardará essas informações, elas ficaram salvas localmente em cada estação, por isso as tags ficam vazias. logon path = logon home = # Script a ser executado pelos usuários quando fizerem logon. # Os scripts deverão estar dentro da pasta NETLOGON que veremos adiante o seu compartilhando, também devem ser .bat para que o windows possa executá-lo. # Neste caso temos um único script para todos os usuários, Você pode definir scripts individuais com o nome do usuário ex: tiago.bat. Aqui na configuração coloque: # logon script = %u.bat # ou ainda conforme o grupo do usuário # logon script = %g.bat logon script = todos.bat # Security: nível de acesso, pode ser user ou share. # User, temos um controle de autenticação por usuário, cada usuário tem suas permissões de acesso. Já como share, temos um compartilhamento simples onde todos acessam tudo sem nenhum controle. security = user # O servidor aceitará usuários sem senha? # Eu prefiro deixar No null passwords = no # Habilita senhas criptografadas, é importante a habilitação para compatibilidade com windows 2000 e XP encrypt passwords = true # Corrige acentuação dos arquivos compartilhados unix charset = iso8859-1 display charset = cp850 # IPs ou hostnames dos micros da rede importante para a segurança, evita conexões indesejadas. # A classe de IPs da minha rede é 10.1.0.0 talvez a sua seja 192.168.0.0, mude de acordo. 127. diz respeito ao localhost, o próprio servidor. hosts allow = 10.1.0. 127. # arquivo de log do samba log file = /mnt/sda7/logs/samba/log.%m # tamanho máximo do arquivo de log em KBs max log size = 10000 # Nível de detalhes do arquivo log, altere de 1 a 5 e verifique as diferenças log level = 2 debug level = 2 Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 98 # -----------Aqui finda a seção homes. Agora em diante vem os compartilhamentos e suas configurações: # O compartilhamento netlogon é obrigatório nele ficará os scripts de logon dos usuários. # Defina o path, especificando onde está a pasta netlogon não esqueça de criá-la também depois. # Estamos definindo abaixo que o compartilhamento não será navegável e que será somente leitura. [NETLOGON] comment = Servico de logon path = /mnt/sda7/netlogon browseable = no read only = yes # Criamos abaixo um compartilhamento público para todos acessarem livremente e trocarem arquivos. Ele é navegável (browseable=yes), arquivos somente leitura podem ser apagados (delete readonly=yes), gravável (writable), publico (usuários anônimos também acessaram) e disponível (available). Em veto files, defini extensões de arquivos que não poderão gravadas, afim de evitar abusos. Em create mode, está definido que os arquivos criados poderão ser alterados por qualquer um, não somente pelo dono, exemplo diferente você verá mais abaixo [publico] browseable = yes delete readonly = yes writable = yes path = /mnt/sda7/publico create mode = 0777 available = yes public = yes veto files = /*.mp3/*.wma/*.wmv/*.avi/*.mpg/*.wav/ # O compartilhamento abaixo segue a mesma estrutura, a diferença é que só os usuários do grupo adm poderão acessá-lo. [administracao] path = /mnt/sda6/adm available = yes browseable = yes create mode = 0777 writable = yes valid users = @adm # Abaixo temos um compartilhamento com force file mode=700, desta maneira os arquivos criados só poderão ser lidos ou alterados pelo usuário que os criou. [bkps] path = /mnt/sda7/bkps available = yes browseable = yes writeable = yes force file mode = 700 veto files = /*.mp3/*.wma/*.wmv/*.avi/*.mpg/ # Agora é só ir criando os compartilhamentos que você precisa da mesma maneira. Repare que não temos a seção Homes comumente vista nos exemplos de smb.conf porque realmente não vamos precisar dela. # smb.conf por Tiago André Geraldi FONTE: http://www.guiadohardware.net/artigos/pdc-debian-clamwin-estacoes/ Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 99 OBSERVAÇÃO: Exemplo de arquivo de logon script: @echo off net use /delete * /yes netsh int ip set address name="rede Local" source=static 10.0.0.5 255.255.255.0 10.0.0.1 1 netsh int ip set dns "rede Local" static 200.204.0.10 netsh int ip add dns "rede Local" addr= 200.204.0.138 index=2 netsh int ip add dns "rede Local" addr= 200.210.47.10 index=3 net net net net use use use use M: P: V: Z: \\Servidor\Movies \\Servidor \Publico \\Servidor \Downloads \\Servidor \Backup 5.2 Apache Fonte: http://pt.wikipedia.org/wiki/Servidor_Apache – acesso em julho/2009 O servidor Apache (ou Servidor HTTP Apache, em inglês: Apache HTTP Server, ou simplesmente: Apache) é o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications). Numa pesquisa realizada em dezembro de 2007, foi constatado que a utilização do Apache representa 47.20% dos servidores ativos no mundo. É a principal tecnologia da Apache Software Foundation, responsável por mais de uma dezena de projetos envolvendo tecnologias de transmissão via web, processamento de dados e execução de aplicativos distribuídos. O servidor é compatível com o protocolo HTTP versão 1.1. Suas funcionalidades são mantidas através de uma estrutura de módulos, permitindo inclusive que o usuário escreva seus próprios módulos — utilizando a API do software. É disponibilizado em versões para os sistemas Windows, Novell Netware, OS/2 e diversos outros do padrão POSIX (Unix, Linux, FreeBSD, etc). Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 100 ...Sendo mais claro, APACHE é um servidor Web, que processa solicitações HTTP (Hyper-Text Transfer Protocol), o protocolo padrão da Web. Quando você usa um navegador de internet para acessar um site, este faz as solicitações devidas ao servidor Web do site através de HTTP e então recebe o conteúdo correspondente. No caso do Apache, ele não só executa o HTTP, como outros protocolos, tais como o HTTPS (O HTTP combinado com a camada de segurança SSL - Secure Socket Layer), o FTP (File Transfer Protocol), entre outros... [http://www.infowester.com/servapach.php] Etimologia A razão para o nome "Apache" dada pela Apache Software Foundation, é que faz referência à nação Apache, tribo de nativos americanos que tinha, em combate, grande resistência e estratégias superiores. Isso seria uma alusão à estabilidade do servidor Apache e a sua variedade de ferramentas capazes de lidar com qualquer tipo de solicitação na web. Uma segunda razão, que é aceita popularmente, reconhecida porém refutada pela Fundação, é que o nome viria de "a patchy server", que em inglês significa algo como um servidor remendado, ou melhoria no software, dada a origem do programa, criado sobre o código do servidor da NCSA já existente, no qual foram adicionados diversos patches. Surge uma terceira explicação para o nome com o lançamento do Tomcat (um sistema auxiliar ao Apache que cuida basicamente de processamento de aplicativos em Java), já que "Tomcat" nome de uma aeronave estadounidense, o F-14 Tomcat e "Apache" é o nome de um helicóptero de ataque, o AH-64 Apache). Segurança Para garantir segurança nas transações HTTP, o servidor dispõe de um módulo chamado mod_ssl, o qual adiciona a capacidade do servidor atender requisições utilizando o protocolo HTTPS. Este protocolo utiliza uma camada SSL para criptografar todos os dados transferidos entre o cliente e o servidor, provendo maior grau de segurança, confidencialidade e confiabilidade dos dados. A camada SSL é compatível com certificados X.509, que são os certificados digitais fornecidos e assinados por grandes entidades certificadoras no mundo. Configuração O servidor é configurado por um arquivo mestre nomeado httpd.conf e opcionalmente podem haver configurações para cada diretório utilizando arquivos com o nome .htaccess, onde é possível utilizar autenticação de usuário pelo próprio protocolo HTTP utilizando uma combinação de arquivo .htaccess com um arquivo .htpasswd, que guardará os usuários e senhas (criptografadas). Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 5.2.1 101 O httpd.conf O arquivo httpd.conf é o arquivo principal de configuração do Apache, se encontra dentro do diretório Conf, no diretório de instalação do Apache. Em primeiro lugar, há que destacar que o arquivo está dividido em três seções, que são: 1º Parâmetros globais 2º Diretivas de Funcionamento 3º Host Virtuais No arquivo se encontram todos os parâmetros de funcionamento do Apache. Alguns parâmetros são gerais para a instalação e funcionamento do Apache. Muitos dos outros parâmetros se podem configurar independentes para um conjunto de diretórios e/ou arquivos. Nestes casos, os parâmetros se encontram localizados dentro de seções onde se indica o âmbito de aplicação do parâmetro. EXEMPLO de httpd.conf fonte: http://www.facastro.edu.br/~rocha/inst_manut_bd/aulas/configuracao_httpd.pdf ## ## httpd.conf Apache HTTP server configuration file ## ### Section 1: Global Environment ServerType standalone Diz ao sistema se o httpd vai ser rodado via script próprio (standalone), ou a partir do arquivo inetd.conf (inetd). Em 'inetd' o httpd fica ocioso, enquanto o inetd fica monitorando as requisições, quando houver alguma, ele informa ao sistema a hora de iniciar o serviço. OBS: o padrão é standalone ServerRoot /usr/local/httpd Define o diretório do servidor. Timeout 300 Tempo maximo (segundos) que o servidor manterá uma conexão aberta com o cliente. Se o limite for excedido, ele terá de criar uma nova conexão com o mesmo. KeepAlive On Diretamente ligado com a opção acima, define se o processo de manter a conexão com o cliente está ativo ou não (on/off). MaxKeepAliveRequests 100 Numero maximo de conexões mantidas sem necessidade de renovação. Quanto mais alto o numero, melhor a performance (com hardware adequado). KeepAliveTimeout 15 Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 102 Maximo (segundos) à espera de nova requisição. StartServers 10 Numero de servidores iniciais, ou seja, logo no inicio do processo, o httpd poderá responder a 10 conexões simultanêas ao mesmo site. MaxClients 150 Numero maximo de conexões simultaneas por clientes ao site. se for ultrapassada o httpd exibirá a mensagem "http server busy" #Listen 3000 #Listen 12.34.56.78:80 Permite ao httpd server, responder em mais de um ip/porta. #BindAddress * Esta é importante, por default a linha vem comentada pois habilita o acesso a um domínio virtual. Para cada host virtual é necessária uma entrada "BindAdress e um numero IP". # # Dynamic Shared Object (DSO) Support # # LoadModule foo_module modules/mod_foo.so #LoadModule mmap_static_module modules/mod_mmap_static.so #LoadModule env_module modules/mod_env.so #AddModule mod_mmap_static.c #AddModule mod_env.c Descomentando ou adicionando quaisquer linha com LoadModule ou AddModule, validará o carregamento de um modulo, sendo executado na inicialização do httpd. Eles funcionam como opções, por exemplo habilitar ou não o suporte a arquivos CGI no servidor, etc... ### Section 2: 'Main' server configuration Port 80 O httpd atende por default no porta 80, aqui você poderá modificá‐la se desejar. User/Group Permite que o httpd execute como um usuário e grupo diferente. ServerAdmin drusian@localhost E Mail do administrador do apache, para onde será enviada noticias caso o servidor acuse algum erro ou anormalidades. ServerName host.name Determina o nome do servidor principal. Nota: o nome dever obrigatoriamente constar no DNS (e um ip associado a ele), pois um nome inventado não funcionará. O modo de chama‐lo é http://nome, mas se ele não consta no DNS, use o ip http://númeroip. Para acesso local, ou seja acessar sua própria maquina "loopback", use http://localhost ou http://127.0.0.1. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 103 DocumentRoot /www Determina o caminho onde estarão armazenados os arquivos html do servidor principal. Importante: o diretório dever estar com permissão 755, sendo direito total para o proprietário, leitura e execução para o grupo e para outros. AccesseFileName .htaccess Define o nome do arquivo para o controle de acesso, o padrão é o arquivo .htaccess. UserDir www Está opção indica qual diretório o usuário deverá criar caso queira disponibilizar documentos ou paginas html. Por exemplo se o usuário drusian quisesse disponibilizar paginas ou documentos para a rede interna usando o apache, ele teria que criar o diretório www (/home/drusian/www/) e ali disponibilizar os documente/arquivos htm. Lembre-se que o diretório em questão deve ter permissão 755 afim de garantir o acesso e segurança. Para acessar paginas em um home use: http://nome.da.maquina/~nome do usuário/ DirectoryIndex index.html index.htm index.asp default.html default.htm main.php Muito importante, pois determina quais nomes de arquivos serão validos para abertura da home pagen no browser http. No caso da configuração acima o servidor aceitará arquivos como paginas iniciais (index) de um site. UseCanonicalName On Se ligada (on), uma pagina que se chame por exemplo www.teste.com.br/teste/ se acessada como www.teste.com.br/teste (ou seja sem o / barra no fim) seja considerada válida. Se desligada (off), o site não será encontrado. HostNameLookups: Se está opção estiver ligada (on), o apache irá escrever nos logs o nome do domínio (www.dominio.com.br) se a opção estiver desligada (off), o apache escreverá nos logs com o ip (192.168.0.1). ErrorLog logs/error_log Arquivo onde será gravado o relatório de erros do servidor. LogLevel warn Determina em que nível o httpd irá rodar. O recomendado é warn, pois não causa acúmulo de atividades no apache. É o padrão e é uma das mais usadas. Outros opções são: debug, info, notice, warn, error, crit, alert, emerg. CustomLog logs/access_log common Logs de acessos vão ser gravados neste arquivo. Alias Apelidos para diretórios da maquina, Você pode por exemplo cria um apelido para uma pasta do sistema por exemplo: criar um apelido chamado "binarios" para a pasta /home/drusian/downloads/, assim se você acessar http://seu‐ip/binarios/ você terá acesso a pasta. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 104 Exemplo citado acima: Alias /binarios/ "/home/drusian/downloads/" Options Indexes FollowSymlinks MultiViews AllowOverride None Order allow,deny Allow from all ScritptsAlias Define o diretório que conterá os scripts do servidor. Exemplo CGI. ### Section 3: Virtual Hosts Aqui é realizada a configuração do IP e da porta do servidor virtual. Isto significa que não é necessários ter vários computadores rodando servidores httpd, em apenas uma maquina você pode ter vários dominios rodando (www.teste.com, www.teste1.com, www.teste123.net) cada um abrindo uma pagina diferente, e em diferentes diretórios do servidor. Este é um recurso chamado de IP alias. NameVirtualHost 200.001.002.01:80 NameVirtualHost 200.001.002.01 5.3 Squid Fonte:http://pt.wikipedia.org/wiki/Squid – acesso em julho/2009 O Squid é um servidor proxy que suporta HTTP, HTTPS, FTP e outros. Ele reduz a utilização da conexão e melhora os tempos de resposta fazendo cache de requisições freqüentes de páginas web numa rede de computadores. Ele pode também ser usado como um proxy reverso. O Squid foi escrito originalmente para rodar em sistema operacional tipo Unix mas ele também funciona em sistemas Windows. Servidor Proxy No cache são armazenados os objetos da Internet (ex. dados como os das páginas web) disponíveis via protocolo HTTP, FTP e Gopher. Os navegadores podem então usar o Squid local como um servidor Proxy HTTP, reduzindo o tempo de acesso aos objetos e a utilização da conexão. Isto é muito usado por provedores no mundo todo para melhorar a velocidade de navegação para seus clientes e também em LAN que compartilham a mesma conexão à Internet. Ele pode fornecer alguma anonimato e segurança entretando ele pode gerar preocupações a respeito da privacidade pois o Squid é capaz de armazenar muitos registros de acessos incluindo URLs acessadas, a data e hora exatas e quem acessou. Isto é usado frequentemente nas empresas para controlarem o acesso a Internet de seus funcionários. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 5.3.1 105 Squid.conf ################################################## # Copyright © 2009 - Andrio Jasper # # Todos os direitos reservados. # # Ao utilizar este aquivo manter os direitos autorais # ################################################## # Opcoes para suportar proxy transparente. #nao esquecer de trocar a faixa de ip pela da sua rede http_port 192.168.70.1:3128 transparent #Está porta é usada para troca de informações entre servidores proxy. #Não use o ICP se você tem um único proxy-pai que você sempre usa. #Para desabilitar, bastacolocar um 0. Padrão: 3130 icp_port 0 #Especifica o número da porta através do qual o Squid irá receber e enviar requisições HTCP de e para caches vizinhos. Para desabilitar, #colocar 0. O padrão é 4827. htcp_port 0 #Ela é responsável por dizer ao Squid que ele deve buscar os dados diretamente na origem, sem passar pelos vizinhos na hierarquia. Padrao do squid hierarchy_stoplist cgi-bin ? #Esta ACL diz ao squid para não armazenar em cache o conteúdo dos CGI's, pois obviamente não é interessante por tratar-se de conteúdo dinâmico acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY #Quantidade de memoria usada pelo squid cache_mem 256 MB #esvazia o cache cache_swap_low 80 cache_swap_high 85 #tamanho maximo para gravacao no cache squid maximum_object_size 64 MB #tamanho minimo para gravacao no cache squid minimum_object_size 0 KB # Tamanho maximo dos objetos mantidos em memoria. maximum_object_size_in_memory 128 KB ipcache_size 3072 Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 106 ipcache_low 90 ipcache_high 93 # politica de substituicao dos objetos quando se esgota o espaco destinado ao cache em disco. # lru: mantem os objetos referenciados recentemente. # heap GDSF: otimiza o "hit rate" por manter objetos pequenos e populares no cache, guardando assim um numero maior de objetos. # heap LFUDA: otimiza o "byte hit rate" por manter objetos populares no cache sem levar em conta o tamanho. Se for utilizado este, o maximum_object_size devera ser aumentado para otimizar o LFUDA. cache_replacement_policy heap LFUDA #define a politica de substituicao dos objetos em memoria da mesma forma como o cache_replacement_policy memory_replacement_policy heap GDSF #Esta TAG determina onde e como será feito o cache e o tamanho a cada 1GB (1024), deve separar 15mb de memoria cache_dir ufs /var/spool/squid/cache1 2048 16 64 cache_dir ufs /var/spool/squid/cache2 2048 16 64 cache_dir ufs /var/spool/squid/cache3 2048 16 64 cache_dir ufs /var/spool/squid/cache4 2048 16 64 cache_dir ufs /var/spool/squid/cache5 2048 16 64 # Log de requisicoes. cache_access_log /var/log/squid/access.log # Log do cache. cache_log /var/log/squid/cache.log # Log de objetos guardados. Pode ser desativado. cache_store_log none #Pode ser usada para especificar uma lista /etc/resolv.confdns_nameservers Endereço_IP #nao esquecer de trocar a faixa de dns pela da sua faixa dns_nameservers 201.10.128.2 dns_nameservers 201.10.120.3 de servidores #TAG's referentes ao processo de autenticação. auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours auth_param basic casesensitive off #Estas opções são o padrão do Squid e #configuram como serão tratados os tempos de vida dos objetos no cache refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern (cgi-bin|\?) 0 0% 0 refresh_pattern . 0 20% 4320 Professor Marcio R. G. de Vazzi - www.vazzi.com.br DNS no lugar no Tópicos para a disciplina GSO 107 #O cache pode ser configurado para continuar com o download de requisições abortadas quick_abort_min 0 KB quick_abort_max 0 KB quick_abort_pct 100 #Tempo de vida para requisições falhas. Certos tipos de erros (como #conexão recusada ou página não encontrada) são marcados como #"sem-cache" por um determinado tempo. Padrão de 5 minutos negative_ttl 3 minutes #Tempo de vida para resultados bem sucedidos de resolução DNS. Se você #realmente precisar alterar esse valor, não deixe inferior a 1 minuto. #Padrão de 6 horas. positive_dns_ttl 5 minutes #Alguns clientes podem parar o envio de pacotes TCP enquanto deixam o recebimento em aberto. #Algumas vezes o Squid não consegue diferenciar conexões TCP totalmente fechadas e parcialmente fechadas. #Mudando essa opção para off fará com que o Squid imediatamentefeche a conexão quando a leitura do socket #retornar "sem mais dados para leitura" half_closed_clients off #Estas ACL's fazem parte da configuração padrão do Squid e é o mínimo #recomendável para seu uso não sendo necessária nenhuma alteração nas mesmas acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl BADPORTS port 7 9 11 19 22 23 25 53 110 119 513 514 3128 8080 acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT # ---- Cache do Windows Update ---refresh_pattern au.download.windowsupdate.com/.*\.(cab|exe|msi) 10080 100% 43200 reload-intoims refresh_pattern download.microsoft.com/.*\.(cab|exe|msi) 10080 100% 43200 reload-into-ims refresh_pattern msgruser.dlservice.microsoft.com/.*\.(cab|exe|msi) 10080 100% 43200 reload-intoims Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 108 refresh_pattern windowsupdate.com/.*\.(cab|exe|msi) 10080 100% 43200 reload-into-ims refresh_pattern www.microsoft.com/.*\.(cab|exe|msi) 10080 100% 43200 reload-into-ims ##nao esquecer de trocar a faixa de ip pela da sua rede acl rede src 192.168.70.0/255.255.255.0 http_access allow localhost http_access allow rede #Definição de regras de acesso referentes as ACL's da parte da configuração #padrão do Squid, também não é necessária nenhuma alteração, portanto apenas #acrescente as suas próprias regras a estas; http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny BADPORTS http_access deny CONNECT !SSL_ports #Esta regra de acesso é recomendada para uso como última regra da lista define #o acesso ao proxy. Ela diz ao Squid que se nenhuma das regras anteriores for #aplicada o acesso será então negado http_access deny all #Permite o acesso a porta icp de acordo com a configuração feita na ACL all #que no nosso caso representa qualquer origem. Está porta é usada para troca #de informações entre servidores proxy. #Não use o ICP se você tem um único proxy-pai que você sempre usa. #icp_access allow rede # Usuario sob o qual ira rodar o Squid. cache_effective_user squid # Grupo sob o qual ira rodar o Squid. cache_effective_group squid #Mostra o nome do servidor configurado nas mensagens de erro visible_hostname [email protected] #Desligando essa variavel, faz com que o squid descarregue a memoria nao #utilizada, chamando uma funcao interna free() do squid, ao inves de ficar #com ela para futuras operaçoes. memory_pools off #Por padrão o Squid irá incluir o ip ou nome da sua máquina nas solicitações HTTP. #Ele irá saber o ip da sua máquina interna como também saber qual classe ip você usa internamente. #Para o site visitado não interessa para ele qual seu ip interno, o importante é que você visitou o site. forwarded_for off #Apresenta as mensagens de erro em Portugues error_directory /usr/share/squid/errors/Portuguese Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 109 #Por padrão o Squid já possui essa configuração como ativa. Ela serve para não colocar no log os #parâmetros que são passados junto ao endereço acessado pelo usuário. Assim garante a privacidade. #As vezes quando se usa filtro por palavras e um site apresenta acesso negado é interessante setar #essa opção como off para verificar no log o endereço completo. strip_query_terms off #Local para gravar os arquivos core em caso de falhas do squid (/var/spool/squid) # ou Evitar que sejam feitos coredumps (none). coredump_dir none # Resolve um problema com conexões persistentes que ocorre com certos servidores, # e que provoca delays em nosso cache. detect_broken_pconn on # Provoca um ganho de performance ao usar conexões Pipeline (requisições em paralelo) #o Squid irá trabalhar com 2 requisições paralelamente pipeline_prefetch on Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 5.4 Exercícios de Fixação 1 - O que é o SAMBA? Para que serve? 2 - Existe algo semelhante no mercado? Qual? Compare os dois. 3 - Como eu sei que o SAMBA está “rodando? 4 - Como iniciar e parar o SAMBA? 5 - Como criar usuários no SAMBA? 6 - Como ver os usuários que estão cadastrados no SAMBA 7 - É difícil configurar o SAMBA? Porquê? 8 - Como “matar” um processo que está “rodando”? 9 - Qual a função do comando “chkconfig -- level 235 smb on”? ( ( ( ( ) Carrega o serviço do smb apenas na sessão corrente; ) Carrega o serviço do smb apenas no próximo boot; ) Carrega o serviço do smb nos níveis 2, 3 e 5; ) Remove o serviço do smb dos níveis 2, 3 e 5. 10 - O que é um arquivo de logon script? Para que ele serve? 11 – O que é o APACHE? Para que serve? 12 – Como eu sei que o APACHE está “rodando”? 13 – Como iniciar e parar o APACHE e o SQUID? 14 – Como posso utilizar o apache em uma rede interna? Dê um exemplo. 14 – O que é o SQUID? Para que serve? Quais as suas vantagens? 15 – Onde o SQUID pode ser utilizado? Dê um exemplo de suas funções. Professor Marcio R. G. de Vazzi - www.vazzi.com.br 110 Tópicos para a disciplina GSO 111 6 Capítulo 6 – Acesso Remoto e Firewall 6.1 SSH Em informática o Secure Shell ou SSH é, simultaneamente, um programa de computador e um protocolo de rede que permite a conexão com outro computador na rede, de forma a executar comandos de uma unidade remota. Possui as mesmas funcionalidades do TELNET, com a vantagem da conexão entre o cliente e o servidor ser criptografada. Para acessar uma máquina linux via Windows com SSH, pode ser utilizado o programa Putty.exe 6.2 VNC Virtual Network Computing (ou somente VNC) é um protocolo desenhado para possibilitar interfaces gráficas remotas. Através deste protocolo um usuário pode conectar-se a um computador remotamente, e utilizar as suas funcionalidades visuais como se estivesse sentado em frente do computador. Algumas das aplicações práticas incluem a 'assistência remota' ao utilizador. Uma das grandes vantagens é poder fazer a conexão de diferentes ambientes unix(linux e outros) em winnt (windows X) Os aplicativos mais utilizados para realizar estas conexões são: RealVNC, TightVNC e UltraVNC. 6.3 Vino e Vinagre (Gnome) O Vino é o servidor “VNC” nativo do GNOME. O Vinagre é somente mais um dentre tantos clientes VNC, que possui um grande diferencial: é extremamente simples de utilizar, e é nativo do GNOME. Através dele, podemos acessar máquinas Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 112 Linux ou Windows de maneira extremamente prática, regra válida inclusive para os iniciantes. O PC do seu amigo deu problemas? Está chovendo? Ele quer aprender como faz? Pois bem, Vinagre nele. Com o Vinagre e esta dica, você nunca mais deixará de lado o acesso remoto via VNC. 6.4 Firewall – NetFilter/IPTABLES Um firewall é uma barreira inteligente entre duas redes, através do qual só passa tráfego autorizado. Este tráfego é examinado pelo firewall em tempo real e a seleção é feita de acordo com a política de segurança estabelecida. Sempre que um pacote chega ao firewall, este inspeciona a sua lista de conexões e faz state matching conforme a lista de políticas. Veja mais em: http://www.pop-mg.rnp.br/eventos/wksp2004/trabalhos/iptables.pdf Fonte: http://pt.wikipedia.org/wiki/Iptables Netfilter O netfilter é um módulo que fornece ao sistema operacional Linux as funções de firewall, NAT e log dos dados que trafegam por rede de computadores. iptables é o nome da ferramenta do espaço do usuário que permite a criação de regras de firewall e NATs. Apesar de, tecnicamente, o iptables ser apenas uma ferramenta que controla o módulo netfilter, o nome "iptables" é frequentemente utilizado como referência ao conjunto completo de funcionalidades do netfilter. O iptables é parte de todas as distribuições modernas do Linux. Características do firewall iptables * Especificação de portas/endereço de origem/destino * Suporte a protocolos TCP/UDP/ICMP (incluindo tipos de mensagens icmp) * Suporte a interfaces de origem/destino de pacotes * Manipula serviços de proxy na rede * Tratamento de tráfego dividido em chains (para melhor controle do tráfego que entra/sai da máquina e tráfego redirecionado. * Permite um número ilimitado de regras por chain * Muito rápido, estável e seguro * Possui mecanismos internos para rejeitar automaticamente pacotes duvidosos ou mal formados. * Suporte a módulos externos para expansão das funcionalidades padrões oferecidas pelo código de firewall * Suporte completo a roteamento de pacotes, tratadas em uma área diferente de tráfegos padrões. * Suporte a especificação de tipo de serviço para priorizar o tráfego de determinados tipos de pacotes. * Permite especificar exceções para as regras ou parte das regras * Suporte a detecção de fragmentos Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 113 * Permite enviar alertas personalizados ao syslog sobre o tráfego aceito/bloqueado. * Redirecionamento de portas * Masquerading * Suporte a SNAT (modificação do endereço de origem das máquinas para um único IP ou faixa de IP's). * Suporte a DNAT (modificação do endereço de destino das máquinas para um único IP ou fixa de IP's) * Contagem de pacotes que atravessaram uma interface/regra * Limitação de passagem de pacotes/conferência de regra (muito útil para criar proteções contra, syn flood, ping flood, DoS, etc). 6.4.1 Configurando Para se configurar um Firewall basta adicionar as regras a ele. Isto pode ser feito manualmente ou através de um arquivo que contenhas suas regras personalizadas. Nota: Este arquivo deve ser executado toda vez que a máquina for ligada. #!/bin/bash ########## C O N F I G U R A Ç Õ E S G E R A I S ########## touch /var/lock/subsys/local echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_nat_ftp /sbin/modprobe iptable_nat /sbin/modprobe nf_conntrack #### CUIDADO - Limpa as regras #### #iptables -F #iptables -t nat -F #Interface da INTERNET internet="eth1" #Interface da Rede LOCAL redelocal="eth0" ############# R E D I R E C I O N A M E N T O S ############# #Tira ips do FIREWALL iptables -t nat -A PREROUTING -i $redelocal -s 10.0.0.1/32 -p tcp -m multiport --dport 80,443 -j ACCEPT Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 114 #Proxy Transparente iptables -t nat -A PREROUTING -i $redelocal -p tcp --dport 80 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -i $redelocal -p udp --dport 80 -j REDIRECT --to-port 3128 #Proxy Transparente com DANSGUARD #iptables -t nat -A PREROUTING -i $redelocal -p tcp --dport 80 -j REDIRECT --to-port 8080 #iptables -A INPUT -m tcp -p tcp -s ! 127.0.0.1 --dport 3128 -j DROP #Redireciona FTP para outro Servidor iptables -t nat -A PREROUTING -t nat -p tcp -d (IP do Servidor) --dport 20 -j DNAT --to 10.0.0.1:21 iptables -t nat -A PREROUTING -t nat -p tcp -d (IP do Servidor) --dport 21 -j DNAT --to 10.0.0.1:21 ######### C O M P A R T I L H A A C O N E X A O ######### iptables -t nat -A POSTROUTING -s 10.0.0.0/255.255.0.0 -o $internet -j MASQUERADE #AJUSTA O TAMANHO DOS PACOTES À MTU DA REDE LOCAL iptables -a FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-pmtu ###################### P R O T E C A O ###################### #NAO RESPONDE A PINGS iptables -A INPUT -p icmp --icmp-type echo-request -j DROP #IP SPOOFING echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter iptables -A INPUT -m state --state INVALID -j DROP #AUTORIZA PACOTES VINDOS DA REDE INTERNA iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i $redelocal -j ACCEPT #ABRE A PORTA 22 PARA O SSH iptables -A INPUT -p tcp --dport 22 -j ACCEPT #BLOQUEIA ACESSOS VINDOS DA INTERNET iptables -A INPUT -p tcp --syn -j DROP Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 6.5 Exercícios de fixação 1 - O que é SSH? 2 - Como acessar um computador via SSH? 3 - O que é VNC? 4 - Existe algum software para utilizar o VNC? Quais? Comente. 5 – Cite e comente as vantagens de se utilizar acesso remoto em computadores. 6 – O que é um FIREWALL? Para que serve? 7 – Como faço para configurar um Firewall? Que regras tenho que inserir? Professor Marcio R. G. de Vazzi - www.vazzi.com.br 115 Tópicos para a disciplina GSO 116 7 Capítulo 7 - Extras 7.1 linuxconf O Linuxconf é um aplicativo avançado de administração para um sistema Linux. Ele centraliza tarefas como configuração do sistema e monitoração dos serviços existentes na máquina. Na verdade, o Linuxconf é um gerenciador de módulos, cada qual responsável por executar uma tarefa específica. Tendo em vista a maneira como o Linuxconf foi projetado, para adicionar uma funcionalidade basta que alguém escreva um novo módulo para executar a tarefa. Com isto, consegue-se uma ferramenta que pode centralizar a configuração de todo o sistema. O presente capítulo é destinado a este aplicativo, onde será descrito o seu ambiente, quais as principais configurações que podem ser feitas através dele, e como sua interface é organizada. 7.2 Interface do Linuxconf A maioria das interfaces de administração possui uma interface fixa, que não se adapta ao ambiente. Muitas vezes, o administrador pode desejar executar o aplicativo de configuração em um modo que não gaste tanta memória, para que esta possa ser utilizada para outras finalidades. O Linuxconf, entretanto, possui várias interfaces, dependendo da aplicação e do gosto do administrador: Interface texto Interface indispensável, pois pode ser utilizada a qualquer momento, seja via console ou via acesso remoto (telnet ou ssh). Esta interface elimina a necessidade de manter instalado um servidor gráfico X apenas para configurar a máquina. Esta interface é acionada ao se digitar linuxconf em um terminal, caso esteja em modo gráfico, basta abrir um terminal e digitar linuxconf --text. Interface web A possibilidade de configurar uma máquina através de uma interface web é cômoda, pois basta ter acesso a um navegador. Com isto, é possível configurar uma máquina através de praticamente qualquer plataforma de hardware e software, bastando utilizar um navegador. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 117 A interface web pode ser acessada através da URL http://sua_maquina:98/, mas para isto você deve primeiramente configurar o Linuxconf para que ele aceite conexões via rede. Interfaces gráficas Interfaces amigáveis para usuários que preferem configurar o sistema através de uma interface gráfica, tendo à sua disposição janelas, caixas de diálogo e botões. Estas interfaces devem ser executadas em um servidor gráfico X, como o XFree86 (servidor gráfico padrão do Linux). Geralmente, as interfaces gráficas contidas nas distribuições que suportam o Linuxconf contêm menus de acesso para o aplicativo. Para executar esta interface, basta abrir um terminal gráfico e executar o comando linuxconf. Nota: É necessário ter o pacote gnome-linuxconf instalado para ter acesso às interfaces gráficas; durante o guia, será utilizada a interface gráfica de árvore de menus (treemenu), e se você desejar desabilitá-la, vá em Controle -> Gerenciamento do Linuxconf -> Módulos, no Linuxconf. Interface de linha de comando Alguns módulos do Linuxconf podem ser utilizados via linha de comando, o que, entre outras possibilidades, permite a sua utilização em scripts. Se você quiser utilizar essa interface, poderá iniciá-la através de dois comandos básicos: linuxconf --status exibe o relatório do que precisa ser feito para sincronizar a configuração do sistema, e o comando linuxconf --update efetua as alterações. Você pode executar o comando linuxconf --help para ver mais detalhes. Você poderá utilizar qualquer uma destas interfaces, dependendo apenas da sua necessidade ou do que há disponível na máquina que está sendo administrada. Iniciando o Linuxconf Como será utilizada a interface gráfica do Linuxconf para demonstrá-lo, ele pode ser executado a qualquer momento através da linha de comando de um terminal (digitando linuxconf na linha de comando) ou pode-se clicar no ícone/menu do ambiente gráfico, sempre como superusuário. No KDE, você pode acessá-lo através do menu K, localizado no painel. A configuração padrão da maioria das distribuições permite que apenas o superusuário acesse o Linuxconf. Esta política foi escolhida por questões de segurança. Para que outros usuários possam executá-lo é necessário que o programa tenha o bit suid habilitado. Para isso, execute o seguinte comando como superusuário: # chmod +s /bin/linuxconf Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 118 7.3 Arquivos de configuração 7.3.1 /etc/resolv.conf O /etc/resolv.conf é o arquivo de configuração principal do código do resolvedor de nomes. Seu formato é um arquivo texto simples com um parâmetro por linha e o endereço de servidores DNS externos são especificados nele. Existem três palavras chaves normalmente usadas que são: domain Especifica o nome do domínio local. search Especifica uma lista de nomes de domínio alternativos ao procurar por um computador, separados por espaços. A linha search pode conter no máximo 6 domínios ou 256 caracteres. nameserver Especifica o endereço IP de um servidor de nomes de domínio para resolução de nomes. Pode ser usado várias vezes. Como exemplo, o /etc/resolv.conf se parece com isto: Domain search nameserver nameserver maths.wu.edu.au maths.wu.edu.au wu.edu.au 192.168.10.1 192.168.12.1 Este exemplo especifica que o nome de domínio a adicionar ao nome não qualificado (i.e. hostnames sem o domínio) é maths.wu.edu.au e que se o computador não for encontrado naquele domínio então a procura segue para o domínio wu.edu.au diretamente. Duas linhas de nomes de servidores foram especificadas, cada uma pode ser chamada pelo código resolvedor de nomes para resolver o nome. 7.3.2 /etc/hosts O arquivo /etc/hosts faz o relacionamento entre um nome de computador e endereço IP local. Recomendado para IPs constantemente acessados e para colocação de endereços de virtual hosts (quando deseja referir pelo nome ao invés de IP). A inclusão de um computador neste arquivo Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 119 dispenda a consulta de um servidor de nomes para obter um endereço IP, sendo muito útil para máquinas que são acessadas frequentemente. A desvantagem de fazer isto é que você mesmo precisará manter este arquivo atualizado e se o endereço IP de algum computador for modificado, esta alteração deverá ser feita em cada um dos arquivos hosts das máquinas da rede. Em um sistema bem gerenciado, os únicos endereços de computadores que aparecerão neste arquivo serão da interface loopback e os nomes de computadores. # /etc/hosts 127.0.0.1 localhost loopback 192.168.0.1 maquina.dominio.com.br Você pode especificar mais que um nome de computador por linha como demonstrada pela primeira linha, a que identifica a interface loopback. Certifique-se de que a entrada do nome de domínio neste arquivo aponta para a interface de rede e não para a interface loopback, ou terá problema com o comportamento de alguns serviços. OBS: Caso encontre problemas de lentidão para resolver nomes e até para executar os aplicativos (como o mc, etc), verifique se existem erros neste arquivo de configuração. Estes sintomas se confundem com erros de memória ou outro erro qualquer de configuração de hardware, e somem quando a interface de rede é desativada (a com o IP não loopback). Isto é causados somente pela má configuração do arquivo /etc/hosts. O bom funcionamento do Unix depende da boa atenção do administrador de sistemas para configurar os detalhes de seu servidor. 7.4 Comando “sudo” O comando sudo é um recurso mais poderoso que o su. Isso porque, nele, é possível definir quem pode utilizá-lo e quais comandos podem ser executados por esses usuários. Alem disso, o sudo pode ser configurado para exigir a senha novamente quando o usuário deixa de utilizar o sistema por um determinado tempo, por exemplo, por 10 minutos. A configuração do sudo geralmente é feita através do arquivo /etc/sudoers. O uso do sudo é interessante porque o usuário não precisa saber a senha do root, apenas terá que ter permissão para usar determinados comandos pelo sudo. Além disso, o sudo permite registrar em um arquivo de log todas as atividades efetuadas, algo que é bem limitado no su. Para mais informações sobre o sudo, visite o site www.courtesan.com. FONTE: http://www.infowester.com/linroot.php Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 120 7.5 Crontab e at FONTE: http://caixamagica.org/outros/cron.html Ricardo Ferreira 7.5.1 Crontab Cron é um excelente utilitário que ajudar o administrador do sistema a automatizar tarefas repetitivas. Cron é controlado por um conjunto de ficheiros chamados "crontabs". Existe um ficheiro "master" em /etc/crontab juntamente com outros ficheiros crontab para os utilizadores, em /var/spool/cron/. Neste diretório, os ficheiros recebem o nome do ID do login do utilizador. Na distribuição Red Hat a configuração de cron jobs é um pouco diferente. O ficheiro /etc/crontab executa vários items em sub-directórios a intervalos regulares. /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly Tudo o que é necessário é colocar um script ou um link para um executável num destes directórios e será automaticamente executado no tempo apropriado. Configurar um crontab a nível do utilizador é um pouco diferente. Os ficheiros localizados em /var/spool/cron não são editados diretamente. Em vez disso, um programa chamado crontab é utilizado. Dependendo da segurança do sistema, todos os utilizadores, ou só alguns ou apenas o root poderão utilizar o crontab (faça man crontab e veja o /etc/cron.allow e /etc/cron.deny para mais informações): SYNOPSIS crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } file -u -l -r -e store the specified file as the current crontab user the crontab file being manipulated is for display the current crontab remove current crontab edit the current crontab (editor depends on system variables and will probably be vi unless your sysadmin has changed it). Se não está familiarizado com o editor pré-definido no sistema é preferível criar ou editar o ficheiro com um editor com o qual está familiarizado e utilizar a opção file. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 121 Configuração da crontab: Linhas em branco e espaços iniciais bem como tabs são ignoradas. Linhas que começam com # são comentários e são ignoradas. Não é permitido ter comentários na mesma linha onde existem comandos cron; o sistema assume que fazem parte do comando. Os comentários também não podem estar na mesma linha de configurações do ambiente pelo mesmo motivo. Sintaxe (espaços entre = são opcionais) Cada comando cron tem 5 campos da tempo e data, seguidos pelo nome do utilizador, case se trate do ficheiro crontab do sistema, seguido por um comando. Os comandos são executados quando o tempo definido pelos campos tempo/data coincide com o tempo atual na máquina. Campo ----minuto hora dia ou mês mês dia da semana valores permitidos -----------------0-59 0-23 0-31 0-12 (ou nomes, veja em baixo) 0-7 (0 ou 7 é Domingo, em alternativa use nomes) Um campo pode ser um asterisco (*) que representa do primeiro ao último. Assim, usado no campo das horas, significa todas as horas das 0:00 às 24:00. Exemplo de crontab: # # # # # # # r----minuto | r-----hora | | r------dia do mês | | | r------mês | | | | r------dia da semana | | | | | |------ comando a correr -------------> | | | | | | 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 Corre cinco minutos depois da mei-noite, todos os dias Corre às 2:15pm no primeiro dia de cada mês -- output enviado por mail 15 14 1 * * mail -s "Vê este URL" ricfer%Ricardo,%%Vê: http://www.poli.org% Mostra esta mensagem às 5:04 de cada Domingo. 5 4 * * sun echo "corre aos Domingos às 5:04" Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 122 Mais informações sobre o crontab e cron podem ser encontradas nas páginas do manual: man cron man crontab man 5 crontab 7.5.2 at O comando at trabalha com tarefas que serão executadas uma única vez, num horário determinado. No entanto, o at é apenas um comando. O serviço que está por tráz deste agendamento chama-se atd e precisa estar funcionando para que o agendamento de tarefas funcione. Para verificar se o daemon do at está rodando pode-se utilizar: # service atd status Para agendar uma tarefa com o at, pode-se fazer o seguinte: $ at <horário> <ENTER> <comando1> <comando2> ... <CTRL+D> Onde: <horário> : pode ser o horário no estilo HH:MM, noon, midnight, MMDDYY, MM.YY, now, etc... <comandoN> : qualquer comando/script que o usuário possa executar <CTRL+D> : Seqüência de teclas que informa ao at o final da edição dos comandos Por exemplo, parar executar uma tarefa daqui a 5 dias: $ at now + 5 days /bin/echo “Tudo OK!” > /dev/tty1 ^D Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 123 Para executar uma tarefa no dia 01/01/2007 às 00:01 Horas $ at 00:01 01/01/2007 /bin/echo “Feliz Ano Novo!” > /dev/tty1 ^D Por padrão o agendamento de tarefas com o at é permitido a todos os usuários do sistema, mas o administrador pode necessidar bloquear este recurso aos usuários ou mesmo liberar este recurso apenas para alguns usuários do sistema. Para isto será necessário editar os arquivos /etc/at.allow (lista de quem pode executar comandos) e /etc/at.deny (lista de quem NÃO pode executar comandos) colocando um usuário por linha para permitir ou bloquear o uso deste recurso. Caso estes arquivos não existam ou estejam vazios, o agendamento de comandos é permitido a todos os usuários. Uma vez que uma tarefa foi agendada, esta fica armazenada em um arquivo dentro do diretório /var/spool/cron/atjobs. O comando atq permite visualizar as tarefas agendadas e o comando atrm seguido do número da tarefa permite remover uma tarefa agendada. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 124 7.6 Exercícios de Fixação 1 - Para que serve o linuxconf? 2 - O que é DNS? 3 - Qual arquivo no linux é responsável pela configuração do "resovedor de nomes"? como posso editálo? (comando)? 4 - Fale sobre o arquivo /etc/hosts. Como ele pode ser útil em minha rede? 5 - O que faz o comendo sudo? 6 - Qual a diferença entre os comandos CRONTAB e AT? 7 – Exercício prático: a - Faça o login no sistema como usuário aluno. b - Execute o comando crontab –e (ou edite o arquivo manualmente) c - Agende uma determinada tarefa para ser executada uma vez por dia durante todos os dias do mês atual. Especifique um horário no qual você possa aguardar e verificar se a tarefa está sendo executada. d - Depois de ter verificado e constatado que funcionou, remova a tarefa agendada. e - Agende uma determinada tarefa com o comando at para ser executada daqui a 5 minutos e verifique se a tarefa foi executada. 8. Uma tarefa agendada pelo “crontab” só será removida pelo comando “contrab –r” ( ) Falso, pois quanto a tarefa é executada, ela é retirada automaticamente da lista. ( ) Verdadeiro, pois apesar do usuário não poder fazê-lo o “root” fará por ele. ( ) Falso, pois depende do arquivo “cron.allow”. ( ) Verdadeiro, caso contrário a atividade continuará sempre agendado. 9. Qual o formato do arquivo gerado pelo “contrab” ? ( ) MIN, HORA, DIA-SEMANA, MÊS, COMANDO ( ) MIN, HORA, DIA, MÊS, DIA-SEMANA, COMANDO ( ) DIA, MÊS, ANO, DIA-SEMANA, COMANDO ( ) HORA, MIN, SEGUNDO, MÊS, DIA, COMANDO 10. O que significa a seguinte linhas do “crontab –e”? 0 8,18 * * 1-5 tar –jcvf /backup /dados ( ( ( ( ) faz o backup comprimido do /backup de segunda a sexta as 8 e 18 horas; ) faz o backup comprimido do /dados de segunda a sexta as 8 e 18 horas; ) faz o backup do /dados das 0:8 hs e 0:18 hs de janeiro a maio; ) faz o backup do /dados de segunda a sexta as 8 e 18 de todos os meses. Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 125 8 Exercícios Gerais 1. Crie a estrutura abaixo no seu diretório: Permissões: Administrativo: Professores: Alunos: RH: CPD: COARD: 2. a) b) c) drwxr----drwxr-x--dr-xr-xr-drwxr-x--drwxrwx--drwxrw---- Mude as permissões do diretório “Aula” da seguinte maneira: Dê permissão total para todo mundo. Retire a permissão de execução de todos. Grupo e outros deverão ter apenas permissão de leitura. 3. Crie um arquivo chamado “informática” dentro de “Aula”, permita que o usuário possa ler, escrever e excutar, o grupo possa ler e escrever e os outros usuários não tenham acesso. 4. No diretório /dev, como são representados o primeiro HD SCSI, o segundo HD IDE, o primeiro CD e disquete no Linux? 5. Faça um backup compactado de toda a estrutura da ESCOLA criada na questão 6 e salve com o nome bkp_ ESCOLA.tgz dentro da pasta /home/ESCOLA . 6. Liste toda a estrutura da questão 1 e redirecione para um arquivo chamado arvore_escola.txt também dentro do diretório /home/ESCOLA . 7. Liste todos os dispositivos que se encontram no arquivo fstab e redirecione para um arquivo chamado dispositivos.txt também dentro do diretório /home/ESCOLA . 8. Que comando posso utilizar para saber quais processos estão rodando no sistema? 9. Qual comando completo é utilizado para finalizar um processo imediatamente? Professor Marcio R. G. de Vazzi - www.vazzi.com.br Tópicos para a disciplina GSO 10. Que comando é utilizado para saber a identificação do meu usuário e do meu grupo? 11. Como podemos ver quais são as partições que estão montadas? 126 12. Descreva a forma correta para montar o primeiro disquete do micro no diretório “/mnt/floppy” usando o sistema “fat”. 13. Qual o nome do arquivo que armazena informações dos usuários? Como se faz para ver o conteúdo deste arquivo sem usar um editor de textos? 14. Descreva duas maneiras de listar o conteúdo de um diretório pausadamente quando o seu conteúdo é muito grande e não cabe na tela. Professor Marcio R. G. de Vazzi - www.vazzi.com.br