Cygwin

download Cygwin

If you can't read please download the document

description

O Windows é o sistema operacional mais comum na atualidade, mas ele carece de vários recursos que podem ser úteis para facilitar a sua administração. Como administrador Linux, a melhor maneira é usar soluções baseadas em Linux para facilitar o trabalho e garantir que o Windows lhe obedecerá. E como fazê-lo? Usando o Cygwin! Palestra apresentada no 11o Fórum Internacional de Software Livre (FISL), entre os dias 21 e 24 de julho de 2010.

Transcript of Cygwin

Solues administrativas com Cygwin.

ou... Como fazer o Windows te obedecer!

Antes de tudo:

Objetivo da palestra informativo.At o momento, todas as solues apresentadas aqui funcionaram. No quer dizer que funcionam em todos os casos, nem que no precisem de melhorias (pelo contrrio).

Aceitamos sugestes, idias... E crticas construtivas.

Quem esse cara?

Professor:FAETEC (desde 1999).

Faculdades (UERJ, UniverCidade, Paraso).

Matemtico e professor de matemtica pela UFRJ.

Mestre em Cincia da Computao pela UFF.

Usurio Unix desde 1991, Linux desde 1998.

Entusiasta do software livre:Conectiva, Red Hat, Fedora, Ubuntu, Gentoo, OpenWRT, Debian, CentOS... Tem prompt, estamos chegando junto!

Ele manja de Linux?

Palestrante no 5o Frum de SL do RJ (2007) e no 6o CONISLI (2008).

Membro do colegiado do curso de Tecnologia em Redes da UniverCidade.

Organizador de eventos - 1a e a 2a ExpoSALT.

Colunista (polmico) do site Guanabara.info.

No importa qual distro voc use, contanto que seja Linux.

Vamos dura realidade.

Bug #1 no Launchpad.net: A Microsoft tem a maior parcela do mercado de Sistemas Operacionais: http://u.nu/7hjed

O Windows est presente em quase 90% dos computadores padro IBM-PC do mundo.

Facilidade da pirataria: O Windows to de graa quanto o Linux, ningum paga por ele mesmo...

Lei de Grson, jeitinho brasileiro, etc.

Resistncia ao novo.

Constatao de um fato:

O maior aliado do crescimento do Linux a ABES: Enquanto a pirataria no for reprimida, no veremos o Linux crescer como deveria no Brasil.

Problemas do Janelas

A GUI convive mal com a linha de comando, herdada do DOS e do VMS.

Programao dos sockets no tem objetos unificados de dados, o que torna tudo mais difcil.

Escalonamento de processos computacionalmente caro.

A maioria dos programas no podem ser chamados por scripts.

O Registro do Windows um mistrio insondvel.

Arquivos do sistema s podem ser editados com ferramentas especficas.

Problemas do Janelas (cont.)

Comunicao TODA por chamadas remotas a procedimento, e cheio de bugs.

Uma falha no Registro pode gerar uma reao em cadeia que ir travar tudo, e for;ar a reinstalao do sistema.

Programas mal-educados, que exigem nvel de administrador para tarefas banais.

O inferno das DLLs, com atualizaes de bibliotecas do sistema, e a redundncia, o que consome muito espao ocupado no HD.

No h segurana no trfego de mensagens e sinais entre os clientes da interface grfica.

O agendamento de tarefas fede.

Imagem >> 1000 palavras

Exemplo de uma syscall feita pelo Apache ao kernel do Linux.

Imagem >> 1000 palavras

Exemplo de uma syscall feita pelo IIS ao kernel do Windows.

Problema (o local)

Escola Tcnica Estadual Repblica.Rede FAETEC (Rio de Janeiro)

Mais de 4000 alunos, em 6 cursos tcnicos.

Cerca de 250 computadores.

130 computadores em 10 laboratrios de informtica e 1 laboratrio de montagem e manuteno.

Windows e Linux em (quase) todos os desktops, e Linux nos servidores.

Administrao de redes: 4 professores e 3 estagarios:

Grande a seara, poucos so os searenses.

Problema (imagem de instalao)

Uso nas mquinas da escola.8 imagens diferentes.

4 imagens de instalao de laboratrio (diferentes perfis de hardware).Exatos 9,4 Gb (386 partes de 25 Mb cada).

Windows (XP SP3) e Linux (Ubuntu 10.04).

Mais de 40 programas para uso em aula, de diferentes licenas (sim, tem pirataria).

Muitas necessidades diferentes, para atender um pblico que sempre reclama.

Problema (pblico-alvo)

Usurio a imagem do co.No importa se aluno ou professor.

Exemplos:Compartilhar a rea de dados das mquinas de alunos.Pr: Facilita a vida dos professores em provas prticas.

Contra: Facilita a cola entre os alunos; facilita a troca de contedo ilcito (pornografia, jogos, filmes, etc.)

preciso ter um servidor Web para as aulas de PHP.Contra: cai no mesmo problema da cola e da troca de contedo.

Professor quer instalar programas quando bem entender, e quer incluir programas na imagem quando d na telha.

Cygwin de comer?

Ambiente semelhante ao Linux para Windows.Uma DLL (cygwin1.dll) com a camada de abstrao.

Uma coleo de programas recompilados para Windows tem de tudo, at o GNOME!

Objetivo: Usar ferramentas recompiladas, do Linux no Windows.

'(...) o Windows vai at ficar "legal" de usar!'Aurlio Marinho Jargas

Por que usar o Cygwin nesse ambiente especfico?

Resolver algumas questes necessrias para administrao das mquinas, como:Copiar arquivos da mquina do professor para as mquinas dos alunos, e vice-versa.

Desligar a(s) mquina(s) de laboratrio remotamente (uma ou vrias).

Trocar o nome das mquinas aps a restaurao de uma imagem de instalao.

Apagar o contedo das reas de dados dos alunos.

... e o cu o limite.

Procedimentos prvios

Instalao do Cygwin com o bsico necessrio.

Instalao de um servidor SSH para Windows nas mquinas: http://3.ly/EykP

Gerao de um ~/.ssh/known_hosts com a chave RSA de todas as mquinas (que a mesma, s muda o IP) assim uma pode logar na outra sem a requisio de senha.

Testes para ver se est tudo ok.

Script - trocar nome na rede

Uso do compname: http://3.ly/8Hw6.

Na rede, o nome dado segundo o IP:10.0.[instncia da rede].[nmero da mquina].

Exemplo: IP: 10.0.4.5 Nome: LAB4M5.

Pedao do script est a embaixo:

#!/bin/bash(...)scp compname.exe [email protected].$LAB.$i:~/ssh [email protected].$LAB.$i "chmod +x * ; /home/root/compname.exe /c LAB?kM?l"(...)

Script - limpar a rea de dados dos usurios

Apaga o contedo do drive D e do que indesejado na rea de Trabalho, e restaura as estruturas bsicas.

Pedao do script est a embaixo:

#!/bin/bash(...)ssh [email protected].$LAB.$i 'rm -rf /cygdrive/d/* ; tar xfj drive_d.tar.bz2 -C /'(...)ssh [email protected].$LAB.$i 'rm -rf /cygdrive/c/Documents\ and\ Settings/All\ Users/Desktop/* ; tar xfj links.tar.bz2 -C /cygdrive/c/Documents\ and\ Settings/All\ Users/Desktop/'

Script desligar as mquinas remotamente

Outro script simples:Comando shutdown, do Cygwin, permite desligar o computador (parmetro -s).

No Cygwin, a senha est associada ao usurio logo, tudo funciona bem se voc for Administrador.

Pedao do script a embaixo:

#!/bin/bash(...)ssh [email protected].$LAB.$i "/usr/bin/shutdown -s now"(...)

Script Enviar e receber arquivos

Problemas novos: Usurios no-privilegiados (professores) querem enviar arquivos para as mquinas dos alunos, e querem pegar esses arquivos de volta.Evitar o vai-e-vem de pendrives, e a trabalheira de ir at a mquina para acessar o contedo.

Problema da senha do usurio no dar permisso.Dar a senha do usurio Administrador? Nem ferrando!

Usurios, no geral, no sabem lidar com a linha de comando (parece que d choque).Criar uma interface mais agradvel.

Script Enviar e receber arquivos

Solues:Problema da senha: montar um script para executar com o comando expect, para que ele passe a senha para a mquina.

Usar o comando dialog para criar uma interface mais fcil para os usurios.

De quebra, fazer uma verso do script que desliga mquinas com uma interface mais fcil.

Script Enviar e receber arquivos

Script em expect:

Chamada ao script em expect:

#!/usr/bin/expect -fset timeout 500if {$argc != 3} { puts "use: $argv0 usuario senha ip_do_linux"; exit 0;}set usuario [lindex $argv 0]set senha [lindex $argv 1]set ip_do_linux [lindex $argv 2]spawn -noecho rsync -raqp --delete /cygdrive/d/Compartilhar $usuario@$ip_do_linux:/cygdrive/d/Compartilhar/expect "assword:" { send "$senha\r" }interact;

/cygdrive/d/copia_ida.exp $USUARIO $PASSWORD 10.0.$LAB.$i

Script Enviar e receber arquivos

Algumas questes...

Dificuldade para lidar com nomes que tenham espaos em branco.

Dialog Compilado e disponibilizado por Rodrigo Nakabashi.

Questes de verso da cygwin1.dll problemas para executar o Free Pascal junto com o Cygwin.

Questes de permisso de usurios.

Ainda muita coisa a fazer, mas at aqui j ajudou muito.

Mais informaes:

http://www.aurelio.net/cygwin - Portal brasileiro de Cygwin.

http://www.cygwin.com - Site oficial do Cygwin.

http://codigolivre.org.br/projects/dialogcyg/ - Dialog no Cygwin.

No futuro... Uma rea no Sourceforge para hospedar esses scripts? Quem sabe?

Mais idias?

Dvidas?

[email protected] jab: http://retrocomputaria.blogspot.com

Fim!

Por enquanto... Maiores novidades para breve!

Questo legal:Esta apresentao distribuda segundo a licena Creative Commons ShareAlike 2.5 (http://u.nu/97ied), logo:Pode copiar, distribuir, exibir, etc., e criar derivaes.

obrigatrio dar crdito ao autor original (ou seja, eu).

No possvel us-la comercialmente.

A licena viral, se mantm para trabalhos derivados.

Procure por uma cpia dessa apresentao futuramente em http://www.slideshare.net.

Muokkaa otsikon tekstimuotoa napsauttamalla

Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso

Ricardo Pinheiro

Solues com Cygwin