Beruflich Dokumente
Kultur Dokumente
Guilherme Esmeraldo
Crato/CE 2009
Este um PDP-7, que, na dcada de 60, era um minicomputador de "baixo custo" (custava 72.000 dlares da poca), equipado com apenas 8 kbytes de memria RAM. Hoje mesmo as agendas de bolso, das mais baratas, possuem bem mais memria do que ele. Devido s pesadas limitaes do equipamento, o sistema operacional deveria ser extremamente enxuto e otimizado, de forma a extrair o mximo do equipamento, consumindo um mnimo de memria. A combinao da criatividade dos IntroduoaoLinuxGuilhermeEsmeraldo 2
3 desenvolvedores, a necessidade e as limitaes impostas pelo equipamento, resultaram em um sistema bastante otimizado e elegante. Muitas das idias surgidas nesta poca continuam sendo usadas at hoje. O Unix evoluiu durante a dcada de 70, passando a ser usado em cada vez mais equipamentos e ganhando mais recursos. Quase sempre ele era usado em aplicaes "srias", incluindo instalaes militares, bancos e outras reas onde no existe margem para falhas. Devido a tudo isso o sistema se tornou muito robusto e estvel. Os primeiros sistemas Unix foram desenvolvidos de forma colaborativa, dentro de universidades e centros de pesquisas. Embora naquela poca ainda no existisse a internet como a conhecemos hoje, existia uma grande colaborao entre os desenvolvedores. Isso mudou na dcada de 1980, quando empresas como a AT&T, Sun e SCO, que detinham os direitos sobre o sistema, passaram a desenvolver verses proprietrias e a concorrerem entre si. A colaborao deixou de acontecer e a plataforma foi fragmentada em verses incompatveis. Outro fator importante foi a falta de investimentos em verses destinadas a micros PCs. Na poca, os PCs eram vistos como computadores muito limitados, incapazes de rodar sistemas Unix completos. Lembre-se de que estou falando do incio da dcada de 80, quando ainda eram usados micros XT e 286. Somados, estes dois fatores fizeram com que a plataforma definhasse, deixando o caminho livre para o crescimento da Microsoft. Chegamos, ento, ao Linux. Tudo comeou em 1991, quando Linus Torvalds comeou a trabalhar no desenvolvimento de um sistema Unix para rodar em seu 386. Na poca, o nico sistema similar era o Minix, um sistema para uso acadmico, que era bastante limitado. No incio, Linus usava o Minix para rodar os programas de esenvolvimento, mas, a partir de um certo ponto, ele passou a usar o prprio Linux. De incio, o Linux era um projeto muito pequeno, o hobby de um nico programador. Entretanto, ele tinha uma grande vantagem em relao aos sistemas UNIX que o precederam: o simples fato de ser disponibilizado sob a licena GPL. Isso permitiu que outros programadores adotassem o projeto, passando a contribuir com melhorias e correes. O sistema passou a crescer em um ritmo cada vez mais acelerado, chegando ao que temos nos dias de hoje. A licena GPL, to comentada, mas ao mesmo tempo to mal-compreendida, pode ser resumida em 4 direitos bsicos e uma obrigao: 1- Aplicativos disponibilizados sob a GPL podem ser usados por qualquer um e para qualquer fim, sem limitaes. Mesmo que eventualmente os criadores mudem de idia e resolvam passar a distribuir novas verses do programa sob outra licena, as verses que foram distribudas sob a GPL continuam disponveis, o que permite que outros desenvolvedores criem uma derivao e continuem o desenvolvimento. Isso traz uma boa dose de segurana para quem usa o aplicativo, j que reduz a chance de ele ser IntroduoaoLinuxGuilhermeEsmeraldo 3
4 descontinuado e deixar de estar disponvel. Enquanto houver um volume considervel de usurios, bem provvel que o desenvolvimento continue, de uma forma ou de outra. 2- Direito de tirar cpias do programa, distribu-las ou at mesmo vend-las a quem tiver interesse. Existe a possibilidade de ganhar algum dinheiro vendendo CDs gravados, por exemplo, mas como todo mundo pode fazer a mesma coisa, preciso vender por um preo relativamente baixo, cobrando pelo trabalho de gravao e no pelo software em si, que est largamente disponvel. Isso faz com que a forma mais eficiente de ganhar dinheiro seja prestar suporte e vender servios de personalizao e no venda direta, como no caso dos softwares comerciais. Para o cliente acaba sendo vantajoso, pois o custo de implantao ser o gasto com a consultoria e treinamentos, enquanto ao implantar um software comercial qualquer ele gastaria tambm com as licenas de uso. 3- Direito de ter acesso ao cdigo fonte do programa, fazer alteraes e redistribu-las. Para um programador este o principal atrativo, j que permite criar novos projetos usando como base o cdigo fonte de programas j existentes ao invs de ter sempre que comear do zero, sem falar na grande oportunidade de aprendizado que examinar o cdigo fonte dos programas disponveis propicia. 4- Direito (e ao mesmo tempo a obrigao) de redistribuir as modificaes feitas. Este o ponto onde existem mais mal-entendidos. Se voc desenvolve um software por hobby, ou por us-lo internamente na sua empresa, e no possui interesse em explorlo comercialmente, voc pode simplesmente divulgar o cdigo fonte para todo mundo, o que o caminho mais lgico se voc pretende atrair outros interessados em ajud-lo no desenvolvimento. Mas, caso voc pretenda receber pelo seu trabalho de desenvolvimento, existem duas opes: a) Voc pode distribuir o software livremente para aumentar a base de usurios e ganhar vendendo suporte, treinamentos e personalizaes ou: b) Voc s obrigado a distribuir o cdigo fonte a quem obtm o software, de forma que voc pode trabalhar batendo de porta a porta, vendendo o software para alguns clientes especficos e fornecendo o cdigo fonte apenas para eles. No existe nada de errado com este modelo, mas voc perde a possibilidade de ter contribuies de outros desenvolvedores, o que pode ser ruim a longo prazo. Os softwares distribudos sob a GPL tambm no contaminam softwares comerciais ou de outras licenas no caso de distribuio conjunta. Por exemplo, uma revista pode distribuir alguns softwares GPL no meio de um monte de aplicativos fechados na mesma edio. Os softwares GPL continuam sendo GPL, com todas regras que vimos acima, enquanto os softwares comerciais continuam sendo fechados. A revista deve incluir o cdigo fonte dos aplicativos GPL (ou pelo menos a informao de como obt-los via internet), mas naturalmente no precisa fazer o mesmo com os outros aplicativos includos no CD. Voc pode tambm usar algum software GPL em conjunto com o seu aplicativo IntroduoaoLinuxGuilhermeEsmeraldo 4
5 comercial, desenvolvendo um aplicativo qualquer que utiliza o Postgree SQL (um servidor de banco de dados), por exemplo. O Postgree SQL continua sendo GPL e o seu aplicativo continua sendo fechado; qualquer um pode usar e tirar cpias do Postgree SQL, mas voc controla a distribuio do seu aplicativo. Uma coisa no interfere com a outra. Ou seja, muito embora muitos vejam a GPL como algum tipo de licena comunista, que diz que todos os programadores devem fazer voto de misria e passar a trabalhar de graa em nome do bem comum, ela na verdade apenas uma licena que estimula a colaborao e o reaproveitamento de softwares e componentes, que vem nos trazendo diversas mudanas positivas. Ao ver micros com Linux em exposio nas lojas e em mercados, tenha em mente que esta apenas a ponta do iceberg. O uso do Linux em micros domsticos, pelo grande pblico, uma coisa relativamente recente. Antes de chegar aos desktops, o Linux cresceu entre os desenvolvedores e usurios avanados, dominou os servidores, invadiu o mundo dos dispositivos embarcados (celulares, roteadores, pontos de acesso wireless e at mesmo modems ADSL) e se tornou o sistema dominante no mundo dos supercomputadores. Segundo o http://www.top500.org/ (que mantm um rank atualizado dos 500 supercomputadores mais poderosos do mundo) em junho de 2009, tnhamos 387 dos 500 supercomputadores mais poderosos rodando diferentes verses do Linux. Fonte: http://antonini.med.br/blog/?p=4945 Para maiores informaes sobre a histria do Linux: consulte o site (em ingls): http://www.linuxjournal.com/article/6000
6 Diante dessa situao antagnica, a evidncia que uma das partes est enganada. E vale perguntar: ser que os opositores do Linux e dos produtos de cdigo aberto, em geral, esto de fato criticando com base em argumentao real ou esto simplesmente atirando para todo lado, apostando na tese de que uma mentira ou vrios mitos bombardeada atravs da mdia e dos mais diversos meios acabar virando verdade e afastando o potencial usurio de software livre? Para chegar a uma concluso, o melhor caminho relacionar os mitos sobre Linux, em particular, e sobre o software livre em geral, e destrinch-los. Antes de tudo, porm, importante alertar os leitores de que, ao ouvir esses mitos, devem pensar um pouco sobre eles para checar se fazem sentido, pois muitos deles podem parecer verdadeiros primeira vista. Alm disso, vale a pena refletir sobre os motivos que levariam pessoas a ter medo do Linux.
1.2.1 Os mitos
* Se gratuito, no deve ser bom; * no h bons aplicativos para Linux; * No h suporte para software livre, e nem poderia, pois um produto gratuito; * Linux no to seguro quanto software proprietrio. Hackers podem ler o cdigo e entrar no sistema; * Linux repleto de bugs; * Linux difcil; * No h treinamento para Linux; * Linux no estvel e confivel; * Nenhum negcio verdadeiro usa Linux; * Nenhum produtor de software, em s conscincia, vai abrir seu cdigo fonte; * Produtos como o Linux podem sumir do mercado a qualquer momento, pois no h uma empresa por trs; * Linux caro; * O Linux roda em antigos 386 e 486 com funcionalidade mnima.
1.2.2 Os fatos
Se gratuito, no pode ser bom. Este argumento, usado freqentemente, completamente falso. O Linux free software e a traduo correta para o termo free livre e no grtis. Distribuidores comerciais de Linux no proibem a distribuio de seus produtos atravs da Internet, CDs baratos encartados em revistas, ou outras formas de difuso sobre as quais no recebem nem um centavo. Mas esperar que alguma empresa fornea gratuitamente mdia de software, manual impresso, suporte telefnico e outros servios adicionais no mnimo irreal e fantasioso e nenhuma empresa afirma fazer isto. IntroduoaoLinuxGuilhermeEsmeraldo 6
7 H inmeros casos de aplicaes crticas rodando em Linux, por exemplo, muito da Internet repousa sobre Linux e software livre. Sem eles, a Internet no funcionaria. bem provvel que, direta ou indiretamente, voc use algum produto desses todos os dias e nem saiba. Servidores rodando Linux com sendmail gerenciam a maioria das mensagens atravs da Internet; grande parte dos sites da Internet utilizam o servidor web Apache. Para entender melhor o conceito de Free Software, veja as licenas que esto disponveis na Free Software Foundation, www.fsf.org . Uma das coisas que voc ir aprender por l que legtimo que o distribuidor de um software livre cobre pelo seu trabalho de gerar as cpias, e demais custos associados, bem como os servios adicionais oferecidos. Tambm as licenas esclarecem ao usurio os direitos de utilizao do Linux e outros softwares livres. No h bons aplicativos para Linux Esse argumento tambm falso. H muitos aplicativos excelentes. E mais e mais so lanados o tempo todo. Alm disso, agora que o movimento pelo software livre est fortalecido, muitas grandes empresas de software proprietrio esto fazendo verses de seus programas para sistemas operacionais livres. E h muitas razes de negcios para fazer isso, como ser mostrado frente. Alguns exemplos de boas aplicaes so: Netscape, Corel Word Perfect, StarOffice, Oracle, Informix, Adobe FrameMaker, Corel PhotoPaint, Borland Kylix e muito mais. No h suporte para Linux, e nem poderia, pois um produto gratuito Em 1997, o prmio InfoWorld para o produto do ano, na categoria de melhor suporte, foi para a comunidade de usurios Linux. Como isso pode acontecer? Bem, a Internet um lugar amplo e h reas onde aqueles que detm o conhecimento esto ligados. Descobriu-se que as pessoas recebem um suporte muito melhor e respostas mais rpidas usando listas de discusso, grupos de notcias, sites de ajuda on-line, do que tentando obter suporte de uma empresa comercial. Esse tipo de suporte gratuito, mesmo se o problema foi causado por erro do usurio e no por bug de software. Se todas essas informaes ainda no forem suficientes, o usurio poder optar por suporte pago, fornecido por empresas especializadas em suporte para Linux, como por exemplo a Linuxcare (www.linuxcare.com). Linux no to seguro quanto software proprietrio, hackers podem ver o cdigo e invadi-lo. Embora esse argumento parea bastante lgico, primeira vista, a verdade exatamente o oposto. Segurana atravs do desconhecimento no segurana. O desconhecimento d uma falsa sensao de segurana. H muitas pessoas que no encontram nada melhor para fazer do que tentar invadir software proprietrio. Algumas so muito talentosas e, se h brechas possveis, elas as encontraro. Considere por um momento algum algoritmo de encriptao. Se ele quer uma chance IntroduoaoLinuxGuilhermeEsmeraldo 7
8 de reconhecimento ele precisa ser Open Source. Por que? Porque sem uma intensa avaliao por parte da comunidade de desenvolvedores, ele nunca ser aceito como seguro. O ping of death, por exemplo, representou um ataque muito srio porque ele podia paralisar o servidor. Poucas horas depois de sua descoberta, a plataforma Linux j tinha uma correo contra o ataque. Produtos de cdigo fechado no chegaram a uma soluo por meses. Voc gostaria de rodar seu negcio sobre software que tem regras de segurana sobre as quais voc no pode ter nenhum controle e s quais no se tem acesso? Linux repleto de bugs E o software proprietrio, no ? Companhias tradicionais de software por maiores que sejam no tm recursos equiparveis e nem programadores to motivados se comparados legio de programadores que, em todo o mundo, dedicam seu tempo a desenvolver o Linux e outros free softwares. Assim, no por acaso que a correo de um bug, que no software comercial pode demorar semanas, meses ou at ser solucionado apenas na verso seguinte, so geralmente feitas em questo de horas.No se est falando que o software livre seja livre de bug, e sim, que com solues rpidas e contnuo melhoramento do cdigo fonte, tem uma clara vantagem. Alm disso, muito grande a responsabilidade de expor publicamente seu cdigo fonte, uma vez que as pessoas iro anlis-lo com severidade e criticar seus erros. Por outro lado, isso acelera muito o processo de desenvolvimento e tambm abre espao para diversas contribuies, as quais submetem a qualidade dos processos de desenvolvimento a uma estrutura bem mais rigorosa. Essa nova estrutura fornece invariavelmente uma depurao mais exigente e custos muito mais reduzidos. Linux difcil Essa alegao cai por terra, por exemplo, quando se v um estudo de caso como o do Colgio Stella, mostrado nesta edio da RdL, em que crianas da pr-escola iniciamse na computao atravs do Linux. No preciso ser nenhum especialista para pilotar um Linux, principalmente porque a grande maioria das pessoas quer aplicativos e ambientes grficos facis de usar e aprender intuitivamente ou com pequeno esforo e que encontram logo de cara ao instalar o Linux atravs de qualquer das distribuies existentes. A curva de aprendizado bem pequena, como em qualquer outro sistema que voc conhece, e a documentao muito extensa e acessvel para qualquer um. Browsers, e-mail, editores e processadores de textos, editores de imagens bitmap ou vetoriais, planilhas, gerenciadores de arquivos, visualizadores, bancos de dados, proxy, servidores, existem em quantidade e qualidade mais do que suficiente para convencer qualquer usurio. Na hora de pilotlo tudo transcorre sem traumas e usando o conhecimento de outros sistemas, logo se pega o seu jeito e se desmascara outro mito, que leva as pessoas a confrontar a real inteno dos que o acusam de ser difcil. Tambm devemos levar em conta o medo da mudana que induz as pessoas a pensar que o Linux difcil, mas na verdade a dificuldade est na mudana de paradigma. No h treinamento para Linux. IntroduoaoLinuxGuilhermeEsmeraldo 8
9 J existem vrias empresas, inclusive no Brasil, oferecendo treinamento para Linux, embora em muito menor escala do que as opes existentes para produtos comerciais. Mas isso est mudando rapidamente, inclusive porque as empresas de treinamento esto constatando quanto o movimento pelo software livre est crescendo, e percebem que esta uma grande oportunidade de negcios. Alm disso, h muita literatura sobre Linux e software livre, sem contar tudo que est disponvel na Internet e que representa um valioso recurso de treinamento. Veja na seo de classificados da RdL as empresas que j esto investindo no mercado brasileiro com treinamento para Linux. Linux no estvel ou confivel. Este mais um mito destinado a espalhar o medo e que absolutamente desprovido de fundamento. Quantas vezes seu sistema proprietrio travou nesta semana? Saiba que comum sistemas Linux funcionando durante meses ininterruptos, sem nunca travarem a ponto de precisar de uma reinicializao. E sobre a instalao de software? Seu sistema exige que voc reinicialize depois de instalar um novo programa? A resposta ser no, se voc estiver usando Linux. Alm disso, por que mais e mais empresas utilizam o Linux para rodar aplicaes em misso crtica? O correio dos Estados Unidos utiliza Linux para manejar grandes volumes de mensagens. O Apache um web server to estvel que a IBM abandonou seus produtos e agora distribui o Apache com suas aplicaes Web. Nenhuma grande empresa usa Linux. Ao contrrio. H um histrico de adeso onde o perfil de grandes especialistas em todas as reas, de desenvolvedores de gabarito, que avaliaram o sistema e passaram a recomend-lo a seus clientes. Um nmero significativo diz respeito base de provedores de Internet, onde se concentra uma enorme quantidade de mquinas movidas a Linux. E os administradores desses sistemas no optaram por ele porque mais barato, e sim porque atendia plenamente suas requisies tcnicas, como robustez, escalabilidade e segurana, e principalmente, porque ele totalmente customizvel e o acesso ao cdigo completo. No podemos deixar de citar os bancos, companhias automobilsticas e indstrias que utilizam o Linux como soluo em seus sistemas ou redes. Nenhum produtor de software, em s conscincia, vai abrir seu cdigo. E por que a Netscape o fez, tal como a SUN e a Digital Creations, entre tantas outras? Produtos como o Linux podem sumir do mercado a qualquer momento, pois no h uma empresa por trs. Na verdade, programas de cdigo aberto sobrevivem mesmo sem empresa, o que no possvel na indstria do software comercial. Existe o testemunho de muitos que foram seriamente lesados pela descontinuidade de determinados softwares comerciais, IntroduoaoLinuxGuilhermeEsmeraldo 9
10 o que no acontece quando o cdigo aberto, justamente porque o fato de o cdigo estar disponvel garante essa permanncia. No universo comercial justamente o contrrio, a falncia de uma empresa ou o monoplio podem deixar os usurios sem opo. Linux caro. Os opositores do Linux alegam que, computados o custo de aquisio do software e hardware, da assistncia tcnica, o treinamento das pessoas que vo utilizar a plataforma e o desenvolvimento de aplicaes, o Linux revela-se uma soluo bastante cara, e no gratuita, como se propaga. E afirmam que raramente o Linux grtis. Alm disso, consideram que o preo de aquisio de qualquer software apenas uma pequena parcela do custo total de propriedade da soluo da qual este software parte, principalmente incluindo custos diretamente relacionados, como treinamento, instalao e suporte, e outros associados de forma mais difusa, como adaptao de rotinas de trabalho, perdas de dados ou outros valores devido a falhas no software ou a vrus, como o recente I LOVE YOU, que por sinal no danificou nenhum sistema Linux. Alegar que o valor de uma licena de software, exclusiva por mquina, no parcela significativa na soluo global, encerra o debate com qualquer consumidor. Instalar ou atualizar o Linux de qualquer das grandes distribuies, com a liberdade para copiar ilimitadamente, com preos unitrios muito acessveis, tem sido um dos pilares da sua meterica expanso. Isso pblico e notrio, principalmente para as empresas, que sempre se preocupam em minorar seus custos de produo, representando uma economia fundamental na luta para manter a competitividade. Quando elas analisam rigorosamente outros quesitos como treinamento, desenvolvimento, suporte e mo-deobra, o resultado o espelho do que se v na mdia em todo o mundo: Linux. O Linux roda em antigos 386 e 486 com funcionalidade mnima. Claro que nos 386 e 486 a funcionalidade da atual verso do Linux restrita, mas plenamente possvel transformar uma mquina dessas em um servidor proxy para acesso remoto, um gateway de mail, um terminal de entrada de dados ou diversas outras aplicaes. De fato difcil rodar um ambiente grfico complexo como o KDE ou o GNOME em um 386 ou 486, mas sempre se pode contar com alternativas, como o Blackbox ou o IceWM. Ou mesmo interfaces em modo texto, mais do que suficientes em mquinas servidoras, que em geral dispensam at mesmo o monitor de vdeo. Fonte: mitos/ http://pliniotorres.wordpress.com/2007/03/05/linux-na-pratica-verdades-e-
IntroduoaoLinuxGuilhermeEsmeraldo
10
11 Suas principais caractersticas incluem: Multitarefa: vrias aplicaes podem ser executadas ao mesmo tempo; Multiusurio: Vrios usurios podem utilizar o sistema ao mesmo tempo; gratuito, atualizaes freqentes e desenvolvido voluntariamente por programadores experientes e colaboradores que visam a constante melhoria do sistema; Convive harmoniosamente no mesmo computador com outros sistemas operacionais; No exige um supercomputador para rodar; No necessrio licena para o seu uso; Maior estabilidade em relao ao Windows; Maior confiabilidade; No precisa ser reinicializado devido instalao de programas ou configurao de perifricos; Acessa discos formatados por outros sistemas operacionais; Suporte a linguagens de programao; No existem vrus no linux; Roda aplicaes windows atravs do WINE; Ambiente Shell; Suporte a diversos dispositivos e perifricos disponveis no mercado; Cdigo fonte aberto, isso significa que se voc for um programador, pode modificlo para se adequar a necessidades especficas, algo impossvel de ser conseguido com o Windows. Fonte: http://alabi.net/bb2008/Apostila_BB_2008_Parte_1.pdf
1.4 Distribuies
As diversas distribuies Linux diferem por vrias motivos, incluindo tcnicos, organizacional e filosfico. IntroduoaoLinuxGuilhermeEsmeraldo 11
12 As variaes tcnicas incluem o suporte de diferentes dispositivos de hardware e sistemas ou configuraes dos pacotes do software. As diferenas organizacionais podem ser motivadas por decises tcnicas ou tambm por razes filosficas ou at mesmo histricas. Algumas distribuies especializam-se no uso em desktops, servidores ou roteadores. Outros critrios incluem a segurana, inclusive a rapidez da disponibilidade de atualizaes de segurana; facilidade de trabalhar com o gerenciador de pacotes; e o nmero de pacotes binrios disponveis. Conhea as Distribuies do Linux e escolha qual se adapta a seu perfil de usurio. Seguem algumas.
1.4.2 Slackware
Podemos dizer que o Slackware uma das mais famosas distribuies para Linux. O seu criador, Patrick Volkerding, lanou a primeira verso da distribuio em Abril de IntroduoaoLinuxGuilhermeEsmeraldo 12
13 1992 e desde ento segue uma filosofia bem rgida: manter a distribuio o mais parecido com o UNIX possvel. As prioridades da distribuio so: estabilidade e simplicidade. O Slackware tem uma fama de ser difcil de usar, mas isto no bem uma verdade. Existem muitas distribuies mais fceis de se usar, mas nada melhor do que uma um pouco mais difcil para aprender muito mais! Ele possui uma interface de instalao bem amigvel, alm de uma srie de scripts que ajudam na instalao e desinstalao de pacotes. O problema que muitos pensam que tm de se pegar as fontes dos programas, compil-los, instal-los para depois usar no Slackware, mas isso no verdade! O sistema padro de pacotes do Slackware o .tgz (que ao contrrio do que muitos pensam, no igual ao .tar.gz, pois contm algumas informaes adicionais sobre a instalao). Isso facilita e muito o trabalho. Mas como no h uma diversidade de programas disponveis como h nos pacotes DEB ou RPM, algumas coisas devem sim ser compiladas e instaladas. O Slackware pode ser uma alternativa tanto para usurios iniciantes como para os j experientes. As opes de instalao permitem que o usurio possa instalar em sua mquina uma distribuio que tem como caractersticas uma grande variedade de desktops (gerenciadores de janelas como o Gnome, KDE, Window Maker, Enlightenment, fvwm), ou como um poderoso servidor com todos os recursos necessrios (utilitrios de rede, servidores http, noticias, e-mail, ftp, etc). Os pacotes sempre esto em atualizao, mantidos por uma verso especial da distribuio: o slackware-current. Isto desfaz o mito de que o slackware no uma distribuio dinmica. Todos aqueles aplicativos esto disponveis e so atualizados regularmente. Ento o nico potencial que o Slackware ainda no tem um gerenciamento de pacotes que permita uma checkagem de dependncias Fora isso, ela atende todas as boas exigncias facilmente! Voc poder obter mais informaes e fazer o download desta distribuio atravs da pgina oficial que fica no seguinte endereo: Site: http://www.slackware.com/
1.4.3 Debian
Talvez a filosofia do Debian seja o ponto que mais chama ateno nesta popular distribuio! No incio, antes do Linux ser lanado oficialmente por Linus Torvalds, o projeto GNU j tinha vrias ferramentas Unix-like disponveis. O que faltava era um kernel e ento quando Linus Torvalds lanou o seu kernel Linux, resolveram ento criar o GNU/Linux. No, no outro sistema diferente, s um nome para chamarem as distribuies que usam o kernel Linux e que tm ferramentas feitas pelo projeto GNU. Mas o que isso tudo tem haver com o Debian? O Debian GNU/Linux uma distribuio que segue toda esta filosofia do projeto GNU, oficialmente contendo apenas pacotes com programas de cdigo-fonte livre, feito por voluntrios espalhados IntroduoaoLinuxGuilhermeEsmeraldo 13
14 pelo mundo e sem fins lucrativos alguns. Apesar de atualmente o Debian ser usado com o kernel Linux, ele se entitula como um sistema operacional que pode usar no apenas o kernel do Linux em si, mas outros kernels como o Hurd (projeto de kernel livre feito fora do escopo do Linux). Isso o faz o Sistema Operacional Universal, pois o principal objetivo deles fazer um sistema que rode em todos os lugares e com vrios kernels. E claro, isso tudo na filosofia GNU. O Debian tem uma quantidade incrvel de pacotes pr-compilados para vrios tipos de arquiteturas. Ele conta com mais de 7000 pacotes, que facilitam e muito a instalao e gerenciamento de programas no sistema. Alm do mais, ele o pai do apt, a ferramenta de atualizao de pacotes automtica, feita pela internet. Mas h quem diga que o Debian ainda tem muito o que melhorar: Uma instalao complicada e fanatismo so alguns pontos fracos que muita gente encontra nesta distribuio. Site: http://www.debian.org/
1.4.4 Conectiva
Uma empresa de servios ISP, que trabalhava com Linux, resolveu desafiar a rotina e comeou a criar uma distribuio baseada na RedHat. Esta empresa brasileira criou (at onde eu saiba) a primeira distribuio brasileira, o Conectiva Red Hat Linux. A primeira verso se chamou Parolin e no continha muita coisa alm de tradues da distribuio Red Hat. Porm, seu desenvolvimento foi crescendo e resolveram partir para um rumo prprio, fazendo suas prprias alteraes e ideologias na distribuio em uma rota diferente da empresa americana Red Hat. Ento surgiu o Conectiva Linux. A partir do ano de 1999, a popularidade do Linux comeou a explodir no Brasil. E o Conectiva Linux, que j estava na sua verso 3.0, ficou muito popular entre os usurios brasileiros e foi isso que fez com que a empresa conseguisse investir mais ainda na distribuio. O Conectiva Linux se tornou uma boa e popular distribuio brasileira, que provou ser to boa quanto as estrangeiras. H quem aponte seus pontos fortes e fracos Apesar de ter tomado um rumo diferente ao da Red Hat, sua distribuio ainda se baseia nos conceitos bsicos da americana, assim como muitas outras baseadas na Red Hat. Mas muita coisa boa foi feita para melhorar a distribuio, como a criao do apt (ferramenta de atualizao de pacotes) para pacotes RPM, o GNU parted (particionador), tradues diversas para o portugus, entre outras coisas. O objetivo da distribuio tornar fcil as coisas para os usurios novos, sem comprometer muito o andamento do sistema. Recentemente, a empresa Conectiva se juntou francesa Mandrake e juntos comearam a fazer a distribuio Mandriva: uma juno das duas. IntroduoaoLinuxGuilhermeEsmeraldo 14
15 Site: http://www.conectiva.com.br/
1.4.5 Mandrake
Esta empresa francesa resolveu apostar no Linux como um sistema fcil para todos! E esse o objetivo principal da empresa, criar uma distribuio fcil para todos os tipos de pessoas usarem. Baseada na americana Red Hat, o Mandrake vm com vrios programas de configurao fceis de serem utilizados e bem teis. Durante o crescimento brusco do Linux mundialmente, o Mandrake adquiriu muitos fs e uma popularidade incrvel principalmente na Amrica do Norte, atravs de sua interface fcil e dinamismo. A empresa quase ficou falida, mas com a ajuda da comunidade e uma boa estratgia comercial, ela conseguiu ressurgir das cinzas e agora se juntou Conectiva para criar a juno das duas distribuies: Mandriva! Site: http://www.mandrivalinux.com/
1.4.6 Fedora
O Fedora talvez, a melhor proposta de uma distribuio baseada na comunidade junto com o Debian. Esta distribuio derivada da Red Hat, que antes tinha seu desenvolvimento feito apenas internamente e que resolveu abrir as suas portas para toda a comunidade, criando assim o Fedora Core. Em todos os modos, o Fedora um tipo de Red Hat, mesmo porque a empresa Red Hat pega o Fedora e o transforma em sua linha de produtos Red Hat Enterprise Linux (RHEL). O que mudou que agora a Red Hat no manda mais totalmente no projeto. Vrias pessoas da comunidade se integram na equipe de desenvolvimento e grandes progressos foram obtidos atravs desse modelo. Hoje o Fedora conta com muitos pacotes disponveis em RPM (formato de empacotamento nativo) e ferramentas de configurao que facilitam e muito a vida de um administrador de sistemas ou um usurio final. Alm da distribuio em si, h tambm vrios projetos da comunidade que apoiam o Fedora e influenciam bastante os usurios da distribuio. Site: http://fedoraproject.org/
1.4.7 CentOS
O CentOS uma distribuio baseada nos fontes do Red Hat Enterprise Linux. IntroduoaoLinuxGuilhermeEsmeraldo 15
16 Quando a Red Hat fechou sua distribuio Red Hat (criando a verso Enterprise e liberando a verso comunitria Fedora), ela seguiu a filosofia do cdigo-aberto e deixou disponvel os fontes da distribuio. Algumas pessoas se juntaram, empacotaram estes fontes e criaram uma distribuio clone do Red Hat Enterprise Linux, que contm a mesma coisa e s muda o nome: CentOS. Com o tempo a distribuio ganhou prestgio e hoje em dia bastante utilizada no mercado, como alternativa livre para o Red Hat Enterprise Linux. Site: http://www.centos.org/
1.4.8 SUSE
A SuSE (no, no a amiga da Barbie!) era uma empresa alem que foi comprada pela Novell e se tornou ao longo do tempo uma das distribuies corporativas mais utilizadas, disputando com a Red Hat. No incio, a SuSE baseava sua distribuio no Slackware, mas logo depois tomou rumo diferente, comeando a implementar os pacotes com o RPM e fazendo mudanas na forma de organizao do sistema. Criaram tambm uma ferramenta de configurao do sistema chamada YaST, que facilita e muito mexer nas configuraes da distribuio. As pessoas achavam que o nico problema da SuSE era que ela mantinha algumas ferramentas proprietrias e mantinha seu produto sempre pago Mas isso comeou a mudar depois de sua aquisio pela Novell, que parece estar contribuindo ainda mais para a comunidade do software livre desenvolvendo e liberando seus programas em licenas livres. Atualmente a distribuio SuSE usada em muitas mquinas pela Europa afora, incluindo instituies educacionais e governo. Sem dvida uma distribuio notvel, porm no muito usada no Brasil. Site: http://www.novell.com/linux/
1.4.9 Kurumin
O Kurumin uma distribuio brasileira baseada no Knoppix, que por sua vez baseada na distribuio Debian. A proposta do Kurumin fazer uma personalizao do Linux capaz de rodar diretamente do CD (sem precisar instalar, mas mesmo assim se o usurio quiser, ele instala) e com muitas facilidades para os usurios iniciantes. Sem dvida alguma, o Kurumin fez parte do crescimento do Linux no Brasil, pois foi com ele que muitas pessoas comearam a ver como um desktop Linux pode ser bonito e usvel. Esta distribuio se propagou bastante e ajudou a divulgar mais ainda o Linux. IntroduoaoLinuxGuilhermeEsmeraldo 16
17 Site: http://www.guiadohardware.net/kurumin/
1.4.10 Ubuntu
Depois de vender uma empresa de certificados de segurana, um empresrio simpatizante do software livre resolveu fundar a Canonical, que por sua vez utilizou o Debian como base e criou a distribuio Ubuntu. O Ubuntu veio como uma forma de popularizar o Linux, como um Debian cheio de facilidades e muito funcional. Com o Ubuntu voc encontra todas as funcionalidades do Debian j prontas e integradas para o usurio final, obtendo assim facilidade, compatibilidade e poder (!). O Ubuntu por padro vem com o desktop GNOME, mas existe um projeto paralelo e afiliado ao Ubuntu: o Kubuntu, que s faz trocar o desktop de GNOME, para KDE ;) Site: http://www.ubuntu.com/
1.4.11 Gentoo
O Gentoo veio com uma proposta diferente de todas as outras distribuies: Ao invs de fornecer aos seus usurios os programas j prontos para o uso, ele disponibiliza um sistema automtico que baixa da Internet os arquivos de um programa, compila de acordo com sua prpria mquina e instala no sistema. O processo acaba se tornando muito mais lento do que instalar um pacote j pronto, mas a vantagem que o programa fica otimizado para a sua mquina e por isso h um pequeno ganho de desempenho. S no recomendo voc instalar uma distribuio como o Gentoo em mquinas velhas e lentas, a no ser que voc queira esperar alguns dias para compilar muitas coisas :) Ok ok, as vezes ser paciente bom! Site: http://www.gentoo.org/
1.4.12 LTSP
LTSP, ou Linux Terminal Server Project, um projeto de um pacote com uma minidistribuio para thin clients (ou clientes finos). Para quem no conhece o que isso, s dar uma olhada nos famosos telecentros, que geralmente utilizam LTSP. Com este pacote, voc consegue rodar maquinas sem HD, utilizando todos os dados por uma rede. As interfaces e programas so todos instalados em um servidor e as mquinas acessam este servidor.
IntroduoaoLinuxGuilhermeEsmeraldo
17
18 Isso til principalmente quando voc tem vrias mquinas velhas. Usando o LTSP, voc pode reaproveitar essas mquinas velhas e rodar LTSP nelas. Com isso voc poder usar programas mais pesados em mquinas velhas como um 486. Site: http://www.ltsp.org/
1.4.13 ZipSlack
O zipslack um mini-Slackware, feito para rodar numa partio DOS/Windows. Atravs desta verso especial, possvel qualquer um pegar na internet um arquivo em formato .zip, descompact-lo no diretrio c:\linux e usar o linux vontade! Para realizar este feito, usa-se o sistema de arquivos UMSDOS e atravs do utilitrio loadlin (substitui o LILO), o kernel carregado. O arquivo do zipslack vem bem enxuto, mas voc pode rechear simplesmente pegando os pacotes .tgz e instalandoos com o comando installpkg pacote.tgz e com isso voc pode instalar o sistema X, junto com os Gerenciadores de janelas e tambm servidores como o Apache. Por que o nome zipslack? Esta mini-distribuio foi feita para se rodar em um disco de zipdrive e tem um limite de 100MB. Claro que voc pode optar em no utilizar um zipdrive e assim poder usar o espao que quiser, mas um recurso muito bom para alguns utilitrios bsicos que voc pode carregar para todo lugar junto com o disquete e drive do zipdrive. O site oficial dele o mesmo que o do Slackware. Site: http://www.slackware.com/
IntroduoaoLinuxGuilhermeEsmeraldo
18
19 Existem centenas de distribuies disponveis por a afora. Assim no possvel listar todas aqui. Felizmente para preencher essa lacuna temos um site muito bom chamado DistroWatch (http://distrowatch.com/), que lista praticamente todas (seno, as principais) as distribuies existentes, d informaes sobre elas, verses de programas, links, e muito mais. um timo recurso para conhecer essa diversidade. Um site interessante, no qual voc responde um questionrio (em ingls), e no final do teste, aparecem quais distribuies do Linux mais se encaixam com o q vc precisa, com o q vc procura: http://www.zegeniestudios.net/ldc/index.php. De acordo com o prprio site, j foram realizados mais de 1 milho de testes. Fontes: http://jonathasonline.wordpress.com/2007/02/19/qual-distribuicao-linux-instalar/ http://www.devin.com.br/eitch/tlm4/s1-qual-distro-instalar.html
IntroduoaoLinuxGuilhermeEsmeraldo
19
20
2.1.2 Caractersticas
Seguem algumas catactersticas do shell: Nos prompts do Linux, quando se acaba com o smbolo $, isto quer dizer que voc IntroduoaoLinuxGuilhermeEsmeraldo 20
21 est logado com um usurio normal. Se voc estiver logado com o root, ao invs do smboloa $, no final do prompt existir o smbolo #; Nos nomes dos arquivos, os caracteres MAISCULOS e minsculos fazem a diferena. Isso quer dizer que por exemplo: os arquivos PROGRAMA.tar.gz e programa.tar.gz so dois arquivos completamente diferentes! Ou ento: ls um comando e LS um erro; No Linux, no existem extenses .EXE, .COM especial para programas executveis. Ao invs disso, os arquivos tm permisso de executvel ou no; Alm de arquivos comuns, no Linux existem os chamados links simblicos, que so nada mais nada menos que uma espcie de atalhos; O Linux um sistema multi-tarefa, por isso, ele pode ser acessado por vrios consoles ao mesmo tempo, assim como pode ser rodado vrios programas ao mesmo tempo. Para mudar o console do 1 a 6, utilize Alt-FN, onde o N corresponde ao nmero do console. Exemplo: Alt+F1, Alt+F2, Alt+F3, Alt+F4, Alt+F5 e Alt+F6; Depois de logado, se quiser sair, utilize o comando exit, ou o comando logout ou ainda a combinao de teclas Ctrl+D. Exite um recurso muito interessante nos shells do Linux, que o tab completion. Com ele voc pode completar comandos ou nomes de arquivos mais rapidamente sem precisar digitar tudo. Para utilizar esse recurso, basta apenas digitar as primeiras letras do comando ou arquivo e apertar a tecla Tab. O Linux ir completar o comando ou arquivo para voc. Caso haja mais de um arquivo comeando com as letras que voc digitou, apertando Tab mais uma vez ir lhe dar todas as opes.
22 $ ls -l Lista os arquivos no ocultos, mostrando o tamanho e as permisses de usurios. $ ls -la Lista todos os arquivos, mostrando o tamanho e as permisses de usurios. $ cd Muda o diretrio para o seu diretrio de usurio. $ cd nomedir Muda para o diretrio "nomedir", desde de que este esteja dentro do diretrio atual. $ cd /nomedir1/nomedir2 Muda pra o diretrio "nomedir2" dentro do diretrio "nomedir1", que por sua vez est no diretrio raiz ("/"). OBS: Se voc quiser entender melhor o sistema de arquivos do Linux, leia a prxima seo. $ cd .. Muda para um diretrio acima do diretrio atual. $ cd Muda para o diretrio acessado anteriormente ao diretrio atual. $ cd $ cd ~ Muda para o volta para o diretorio do usurio. OBS: O smbolo ~ referencia a pasta do usurio.
23 $ mkdir /home/nomedir Cria o diretrio "/home/nomedir". $ mkdir nomediretrio Cria o diretrio "nomedodiretrio" dentro do diretrio atual. $ mkdir teste{1,2,3,4} Cria os diretrios: teste1, teste2, teste3 e teste4. $ mkdir p dir1/dir2 Cria o diretrio dir2 dentro de dir1. Se dir1 no existir, ser criado automaticamente. $ tree Mostra pastas/arquivos de forma hierrquica. $ rmdir /home/nomedir Remove o diretrio nomedir, desde que ele esteja vazio. $ rmdir nomediretrio Remove o diretrio "nomedodiretrio" (desde que esteja vazio) dentro do diretrio atual. $ rmdir p dir1/dir2 Comando semelhante ao mkdir p, porm para remoo. Remove dir2 e, em seguida, dir1, desde que estejam vazios. $ rm r diretrio1 Remove o diretrio diretrio1 e todo o seu contedo (inclundo outros diretrios). $ rm rf diretrio1 Semelhante ao commando anterior. A diferena que ir atuar no modo force (no ir questionar o usurio sobre a remoo de arquivos/diretrios) OBS: Muito cuidado ao usar este comando, pois arquivos e diretrios importante podem ser perdidos! $ mv /home/nomediretrio/* /home/nomediretrio2/* IntroduoaoLinuxGuilhermeEsmeraldo 23
24 Transfere o contedo do diretrio "/home/nomediretrio" para o diretrio "/home/nomediretrio2". $ mv nomediretrio nomediretrio2 Renomeia o diretrio "nomediretrio" para o diretrio "nomediretrio2". $ cp r dir1 dir2 Copia o diretrio dir1 para dir2, incluindo subdiretrios. 2.1.4.2 Arquivos $ cat arquivo1 Exibe contedo de arquivo1 $ cat arquivo1 arquivo2 Exibe contedos concatenados de arquivo1 e arquivo2, respectivamente. $ tac arquivo1 Faz o mesmo que cat, porem exibe o contedo em ordem inversa (da ltima para a primeira linha). $ touch nomedoarquivo Cria um arquivo vazio chamado nomedoarquivo $ touch dir1/nomedoarquivo Cria um arvquivo vazio chamado nomedoarquivo dentro do diretrio dir1. OBS: Outra forma de criar arquivos seria utilizar editores de texto. No linux existem diversos editores, entre eles: VI, VIm, Pico, Nano, Elvis, Emacs, GEdit, KWrite, Kate, etc. Todos seguem suas prprias filosofias (apresentao, teclas de atalhos, suporte, etc.) e podem estar presentes ou no em vrias distribues (exceto VI que universal. Ver Captulo 3.). $ cp arquivo1 arquivo2 Faz uma cpia de arquivo1 para arquivo2 $ cp arquivo1 dir1/arquivo2 Faz uma cpia de arquivo1 dentro do diretrio dir1. Esta copa ser nomeada IntroduoaoLinuxGuilhermeEsmeraldo 24
25 arquivo2. $ rm arquivo1 Remove o arquivo arquivo1 $ rm i arquivo Solicita uma confirmao do usurio antes de remover o arquivo.
26 Pagina o contedo de arquivo1 na tela, quando o mesmo muito grande para ser exibido. A rolagem s poder ser de cima para baixo. $ less arquivo1 Semelhante ao comando anterior, com a diferena ser possvel rolar o texto para cima e/ou para baixo. $ df -h Exibe informaes sobre as parties do sistema. $ du sh dir1 Exibe quanto de espao no disco o diretrio dir1 ocupa.
Fonte: http://www.vivaolinux.com.br/artigo/Uma-introducao-ao-shell-(parte-1)
IntroduoaoLinuxGuilhermeEsmeraldo
26
27 Alguns diretrios e suas funes: * /bin : diretrio no qual so encontradas ferramentas necessrias a operao do sistema. * /sbin : aqui podemos encontrar as ferramentas de operao e manuteno do sistema. * /etc : os arquivos de configurao do sistema se encontram nesse diretrio. * /dev : neste diretrio encontramos os arquivos relacionados aos dispositivos de hardware. Neste diretrio cada dispositivo de hardware possui um arquivo. * /home : os usurios cadastrados no sistema possuem um diretrio com seu nome dentro de /home. Em geral a nica rea acessvel aos usurios para gravarem seus arquivos. * /lib : as bibliotecas de funes do sistema se encontram aqui (so as bibliotecas de alocao dinmica do Linux). * /mnt : diretrio utilizado para conexo com volumes presentes em outros computadores da rede ou para acessar dispositivos removveis. * /tmp : aqui se encontram os arquivos temporrios montados pelo sistema. * /usr : os arquivos de cada usurio se encontram contidos neste diretrio. Este diretrio muito importante, pois nele se encontra basicamente tudo que o usurio vai utilizar (editores de texto, ferramentas, navegadores, ambientes grficos e os demais aplicativos voltados para os usurios). * /var : aqui se encontram informaes variveis do sistema (spool de impressora, caixas postais, logs do sistema, ...). Fonte: Linux/ http://www.vivaolinux.com.br/artigo/Entendendo-o-sistema-de-arquivos-do-
IntroduoaoLinuxGuilhermeEsmeraldo
27
28
IntroduoaoLinuxGuilhermeEsmeraldo
28
29
3.2 Iniciando
Iniciar uma sesso do vi simples. Digite $ vi e o vi abrir um arquivo vazio para voc comear a trabalhar. Alternativamente, voc pode especificar o arquivo a ser aberto na prpria linha de comando, dessa forma: $ vi meuarquivo No se preocupe com os ~ no editor - eles so apenas indicadores visuais do fim do seu arquivo e no aparecem no seu documento. A primeira (e mais confusa) coisa sobre o vi so os vrios diferentes modos nos quais o editor pode operar. Para os nossos propsitos, eu vou separ-los em duas amplas categorias: "modo de edio" (insert mode) e "modo de comando" (command mode). O "modo de edio" aonde voc vai passar a maior parte do seu tempo - ele permite adicionar (ou inserir) texto no seu documento. O "modo de comando", por outro lado, permite que voc se mova pelo documento, apague ou substitua blocos de texto e acesse funes teis do vi como buffers, por exemplo. Quando o vi iniciado, ele geralmente est em modo de comando. Para entrar no modo de edio digite i o vi mostra um aviso da troca de modos no canto inferior esquerdo. Agora voc pode digitar o texto no documento de maneira normal. Quando tiver terminado, aperte ESC para retornar ao modo de comando. Para comear a inserir texto numa linha nova, use o para entrar no modo de edio com o cursor j posicionado na prxima linha, ou O para entrar no modo com o cursor na linha anterior. Alm de inserir texto, o vi tambm permite que voc sobrescreva um texto existente isso chamado de "modo de substituio" (replace mode), que pode ser acessado digitando-se R no modo de comando. Tudo que voc digitar agora ser "escrito por cima" do texto existente. Se a sua inteno era substituir um nico caractere - por exemplo, para corrigir um erro de digitao - use r para substituir um nico caractere; o editor retornar automaticamente para o modo de IntroduoaoLinuxGuilhermeEsmeraldo 29
30 comando quando o caractere for substitudo. Obviamente, em algum momento, voc vai precisar salvar o seu trabalho. No vi, isso feito via o comando de "escrita" (write), abreviado para :w Para sair, use o comando :q O vi tambm permite que se combine comandos. Por exemplo, tente :wq para salvar seu documento e sair do programa. Alternativamente, se voc quiser descartar seu texto use :q! que sai do vi sem salvar nenhuma alterao do arquivo sendo editado. Obviamente, todos esses comandos com ":" devem ser executados no modo de comando. Tentar utiliz-los no modo de edio os far aparecer como parte do seu documento.
31 { e } O movimento entra sentenas requer o uso cuidadoso de ( e ) Se voc precisa se mover at uma linha especfica do seu documento - linha 568, por exemplo use esse comando: :568 Para ir para o incio do arquivo, digite gg e para o fim, somente G [isso shift+G] E o vi tambm tem um equivalente a "Page Up e "Page Down". Use ^F [isso ctrl+F] para ir uma pgina a frente, e ^B [isso ctrl+B] para uma pgina atrs. Para saber a sua posio no documento, use ^G [isso ctrl+G] claro que essas no so as nicas teclas de movimento - existem muitas outras. No entanto, por enquanto, essas devem ser suficientes para o seu prximo exerccio.
IntroduoaoLinuxGuilhermeEsmeraldo
31
32 Oops... voc no usou esses dois, no ? No tem problema, o vi tambm possui um comando de "undo" (desfazer) muito til, que pode ser usado teclando u sempre que voc precisar desfazer algum engano. E claro, junto com o undo temos o comando de "redo" (refazer), que permite repitir aes passadas. Basta teclar . [isso mesmo, um ponto] Quando voc apaga alguma coisa no vi, o texto apagado geralmente vai parar num buffer temporrio na memria, aonde ele fica at ser substitudo. Esse texto pode ser re-inserido no seu documento com o comando de "put" (colocar). Se voc estiver acompanhando tudo j deve imaginar que o comando de "put" acessado com p Vamos l, tente. Apague uma linha, mova o cursor para um novo pargrafo e a coloque em outro lugar. Simples, e equivalente funcionalidade cortar e colar que existe em outros editores. Caso voc queira inserir o texto apagado acima da posio atual do cursor, simplesmente use P ao invs de p E quanto a copiar e colar? Tambm muito fcil: o vi usa o comando "yank" para copiar um texto de uma forma bem similar ao comando de apagar. Para copiar uma palavra, use yw J yy copia uma linha inteira e a coloca no buffer temporrio, pronta para ser colocada em outro lugar.
IntroduoaoLinuxGuilhermeEsmeraldo
32
33 Como voc ver ao us-lo, esse comando simplesmente executa o comando "dd" oito vezes, apagando oito linhas do documento sem que voc precise ir a uma farmcia comprar uma aspirina depois. E essa tcnica pode ser usada com quaisquer dos comandos que voc j aprendeu: voc pode utiliz-la para copiar mltiplas linhas, repetir inseres um nmero especfico de vezes, e at mesmo mover o cursor para ocorrncias especficas de palavras no documento.
IntroduoaoLinuxGuilhermeEsmeraldo
33
34
IntroduoaoLinuxGuilhermeEsmeraldo
34
35 Agora vamos supor que eu quisesse trocar de posio as frases "bebendo pina coladas" e "passando bronzeador". Isso o que eu faria: 1. Mover o cursor para o comeo da palavra "bebendo" 2. Apagar as trs palavras e mov-las para um buffer chamdo "p" "p3dw 3. Mover o cursor para o comeo da palavra "passando" 4. Apagar essas duas palavras e mov-las para um buffer chamado "s" "s2dw 5. Mover o cursor de volta para antes da palavra "e" 6. Inserir o contedo do buffer "s" "sp 7. Mover o cursor para depois da palavra "e" 8. Inserir o contedo do buffer "p" "pp 9. Me parabenizar espalhafatosamente, como eu estou fazendo agora! Como voc pode ver, para usar um buffer, basta preceder o comando normal de copiar/apagar/substituir com o identificador do buffer. Um identificador de buffer consiste de uma aspas dupla seguida por uma letra minscula. No exemplo acima, tanto "s quanto "p so identificadores de buffers. Devo lembr-los aqui que nem os bookmarks, nem os buffers so mantidos quando voc sai do editor.
36 comando "editar", assim: :e /caminho/para/arquivo.txt Se voc preferir inserir o contedo de outro arquivo diretamente no documento que voc est editando agora existe um comando de leitura "read" feito justamente para isso. Tente: :read /caminho/para/arquivo_a_ser_inserido.txt Se voc um programador, definivamente vai gostar da funcionalidade do vi de te mostrar mltiplas vises do mesmo arquivo, que no jargo computacional chamado de "window splitting" (diviso de janelas). E o comando , naturalmente :split Cada uma das janelas criadas pode ser manipulada de forma independente das outras, apesar das mudanas feitas no arquivo ficarem imediatamente visveis em todas elas. Vamos avanar um pouco mais. Que tal carregar arquivos diferentes em cada uma das janelas? Por exemplo, no seria timo se voc pudesse carregar um arquivos HTML em uma, um script CGI associado em outra, alguma documentao de ajuda numa terceira e ter todas as trs visveis ao mesmo tempo? Bem, voc pode. Basta usar o comando "new" (novo) para criar uma nova janela para cada um dos arquivos, assim: :new form.html :new mailform.cgi :new help.txt Para alternar entre as janelas, use ^W W [isso ctrl-W seguido por um W] Fonte: http://www.inf.ufes.br/~proinfo/docs/vi/vi.xml
IntroduoaoLinuxGuilhermeEsmeraldo
36
37
IntroduoaoLinuxGuilhermeEsmeraldo
37
38
39 porm, se ele for usado de maneira isolada, ou seja, sem o parmetro de um sinal, o kill por padro executa o sinal TERM. A sintaxe para a utilizao do comando kill a seguinte: kill -SINAL PID Como exemplo, vamos supor que voc deseja interromper temporariamente a execuo do processo de PID 4220. Para isso, pode-se usar o seguinte comando: kill -STOP 4220 Para que o processo 4220 volte a ser executado, basta usar o comando: kill -CONT 4220 Se o sinal precisa ser enviado a todos os processos, pode-se usar o nmero -1 no lugar do PID. Por exemplo: kill -STOP -1 Como j dito, usar o comando kill isoladamente - por exemplo, kill 4220 - faz com que este use o sinal TERM por padro. Esse sinal, no entanto, pode ser ignorado pelos processos. por isso que boa prtica usar o comando "kill -9 PID" para "matar" um processo, pois o nmero nove representa o sinal kill e este no pode ser ignorado. Isso deixa claro que se voc conhecer o nmero que atribudo a um sinal, voc pode uslo no lugar de seu nome. Com exceo de alguns sinais, a numerao de cada um pode mudar de acordo com a distribuio ou com a verso do kernel. Tambm comum usar o kill da seguinte forma: kill -l PID. A opo "-l" (letra L minscula) usada para listar os processos que aceitaram o kill. Agora, imagine que voc no saiba qual o PID de um processo e tenha se esquecido que o comando ps (visto mais frente) descobre tal informao. Neste caso, pode-se usar o comando killall, desde que voc saiba o nome do processo. A sintaxe : killall -SINAL processo Por exemplo: killall -STOP vi
40 paralisados para que o processador possa executar um processo prioritrio. Isso quer dizer que os processos, em certos momentos, podem estar em situaes de execuo diferentes. O Linux trabalha, essencialmente, com quatro tipos de situao, isto , estados: Executvel: o processo pode ser executado imediatamente; Dormente: o processo precisa aguardar alguma coisa para ser executado. S depois dessa "coisa" acontecer que ele passa para o estado executvel; Zumbi: o processo considerado "morto", mas, por alguma razo, ainda existe; Parado: o processo est "congelado", ou seja, no pode ser executado.
41 Um exemplo: renice +19 1000 -u infowester Neste caso, o comando renice alterou a prioridade do processo 1000, assim como a prioridade dos processos do usurio infowester.
42 %CPU - porcentagem do processamento usado; %MEM - porcentagem da memria usada; VSZ - indica o tamanho virtual do processo; RSS - sigla de Resident Set Size, indica a quantidade de memria usada (em KB); TTY - indica o identificador do terminal do processo; START - hora em que o processo foi iniciado; TIME - tempo de processamento j consumido pelo processo; COMMAND - nome do comando que executa aquele processo; PRI - valor da prioridade do processo; NI - valor preciso da prioridade (geralmente igual aos valores de PRI); WCHAN - mostra a funo do kernel onde o processo se encontra em modo suspenso; STAT - indica o estado atual do processo, sendo representado por uma letra: R executvel; D - em espera no disco; S - Suspenso; T - interrompido; Z - Zumbi. Essas letras podem ser combinadas e ainda acrescidas de: W - processo paginado em disco; < - processo com prioridade maior que o convencional; N - processo com prioridade menor que o convencional; L - processo com alguns recursos bloqueados no kernel.
43 os seguintes comandos: jobs, fg e bg, fuser, pstree, nohup. Cada um descrito a seguir: jobs - serve para visualizar os processos que esto parados ou executando em segundo plano (background). Quando um processo est nessa condio, significa sua execuo feita pelo kernel sem que esteja vinculada a um terminal. Em outras palavras, um processo em segundo plano aquele que executado enquanto o usurio faz outra coisa no sistema. Uma dica para saber se o processo est em background verificar a existncia do caractere & no final da linha. Se o processo estiver parado, geralmente a palavra "stopped" aparece na linha, do contrrio, a palavra "running" exibida. A sintaxe do jobs : jobs -opo As opes disponveis so: -l - lista os processos atravs do PID; -r - lista apenas os processos em execuo; -s - lista apenas os processos parados. Se na linha de um processo aparecer o sinal positivo (+), significa que este o processo mais recente a ser paralisado ou a estar em segundo plano. Se o sinal for negativo (-), o processo foi o penltimo. Note tambm que no incio da linha um nmero mostrado entre colchetes. Muitos confundem esse valor com o PID do processo, mas, na verdade, trata-se do nmero de ordem usado pelo jobs. fg e bg: o fg um comando que permite a um processo em segundo plano (ou parado) passar para o primeiro (foreground), enquanto que o bg passa um processo do primeiro plano para o segundo. Para usar o bg, deve-se paralisar o processo. Isso pode ser feito pressionando-se as teclas Ctrl + Z no teclado. Em seguida, digita-se o comando da seguinte forma: bg +nmero O nmero mencionado corresponde ao valor de ordem informado no incio da linha quando o comando jobs usado. Quanto ao comando fg, a sintaxe a mesma: fg +nmero fuser: o comando fuser mostra qual processo faz uso de um determinado arquivo ou diretrio. Sua sintaxe : fuser -opo caminho (do arquivo ou diretrio) Entre as opes, tem-se:
IntroduoaoLinuxGuilhermeEsmeraldo
43
44 -k - finaliza o processo que utiliza o arquivo/diretrio em questo; -i - deve ser usada em conjunto com a opo k e serve para perguntar se a finalizao do processo deve ser feita; -u - mostra o proprietrio do processo; -v - o resultado mostrado em um padro de exibio semelhante ao comando ps. pstree: esse comando mostra processos relacionados em formato de rvore. Sua sintaxe : pstree -opo PID Entre as opes, tem-se: -u - mostra o proprietrio do processo; -p - exibe o PID aps o nome do processo; -c - mostra a relao de processos ativos; -G - usa determinados caracteres para exibir o resultado em um formato grfico. Um detalhe importante: se ao digitar o comando pstree o PID no for informado, todos os processos sero listados. nohup: o comando nohup possibilita ao processo ficar ativo mesmo quando o usurio faz logout. da natureza dos sistemas baseados em Unix interromper processos caso seu proprietrio no esteja mais ativo, por isso, o nohup pode ser muito til. Sua sintaxe : nohup comando Fonte: http://www.infowester.com/linprocessos.php
IntroduoaoLinuxGuilhermeEsmeraldo
44
45
5.1.1 Discos
O primeiro passo saber como identificar os discos (HD, CD-ROM, disquete) no Linux. Tais dispositivos, alm de outros (como a porta LPT1) so tidas como existentes no diretrio /dev/. O HD identificado como o dispositivo hda0 (hdb para outro HD no mesmo computador e assim por diante). O nmero 0, indica a partio no HD. Com isso, a segunda partio deve ser identificada como hda1, a terceira como hda2, enfim. No caso de HDs SCSI, as letras hd devem ser trocadas por sd, ficando da seguinte forma: sda0, sda1, sda2, etc. No caso do drive de disquete, a sigla para sua identificao fd0. Se houver outro drive, este deve ser identificado como fd1. No caso dos CD-ROMS, eles so identificados como HDs. Assim, se por exemplo, em seu computador h um HD e um CD-ROM, o HD poder ser reconhecido como hda e o CD como hdb.
46 O prximo passo comando de montagem: mount - t [tipo] [caminho da partio] [ponto de montagem] Em nosso exemplo, o comando acima ficaria assim: mount -t vfat /dev/hda1 /mnt/win O tipo indica o sistema de arquivos utilizados na partio. Parties fat e fa32 so identificados como vfat. No caso de CD-ROM, o tipo deve ser especificado como iso9660. Por exemplo: mount -t iso9660 /dev/hdb /mnt/cdrom. As parties NTFS podem, teriocamente, serem montadas do mesmo jeito. No entanto, existem problemas de compatibilidade entre o kernel do Linux e o sistema de arquivos NTFS, motivo pelo qual, a montagem desse tipo de partio deve seguir procedimentos especiais, que no sero explicadas aqui. Se a partio que voc deseja montar for ext2 ou ext3, basta especificar estes nomes como tipo.
47 Por exemplo: /dev/hda1 /mnt/win vfat ro,user 0 0 O campo ordem indica em que seqncia os sistemas de arquivo sero verificados. Se deixar o campo em 0 (zero), esse procedimento no ser executado. Sendo assim, na maioria dos casos basta deixar neste valor. Depois que o arquivo fstab tiver sido alterado, na prxima inicializao, a montagem ocorrer automaticamente, exceto se algum passo foi executado de forma errada.
48
49 * /dev/hda7 (Lgica) Note que, neste caso, no h uma partio nomeada como /dev/hda4, pois os numeros de 1 a 4 so reservados para parties primrias e para a partio estendida. Perceba que, mesmo sendo 16 o numero mximo de parties em um disco, apenas 15 podero receber sistemas de arquivos, j que uma delas ser estendida.
50 pontos de montagem, que so diretrios vazios, destinados apenas para montar um outro sistema de arquivos. interessante ressaltar que o diretrio que ser usado como ponto de montagem no precisa, obrigatoriamente, estar vazio, mas a partir do momento que uma partio for montada nele, seus arquivos sero escondidos e s voltaro a ser acessveis quando ela for desmontada. Usando este exemplo de particionamento, vamos criar trs pontos de montagem: * /mnt/win (onde ser montada /dev/hda1, partio primria onde o windows est instalado) * /mnt/winad (para montar /dev/hda2, partio windows adicional) * /mnt/musicas (onde ser montada /dev/hda7, partio linux adicional, neste caso usada para guardar msicas) A partio swap no pode ser montada, pois um espao usado pelo kernel para memria virtual e no com dados volteis. Deste modo, ao invs de ter que se lembrar de letras de unidade, que no so nem um pouco descritivas, voc poder usar o nome que quiser e acessar todos os sistemas de arquivos como se fossem diretrios dentro do seu sistema de arquivos raiz.
51 l lista os tipos conhecidos de sistemas de arquivos. m mostra um pequeno help sobre os comandos. n criar uma nova partio. Ser perguntado o tipo de partio (primria, estendida ou lgica). Para partio primria ser perguntado o nmero (1 a 4) e para lgicas ser usado o primeiro nmero disponvel. Depois ser perguntado o nmero do cilindro inicial da partio. O prximo disponivel ser oferecido. Depois o cilindro final. Voc pode entrar com o numero do cilindro ou com o tamanho em MB, algo como +500M. p mostra a tabela de parties existente na memria. Ela pode ser diferente da real, se houverem mudanas no salvas. q Sai sem salvar as alteraes. t Muda o tipo de sistema de arquivos de uma partio. O nmero um octal. Use a opo l para exibir as opes possveis. w Gravar a tabela de parties no disco. Nenhuma mudana ser salva at voc dar este comando. Vamos comear a mexer com as opes do fdisk. Como vamos mexer com o o HD, temos que saber primeiro se ele est vazio... Para fazer isso voc usa o comando "p" para ver a tabela de parties atual: Command (m for help): p Disk /dev/hdb: 64 heads, 63 sectors, 526 cylinders Units = cylinders of 4032 * 512 bytes Device Boot Begin Start End Blocks Id System
Aqui no caso no apareceu nenhuma listagem de partio, ento isto quer dizer que o HD est vazio e pronto para se criar parties! Mas se por exemplo, existisse uma partio j criada neste HD, como ficaria? Vejamos: Command (m for help): p Disk /dev/hdb: 64 heads, 63 sectors, 526 cylinders Units = cylinders of 4032 * 512 bytes Device Boot /dev/hdb1 Begin Start End Blocks Id System 1 1 526 1060384+ b Win95 FAT32
A ento apareceu uma partio FAT32, e como eu no quero essa coisa, vou delet-la para deixar o HD sem parties! :) Repare que a partio 1, porque vem o nmero 1 depois de /dev/hdb, ficando /dev/hdb1. Ento iremos agora deletar a partio 1: IntroduoaoLinuxGuilhermeEsmeraldo 51
52 Command (m for help): d Partition number (1-4): 1 Pronto, a partio foi deletada. Como eu vou querer instalar o Linux sozinho, crio as parties Linux Native e Linux Swap. Eu tenho um HD de 1gb, e vou colocar 950MB para o Linux Native e 50MB para Swap: Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-526): 1 Last cylinder or +size or +sizeM or +sizeK ([1]-526): +950M Command (m for help): p Disk /dev/hdb: 64 heads, 63 sectors, 526 cylinders Units = cylinders of 4032 * 512 bytes Device Boot /dev/hdb1 Begin Start End Blocks Id System 1 1 483 973696+ 83 Linux native
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (484-526): 484 Last cylinder or +size or +sizeM or +sizeK ([484]-526): 526 Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap) Command (m for help): p Disk /dev/hdb: 64 heads, 63 sectors, 526 cylinders Units = cylinders of 4032 * 512 bytes Device Boot /dev/hdb1 /dev/hdb2 Begin Start End Blocks Id System 1 1 483 973696+ 83 Linux native 484 484 526 86688 82 Linux swap
IntroduoaoLinuxGuilhermeEsmeraldo
52
53 Command (m for help): Viu como no to difcil? Como ltimo comando acima, eu primeiro criei duas parties com tamanhos variados. Uma dessas parties vai ser a swap, ento tenho que mudar o tipo (id) dela... Para isso executei o "t" e coloquei o valor 82 para a partio 2 (/dev/hdb2). Como resultado deste processo todo... podemos ver a ultima mostragem do comando "p"... Perfeito! Agora s precisamos salvar a configurao, e s assim o fdisk ir fazer o particionamento de verdade. Para isso use o "w" e boa sorte. Fontes: http://www.tutorzone.com.br/index.php?ind=reviews&op=entry_view&iden=385 http://brunotorres.net/particionamento-disco
54 sistema. Note que altamente recomendado o uso de uma partio Swap no sistema (principalmente se voc tiver menos que 16MB de memria RAM). Este tipo de partio identificado pelo cdigo 82. Para detalhes veja Partio Linux Swap (Memria Virtual), Seo 5.7. * proc - Sistema de arquivos do kernel (veja O sistema de arquivos /proc, Seo 5.8). * FAT12 - Usado em disquetes no DOS * FAT16 - Usado no DOS e oferece suporte at discos de 2GB * FAT32 - Tambm usado no DOS e oferece suporte a discos de at 2 Terabytes
55 # mkfs [opes] dispositivo [blocos] Onde: * opes: o -t [tipo]: especifica o tipo de sistema de arquivos a ser criado. O padro ext2; o -c: checa o dispositivo a procura de blocos defeituosos durante a criao do sistema de arquivos. * dispositivo: o arquivo especial correspondente ao dispositivo; * blocos: quantidade de blocos a ser utilizada pelo sistema de arquivos. Para mais informaes, consulte o manual do comando mkfs. Fontes: http://focalinux.cipsga.org.br/guia/intermediario/ch-disc.html http://www.vivaolinux.com.br/artigo/Linux-Sistema-de-arquivos?pagina=2
IntroduoaoLinuxGuilhermeEsmeraldo
55
56
57 privilgios de administrador). Os motivos para isso so bvios: somente usurios autorizados que podem manipular outras contas, do contrrio, a segurana do sistema seria seriamente comprometida, pois qualquer usurio poderia criar, alterar ou apagar contas. Note que, dependendo das configuraes do seu sistema, pode ser necessrio executar cada instruo antecedida do comando 'sudo', como acontece por padro com a distribuio Ubuntu. Antes de criar e controlar contas no GNU/Linux, conveniente entender como o sistema operacional lida com isso. Em geral, cada conta criada fica armazenada em um arquivo de nome passwd localizado dentro do diretrio /etc/ (ou seja, seu caminho completo /etc/passwd). Esse arquivo contm vrias informaes sobre cada usurio: - o seu nome de login (ou seja, o nome que necessrio digitar para entrar no sistema); - senha (neste caso, a informao da senha pode estar criptografada ou em outro arquivo); - UID (User IDentification), ou seja, nmero de identificao do usurio; - GID (Group IDentification), isto , nmero de identificao do grupo do usurio; - informaes adicionais sobre o usurio (nome completo, dados de contato, etc); - diretrio "home", ou seja, o diretrio principal de cada usurio; - shell do usurio, uma espcie de programa que interpretar os comandos que o usurio digitar. Para que voc possa entender melhor cada um desses itens, vamos analis-los usando como base a linha abaixo extrada de um arquivo /etc/passwd, que mostra a posio que cada uma das informaes acima ocupa: tintin:x:1001:500:TinTin,Belgica,846-846:/home/tintin:/bin/bash Note que cada parmetro do usurio separado por : (dois pontos). Vamos estudar cada um: tintin: neste ponto que fica localizado o nome de login do usurio, neste caso, tintin. Esse nome no pode ser igual a outro j existente no sistema e, geralmente limitado a 32 caracteres. Todavia, dependendo da configurao aplicada, o nome pode ser "case sensitive", ou seja, diferencia letras maisculas de minsculas. Assim, 'wester' ser diferente de 'wEster', por exemplo; x: essa posio indica a senha do usurio. A letra x informa que a senha est armazenada e protegida dentro do arquivo /etc/shadow. Se houver um asterisco (*) no lugar, significa que a conta est desativada. Todavia, se no houver nada, significa que no h senha para esse usurio. Em alguns casos, embora isso no seja recomendvel, a senha pode estar inserida diretamente ali, mas criptografada; 1001: esse campo indica o nmero UID (User IDentification) do usurio, mas voc pode estar se perguntando o que isso. Como o prprio nome informa, nmero que serve para identificar o usurio. Em geral, o sistema pode suportar UIDs que vo de 0 a 4.294.967.296, embora alguns sistemas limitem esse nmero a valores inferiores. IntroduoaoLinuxGuilhermeEsmeraldo 57
58 Normalmente, o UID 0 atribudo pelo prprio GNU/Linux ao usurio root. O sistema tambm pode criar automaticamente usurios para a execuo de determinadas rotinas e atribuir a eles UIDs baixos, como 1, 2, 3 e assim por diante. Note que, em nosso exemplo, o UID do usurio 1001. Para usurios "humanos" do sistema, realmente uma boa prtica criar UIDs mais altas, para fins de organizao; 500: esse o campo que indica o GID (Group IDentification) do usurio, isto , o nmero de identificao do grupo do qual ele faz parte. Assim como no UID, geralmente o usurio 0 indicado para o grupo do usurio root. Note, no entanto, que um mesmo usurio pode fazer parte de mais de um grupo (geralmente, o GNU/Linux permite a participao do usurio em at 32 grupos). Mas qual a vantagem de se ter mais de um grupo? Simples: suponha, por exemplo, que voc queira que somente os funcionrios do departamento contbil de sua empresa acessem os arquivos disponveis na pasta /contabilidade/. Para isso, voc cria um grupo e uma definio que faz com que apenas os usurios desse grupo tenham direito ao acesso. Feito isso, basta adicionar ao grupo cada usurio do departamento contbil. Assim, somente eles acessaro o diretrio. Via de regra, o sistema operacional cria um grupo para cada conta de usurio criada; TinTin,Belgica,846-846: esse campo muito interessante, pois permite a incluso de informaes adicionais sobre o usurio. Tambm chamado de GECOS (General Electric Comprehensive Operating System) em aluso a uma funcionalidade existente em um sistema operacional Unix que tinha esse nome, esse campo serve para, por exemplo, cadastrar o nome completo do usurio, seu endereo, seu telefone ou o seu ramal, etc. Cada informao separada da outra por uma vrgula, por exemplo: Emerson Alecrim,Rua X,1234-4321. Na prtica, voc pode inserir as informaes que achar melhor, no apenas os dados informados anteriormente; /home/tintin: cada usurio criado no sistema tem direito a uma pasta "home", ou seja, uma pasta sua, para uso exclusivo. neste campo que voc indica onde estar essa pasta. Em geral, essas pastas ficam dentro do diretrio /home/, mas voc pode definir o diretrio que quiser (ou mesmo no indicar nenhum); /bin/bash: esse o campo que informa qual o shell (interpretador de comandos) de login que o usurio utilizar. O GNU/Linux trabalha com vrios, entre eles, o bash, o sh e o csh. Caso nenhum shell seja informado, o sistema utilizar o bash como padro.
59 usurio que ser criada. Voc pode usar vrios parmetros (veja uma lista completa digitando man adduser no terminal), entre eles: adduser -disabled-login usurio: faz com que a conta do usurio seja criada sem a solicitao de uma senha (ou seja, no executa o comando passwd). No entanto, a conta no poder ser usada at que o usurio defina sua senha de acesso; adduser -force-badname usurio: em geral, os sistemas GNU/Linux checam se a conta criada pode ter em seu nome (ou mesmo na senha) algo que aumente os riscos ao sistema. Com esse comando, o sistema instrudo a no fazer esse tipo de verificao; adduser -group grupo: com esse parmetro, ao invs de uma conta de usurio, um grupo criado. Para essa tarefa tambm pode-se utilizar o comando addgroup; adduser -home diretrio usurio: com essa opo, voc define em qual diretrio ficar o "home" do usurio. Se esse parmetro no for usado, o sistema criar o "home" no diretrio padro (geralmente, em /home/nome_do_usurio). Se preferir que nenhum diretrio desse tipo seja criado, voc pode utilizar a opo -no-create-home (no recomendvel); adduser -uid nmero usurio: quando usurios so criados, o sistema geralmente adiciona a eles UIDs sequenciais, mas voc pode especificar o UID que quiser usando o parmetro uid seguido de um nmero, por exemplo, uid 31415. Note que, em muitas distribuies GNU/Linux, voc pode utilizar apenas a letra u ao invs de uid. Note tambm que o GID do usurio ser igual ao valor informado por voc, a no ser que voc especifique outro atravs da opo -gid, vista abaixo; adduser -gid nmero usurio: semelhante ao parmetro acima, mas especifica manualmente um grupo para o usurio ao invs de criar um parmetro. Note que, em muitas distribuies GNU/Linux, voc pode utilizar apenas a letra g ao invs de gid. O gid informado deve ser o de um grupo j existente; adduser -ingroup grupo usurio: adiciona o usurio criado a um grupo j existente, ao invs de criar um novo grupo para ele; adduser -shell shell usurio: atravs desse parmetro, voc pode especificar qual ser o shell padro do usurio. Em alguns sistemas possvel usar a letra s ao invs da palavra shell. Para servir de exemplo, vamos criar um usurio de nome wester. Esse usurio dever: - ter um UID de nmero 27182; - ser inserido no grupo infowester (j existente). Veja como ficar o comando: adduser -uid 27182 -ingroup infowester wester
IntroduoaoLinuxGuilhermeEsmeraldo
59
60 Assim que esse comando for digitado, o sistema pedir que voc digite duas vezes uma senha para o usurio. Em seguida, perguntar as informaes adicionais, como nome completo, telefone, etc. Note que voc pode deixar essas informaes em branco, se preferir. Voc deve ter notado pelo comando acima de que possvel utilizar mais de uma opo ao mesmo tempo no comando adduser.
IntroduoaoLinuxGuilhermeEsmeraldo
60
61 -x dias: faz com que a senha funcione apenas pela quantidade de dias informada. Depois disso, a senha expira e o usurio deve troc-la; -n dias: indica a quantidade mnima de dias que o usurio deve aguardar para trocar a senha; -w dias: define a quantidade mnima de dias em que o usurio receber o aviso de que sua senha precisa ser alterada; -i: deixa a conta inativa, caso a senha tenha expirado; -l: "tranca" a conta do usurio; -u: desbloqueia uma conta que esteja "trancada"; -S: exibe o status da conta (note que a letra S deve estar em maiscula). Vamos a alguns exemplos para que voc possa entender essas opes: Suponha que voc queira que a senha do usurio marvin expire aps 30 dias. O comando : passwd marvin -x 30 Suponha, agora, que voc queira que a senha do usurio bender expire aps 14 dias e exiba uma mensagem de que necessrio trocar a senha trs dias antes da data limite. O comando ser o seguinte: passwd bender -x 14 -w 3 Agora, vamos supor que voc queira saber do status do usurio bender, para confirmar as alteraes. Eis o comando: passwd bender -S A letra P acima informa que o usurio bender tem senha. Se no tivesse, no lugar de P estariam as letras NP. Se a conta do usurio estivesse bloqueada, apareceria a letra L. Por sua vez, a data que aparece na seqncia (no formato ms/dia/ano) informa a ltima alterao de senha que houve. As prximas quatro informaes indicam, respectivamente, o perodo mnimo de utilizao da senha, o perodo mximo (lembra que voc definiu esse perodo com sendo de 14 dias?), o perodo de alerta (que voc informou como sendo de 3 dias) e, por fim, o perodo de inatividade (quando no h inatividade, o resultado -1). Como j informado antes, o GNU/Linux usa o arquivo /etc/shadow para lidar com as senhas de usurios. As informaes desse arquivo tm o seguinte padro (usando como exemplo os dados do usurio toad): IntroduoaoLinuxGuilhermeEsmeraldo 61
62 toad:$1$O48MNVt9$08BBOTqV0cr2LtKtMXtAY1:13849:0:99999:7::: Assim como acontece no arquivo /etc/passwd, as informaes do arquivo /etc/shadow so separadas por : (dois pontos). No caso acima, aparece o nome do usurio (toad), a senha criptografada ( por que isso que h esse monte de caracteres sem sentido), a data da ltima mudana (13849), a quantidade mnima de dias que o usurio deve esperar para mudar a sua senha (0), a quantidade mxima de dias para a alterao de senha ser feita (99999) e a quantidade de dias restantes data de expirao que o sistema operacional deve esperar para exibir alertas de mudana de senha (7). Os demais campos (que esto em branco) so destinados informaes de expirao de conta, mas dificilmente so usados. Voc pode ter se perguntado sobre o motivo das datas serem representadas por um nico nmero, como o valor 13849, acima. Essa formato indica a quantidade de dias que j se passou desde 1 de janeiro de 1970.
63 ausncia de senha. O terceiro campo informa o GID do grupo (1002) e, por fim, o quarto campo informa quais so os usurios pertencentes a esse grupo. Note que, neste exemplo, os usurios wester, toad e marvin fazem parte do grupo infowester. A lista de usurios deve ser separada por vrgulas, sem espao entre os nomes. No que se refere a este assunto, possvel que encontre grupos em seu sistema que voc no lembra de ter criado. Suponha, por exemplo, que voc digitou o comando groups lestat para saber quais os grupos dos quais participa o usurio lestat, e o resultado foi o seguinte: lestat : lestat adm cdrom floppy audio video scanner lpadmin powerdev Note que o usurio lestat participa de vrios grupos, sendo um deles o seu grupo principal, que leva o seu nome. Mas, de onde surgiram os demais? O GNU/Linux possui alguns grupos considerados "padro", isto , grupos que servem para permitir que o usurio execute determinadas tarefas. A quantidade e as finalidades dos grupos podem variar de acordo com a distribuio GNU/Linux utilizada e a sua configurao. Eis alguns grupos bastante comuns: cdrom: grupo para utilizao de unidades de CD/DVD; audio: grupo para acesso aos recursos de udio do computador; video: grupo para acesso aos recursos de vdeo do computador; floppy: grupo para utilizao da unidade de disquete; adm: grupo para acesso de recursos administrativos.
64 usermod -l spiderman peterparker usermod -g grupo nmero usurio: altera o GID do grupo principal do usurio. Por exemplo: usermod -g 42 galadriel usermod -s shell usurio: altera o shell do usurio; usermod -u nmero usurio: altera o UID da conta do usurio.
65 linhas, substitua nmero pelo valor desejado. Por exemplo: last -n 10 last -x: mostra os dados de desligamento do sistema, assim como informaes do nvel de execuo; last -R: faz com que o comando no exiba os hostnames (note que a letra R fica em caixa alta); last -a: faz com que os hostnames sejam exibidos apenas na ltima coluna.
66 representa um diretrio, se for "-" equivale a um arquivo. Entretanto, outros caracteres podem aparecer, j que existem outros tipos de arquivo no Linux, conforme mostra a tabela abaixo: d => diretrio b => arquivo de bloco c => arquivo especial de caractere p => canal s => socket - => arquivo normal Repare agora que no restante da string temos 9 caracteres. Voc j sabe o que significa o primeiro. Os demais so em 3 grupos de 3, cada um representado o proprietrio, o grupo e todos os demais respectivamente. Pegando a linha 2 do exemplo (-rw-rw-r-) e dividindo a string em 3 partes, ficaria assim: -rw => indicao de permisses do proprietrio -rw => permisses do grupo que o usurio pertence -r- => permisses para os demais usurios Vamos entender agora o que significa esses caracteres (r, w, x, -). Existem 3 tipos bsicos de permisses: leitura, gravao e execuo. Leitura permite aos usurios ler o contedo do arquivo mas no altera-lo. Gravao permite que os usurios alterem o arquivo. Execuo, como o nome diz, permite que o usurio execute o arquivo, no caso de ser executvel. Mas acontece que as permisses no funcionam isoladamente, ou seja, ou o usurio tem permisso de leitura ou de gravao ou de execuo. As permisses funcionam em conjunto. Isso quer dizer que cada arquivo/diretrio tem as 3 permisses, cabendo ao dono determinar qual dessas permisses habilitada para os usurios ou no. Pode ser que uma determinada quantidade de usurios tenha permisso para alterar um arquivo, mas outros no. Da a necessidade de se usar grupos. Neste caso, a permisso de gravao desse arquivo ser dada ao grupo e todo usurio membro dele poder alterar o arquivo. necessrio ter um certo cuidado com as permisses. Por exemplo, do que adianta o usurio ter permisso de gravao se ele no tem permisso de leitura habilitada? Ele poder ler o arquivo para poder modifica-lo? No! De certo, isso tem utilidade em arquivos de log. Fazendo associao com as letras r, w, x e o caractere -, vamos entender cada uma: r => significa permisso de leitura (read); w => significa permisso de gravao (write); x => significa permisso de execuo (execution); - => significa permisso desabilitada. A ordem em que as permisses devem aparecer rwx. Sendo assim, vamos entender as strings do nosso exemplo, dividindo-a em 4 partes: Linha 1: IntroduoaoLinuxGuilhermeEsmeraldo 66
67 drwx------ ... 2 wester ............... 512 Jan ... 29 23:30 .. Arquivos/ um diretrio (d); o proprietrio pode altera-lo, grava-lo e executa-lo (rwx); o grupo no pode altera-lo, grava-lo e nem executa-lo (---); os demais usurios no podem altera-lo, grava-lo e nem executa-lo (---). Linha 2: -rw-rw-r-- ... 1 wester .......... 280232 Dec .. 16 22:41... notas.txt um arquivo (-); o proprietrio pode altera-lo, grava-lo, mas no executvel. Como este arquivo no executvel, a permisso de execuo aparece desabilitada (rw-); o grupo tem permisses idnticas ao proprietrio (rw-); o usurio somente tem permisso de ler o arquivo, no pode altera-lo (r--) A tabela abaixo mostra as permisses mais comuns: --- => nenhuma permisso; r-- => permisso de leitura; r-x => leitura e execuo; rw- => leitura e gravao; rwx => leitura, gravao e execuo.
68 Para poder combinar os smbolos destas duas listas, usam-se os operadores: + (sinal de adio) => adicionar permisso - (sinal de subtrao) => remover permisso = (sinal de igualdade) => definir permisso Para mostrar como essa combinao feita, vamos supor que voc deseje adicionar permisso de gravao no arquivo teste.old para um usurio. Ento o comando a ser digitado ser: chmod u+w teste.old O "u" indica que a permisso ser dada a um usurio, o sinal de adio (+) indica que est sendo adicionada a permisso e "w" indica que a permisso que est sendo dada de gravao. Caso voc queira dar permisses de leitura e execuo ao seu grupo, o comando ser: chmod g+rw teste.old Agora, vamos supor que o arquivo teste.old dever estar com todas as permisses disponveis para o grupo. Podemos usar ento: chmod g=rwx teste.old Dica: crie arquivos e diretrios e teste a combinao de permisses com chmod. Isso lhe ajudar muito no entendimento deste conceito.
IntroduoaoLinuxGuilhermeEsmeraldo
68
69 Se voc no conhece o sistema binrio deve estar se perguntando o que esse "monte" de 0 e 1 tem a ver com os nmeros de 0 a 7. Como o sistema binrio somente trabalha com os nmeros 0 e 1 (decimal trabalha com os nmeros de 0 a 9, ou seja, o sistema de numerao que utilizamos no nosso dia-a-dia), ele precisa de uma seqncia para representar os valores. Sendo assim, na tabela acima, a coluna Binrio mostra como so os valores binrios dos nmeros de 0 a 7 do sistema decimal. Chegou a hora ento de relacionar a explicao do pargrafo acima com a coluna Permisso. Para exemplificar, vamos utilizar a permisso rw-, cujo valor em binrio 110, que por sua vez, em decimal corresponde ao nmero 6. Ento, em vez de usar rw- ou 110 para criar a permisso, simplesmente usa-se o nmero 6. Repare ento que com o mtodo numrico, usamos somente um dgito para representar uma permisso, ao invs de trs. Com isso a string de permisses r--r--r-- pode ser representa por 444, pois r-- em decimal igual a quatro. Observe o exemplo abaixo: chmod 600 notas.txt Acima, esto sendo dadas as permisses rw------- ao arquivo notas.txt, pois 6 equivale a rw- e 0 equivale a ---. Como zero aparece duas vezes, forma-se ento o valor 600. Faa o comando acima com um arquivo de teste e depois digite ls- l notas.txt e veja o que aparece (notas.txt deve ser substitudo pelo arquivo que voc est usando para teste). A tabela abaixo mostra as configuraes de permisses mais usadas: --------000 r-------400 r--r--r-444 rw------- 600 rw-r--r-- 644 rw-rw-r-- 666 rwx------ 700 rwxr-x--- 750 rwxr-xr-x 755 rwxrwxrwx 777 As trs ltimas permisses da tabela so freqentemente usadas para programas e diretrios.
IntroduoaoLinuxGuilhermeEsmeraldo
69
70
71 # dnsdomainname Configurao de IP Manual Exibe as configuraes atuais da(s) placa(s) de rede # ifconfig Configura a rede manualmente: Definindo o IP: ifconfig eth0 NOVO_IP netkmask MASCARA up Exemplo: # ifconfig eth0 10.0.17.1 netmask 255.0.0.0 up Definir um Gateway na Rede: route add default gw IP_DO_GATEWAY Exemplo: # route add default gw 10.0.0.254 Configurar a resoluo de nomes (DNS): Editar o Arquivo /etc/resolv.conf # vi /etc/resolv.conf Adicionar a linha: nameserver IP_DO_SERVIDOR_DNS Pode-se e deve-se adicionar vrias linhas nameserver com vrios ip's de servidores dns. Ex: nameserver 10.0.0.254 nameserver 10.0.0.245 Ainda pode colocar o domnio padro no /etc/resolv.conf search dailson.com.br Comandos para exibir as configuraes atuais da rede: # ifconfig # route -n # cat /etc/resolv.conf Desligando a placa de rede: # ifconfig eth0 down ou ifdown eth0 Ligando a placa de rede: # ifconfig eth0 up ou ifup eth0 Como configurar de forma esttica a rede: Edite o arquivo /etc/network/interfaces e adicionar as seguintes linhas: # vi /etc/network/interfaces Inicia automaticamente com a interface de rede. auto eth0 IntroduoaoLinuxGuilhermeEsmeraldo 71
72 Faz com que o Debian detecte e aplique as configuraes logo que o cabo ligado ou desligado. allow-hotplug eth0 Inicia a configurao esttica da rede iface eth0 inet static Define o IP que fica configurado address 192.168.0.1 Define a Mascara de rede, neste caso de 24Bits netmask 255.255.255.0 Define o Broadcast de Rede (Parmetro opcional) broadcast 192.168.0.255 Define o Segmento de rede em que est o IP acima indicado. (Parmetro opcional) network 192.168.0.0 Define o Gateway de rede. (Parmetro opcional) gateway 192.168.0.254 Se voc tem dvida sobre o clculo do endreo de broadcast e network, sugiro a instalao do aplicativo ipcalc: # apt-get install ipcalc E depois coloque o ip para o ipcalc devolver todos os parmentros de configurao da sua rede. Exemplo: # ipcalc 192.168.0.1 A resposta desse comando, so todos os clculos para seu IP. Veja o resultado para o IP acima:
Exemplo: Um computador com uma placa de rede (eth0) devidamente configurada, ficaria com o arquivo interfaces desta forma: auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.10.7 netmask 255.255.255.0 gateway 192.168.10.254 Se deseja que o endereo seja atribudo de forma automtica: IntroduoaoLinuxGuilhermeEsmeraldo 72
73 auto eth0 allow-hotplug eth0 iface eth0 inet dhcp Obs: Toda a vez que o arquivo /etc/network/interfaces alterado, necessrio fazer a reconfigurao da rede. Para isso, basta reiniciar o servio de rede. # /etc/init.d/networking restart Para parar o servio de rede: # /etc/init.d/networking stop Para iniciar # /etc/init.d/networking start Para chegar se o endereo foi corretamente atribudo, use o ifconfig Obtendo endereo de IP via linha de comando: # dhclient Configurando Ips Virtuais: Se voc deseja que seu servidor responda por vrios Ips, necessria a criao de interfaces virutais. Isso pode ser feito diretamente com o comando ifconfig ou dentro do arquivo /etc/network/interfaces: Usando o comando ifconfig Basta colocar a interface seguida de dois pontos e o nmero da interface vitual. Iniciando em zero. Exemplos: Configura a placa de rede eth0 # ifconfig eth0 10.0.0.1 netmask 255.0.0.0 up Cria a interface virutal eth0:0 # ifconfig eth0:0 10.0.0.2 netmask 255.0.0.0 up Cria a interface virutal eth0:1 # ifconfig eth0:1 10.0.0.3 netmask 255.0.0.0 up Cria a interface virutal eth0:2 # ifconfig eth0:2 10.0.0.4 netmask 255.0.0.0 up Lembrando que um simples reboot no servidor acarretar na perca destas interfaces virtuais. Para tornar permanente, voc pode usar este comandos em arquivos que so lidos no boot como /etc/bash.bashrc ou usando o arquivo pertinente a esta tarefa /etc/network/interfaces Usando o arquivo /etc/network/interfaces auto eth0 IntroduoaoLinuxGuilhermeEsmeraldo 73
74 allow-hotplug eth0 iface eth0 inet static address 10.0.0.1 netmask 255.0.0.0 auto eth0:0 iface eth0:0 inet static address 10.0.0.2 netmask 255.0.0.0 auto eth0:1 iface eth0:1 inet static address 10.0.0.3 netmask 255.0.0.0 auto eth0:2 iface eth0:2 inet static address 10.0.0.4 netmask 255.0.0.0 No esquea sempre que voc altera o arquivo interfaces, necessrio a reinicializao dos servios de rede com o comando: # /etc/init.d/networking restart Fonte: http://dailson.blogspot.com/2009/05/configuracao-de-rede-no-debiangnulinux.html
IntroduoaoLinuxGuilhermeEsmeraldo
74
75
8.1 Introduo
O Samba o servidor que permite compartilhar arquivos e acessar compartilhamentos em mquinas Windows. Ele dividido em dois mdulos, o servidor Samba propriamente dito e o "smbclient", o cliente que permite acessar compartilhamentos em outras mquinas. Usando o Samba, o servidor Linux se comporta exatamente da mesma forma que uma mquina Windows, compartilhando arquivos e impressoras e executando outras funes, como autenticao de usurios. Voc pode configurar o Samba at mesmo para tornar-se um controlador de domnio. A primeira verso do Samba, disponibilizada em 1992, foi escrita por Andrew Tridgell, um australiano ento estudante de cincias da computao. Como na poca a especificao do SMB utilizada pela Microsoft ainda era fechada, Andrew desenvolveu um pequeno programa, batizado de clockspy, para examinar os pacotes de dados enviados por uma mquina Windows e, assim, ir implementando uma a uma as chamadas de sistema utilizadas, um trabalho bastante complexo. O resultado foi um programa que rodava no Solaris (o sistema Unix desenvolvido pela Sun) e era capaz de responder s chamadas SMB como se fosse um servidor Windows. Este arquivo ainda pode ser encontrado em alguns dos FTPs do http://samba.org, com o nome "server-0.5". O objetivo desta primeira verso era apenas resolver um problema domstico: interligar um PC rodando o Windows 3.1 workstation Sun que ele tinha em casa. Na poca isso j era possvel utilizando um dos clientes NFS comerciais para DOS, mas Andrew precisava de suporte a NetBIOS para um aplicativo que pretendia utilizar, o WindX, um servidor X para Windows, que permitia rodar aplicativos via rede a partir do servidor Unix. At a o objetivo era apenas fazer o programa funcionar, no criar um sistema de compartilhamento de arquivos. Depois de algum tempo, Andrew recebeu um e-mail contando que o programa tambm funcionava com o LanManager da Microsoft, permitindo compartilhar arquivos de um servidor Unix com mquinas rodando o DOS. Andrew s acreditou depois de testar, mas ficou to maravilhado com o que havia conseguido que criou o projeto "NetBios for Unix" e comeou a recrutar voluntrios atravs da Usenet. Mais tarde o projeto passou a usar o nome Samba, que foi adotado no em apologia ao Carnaval, mas apenas porque uma das poucas palavras do dicionrio do Aspell que possui as letras S, M e B, de "Server Message Blocks". Em 94 a Microsoft liberou as especificaes do SMB e do NetBios, o que permitiu que o desenvolvimento do Samba desse um grande salto, tanto em recursos quanto em IntroduoaoLinuxGuilhermeEsmeraldo 75
76 compatibilidade, passando a acompanhar os novos recursos adicionados ao protocolo da Microsoft, que mais tarde novamente deixou de ser aberto. Hoje, alm de ser quase 100% compatvel com os recursos de rede do Windows 98, NT e 2000, o Samba reconhecido por ser mais rpido que o prprio Windows na tarefa de servidor de arquivos. Um dos pontos fortes do Samba que o projeto foi todo desenvolvido sem precisar apelar para qualquer violao de patentes. Todas as chamadas (com exceo das que a Microsoft tornou pblicas em 94) foram implementadas monitorando as transmisses de dados atravs da rede, uma espcie de engenharia reversa que no tem nada de ilegal. como se voc descobrisse como funciona um cdigo de encriptao apenas examinando arquivos encriptados por ele. Matemticos fazem isso a todo instante e muitas vezes so bem pagos para isso. Graas a este "detalhe", o Samba no corre o perigo de sofrer restries devido a aes judiciais. De qualquer forma, no existem sinais de que a Microsoft pretenda declarar guerra ao Samba. Pelo contrrio, foi a existncia do Samba que permitiu que a Microsoft conseguisse colocar PCs rodando o Windows em muitos nichos onde s entravam Workstations Unix, j que com o Samba os servidores Unix existentes passaram a ser compatveis com as mquinas Windows. Ou seja: de certa forma, o Samba foi vantajoso at mesmo para a Microsoft. Fonte: http://www.gdhpress.com.br/redeseservidores/leia/index.php?p=cap6-2
8.2 Instalao
O Samba dividido em dois mdulos. O servidor propriamente dito e o cliente, que permite acessar compartilhamentos em outras mquinas (tanto Linux quanto Windows). Os dois so independentes, permitindo que voc mantenha apenas o cliente instalado num desktop e instale o servidor apenas nas mquinas que realmente forem compartilhar arquivos. Isso permite melhorar a segurana da rede de uma forma geral. Os pacotes do Samba recebem nomes um pouco diferentes nas distribuies derivadas do Debian e no Fedora e outras distribuies derivadas do Red Hat. Veja: Pacote Debian Fedora Servidor: samba samba Cliente: smbclient samba-client Documentao samba-doc samba-doc Swat: swat samba-swat Lembre-se de que voc deve instalar todos os pacotes apenas no servidor e em outras mquinas que forem compartilhar arquivos. O Swat ajuda bastante na etapa de IntroduoaoLinuxGuilhermeEsmeraldo 76
77 configurao, mas ele opcional, pois voc pode tanto editar manualmente o arquivo smb.conf, quanto usar um arquivo pronto, gerado em outra instalao. Nos clientes que forem apenas acessar compartilhamentos de outras mquinas, instale apenas o cliente. O Fedora inclui mais um pacote, o "system-config-samba", um utilitrio de configurao rpida, que permite criar e desativar compartilhamentos de forma bem prtica. Outro configurador rpido o mdulo "Internet & Rede > Samba", disponvel no Painel de Controle do KDE. Neste livro abordo apenas o swat, que o configurador mais completo, mas voc pode lanar mo destes dois utilitrios para realizar configuraes rpidas. Com os pacotes instalados, use os comandos: # /etc/init.d/samba start # /etc/init.d/samba stop ... para iniciar e parar o servio. Por padro, ao instalar o pacote criado um link na pasta "/etc/rc5.d", que ativa o servidor automaticamente durante o boot. Para desativar a inicializao automtica, use o comando: # update-rc.d -f samba remove Pata reativ-lo mais tarde, use: # update-rc.d -f samba defaults No Fedora e Mandriva, os comandos para iniciar e parar o servio so: # service smb start # service smb stop Para desabilitar o carregamento durante o boot, use o "chkconfig smb off" e, para reativar, use o "chkconfig smb on". Note que, em ambos, o pacote de instalao se chama "samba", mas o servio de sistema chama-se apenas "smb". Fonte: http://www.gdhpress.com.br/redeseservidores/leia/index.php?p=cap6-3
78 ele s pode dar acesso para usurios que, alm de estarem cadastrados no Samba, tambm esto cadastrados no sistema. Existem duas abordagens possveis. Voc pode criar usurios "reais", usando o comando adduser ou um utilitrio como o "user-admin" (disponvel no Fedora e no Debian, atravs do pacote gnome-system-tools). Ao usar o adduser, o comando fica: # adduser maria Uma segunda opo criar usurios "castrados", que tero acesso apenas ao Samba. Esta abordagem mais segura, pois os usurios no podero acessar o servidor via SSH ou Telnet, por exemplo, o que abriria brecha para vrios tipos de ataques. Neste caso, voc cria os usurios adicionando os parmetros que orientam o adduser a no criar o diretrio home e a manter a conta desativada at segunda ordem: # adduser --disabled-login --no-create-home maria Isso cria uma espcie de usurio fantasma que, para todos os fins, existe e pode acessar arquivos do sistema (de acordo com as permisses de acesso), mas que, por outro lado, no pode fazer login (nem localmente, nem remotamente via SSH), nem possui diretrio home. Uma dica que no Fedora (e outras distribuies derivadas do Red Hat), voc s consegue usar o comando caso logue-se como root usando o comando "su -" ao invs de simplesmente "su". A diferena entre os dois que o "su -" ajusta as variveis de ambiente, incluindo o PATH, ou seja, as pastas onde o sistema procura pelos executveis usados nos comandos. Sem isso, o Fedora no encontra o executvel do adduser, que vai na pasta "/usr/sbin". Os parmetros suportados pelo adduser tambm so um pouco diferentes. O padro j criar um login desabilitado (voc usa o comando "passwd usurio" para ativar) e, ao invs do "--no-create-home", usa a opo "-M". O comando (no Fedora) fica, ento: # adduser -M maria De qualquer uma das duas formas, depois de criar os usurios no sistema voc deve cadastr-los no Samba, usando o comando "smbpasswd -a", como em: # smbpasswd -a maria Se voc mantiver os logins e senhas sincronizados com os usados pelos usurios nos clientes Windows, o acesso aos compartilhamentos automtico. Caso os logins ou senhas no servidor sejam diferentes, o usurio precisar fazer login ao acessar. Um detalhe importante que, ao usar clientes Windows 95 ou 98, voc deve marcar a opo de login como "Login do Windows" e no como "Cliente para redes Microsoft" (que o default) na configurao de rede (Painel de controle > Redes).
IntroduoaoLinuxGuilhermeEsmeraldo
78
79 Depois de criados os logins de acesso, falta agora apenas configurar o Samba para se integrar rede e compartilhar as pastas desejadas, trabalho facilitado pelo Swat. A segunda opo editar manualmente o arquivo de configurao do Samba, o "/etc/samba/smb.conf", como veremos mais adiante. Neste caso, o ideal comear a partir de um arquivo pr-configurado, alterando apenas as opes necessrias. Voc pode baixar o arquivo modelo, que utilizado na instalao do Samba no Kurumin no http://www.guiadohardware.net/kurumin/modelos/. Fonte: http://www.gdhpress.com.br/redeseservidores/leia/index.php?p=cap6-4
80 wins support = yes preferred master = yes panic action = /usr/share/samba/panic-action %d invalid users = root preserve case = no short preserve case = no default case = lower os level = 100 [homes] comment = Home Directories create mask = 0700 directory mask = 0700 browseable = No [printers] comment = Todas as Impressoras path = /var/spool/samba guest ok = yes public = yes printable = yes browseable = yes use client driver = yes # Compartilhamentos: # Aqui vai a configurao das pastas compartilhadas. Voc pode criar mais # compartilhamentos usando o Swat ou editando diretamente este arquivo. # Veja como funciona a configurao: # # [publico] : O nome do Compartilhamento, como aparecer no ambiente de redes. # path = /home/samba_publico : A pasta local que est sendo compartilhada. # available = yes : O compartilhamento est disponvel? # Mudando para "available = no" ele ficar "congelado" e ningum poder acessar. # browseable = yes : O compartilhamento aparecer na rede? # Mudando para "browseable = no" ele virar um compartilhamento oculto # writable = yes : O compartilhamento fica disponvel para leitura e escrita. # writable = no : o compartilhamento fica disponvel para somente leitura. # Agora a sua vez: #[compartilhamento] # path = /pasta/pasta # available = yes # browseable = yes # writable = yes
IntroduoaoLinuxGuilhermeEsmeraldo
80
81 Se voc quiser criar um novo compartilhamento, chamado "arquivos", que d acesso pasta "/home/arquivos" e pode ser acessado em modo somente-leitura por todos os usurios cadastrados no Samba, bastaria adicionar as linhas: [arquivos] path = /home/arquivos available = yes writable = no Se voc quiser permitir que o compartilhamento fique com permisso de escrita e leitura, mas fique acessvel apenas pelos usurios "maria" e "joao" (os outros usurios no acessam nem para leitura), adicione a linha: "valid users = joao maria". A entrada ficaria: [arquivos] path = /home/arquivos available = yes writable = yes valid users = maria, joao Se preferir, voc pode continuar permitindo que os outros acessem o compartilhamento para leitura e criar uma lista de escrita, contendo a maria e o joao: [arquivos] path = /home/arquivos available = yes writable = yes write list = maria, joao Outra forma de limitar o acesso usar a opo "hosts allow" para permitir que apenas alguns endereos IP possam acessar os compartilhamentos, como em: [arquivos] path = /home/arquivos available = yes writable = yes hosts allow = 192.168.0.2, 192.168.0.5 possvel ainda combinar as duas coisas, permitindo que apenas a maria e o joao acessem o compartilhamento e, ainda assim, s se estiverem usando uma das duas mquinas permitidas, como em: [arquivos] path = /home/arquivos available = yes writable = yes write list = maria, joao hosts allow = 192.168.0.2, 192.168.0.5 IntroduoaoLinuxGuilhermeEsmeraldo 81
82 O Swat serve apenas como uma interface para a edio deste arquivo. Seja qual for o modo de configurao escolhido, basta fazer backups regulares deste arquivo para restaurar as configuraes do servidor em caso de problemas. Alm do arquivo smb.conf, salve tambm o arquivo "/etc/samba/smbpasswd", que contm os usurios e senhas. Sempre que alterar manualmente smb.conf, ou mesmo alterar algumas opes pelo Swat e quiser verificar se as configuraes esto corretas, rode o testparm (basta cham-lo no terminal). Ele funciona como uma espcie de debug, indicando erros grosseiros no arquivo. Depois de fazer qualquer alterao, reinicie o Samba usando o comando "/etc/init.d/samba restart" ou "service smb restart". O comando smbstatus tambm muito til, pois permite verificar quais estaes esto conectadas ao servidor e quais recursos esto sendo acessados no momento. Fonte: http://www.gdhpress.com.br/redeseservidores/leia/index.php?p=cap6-7
- No Windows 2000, acesse o "Meu Computador > Propriedades > Identificao de rede > Propriedades". Coloque aqui o nome do computador (que precisa ser um dos logins de mquinas adicionados na configurao do Samba) e o nome do Domnio, que definido na opo "workgroup =" do smb.conf. Para ter acesso a esta opo voc deve estar logado como administrador.
Na tela de identificao que ser aberta a seguir, logue-se como "root", com a senha definida no Samba. normal que a conexo inicial demore dois ou trs minutos. Se IntroduoaoLinuxGuilhermeEsmeraldo 82
83 tudo der certo, voc saudado com a mensagem "Bem-vindo ao domnio DOMINIO".
necessrio identificar-se como root ao fazer a configurao inicial, para que seja criada a relao de confiana entre o servidor e o cliente. A partir da aparece a opo opo "Efetuar logon em: DOMINIO" na tela de login, permitindo que o usurio faa logon usando qualquer uma das contas cadastradas no servidor. Continua disponvel tambm a opo de fazer um login local.
- No Windows 98 ou ME: Comece logando-se na rede (na tela de login aberta na inicializao) com o mesmo usurio e senha que ser usado para fazer logon no domnio. Acesse agora o "Painel de Controle > Redes > Cliente para redes Microsoft > Propriedades". Marque a opo "Efetuar Logon num domnio NT", informe o nome do domnio e marque a opo "Efetuar logon e restaurar conexes". Ao terminar, preciso fornecer o CD de instalao e reiniciar a mquina.
Note que as mquinas com o Windows 98/ME no so compatveis com todos os recursos do domnio, elas acessam o domnio dentro de uma espcie de modo de compatibilidade, onde podem acessar os compartilhamentos, mas no tm acesso ao recurso de perfis mveis, por exemplo.
- No Windows XP Professional o procedimento varia de acordo com a verso do Samba usada. Se voc est usando uma verso recente do Samba, da verso 3.0 em diante, a configurao muito simples, basta seguir os mesmos passos da configurao no Windows 2000.
Se, por outro lado, voc ainda est usando o Samba 2.x, a configurao um pouco mais complicada. Comece copiando o arquivo "/usr/share/doc/sambadoc/registry/WinXP_SignOrSeal.reg" (do servidor), que fica disponvel como parte da instalao do pacote "samba-doc". Esta uma chave de registro que precisa ser instalada no cliente.
Acesse agora as propriedades do "Meu Computador" e na aba "Nome do Computador" clique no boto "ID de rede". Ser aberto um Wizard que coleta o nome do domnio, nome da mquina e login de usurio. Lembre-se que necessrio efetuar o primeiro logon como root.
IntroduoaoLinuxGuilhermeEsmeraldo
83
84 Se no der certo da primeira vez, acesse o "Painel de controle > Ferramentas administrativas > Diretiva de segurana local > Diretivas locais > Opes de segurana" e desative as seguintes opes:
* Membro do domnio: criptografar ou assinar digitalmente os dados de canal seguro (sempre) * Membro do domnio: desativar alteraes de senha de conta da mquina * Membro do domnio: requer uma chave de sesso de alta segurana (Windows 2000 ou posterior)
Para confirmar se os clientes esto realmente efetuando logon no servidor, use o comando "smbstatus" (no servidor). Ele retorna uma lista dos usurios e mquina logadas, como em:
Service pid machine Connected at ----------------------------------------------------joao 4363 athenas Sat Jul 9 10:37:09 2005
Fonte: http://www.gdhpress.com.br/redeseservidores/leia/index.php?p=cap6-9
8.4.2 No Linux
Nos clientes Linux, a forma mais prtica de acessar os compartilhamentos do Samba utilizar clientes grficos como o Smb4K e o mdulo smb:/ do Konqueror. Apesar disso, o Samba possui tambm um cliente de modo texto, o smbclient e possvel IntroduoaoLinuxGuilhermeEsmeraldo 84
85 tambm montar os compartilhamentos, funcionalidade que equivale opo "mapear unidade de rede" disponvel nos clientes Windows. possvel tambm fazer com que os compartilhamentos sejam montados automaticamente durante o boot, adicionando as entradas apropriadas no arquivo "/etc/fstab". Desta forma, os compartilhamentos so montados automaticamente durante o boot e ficam acessveis de forma permanente nas pastas especificadas por voc. Esta uma opo interessante em muitos ambientes, j que mais fcil para os usurios simplesmente acessarem os arquivos atravs de uma pasta, do que terem que montar o compartilhamento usando o Smb4K. O primeiro passo aprender a sintaxe da montagem dos compartilhamentos via linha de comando, j que as entradas do fstab utilizam os mesmos argumentos. Comeando do bsico, voc pode listar os compartilhamentos disponveis em um servidor da rede usando o comando: $ smbclient -L 192.168.1.254 -U gdh Veja que o comando especifica o endereo do servidor (voc pode usar tambm o nome na rede Windows) e a conta de usurio que ser usado para abrir a conexo. Depois de fornecer a senha, voc obtm uma lista dos compartilhamentos disponveis, como em: E230 Printer print$ Disk Drivers de impress_o para os clientes Windows arquivos Disk projetos Disk backup Disk IPC$ IPC IPC Service (Samba PDC) O exemplo mais simples para montar um dos compartilhamentos via linha de comando seria: # mount -t smbfs //servidor/arquivos /mnt/smb Aqui, estou montando o compartilhamento "arquivos" na pasta "/mnt/smb" (que deve ser previamente criada usando o comando mkdir). O "servidor" pode tanto ser o nome da mquina, dentro da rede Windows, quanto seu endereo IP. Como em outros comandos de montagem, voc precisa executar o comando como root. O comando mount um dos comandos mais tradicionais do Linux, que permite "mapear" um diretrio qualquer dentro de outro diretrio do sistema. A opo "-t" serve para especificar o sistema de arquivos, neste caso o "smbfs", usado para acessar compartilhamentos Windows. Note que a localizao do compartilhamento fornecida numa sintaxe muito similar que usaramos para mapear um compartilhamento no Windows, com a sintaxe "barra barra servidor barra compartilhamento". A nica diferena que aqui usamos barras "normais" ao invs IntroduoaoLinuxGuilhermeEsmeraldo 85
86 de barras invertidas. :) S para efeito de comparao, ao mapear o mesmo compartilhamento numa mquina Windows, teramos:
O problema com o comando acima que ele s funciona realmente ao montar compartilhamentos do Windows 98/ME, que no possuem senhas. No Windows 2000/XP/Vista (com exceo das estaes com o simple sharing ativado), voc vai receber uma mensagem de acesso negado, j que neles voc precisa se autenticar para obter acesso aos compartilhamentos. Para isso, necessrio incluir a opo "-o username=usuario" (tudo junto, sem espaos), especificando o login que ser usado, como em: # mount -t smbfs //servidor/arquivos /mnt/smb -o username=gdh possvel tambm especificar a senha diretamente no comando, o que permite usar o comando em scripts: # mount -t smbfs //servidor/arquivos /mnt/smb -o username=gdh,password=1234 Depois de montado o compartilhamento, os arquivos podem ser acessados normalmente, usando o Konqueror, Nautilus ou outro gerenciador de arquivos. muito similar ao acessar uma compartilhamento mapeado no Windows, a principal diferena que voc define uma pasta onde ele ser montado, ao invs de acess-lo atravs de uma letra, como "E:" ou "Z:". Uma peculiaridade do mount que os arquivos dentro da pasta montada passaro por padro a ser propriedade do root. Isso no altera as permisses de acesso dos arquivos no servidor (a mudana apenas local), mas impede que seu login de usurio consiga alterar os arquivos, mesmo que as permisses de acesso do Samba digam o contrrio. Para evitar isso necessrio adicionar a opo "uid=", especificando o login de IntroduoaoLinuxGuilhermeEsmeraldo 86
87 usurio (na mquina local) correto, como em: # mount -t smbfs //servidor/arquivos username=gdh,password=1234,uid=gdh /mnt/smb -o
A opo "uid=" interpretada localmente. O login especificado no repassado ao servidor Samba, de forma que voc pode usar qualquer conta de usurio local. Ele serve apenas para corrigir as permisses de acesso, de forma que voc possa alterar os arquivos normalmente usando seu login de usurio. O passo seguinte tornar a montagem permanente, j que, usando o comando mount, ela perdida ao reiniciar o micro. Para isso, inserimos uma nova linha no final do arquivo "/etc/fstab". A ordem dos parmetros fica um pouco diferente, mas voc notar que os parmetros continuam os mesmos que usamos no comando anterior: //servidor/arquivos /mnt/smb smbfs username=gdh,password=1234,uid=gdh 0 0 Caso necessrio, voc pode tambm indicar o grupo, junto com o usurio local, usando a opo "gid=", como em: //servidor/arquivos /mnt/smb username=gdh,password=1234,uid=gdh,gid=users 0 0 smbfs
O fstab um dos principais arquivos de configurao, por isso sempre importante ter cuidado ao edit-lo. Apenas adicione a nova linha, sem alterar as anteriores e lembre-se sempre de deixar uma linha em branco no final do arquivo. Um parmetro til que pode ser includo a opo "users" que permite que voc consiga montar e desmontar o compartilhamento usando seu login de usurio, sem precisar usar a conta de root. Para isso, adicione o parmetro "user", antes do "username=" (sem espaos), como em: //servidor/arquivos /mnt/smb smbfs users,username=gdh,password=1234,uid=gdh 0 0 A montagem e desmontagem neste caso feita indicando apenas o diretrio, como em "umount /mnt/smb" e "mount /mnt/smb". A principal observao que o smbmnt s aceita fazer a montagem em uma pasta de propriedade do usurio, por isso necessrio ajustar as permisses da pasta usando o comando chown, como em: # chown gdh.gdh /mnt/smb O "0 0" includo sempre no final da linha um parmetro passado sistema, que diz que ele no deve verificar o sistema de arquivos usando o fsck durante a inicializao, j que aqui estamos montando um compartilhamento de rede e no uma partio. Embora no seja muito recomendvel do ponto de vista da segurana, tambm IntroduoaoLinuxGuilhermeEsmeraldo 87
88 possvel escancarar as permisses, fazendo com que qualquer usurio logado no cliente Linux tenha acesso completo a todos os arquivos. Para isso, voc usaria o parmetro "smbpasswd,fmask=777,dmask=777", como em //servidor/arquivos /mnt/smb smbfs users,username=gdh,password=1234 smbpasswd,fmask=777,dmask=777 0 0 (tudo em uma nica linha) Como estamos adicionando as senhas dos compartilhamentos dentro do arquivo, tambm fortemente recomendvel manter as permisses de leitura do arquivo em "600", de forma que apenas o root tenha permisso para ver seu contedo. Para isso, use o comando: # chmod 600 /etc/fstab possvel montar diversos compartilhamentos, adicionando uma linha para cada um. No existe limitao para o nmero mximo de compartilhamentos que podem ser adicionados, mas voc deve ter cuidado de adicionar apenas compartilhamentos de servidores que fiquem ligados continuamente. Se o servidor estiver desligado durante o boot da estao, o boot do cliente vai demorar muito mais que o normal e o usurio ver o erro relacionado montagem do compartilhamento, o que no muito elegante, nem muito bom para sua reputao como administrador. :) Nos exemplos anteriores, especificamos as senhas de montagem dos compartilhamentos diretamente no arquivo "/etc/fstab". Mesmo protegendo o arquivo com o "chmod 600", muita gente afirma que isso um problema grave de segurana, j que algum que conseguisse obter acesso ao arquivo, obteria automaticamente as senhas dos compartilhamentos. Uma opo usar um arquivo externo para armazenar as senhas. Ele pode ser armazenado tanto dentro do diretrio /home/root, quanto dentro do home do usurio do sistema que tem acesso ao compartilhamento. Voc pode tambm usar diversos arquivos de senha, um para cada compartilhamento que precisa ser montado. Para criar os arquivos de senha, use os trs comandos abaixo, ainda como root: # echo "username=gdh" > /home/gdh/.smbpasswd # echo "password=1234" >> /home/gdh/.smbpasswd # chmod 600 /home/gdh/.smbpasswd Usado desta forma, o comando echo permite criar arquivos de texto e adicionar novas linhas. O primeiro comando cria o arquivo, adicionando a linha com o nome do usurio, enquanto o segundo adiciona a linha com a senha. Se por acaso o arquivo j existir, ele subscrito. Como o arquivo foi criado pelo root, o comando "chmod 600" usado no final faz com que, mesmo colocado dentro do home do usurio "joao", apenas o root tenha acesso IntroduoaoLinuxGuilhermeEsmeraldo 88
89 ao arquivo, evitando acidentes. Voc pode tambm criar o arquivo usando um editor de textos qualquer e ajustar as permisses manualmente. Neste caso, bastaria adicionar as duas linhas: username=gdh password=1234 Com o arquivo criado, voc pode modificar a(s) linha(s) no fstab, especificando a localizao do arquivo, ao invs de colocar o usurio e senha diretamente, como em: //servidor/arquivos /mnt/smb smbfs users,credentials=/home/gdh/.smbpasswd 0 0 ou: //servidor/arquivos /mnt/smb smbfs users,credentials=/home/gdh/.smbpasswd smbpasswd,uid=gdh,gid=gdh 0 0 (tudo em uma nica linha) Ao montar vrios compartilhamentos, que so acessados usando o mesmo login e senha, voc pode especificar o mesmo arquivo em todas as linhas, mas, no caso de diversos compartilhamentos, montados usando credenciais diferentes, voc deve criar arquivos separados para cada um e especificar o arquivo correto dentro da linha de montagem de cada compartilhamento. Voc pode criar quantos arquivos de senha diferentes quiser, mas cada arquivo deve conter um nico usurio e senha. Fonte: comando.html http://www.guiadohardware.net/dicas/compartilhamentos-samba-
IntroduoaoLinuxGuilhermeEsmeraldo
89