Vous êtes sur la page 1sur 115

LINUX

Marcio Adroaldo da Silva - 2009


marcio.infocus@gmail.com
Contedo

Contedo .............................................................................................................................................................. 2
INTRODUO........................................................................................................................................................ 5
LINUX .................................................................................................................................................................... 6
O que o LINUX............................................................................................................................................ 6
Histria do Linux ........................................................................................................................................... 6
Software Livre / Cdigo-Aberto .................................................................................................................... 7
Licena GPL ................................................................................................................................................... 7
Outras Licenas ............................................................................................................................................. 8
FSF e o Projeto GNU ..................................................................................................................................... 8
GNUs Not Unix ............................................................................................................................................. 8
Free Software Foundation ............................................................................................................................ 8
Distribuies ................................................................................................................................................. 9
Seguindo os Padres .................................................................................................................................... 9
Os diversos usos de uma distribuio ........................................................................................................ 10
Alguns conceitos interessantes .................................................................................................................. 10
PRINCIPAIS DISTRIBUIES ................................................................................................................................ 14
O FEDORA LINUX ................................................................................................................................................ 18
Principais caractersticas ............................................................................................................................ 18
Histrico das verses estveis .................................................................................................................... 19
CentOS ................................................................................................................................................................ 20
Red Hat x RHEL x CentOS x Fedora ............................................................................................................. 20
INSTALAO DO CentOS .................................................................................................................................... 23
SELINUX .............................................................................................................................................................. 40
O que o SELinux ?..................................................................................................................................... 40
Breve Histrico ........................................................................................................................................... 40
Por que utiliz-lo......................................................................................................................................... 40
SISTEMA DE ARQUIVOS E ESTRUTURA DE DIRETRIOS ..................................................................................... 42
Nveis de execuo ............................................................................................................................................. 44
O SHELL ............................................................................................................................................................... 45
ALGUNS COMANDOS BSICOS ........................................................................................................................... 45
GRUPOS .............................................................................................................................................................. 50
Criando um grupo ....................................................................................................................................... 50
Excluindo um grupo .................................................................................................................................... 50
USURIOS ........................................................................................................................................................... 50
Usurio root ................................................................................................................................................ 50
Usurio de Sistema ..................................................................................................................................... 51
Usurio normal ........................................................................................................................................... 51
Criando um usurio .................................................................................................................................... 51
Modificando um usurio ............................................................................................................................ 52
Modificando o password ............................................................................................................................ 52
Excluindo um usurio ................................................................................................................................. 52
RPM .................................................................................................................................................................... 53
Utilizando o RPM ........................................................................................................................................ 53
YUM .................................................................................................................................................................... 57
Repositrios Adicionais .............................................................................................................................. 59
CRON .................................................................................................................................................................. 61
PERMISSES DE ARQUIVOS................................................................................................................................ 62
Configuraes bsicas ................................................................................................................................ 62
Verificao de conta ................................................................................................................................... 63
Verificao de permisses com ls l .......................................................................................................... 64
Definindo posse de arquivos e diretrios por usurio com chown............................................................ 64
Definindo posse de arquivos e diretrios por grupo com chgrp ................................................................ 65
O comando chmod .................................................................................................................................... 65
Definindo permisses de acesso por triplets ............................................................................................. 65
Definindo permisses de acesso pelo modo numrico.............................................................................. 66
Processos no Linux ............................................................................................................................................. 67
O Temido VI ........................................................................................................................................................ 75
SERVIDOR FTP ..................................................................................................................................................... 83
O que FTP ................................................................................................................................................. 83
Instalando o servidor .................................................................................................................................. 83
Iniciar e interromper o servidor de FTP...................................................................................................... 86
Configurando um cliente ftp para Windows .............................................................................................. 87
Comandos FTP (Shell) ................................................................................................................................. 97
SSH .................................................................................................................................................................... 100
Introduo ................................................................................................................................................ 100
Configurao do ssh ................................................................................................................................. 100
Cliente SSH no LINUX ................................................................................................................................ 103
Cliente SSH no Windows .......................................................................................................................... 104
Exemplo de configurador DHCP ............................................................................................................... 108
SAMBA .............................................................................................................................................................. 110
Adicionando Usurios ao SAMBA ............................................................................................................. 110
O configurador ......................................................................................................................................... 110
REFERNCIAS .................................................................................................................................................... 115
INTRODUO

A presente apostila uma compilao de diversos materiais encontrados na Internet e


disponveis a qualquer pessoa. Apenas foi realizada uma organizao diferenciada utilizando
diversas apostilas e tutoriais, alguns foram adaptados e/ou traduzidos, para atingir um propsito
especfico. Embora utilizemos exemplos de instalao do CentOS,os comandos e solues aqui
apresentados, podero ser utilizadas em qualquer outra distribuio, respeitando as
particularidades de cada uma delas.

No final deste material, esto citadas as fontes de pesquisa, bem como os nomes dos
autores pesquisados, isso tem como objetivo demonstrar transparncia e respeito com aqueles que
criaram materiais importantes e os deixaram disponveis para o pblico em geral.
LINUX

O que o LINUX

O Linux um sistema operacional, ou seja, a interface que gerencia o computador e torna possvel a
sua interao com o usurio. Sendo assim, o Linux quem controla o gerenciamento dos
dispositivos fsicos (como memria, disco rgido, processador, entre outros) e permite que os
programas os utilizem para as mais diversas tarefas. Outros sistemas operacionais incluem: a famlia
UNIX BSD (FreeBSD, NetBSD, OpenBSD e outros), AIX, HP-UX, OS/2, MacOS, Windows, MS-DOS,
entre muitos outros.

O criador do kernel Linux se chama Linus Torvalds, que tambm at hoje o mantenedor da rvore
principal deste kernel. Quando Linus fez o kernel, seguiu os padres de funcionamento POSIX os
mesmos utilizados por todos os sistemas UNIX e por isso um sistema operacional bem parecido
com os outros da famlia UNIX (mas no igual). Um fato curioso a origem do nome Linux: o autor
juntou seu nome ao Unix (Linus + Unix) e o resultando foi Linux.

Um dos recursos que deixou o Linux mais utilizado sua alta portabilidade, que faz com que o
sistema possa ser utilizado em diversas plataformas de hardware: PCs, main-frames, servidores de
porte, sistemas embarcados, celulares, handhelds, roteadores, entre outros. Alm disso, ele um
sistema operacional completo, multi-tarefa e multi-usurio, o que significa que vrios servios e
usurios podem utiliz-lo ao mesmo tempo. Outra caracterstica importante sua alta capacidade
de conversar com outros sistemas operacionais, tais quais outros sistemas UNIX, redes Windows,
Novell, entre outros).

Alm de todas essas funcionalidades, uma das principais e mais importantes caractersticas do Linux
ele ser um software livre e gratuito (Open Source ou em portugus Cdigo Aberto). Isto
significa que voc no precisa pagar para us-lo, alm de ter a possibilidade de no depender de
nenhuma empresa que controle o sistema operacional. O cdigo-fonte do ncleo do sistema
(kernel) est liberado sob a licena GPL e pode ser obtido na Internet por qualquer pessoa, pode
tambm ter seu cdigo alterado e re-distribudo, modificando ao seu gosto e suas necessidades,
caso preciso. Por ser livre, o Linux tem como desenvolvedores vrios programadores espalhados
pelo mundo, de vrias empresas diferentes ou at pessoas isoladas, que contribuem sempre
mandando pedaos de cdigos e implementaes ao Linus Torvalds, que organiza e decide o que ir
ao kernel oficial ou no.

Histria do Linux

O criador do Linux Linus Torvalds era inscrito em uma lista de discusso de


programao baseada em UNIX, quando se deparou com a seguinte pergunta:

Lembra-se daquela poca quando os homens escreviam seus prprios drivers de dispositivos?
Ele ento resolveu desafiar a si mesmo e criar um sistema operacional onde se pudesse trabalhar
como em UNIX, executasse em mquinas baratas (PCs) e que no se ficasse preso ao sistema, como
ele se sentia com sistemas operacionais proprietrios. Inspirado em um pequeno e humilde sistema
feito por Andy Tanembaum o Minix Linus trabalhou bastante para desenvolver o Linux. Um
pouco antes de lanar a primeira verso oficial do kernel, Linus mandou a seguinte mensagem para
o grupo de notcias comp.os.minix:

Voc suspira por melhores dias do Minix-1.1, quando homens sero homens e escrevero seus
prprios drivers de dispositivos? Voc est sem um bom projeto e est morrendo por colocar as
mos em um sistema operacional o qual voc possa modificar de acordo com suas necessidades?
Voc est achando frustrante quando tudo trabalha em Minix? Chega de atravessar noites para
obter programas que trabalhem corretamente? Ento esta mensagem pode ser exatamente para
voc.

Como eu mencionei h um ms atrs, estou trabalhando em uma verso independente de um


sistema operacional similar ao Minix para computadores AT-386. Ele est, finalmente, prximo do
estgio em que poder ser utilizado (embora possa no ser o que voc esteja esperando) e eu estou
disposto a colocar os fontes para ampla distribuio. Ele est na verso 0.02 contudo eu tive
sucesso rodando o bash, gcc, gnu-make, gnu-sed, compresso e etc nele.

No dia 5 de Outubro de 1991, Linus Torvalds anunciou a primeira verso oficial do Linux, a verso
0.02. Desde ento, muitos programadores tm respondido ao seu chamado e tm ajudado a fazer
do Linux o sistema operacional que hoje.

Software Livre / Cdigo-Aberto

Quando um software lanado, o autor geralmente escolhe uma licena para a sua criao. Esta
licena quem vai dizer o que se pode ou o que no se pode fazer com o software disponibilizado.
Historicamente, com a popularizao da informtica, as licenas geralmente constituam uma srie
de restries para os usurios quanto ao uso do software, como por exemplo: usurios tinham que
pagar para usar e no podiam modificar ou mexer na sua base de programao.

Quando Linus Torvalds criou e lanou seu kernel, ele o colocou sob a licena GPL, uma licena criada
pela fundao GNU que permitia o livre uso dos softwares, protegendo de pessoas mal-
intencionadas. A licena GPL foi uma das responsveis pela popularizao do sistema operacional
Linux, pois permitia que usurios e desenvolvedores pudessem usar e modificar o sistema de
acordo com suas necessidades. Alm disso, ao mesmo tempo que ela permite liberdades em
relao ao software, ela tambm protege o cdigo para que a licena e suas liberdades no sejam
modificadas. Este tipo de licena permissiva quem define quando um software livre, ou de
cdigo-aberto.

Licena GPL

A licena GPL permite que o autor distribua livremente o seu cdigo, oferecendo assim 4 liberdades:

1. A liberdade de executar o programa, para qualquer propsito;


2. A liberdade de estudar como o programa funciona e adapt-lo para as suas necessidades;
3. A liberdade de redistribuir cpias de modo que voc possa ajudar ao seu prximo;
4. A liberdade de aperfeioar o programa, e liberar os seus aperfeioamentos, de modo que
toda a comunidade se beneficie deles.
Em outras palavras, todos podem utilizar, modificar e redistribuir o software (e inclusive as
modificaes), contanto que tudo isto seja feito respeitando e mantendo a mesma licena GPL. Isso
permite que o software nunca seja fechado, assim pessoas mal-intencionadas no podem fazer uso
desleal do cdigo.

Outras Licenas

Alm da GPL, h uma grande quantidade de outras licenas que permitem o uso livre dos softwares.
Podemos citar alguns exemplos como a LGPL, Original BSD, Modified BSD, Apache License, Intel
Open Source License, Mozilla Public License, entre muitas outras.

FSF e o Projeto GNU

A FSF Free Software Foundation (Fundao do Software Livre, em portugus) criada em 1985
por Richard M. Stallman uma fundao sem fins lucrativos com o objetivo de incentivar o
movimento do software livre. A FSF foi pioneira na discusso e criao de softwares livres no
mundo, em uma poca em que tudo estava tendendo ao software pago.

GNUs Not Unix

O Projeto GNU foi o bero do software livre. Iniciado em 1984 e idealizado por Richard Stallman,
seu propsito era criar um sistema operacional livre, de cdigo-aberto. Stallman comeou com a
idia criando o editor de textos emacs, que foi muito bem recebido ao seu redor, depois
contemplando o projeto com outros pedaos de software como o compilador gcc.

Depois de algum tempo, o projeto GNU tinha todas as ferramentas prontas para os usurios
utilizarem, mas faltava apenas uma coisa: o kernel. Sem um kernel prprio e livre, o ideal de
software livre do projeto GNU no poderia ser alcanado. O kernel escolhido para ser utilizado no
sistema operacional GNU o GNU HURD, um tipo de micro-kernel que havia sido iniciado em 1990.

Porm, a implementao deste kernel nunca andou muito rpido. Por essa razo, um estudante da
Finlandia chamado Linus Torvalds criou um kernel chamado Linux e utilizou todas as ferramentas do
projeto GNU nele. Como o kernel era livre, rapidamente as pessoas ao redor do projeto GNU
comearam a utiliz-lo e apesar de no ser considerado oficial, o Linux acabou se tornando o kernel
principal do sistema GNU.

Por essa razo, muitas pessoas utilizam o termo GNU/Linux para chamar o sistema operacional
que tem como kernel o Linux e muitas de suas ferramentas bsicas do projeto GNU. Essa questo
bastante polmica e gera muitas controvrsias, pois atualmente no se usa apenas as ferramentas
GNU: as distribuies possuem vrios outros programas de diversos projetos diferentes.

Free Software Foundation

Em 1985, Richard Stallman criou a Free Software Foundation, uma organizao sem fins lucrativos
que atua na defesa do software livre e suas licenas. A FSF cuida de licenas como a GPL,
importantes na implantao e adoo do software livre no mundo. Alm disso, ela tambm
gerencia o projeto GNU, auxiliando todo o grande nmero de programas que participam do projeto.
A Free Software Foundation tem sua sede em Boston, MA, EUA. Alm da sede, ela tambm tem
filiais na Amrica Latina, Europa e ndia.
Richard Stallman

Fundador e criador de vrias polticas sobre softwares livres, Richard Stallman pode ser considerado
um dos pais do software livre. At os dias de hoje (2008), Stallman continua atuando como
articulador pela Free Software Foundation. Defendendo o software livre e a GPL com todas suas
foras.

Distribuies

Quando Linus lanou a primeira verso do Linux em 1991, ele utilizou boa parte do conjunto de
ferramentas do kernel GNU para trabalhar junto ao kernel, afinal o kernel sozinho no poderia fazer
nada de til em relao interface com o usurio. Para usar todas as ferramentas, ele teve que
constru-las especificadamente para o seu kernel e un-las para apresentar ao usurio uma interface
para o uso do computador. Enquanto o kernel trabalhava com o hardware, as ferramentas
trabalhavam servindo como ponte entre o usurio e o kernel.

O processo de montagem do kernel com estas ferramentas pode ser muito trabalhoso. Algumas
empresas e pessoas viram isso como uma grande barreira para adoo do sistema: como usurios
que no eram to avanados conseguiriam utilizar o sistema operacional?

Esta questo foi resolvida com o surgimento das distribuies. As empresas e pessoas criaram
processos de empacotamento do kernel e ferramentas diversas e forneciam aos usurios o pacote
todo pronto: uma distribuio. Os usurios obtiam cpias de disquetes ou CDs atravs de amigos ou
pela Internet e instalavam em suas mquinas atravs dos sistemas de instalao que as empresas e
pessoas por trs das distribuies fizeram, tornando assim o trabalho muito mais fcil.
Com o tempo, as distribuies ficaram cada vez mais complexas, utilizando vrias outras
ferramentas alm das do projeto GNU, se tornando verdadeiros sistemas operacionais que
poderiam ser aproveitados por uma vasta base de usurios.

Uma das reaes mais comuns entre as pessoas quando elas dizem que utilizam o Linux
perguntar: Qual a sua distribuio Linux?. Como o kernel Linux e suas ferramentas so softwares
livres, este processo de empacotamento em uma distribuio poderia ser feito por qualquer um que
entendesse do sistema. Por isso, cada empresa ou pessoa construiu sua distribuio de acordo com
o que eles achavam que seria o melhor. Com isso, cada distribuio acaba tendo algumas
caractersticas especficas que as diferenciam das outras, criando assim o gosto pela adoo nas
pessoas. Enquanto uma pessoa utiliza a distribuio X, outra pessoa utiliza a distribuio Y e uma
terceira pessoa a distribuio F.

Atualmente temos disponveis centenas de tipos diferentes de distribuio, para todos os gostos.

Seguindo os Padres

Quando centenas de distribuies comearam a aparecer, cada uma estava fazendo tudo do seu
jeito. Apesar da liberdade de escolha ser algo bom, a falta de padres poderia por em risco a
utilizao das distribuies Linux em geral, pois umas acabariam se tornando totalmente
incompatveis com as outras, como se fossem sistemas operacionais totalmente diferentes.

Para resolver esta questo, criou-se alguns padres que as distribuies procuram seguir para
manter a interoperabilidade intacta:

FHS http://www.pathname.com/fhs/ Padro que especifica a localizao de arquivos e


diretrios, juntamente com a especificao de qual seus papis no sistema operacional.
LSB http://www.linuxbase.org Um tipo de extenso ao FHS, que fornece modelos de
teste para as distribuies possurem a garantia de seguidoras do padro LSB. Com esta
garantia, as distribuies garantem que quando seguirem o padro LSB, iro ser
interoperveis: ou seja, as aplicaes que funcionam em uma funcionaro em todas.

Os diversos usos de uma distribuio

Como cada distribuio tem suas prprias caractersticas, crucial sabermos que h tipos de
distribuies realmente especializadas em fazer uma coisa em especfico, como tambm h outras
que adotam um uso mais genrico.

Uma distribuio Linux pode ser utilizada em diversas reas como um servidor: firewalls,
roteadores, servidores Web e FTP, servidores de e-mail, banco de dados, backup, entre muitos
outros. Tambm pode ser utilizada para desktop: atravs de ambientes grficos como o KDE,
GNOME, XFCE, entre outros, os usurios tem acesso a programas que criam uma interface amigvel
para o usurio, alm de fornecer as ferramentas para se trabalhar em: manipulao de imagens,
desenvolvimento Web, visualizao de textos e apostilas, navegao na Internet, editorao grfica,
jogos, msica e vdeos, entre muitos outros.

Existem distribuies que ocupam um espao mnimo (50MB), geralmente para computadores mais
antigos e com poucos recursos; outras distribuies feitas diretamente para rodar de um CD, DVD
ou at pen-drive, sem precisar instalar o sistema operacional, geralmente utilizadas para
demonstrao do sistema, para uso emergencial ou para reparos em um computador; outras so
feitas especialmente para serem executadas pela rede, sem a necessidade de um HD; e at as
distribuies que so utilizadas nos dispositivos que usamos no dia-a-dia: tocadores de mp3,
celulares, roteadores (wireless ou no), modems, cmeras, dispositivos de TV, entre muitos outros.

Um bom ponto de partida para se conhecer muitas distribuies o site Distrowatch


http://www.distrowatch.com (em ingls) que contm uma lista gigante de distribuies, seus
contedos, descries e objetivos

Alguns conceitos interessantes

POSIX

POSIX (acrnimo para Portable Operating System Interface, que pode ser traduzido como Interface
Portvel entre Sistemas Operacionais) uma famlia de normas definidas pelo IEEE e designada
formalmente por IEEE 1003, que tem como objetivo garantir a portabilidade do cdigo-fonte de um
programa a partir de um sistema operacional que atenda as normas POSIX para outro sistema
POSIX, desta forma as regras actuam como uma interface entre sistemas operacionais distintos. A
designao internacional da norma ISO/IEC 9945.
A normatizao das especificaes POSIX surgiu de um projecto, iniciado por volta de 1985, que
tinha como objectivo normatizar a API (ou interface de programao de aplicativos) para software
desenhado para correr em variantes do sistema operativo (ou sistema operacional, no Brasil) UNIX.
O termo POSIX foi sugerido por Richard Stallman em resposta a um pedido da IEEE de um nome fcil
de lembrar. uma sigla aproximada de Portable Operating System Interface, com o X a representar
a herana que o interface de programao de aplicaes tem do sistema UNIX.

A norma POSIX especifica os interfaces do utilizador e do software ao sistema operativo em 15


documentos diferentes. A linha de comando e interface de comandos padro a Korn Shell. Outros
programas de nvel de usurio, servios e utilitrios incluem, entre centenas de aplicaes, awk,
echo e ed. Os servios de nvel de programa necessrios incluem servios de I/O (ficheiro, terminal e
internet) bsicos.

Atualmente a sua documentacao e dividida em 3 partes:

POSIX Kernel APIs que inclui:


o Extenses para o POSIX.1,
o Servios de tempo real,
o Interfaces com threads,
o Extensoes de tempo real,
o Interface segura,
o Acesso a arquivos via rede e
o Comunicaes entre processos via rede
Comandos e utilitarios POSIX
o Com extenses de portabilidade para o usurio,
o Correes e utilidades de proteo e
o Controle para utilidades do sistema Batch
Teste de adequacao POSIX

Um pacote de teste da norma POSIX acompanha a documentao da norma. designada por POSIX
Conformance Test Suite (PCTS).

Como a IEEE tem vindo a cobrar somas avultadas pela documentao da norma POSIX e no
permite a publicao online das normas, tem havido uma tendncia para adopo da "Single UNIX
Specification", da responsabilidade do Open Group, que aberta, aceita contribuies de todos e
encontra-se disponvel na Internet.

Apesar de terem sido feitas para sistemas Unix, os padres POSIX podem ser aplicados a qualquer
sistema operacional.Para sistemas Linux, vrias extenses e normalizae

Instituto de Engenheiros Eletricistas e Eletrnicos - IEEE

O Instituto de Engenheiros Eletricistas e Eletrnicos ou IEEE (pronuncia-se I-3-E, ou, conforme a


pronncia inglesa, eye-triple-e) uma organizao profissional sem fins lucrativos, fundada nos
Estados Unidos. a maior (em nmero de scios) organizao profissional do mundo. O IEEE foi
formado em 1963 pela fuso do Instituto de Engenheiros de Rdio (IRE) com o Instituto Americano
de Engenheiros Eltricistas (AIEE). O IEEE tem filiais em muitas partes do mundo, sendo seus scios
engenheiros eletricistas, engenheiros da computao, cientistas da computao, profissionais de
telecomunicaes etc. Sua meta promover conhecimento no campo da engenharia eltrica,
eletrnica e computao. Um de seus papis mais importantes o estabelecimento de padres
para formatos de computadores e dispositivos.

Geralmente participa em todas as atividades associadas com organizaes profissionais:

Editando e publicando jornais.


Estabelecendo atividades de padres baseadas em consenso.
Organizando conferncias.
Promovendo publicaes tcnicas, de seus prprios jornais, padres e textos de membros.

Grupos de Interesse

A organizao da IEEE inclui a existncia de dezenas de grupos de interesse, sendo que o maior
deles quase uma associao prpria, a IEEE Computer Society.

Aes Voluntrias

O IEEE promove, atravs de seus ramos estudantis, oportunidades para os universitrios


promoverem atividades sociais e cintficas em suas universidades. Adicionalmente, existem
captulos profissionais dos seus Grupos de Interesse e captulos focados para os formados na ltima
dcada, chamado GOLD.

The Open Group

The Open Group um consrcio formado por empresas da indstria de informtica para
estabelecer padres abertos para a infra-estrutura de computao. Surgiu em 1996 com a fuso do
consrcio X/Open com a Open Software Foundation. O Open Group mais conhecido por ser o
proprietrio da marca UNIX, mas tambm lembrado pela publicao da Single UNIX
Specification[1], que estende os padres POSIX e a definio oficial do UNIX. Dentre os seus
membros esto vendedores e compradores de produtos de informtica alm de agncias
governamentais como, por exemplo, Capgemini, Fujitsu, Hitachi, HP, IBM, NEC, Departamento de
Defesa dos Estados Unidos da Amrica, NASA e outros.

Histria

Por volta dos anos 90 a maioria dos fornecedores de sistemas Unix entendeu que a rivalidade
existente entre eles, que redundou na chamada guerra do Unix, estava causando mais prejuzo que
benefcio, enfraquecendo o Unix perante a competio que surgia a partir da Microsoft. A iniciativa
COSE, em 1993, pode ser considerada como o primeiro passo no sentido de uma unificao e a
fuso da Open Software Foundation (OSF) com a X/Open, em 1996, como o ltimo passo para o fim
dos conflitos. Como a OSF j havia se unido com a UNIX International em 1994, a nova entidade
teve a representatividade necessria para reunir todos os elementos da comunidade Unix.

O valor da marca UNIX diminuiu devido s mudanas no mercado de sistemas operacionais,


principalmente devido aceitao de sistemas do tipo Unix "no padronizados", como o Linux.
Recentemente foi iniciado um esforo pelo Open Group em conjunto com a Linux Foundation para
ajudar no trabalho de padronizao do Linux atravs da especificao Linux Standard Base.
Programas

Os servios mais conhecidos do Open Group so as suas certificaes, incluindo certificaes para a
plataforma Common Operating Environment (COE), CORBA, LDAP, POSIX, SIF, UNIX e WAP. O Open
Group tambm oferece certificaes para profissionais da rea de informtica, atravs de
programas para arquitetos de sistemas como o IT Architect Certification e o TOGAF (The Open
Group Architecture Framework).

O Open Group fornece uma plataforma para que seus membros discutam necessidades, e
trabalhem conjuntamente no desenvolvimento e adoo de padres da indstria e para facilitar a
integrao das corporaes. Tambm disponibiliza servios para o setor governamental, agncias e
qualquer companhia ou organizao criada por governos para auxiliar na busca pelos objetivos de
governo.

Invenes e padres

Call Level Interface (a base do ODBC)


Common Desktop Environment (CDE)
Distributed Computing Environment (a base do DCOM) [4]
Distributed Relational Database Architecture (DRDA)
LDAP (Lightweight Directory Access Protocol)
Motif um toolkit de wikgets para GUI (utilizado no CDE)
Single UNIX Specification (POSIX)
X Window System
PRINCIPAIS DISTRIBUIES

Debian simultaneamente o nome de uma distribuio no comercial livre (gratuita e de cdigo


fonte aberto) de GNU/Linux (amplamente utilizada) e de um grupo de voluntrios que o mantm
volta do mundo. Uma vez que o Debian se baseia fortemente no projeto GNU (e a distribuio
oficial do Projeto GNU Debian), usualmente chamado Debian GNU/Linux. O Debian
especialmente conhecido pelo seu sistema de gesto de pacotes, chamado APT, que permite:
atualizaes relativamente fceis a partir de verses realmente antigas; instalaes quase sem
esforo de novos pacotes e remoes limpas dos pacotes antigos.
O projeto Debian mantido por doaes atravs da organizao sem fins lucrativos Software in the
Public Interest (SPI).

O nome Debian vem dos nomes dos seus fundadores, Ian Murdock e de sua mulher, Debra. A
palavra "Debian" pronunciada em Portugus como Dbian. Vrias distribuies comerciais
baseiam-se (ou basearam-se) no Debian, incluindo: Lindows (atual Linspire), Xandros, Kurumin,
Debian-BR-CDD e Libranet. O Ubuntu Linux tambm se baseia em Debian. Est atualmente a
decorrer trabalho para portar o Debian para outros kernels livres para alm do Linux, incluindo o
Hurd e o BSD. Para j, no entanto, ainda muito mais preciso descrever o Debian como uma
"Distribuio Linux", sem mais qualificaes.

Fedora Core uma distribuio Linux baseada em pacotes RPM, criada pela Red Hat. Atualmente
mantida pelo Projeto Fedora (Fedora Project). Sua instalao semelhante a verso 9 do Red Hat,
em computadores com mais de 1GHz de processamento e 256 de MB de memria RAM, a
instalao padro demora cerca de 30 minutos. Depois da instalao o GNOME fica como gestor de
desktop padro, podendo ser mudado para o KDE, WindowMaker, etc. J vem com o browser
Mozilla Firefox, com OpenOffice.org e suporte com idiomas, alm uma diversidade de programas
para servidores e desktops domsticos.

Histria
Os usurios da verso Red Hat 9 estavam aguardando a verso 10 ou 9.1 da distribuio. Mas na
verdade a Red Hat estava com outros planos para a nova verso. Esta distribuio era
comercializada em caixas e disponvel nas lojas. Quem assim o adquiria, procurava por mais
recursos. Esta era a verso Enterprise Linux. A Redhat decidiu ento continuar apenas com a Red
Hat Enterprise Linux, que era o que lhe trazia lucros significativos. Afim de proteger sua marca a Red
Hat decidiu registrar sua marca como Fedora a verso normal do Linux. necessrio destacar que o
Fedora Core no um produto pertencente a Red Hat.

Projeto Fedora

O Projeto Fedora uma comunidade independente baseada no cdigo fonte aberto, ela
responsvel por manter a distribuio Fedora Core. O objetivo desse projeto possibilitar que
desenvolvedores da equipe da Red Hat e usurios da comunidade Linux trabalhem para construir
um sistema operacional completo e verstil totalmente livre, sem custos de licenas ou custo de
suporte. As verses testes foram iniciadas a partir de Julho de 2003 e em Maro de 2004 saiu a
primeira verso do Fedora Core. A verso mais recente o Fedora Core 6.

O Fedora Core um sistema voltado para uso em desktops e servidor derivado do Red HatLinux
(uma das distribuies linux mais populares) que mantm algumas de suas caracteristicas como:

Fcil utilizao para usurios inexperientes em Linux


Instalador Anaconda, que facilita a instalao
Gestor de desktop GNOME (tambm inclui o KDE)
Drivers de perifricos novos
Sistema de actualizao
Inumeros programas divididos por temas, que podem ser selecionados na instalao

Gentoo Linux uma distribuio gratuita do sistema operacional GNU/Linux baseada na GNU
General Public License. O diferencial do Gentoo Linux, em relao s outras distribuies, est no
uso da ferramenta Portage de que d ao usurio a possibilidade de ter um sistema adaptado ao seu
perfil, pois cada pacote compilado durante a instalao, de forma automatizada, optimizada e
com todas as dependncias resolvidas. Devido a essas caractersticas o Gentoo Linux considerado
uma meta-distribuio.
Esta distribuio direcionada para usurios avanados ou experientes, devido complexidade de
executar tarefas que em outras distribuies so realizadas de forma simples, porm aconselhada
tambm a todos que queiram saber o mximo sobre GNU/Linux. Quando bem instalada e
configurada, torna-se a distribuio mais veloz, executando programas emulados mais rpido que o
prprio Windows.

Algumas caractersticas do Gentoo Linux:

Suporte a vrias plataformas, inclundo: x86, AMD64, PowerPC, UltraSparc e Alpha.


ltimas verses estveis do KDE , GNOME e Xfce.
Ambiente de desenvolvimento GNU moderno.
Suporte a diversos sistemas de arquivos: ReiserFS, XFS, ext2, ext3, JFS, EVMS e LVM.
Suporte hardware: NVIDIA, Creative Labs Live! e Audigy.
OpenGL modular.
Cerca de 10000 pacotes de softwares disponveis no Portage.

Kubuntu um projeto derivado do Ubuntu, uma distruibuio do sistema operacional GNU/Linux.


Na verdade o Kubuntu e o Ubuntu (assim como Xubuntu e Edubuntu) so o mesmo projeto, mas ao
contrrio do Ubuntu, que vem com o ambiente grfico Gnome, ele suporta o KDE e programas
feitos para KDE, como o navegador Konqueror, Kontact (para emails, RSS e calendrio) e Amarok, o
tocador de msicas.

A proposta do Kubuntu oferecer um sistema operacional/operativo onde qualquer pessoa possa


utiliz-lo, sem dificuldades, independente de nacionalidade, nvel de conhecimento ou limitaes
fsicas. A distribuio deve ser constituda totalmente de software gratuito e livre, alm de isenta de
qualquer taxa. Atualmente uma organizao cuida para que cpias sejam remetidas em CDs para
todo o mundo sem custos.

A Comunidade Kubuntu/Ubuntu se ajuda mutuamente, no havendo distino de novatos ou


veteranos; a informao deve ser compartilhada para que se possa ajudar quem quer que seja,
independente do nvel de dificuldade.

Mandriva juno do nome das duas empresas MandrakeSoft e Conectiva. A Mandriva Conectiva
a operao brasileira da Mandriva, desenvolvedora e distribuidora do sistema operacional Mandriva
Linux, resultado da fuso ocorrida em 24 de fevereiro de 2005 entre a MandrakeSoft, uma das
principais distribuies Linux da Europa, com atuao mundial em mais de 120 pases, e a
Conectiva, pioneira na distribuio Linux e cdigo aberto em portugus, espanhol e ingls para toda
a Amrica Latina. A Mandriva possui escritrios nos Estados Unidos, Frana e Brasil, tem mais de 8
milhes de usurios e uma carteira de 170 grandes clientes corporativos, alm de contar com 130
funcionrios.

SuSE / SLED 10 / SLES 10 / openSUSE

O que o Projecto openSUSE?

O projecto openSUSE uma programa para uma comunidade apoiado pela Novell. Promovendo o
uso do Linux pelo mundo fora, este programa permite um acesso fcil e gratuito distribuio mais
amigvel do mundo, o SUSE Linux. OpenSUSE fornece tudo o que programadores e entusiastas
precisam para comear a usar o Linux. Localizado em opensuse.org, o projeto permite aceder
facilmente a novas verses estveis e de desenvolvimento.
O FEDORA LINUX

Fedora (antigamente chamado Fedora Core) uma distribuio Linux baseada em pacotes RPM,
criada pela Red Hat. Atualmente mantida pelo Projeto Fedora (Fedora Project). Sua instalao
semelhante a verso 9 do Red Hat, em computadores com mais de 1GHz de processamento e 256
de MB de memria RAM, a instalao padro demora cerca de 30 minutos. Depois da instalao o
GNOME fica como gestor de desktop padro, podendo ser mudado para o KDE, WindowMaker,
XFCE e etc. J vem com o browser Mozilla Firefox, com OpenOffice.org e suporte a diversos idiomas,
alm de uma grande diversidade de programas para servidores e desktops. Novas verses do
Fedora so lanadas aproximadamente a cada 6 meses, tendo como padro trs verses-teste para
validao e correo de bugs, reportados atravs do sistema bugzilla do projeto.

Os usurios da verso Red Hat 9 estavam aguardando a verso 9.1 ou 10 da distribuio, mas na
verdade a Red Hat estava com outros planos para a nova verso. Esta distribuio era
comercializada em caixas e disponvel nas lojas. Quem assim o adquiria, procurava por mais
recursos. Esta era a verso Enterprise Linux. A Redhat decidiu focar o mundo corporativo com o Red
Hat Enterprise Linux e descontinuou sua verso voltada para a comunidade, lanando o Projeto
Fedora e registrando esta nova marca, desvinculando esta nova distribuio de suas marcas.

O Fedora representa um conjunto de projetos patrocinados pela Red Hat e direcionados pelo
Projeto Fedora. Estes projetos so desenvolvidos por uma imensa comunidade internacional de
pessoas focadas em prover e manter as melhores iniciativas atravs dos padres livres do software
de fonte aberto. A Distribuio GNU/Linux Fedora , projeto central do Fedora, um sistema
operacional baseado no Linux, sempre gratuito para ser usado, modificado e distribudo por
qualquer pessoa.

As verses testes do Fedora foram iniciadas a partir de Julho de 2003 e em Maro de 2004 saiu a
primeira verso estvel.

Principais caractersticas

Fcil utilizao, mesmo para usurios inexperientes em GNU/Linux.


Instalador Anaconda, um dos mais fceis utilizados atualmente.
Gestor de desktop GNOME e KDE.
Inclui diversos Drivers de perifricos atualizados, facilitando a deteco de hardwares mais
novos.
Possui diversas interfaces de configurao (Rede, Video, Som, Segurana, Teclado, Samba,
Servios e etc) facilitando a administrao e configurao do sistema.
Sistema para gerenciamento de pacotes Yum e atualizador de pacotes PackageKit(a partir do
Fedora 9).
Inumeros programas divididos por temas, que podem ser selecionados na instalao ou
atravs do gerenciador de pacotes.
LiveCDs instalveis com Gnome e/ou KDE disponveis oficialmente a partir da verso 7.
A partir da verso 7, inclui o REVISOR, uma ferramenta de facil utilizao para que qualquer
pessoas possa gerar sua verso LiveCD ou DVD baseado no Fedora.
Disponvel em CDs e DVDs.
Disponvel nas arquiteturas x86, x86_64 e PPC.
Traduzido e Documentado em Portugus pelo Projeto Fedora Brasil.

Histrico das verses estveis

Verso Data de lanamento Codinome Descrio

Fedora Core 1.0 5 de novembro de 2003 "Yarrow" kernel 2.4

Fedora Core 2.0 18 de maio de 2004 "Tettnang" kernel 2.6, KDE 3.2 e GNOME 2.6

Fedora Core 3.0 8 de novembro de 2004 "Heidelberg" kernel 2.6, GNOME 2.8 e KDE 3.3

Fedora Core 4.0 13 de junho de 2005 "Stentz" kernel 2.6, GNOME 2.10, KDE 3.4 e o GCC 4.0

Fedora Core 5.0 20 de maro de 2006 "Bordeaux" kernel 2.6.15, GNOME 2.14, e o GCC 4.1

Fedora Core 6.0 24 de Outubro de 2006 "Zod" kernel 2.6.18.1, GNOME 2.16, e o GCC 4.1.1

Fedora 7.0 31 de Maio de 2007 "Moonshine" kernel 2.6.21, GNOME 2.18,KDE 3.5.6. e o Python 2.5

Fedora 8.0 8 de Novembro de 2007 "Werewolf" kernel 2.6.23, GNOME 2.20,KDE 3.5.8. e o Python 2.5

Fedora 9.0 13 de Maio de 2008 "Sulphur" kernel 2.6.25, GNOME 2.22.1,KDE 4. e o Python 2.5.1
CentOS

O CentOS uma verso gratuita do Red Hat Enterprise, gerado a partir do cdigo fonte
disponibilizado pela Red Hat e mantido de forma bastante competente por um grupo de
desenvolvedores, que combina representantes de diversas empresas que utilizam o sistema
(sobretudo empresas de hospedagem) e voluntrios.

Ele , basicamente, uma verso gratuita do RHEL, que possui um excelente histrico de segurana e
conta com uma boa estrutura de suporte comunitrio e atualizaes pontuais de segurana,
qualidades que o tornam uma das distribuies Linux mais populares em servidores, sobretudo em
servidores web.

Se voc est interessado na estabilidade do Red Hat Enterprise, ou precisa rodar softwares como o
Oracle, que so suportados apenas nele, mas no tem como pagar caro pelo sistema, o CentOS a
sua melhor opo.

Red Hat x RHEL x CentOS x Fedora

Para quem est chegando agora, o Red Hat Linux foi uma das primeiras distribuies Linux a
conquistar um grande pblico. A primeira verso foi lanado em 1994 e o sistema conseguiu ganhar
espao tanto entre os desktops (devido relativa facilidade de uso) quanto entre os servidores,
devido boa estabilidade do sistema. O Red Hat Linux foi descontinuado em 2004, dando lugar ao
Fedora, que desenvolvido de forma colaborativa e s diferentes verses do Red Hat Enterprise
(tambm chamado de RHEL), a verso comercial do sistema, destinada a grandes empresas.

O Red Hat Enterprise possui um ciclo de desenvolvimento mais lento (que prioriza a estabilidade) e
tem suas verses suportadas por um perodo de nada menos do que 7 anos aps o lanamento.
Para quem est acostumado com o rpido ritmo de desenvolvimento das distribuies Linux
domsticas, um sistema que suportado por 7 anos pode soar estranho, mas dentro do ramo
corporativo este um diferencial importante, j que atualizar os desktops e os servidores sempre
um processo arriscado e caro (devido mo de obra necessria, necessidade de treinar os
funcionrios, etc.), de forma que ciclos de desenvolvimento mais lentos e previsveis so preferidos.
Veja o caso do Windows, por exemplo, muitas empresas ainda usam servidores com o 2000 Server,
ou mesmo com o NT 4.

O RHEL fornecido apenas em conjunto com um plano de suporte e no pode ser redistribudo em
seu formato binrio. Entretanto, todo o cdigo fonte est disponvel, de forma que algum que
pacientemente compile cada um dos pacotes disponibilizados pela Red Hat, acaba obtendo uma
cpia completa do sistema, que pode ser usada para todos os fins.

O CentOS nada mais do que um Red Hat Enterprise compilado a partir do cdigo fonte
disponibilizado pela Red Hat, com os logotipos as marcas registradas removidas. Isso garante que os
dois sistemas sejam binariamente compatveis (ou seja, um software compilado para rodar no Red
Hat Enterprise roda tambm na verso correspondente do CentOS sem precisar de modificaes) e
todos os passos de instalao e configurao dos dois sistemas so idnticos, o que faz com que
toda a documentao do Red Hat Enterprise se aplique tambm ao CentOS.

Ao aprender a trabalhar com o CentOS, voc automaticamente aprende a trabalhar com o Red Hat
Enterprise e vice-versa. A grosso modo, podemos dizer que o Fedora uma verso comunitria de
desenvolvimento do Red Hat Enterprise, enquanto o CentOS uma cpia praticamente exata do
sistema.

Com relao s verses, o Red Hat Enterprise 4 foi baseado no Fedora Core 3, enquanto o Red Hat
Enterprise 5 foi baseado no Fedora Core 6 e o Red Hat Enterprise 6 ser baseado no Fedora 9. As
verses do CentOS seguem as verses do Red Hat Enterprise, de forma que o CentOS 5 corresponde
ao Red Hat Enterprise 5 e assim por diante:

Fedora Core 3 > Red Hat Enterprise Linux 4 > CentOS 4


Fedora Core 6 > Red Hat Enterprise Linux 5 > CentOS 5
Fedora 9 > Red Hat Enterprise Linux 6 > CentOS 6

Novas verses do Red Hat Enterprise so disponibilizadas a cada 18 ou 24 meses, mas recebem um
grande volume de atualizaes e correes de segurana durante este perodo. Isso leva ao
lanamento de sub-verses com as atualizaes pr-instaladas, como o Red Hat Enterprise 4.6 e o
Red Hat Enterprise 5.1, que so sempre seguidas pelas verses correspondentes do CentOS.

Assim como o sistema principal, as atualizaes e correes de segurana so disponibilizados pela


equipe do CentOS, novamente atravs de pacotes compilados a partir dos cdigos fontes
disponibilizados pela Red Hat. As atualizaes do CentOS so tipicamente disponibilizadas entre 24
e 72 horas depois das do Red Hat Enterprise (o que impressionante considerando que se trata de
um projeto voluntrio), mas muitas atualizaes crticas so disponibilizadas muito mais rpido, em
poucas horas. Assim como o Red Hat Enterprise, todos os releases do sistema so suportados
recebem atualizaes de segurana por um perodo de 7 anos. Com isso, o CentOS 4 ser suportado
at 2012 e o CentOS 5 ser suportado at pelo menos 2013.

A grande diferena entre o CentOS e o Red Hat Enterprise a questo do suporte, j que, embora
caro, o suporte oferecido pela Red Hat bastante personalizado e os profissionais passam por um
exame de certificao exigente (o RHCE) que mistura testes tericos e prticos. Em servidores de
misso crtica, usar o Red Hat Enterprise e pagar pelo suporte geralmente uma boa opo, j que
alm de ajuda na implementao, voc tem uma equipe pronta para agir em caso de problemas
inesperados. Para os demais casos, voc pode perfeitamente utilizar o CentOS contando com o
suporte comunitrio oferecido atravs dos fruns do projeto.

O CentOS tambm bastante similar ao Fedora, mas nesse caso as diferenas so mais evidentes, j
que verses recentes do Fedora so baseadas em pacotes mais atuais, o que invariavelmente leva a
mudanas no sistema. De qualquer forma, os passos bsicos de instalao e a configurao geral
dos dois sistemas so praticamente iguais, de forma que as dicas desse tpico se aplicam tambm
ao Fedora.

Comparar o CentOS e o Fedora para uso em servidores desperta argumentos similares aos de uma
comparao entre o Ubuntu e o Debian. O CentOS segue as verses do Red Hat Enterprise, que
possui um ciclo de desenvolvimento muito mais longo, onde a principal preocupao a
estabilidade do sistema. O Fedora, por sua vez, desenvolvido em torno de ciclos muito mais
curtos, com uma nova verso sendo disponibilizada a cada 6 meses.

Por um lado isso bom, j que voc tem acesso a verses mais atuais dos pacotes, mas por outro
lado ruim, pois o lanamento mais freqente de novas verses aumenta sua carga de trabalho
como administrador, j que o sistema precisa ser atualizado mais freqentemente.

Alm de serem mais espaadas, as verses do CentOS recebem atualizaes de segurana por um
perodo muito mais longo, que torna a vida til das instalaes muito maior. Um servidor rodando a
verso mais atual do CentOS poderia ser mantido em servio por at 7 anos, recebendo apenas as
atualizaes de segurana, o que no seria possvel no Fedora, onde o suporte s verses antigas
encerrado muito mais rapidamente.

Em resumo, se voc no se importa de utilizar softwares ligeiramente antigos e quer um servidor


que oferea um baixo custo de manuteno e possa ser usado durante um longo perodo sem
riscos, o CentOS mais recomendvel. Se, por outro lado, voc precisa de verses recentes do
Apache, Samba ou outros servios, ou se tem alguma preferncia pessoal em relao ao Fedora,
tambm pode utiliz-lo sem medo.

Embora o Fedora seja em teoria menos estvel que o CentOS, ambas as distribuies podem ser
consideradas bastante estveis. Poderamos dizer que o CentOS "99% estvel" enquanto o Fedora
"98% estvel". Ou seja, existe diferena, mas ela relativamente pequena.
INSTALAO DO CentOS

1. Coloque o DVD no seu servidor ou computador e coloque o boot pelo seu DVD/CD.

2. Ser exibida esta tela. Existem vrias opes de instalao. No nosso exemplo, tecle Enter.

Na prxima tela possvel fazer um teste das mdias. Este teste demorado. Caso no queira
realizar o teste, tecle Tab para selecionar o boto Skip e tecle Enter.

Aguardo um pouco e clique no boto Next.


Selecione o idioma desejado. Geralmente nas empresas a instalao no Ingls. Mas, aqui, vamos
instalar a verso em Portugus do Brasil.

Aps selecionar o idioma para o Portugus, todas as telas estaro em portugus. Confira na prxima
tela. Agora, selecione o Layout do teclado Portugus Brasileiro (ABNT2).
Clique no boto Prximo. Ser exibida uma tela de alerta, informando sobre a tabela de parties.
Apenas clique no boto Sim.

Aguarde um pouco. Ser exibida a tela onde ser necessrio criar as parties. Este processo pode
ser todo automtico ou manual. Aqui, vamos optar pelo automtico.
Marque a opo Rever e modificar o layout do particionamento.

Clique no boto Prximo. Ser exibido um alerta informando que os dados sero perdidos. Clique
no boto Sim.

O Red Hat e CentOS trabalham com o padro LVM. O LVM bem mais prtico e flexvel. Veja a
ilustrao:
Clique no boto prximo.

Agora possvel configurar o gerenciador de inicializao do Linux. Por padro, usado o Grub.
Tambm possvel configurar uma senha para que no possam ser passados parmetros ao Grub
na inicializao do Linux. Alm de opes Avanadas. Veja na prxima tela:

Clique no boto Prximo.


Nesta tela estaremos trabalhando com as configuraes TCP/IP. possvel configurar via DHCP que
o padro ou manualmente. Caso opte pela configurao manual, ser necessrio conhecimento
sobre as configuraes TCP/IP da sua rede. Veja:

Ao clicar no boto Editar:

Veja um exemplo de configurao:


Agora selecione o fuso horrio de acordo com a sua regio. Veja:

Clique no boto Prximo.

Informe a senha do root. O root o administrador com maiores privilgios em um sistema


Linux/Unix. Veja a ilustrao:
Agora o momento de informar quais programas (pacotes) sero instalados. Todos estes pacotes
podem ser adicionados posteriormente. Sempre opto para instalar neste momento. Veja algumas
ilustraes:

Estarei selecionando a opo Server. Este um processo que quando se est aprendendo uma
distribuio Linux, tem que se repetir vrias vezes at ter o domnio da distribuio em questo.
Outro item que no dispenso a opo Personalizar agora.
Veja algumas personalizaes:
Na seo Servidor Web, geralmente seleciono a maioria dos itens por questo de facilidade e
compatibilidade. Veja:

Clique no boto Prximo.

A prxima tela informa que ser iniciado o processo de instalao. Esta agora ser a parte mais
demorada.
Agora, aguardo um pouco enquanto feito o processo de instalao. Pode demorar um pouco
dependendo da configurao do seu sistema. Veja algumas ilustraes:
Agora, o DVD/CD ser ejetado automaticamente e ser necessrio um reboot no sistema.

Aps o boot ainda so necessrias algumas configuraes:


Clique no boto Avanar.

Nesta prxima tela, o momento de configurao do Firewall. possvel liberar alguns servios
bsicos como o ssh, FTP, samba, e-mail, nfs4. Veja:

Outra configurao importante de segurana o SELinux:


Clique no boto Avanar.

possvel configurar o Kdump. Uma ferramenta para ajudar a solucionar.


Ao final ser exibida a tela de concluso. Clique no boto Terminar.

Por padro de login no Modo Texto. Veja:

Acesse o Modo Grfico digitando Alt + F7.


Acesse o sistema digitando seu login e senha. Veja:
SELINUX

O que o SELinux ?

O SELinux ("Security-Enhanced Linux") uma implementao de uma flexvel e refinada arquitetura


MAC("Mandatory Access Control"). SELinux prov uma poltica de segurana sobre todos os
processos e objetos do sistema baseando suas decises em etiquetas contendo uma variedade de
informaes relevantes segurana. A lgica da poltica de tomada de decises encapsulada
dentro de um simples componente conhecido como servidor de segurana ("security server") com
uma interface geral de segurana.

Breve Histrico

O SELinux foi originalmente um projeto de desenvolvimento da NSA ("National Security Agency") e


outros. Ele foi integrado no Kernel do Linux usando o "framework" LSM ("Linux Security Modules").

Inicialmente a implementao do SELinux utilizava os identificadores (IDs ou PSIDs) armazenado nos


inodes livres do sistema de arquivos ext2. Essa representao numrica era mapeada pelo SELinux
como uma etiqueta do contexto de segurana. Infelizmente isso necessitaria de uma modificao
em cada sistema de arquivo para suportar os PSIDs, o que no uma soluo escalvel.

Ento o prximo passo da evoluo foi um mdulo carregvel no kernel 2.4 que armazenava os
PSIDs em um arquivo normal fazendo com que o SELinux suportasse mais sistemas de arquivos.

No entanto, esta soluo ainda no era tima para a performance do sistema. Finalmente o cdigo
do SELinux foi integrado ao kernel 2.6.x com total suporte por LSM e contendo atributos (xattrs) no
sistema de arquivos ext3. SELinux foi alterado para usar xattrs como forma de armazenamento da
informao do contexto de segurana.

Muito do trabalho para deixar o kernel pronto para o SELinux bem como seu subsequente
desenvolvimento vm sendo realizado em esforos conjuntos da NSA, Red Hat, IBM e a comunidade
de desenvolvedores do SELinux.

Por que utiliz-lo

Para entender os benefcios do MAC sobre o tradicional DAC ("Discretionary Access Control"),
necessrio entender as limitaes do DAC.

Utilizando unicamente DAC, o dono de um arquivo/objeto prov um potencial risco de corromp-lo.


Um usurio pode expor arquivos ou diretrios brechas de segurana utilizando incorretamente o
comando chmod e uma no esperada propagao dos direitos de acesso. Um processo inicializado
pelo usurio como um script CGI pode fazer tudo que quiser com quaisquer arquivos possudos por
este usurio. Por exemplo um servidor HTTP pode realizar qualquer operao sobre arquivos que
esto no grupo web ou softwares maliciosos podem conquistar nvel root de acesso rodando como
processo de root ou utilizando setuid ou setgid.

Com DAC existem apenas duas grandes categorias de usurios: Administradores e No-
administradores. Para alguns servios e programas rodarem com nvel elevado de privilgio as
escolhas so poucas e tipicamente resolvida dando completo acesso de administrador.
O MAC permite que seja definido permisses de como os processos iro interagir com outras partes
do sistema como arquivos, devices, sockets, portas e outros processos (todos chamados de objetos
para o SELinux). Isso feito atravs de uma poltica de segurana definida administrativamente
sobre todos os processos e objetos. Estes processos e objetos so controlados pelo Kernel e a
deciso de segurana tomada com todas as informaes disponveis ao invs de utilizar somente a
identidade do usurio. Com este modelo os processos podem garantir apenas permisses
necessrias pela funcionalidade seguindo um princpio de poucos privilgios.

Sobre MAC, por exemplo, usurios que expem seus dados utilizando chmod esto protegidos pelo
fato de seus dados ter um tipo nico associado com seu diretrio "home" e outros processos no
podem tocar nestes dados sem devida permisso dentro da poltica.
SISTEMA DE ARQUIVOS E ESTRUTURA DE DIRETRIOS

Nome: ext2

Caractersticas: Pesquisa Binria

No fragmentao

Permisses de Arquivo (podem ser extendidas)

Arquivos com 255 caracteres no nome

Qualquer caractere especial no nome

Por default, no sncrono

Nome: ext3

Caractersticas: Novo sistema

Journaling FS (assim como o do Aix e o ReiserFS)

Pesquisa Binria

Grava o que foi feito, no necessita FSCK mesmo caso caia a energia

Pode ser aumentado em tempo real, sem perda de dados

Idem a ext2 no restante

importante a qualquer administrador de sistemas entender a estrutura de diretrios do sistema.


Isso porque manter a padronizao definida, o ajudar a saber onde as coisas esto e a futuros
administradores ou auxiliares acharem tudo no sistema.

O Linux possui uma estrutura muito bem organizada e realmente a devemos


seguir.

Abaixo os diretrios principais e o que neles devem conter:

/etc Configuraes do sistema. A grande maioria das configuraes dos pacotes


do Linux ficam dentro desse diretrio

/lib Bibliotecas compartilhadas necessrias ao sistema

/mnt Montagem de discos e perifricos

/opt Pacotes adicionais NO fornecidos com o sistema (no utilizado quase)


/sbin Diretrio usado na inicializao do sistema, pacotes essenciais para
manuteno. Demais pacotes para a administrao do sistema devem ficar em /usr/sbin ou
/usr/local/sbin.

/usr Segundo maior diretrio (logo aps o /), recomenda-se monta-lo como RO
para evitar danos. A grande maioria dos aplicativos do sistema e instalados com ele ficam a partir
deste diretrio.

/var Diretrio que contm arquivos variveis, tais como spool (filas de email,
crontab, impresso) e logs. Este diretrio existe para que os arquivos que necessitem ser
modificados fiquem nele e no no /usr, liberando assim sua montagem como RO.

/root Alguns Unix-Like no o utilizam (utilizam /home/root). o diretrio que


contm os arquivos do administrador (seu home).

/proc Diretrio VIRTUAL onde o kernel armazena suas informaes. Alguns


dados deste podem ser modificados, como os abaixo de /proc/sys que contm informaes muito
pertinentes a performance tunning do sistema.

/tmp Diretrio que contm arquivos temporrios. Todos os usurios necessitam


poder escrever neste diretrio (para gravar seus temporrios), no entanto um no pode apagar o
temporrio do outro (se no teramos um problema), devido a isto este diretrio possui uma
permisso especial, que possibilita escrever mas s apagar aquilo que for seu. Esta permisso
chama-se STICK BIT.

/home Os diretrios pessoais dos usurios devem ficar a partir daqui.

/bin Aplicativos e utilitrios usados durante a inicializao do sistema, antes de


qualquer sistema de arquivos ser montado. As shells dos usurios costumam ficar aqui tambm.
Binrios de usurios devem ficar em /usr/bin.

/boot Contm a imagem do kernel e tudo o que for necessrio ao processo de


boot, menos configuraes.

/dev Dispositivos do sistema.

importante salientar, que essa estrutura de diretrios pode sofrer pequenas mudanas,
dependendo da distribuio e da verso que estiver sendo utilizada. Mas no se preocupe, nada
que no seja percebido por algum com um pouco de conhecimento em LINUX.
Nveis de execuo

Sistemas Linux podem funcionar em vrios nveis distintos de execuo. Cada nvel caracterizado
pelo conjunto de processos permanentes e funes oferecidas. Sistemas Red Hat Linux e derivados,
utilizam seis nveis de execuo, ou runlevels, como so mais conhecidos. Esta concepo tem suas
origens no sistema Unix desenvolvido na AT&T (System V Unix).

Nvel Significado
0 Neste nvel o sistema est parado
1 Sistemas funcionando no nvel 1 esto em modo monousurio, com um conjunto mnimo
de processos ativos. O sistema de arquivos raiz (root) est montado em modo de leitura.
Este nvel de execuo normalmente utilizado quando a inicializao normal falha por
alguma razo.
2 A maior parte dos servios esto ativos, com exceo dos processos de rede (como nfs,
nis, named e httpd). O sistema est em modo multi usurio, mas no permite acesso
remoto
3 Este o nvel normal de operao, com todos os processos ativos. Carrega o sistema em
modo multi usurio, mas sem interface grfica.
4 Este nvel no utilizado na maior parte das distribuies
5 Semelhante ao nvel 3, com todos os processo ativos, porm com uma interface grfica
de logon.
6 executado neste nvel um reboot do sistema.

O nvel de execuo padro definido no arquivo /etc/inittab, atravs da entrada:

id:3:initdefault:

Neste caso, o sistema ser iniciado com o nvel de execuo 3.


O SHELL

Bourne Shell: o shell padro para Unix, ou seja, a matriz dos outros shells, portanto um dos mais
utilizados. representado por "sh". Foi desenvolvido por Stephen Bourne, por isso Bourne Shell.

Korn Shell: este shell o Bourne Shell evoludo, portando todos os comandos que funcionavam no Bourne
Shell funcionaro neste com a vantagem de ter mais opes. representado por "ksh".

C Shell: o shell mais utilizado em BSD, e possui uma sintaxe muito parecida com a linguagem C. Este tipo de
shell j se distancia mais do Bourne Shell, portanto quem programa para ele ter problemas quanto a
portabilidade em outros tipos. representado por "csh".

Bourne Again Shell: o shell desenvolvido para o projeto GNU usado pelo GNU/Linux, muito usado pois o
sistema que o porta evolui e adotado rapidamente. Possui uma boa portabilidade, pois possui
caractersticas do Korn Shell e C Shell. representado por "bash". O nosso estudo estar focado neste.

O Shell do LINUX, pode ser comparado ao DOS (cmd) do Windows, mas essa comparao apenas relativa,
pois o Shell do LINUX extremamente poderoso e flexvel, permitindo a configurao total do sistema LINUX
(rede, servios, usurios, permisses, etc) atravs de interface texto. Tambm bastante til para acesso
remoto, onde a velocidade de comunicao pode ser um obstculo para a interface grfica convencional.
Uma outra caracterstica do Shell do LINUX a possibilidade de criao de aplicaes Shell (seria o .bat do
Windows) bastante eficazes, mas isso exige um nvel de conhecimento bastante avanado do usurio. Para o
usurio comum, apenas o conhecimento da interface grfica j o suficiente, porm, para o administrador
do sistema, o conhecimento do Shell um enorme diferencial, basta vermos que a maioria dos servidores
LINUX rodam apenas a interface texto.

ALGUNS COMANDOS BSICOS

O Linux (na verdade, GNU/Linux), assim como qualquer sistema operacional moderno,
perfeitamente capaz de oferecer interao com o usurio atravs de grficos, fazendo com que seja
possvel utilizar a maioria de seus recursos atravs do mouse. Porm, em dado momento, o modo
grfico pode no estar disponvel, restando apenas o modo texto (para a insero de comandos).
Alm disso, determinadas tarefas s podem ser executadas por comandos digitados. Para no ficar
perdido em qualquer dessas situaes, necessrio conhecer alguns comandos do Linux. isso que
essa matria apresenta a seguir.

Onde e como digitar os comandos?

Se o Linux que voc utiliza entra direto no modo grfico ao ser inicializado, possvel inserir
comandos no sistema atravs de uma aplicao de terminal. Esse recurso facilmente localizvel
em qualquer distribuio. A imagem abaixo, por exemplo, mostra um terminal no Ubuntu Linux:
Se o computador que voc acessa no estiver com o modo grfico ativado, ser possvel digitar
comandos diretamente, bastando se logar. Quando o comando inserido, cabe ao interpretador de
comandos (tambm conhecido como shell) execut-lo. O Linux conta com mais de um, sendo os
mais conhecidos o bash e o sh.

Quando um terminal acessado, uma informao aparece no campo de insero de comandos.


importante saber interpret-la. Para isso, veja os exemplos abaixo:

Exemplo 1: [root@infowester /root]#

Exemplo 2: [wester@alecrim /]$

Observao: dependendo de sua distribuio e de seu shell, a linha de comandos pode ter um
formato ligeiramente diferente do que mostrado nos exemplos. No Ubuntu Linux, por exemplo, o
segundo exemplo fica na seguinte forma:

wester@alecrim: ~$

Nos exemplos, a palavra existente antes do smbolo @ diz qual o nome do usurio que est usando
o terminal (lembre-se de que no Linux necessrio ter um usurio para utilizar o sistema). Os
nomes que aparecem depois do @ indicam o computador que est sendo acessado seguido do
diretrio.

O caractere que aparece no final indica qual o poder do usurio. Se o smbolo for #, significa que
usurio tem poderes de administrador (root). Por outro lado, se o smbolo for $, significa que este
um usurio comum, incapaz de acessar todos os recursos que um administrador acessa.
Independente de qual seja, depois do caractere que o usurio pode digitar os comandos.

Os comandos bsicos do Linux

Agora que voc j sabe como agir em um terminal, vamos aos comandos do Linux mais comuns.
Para utiliz-los, basta digit-los e pressionar a tecla Enter de seu teclado. importante frisar que,
dependendo de sua distribuio Linux, um ou outro comando pode estar indisponvel. Alm disso,
alguns comandos s podem ser executados por usurios com privilgios de administrador.

A relao a seguir mostra os comandos seguidos de uma descrio:


cal: exibe um calendrio;

cat arquivo: mostra o contedo de um arquivo. Por exemplo, para ver o arquivo infowester.txt,
basta digitar cat infowester.txt;

cd diretrio: abre um diretrio. Por exemplo, para abrir a pasta /mnt, basta digitar cd /mnt. Para ir
ao diretrio raiz a partir de qualquer outro, digite apenas cd;

chmod: comando para alterar as permisses de arquivos e diretrios.

clear: elimina todo o contedo visvel, deixando a linha de comando no topo, como se o sistema
acabasse de ter sido acessado;

cp origem destino: copia um arquivo ou diretrio para outro local. Por exemplo, para copiar o
arquivo infowester.txt com o nome infowester2.txt para /home, basta digitar cp infowester.txt
/home/infowester2.txt;

date: mostra a data e a hora atual;

df: mostra as parties usadas;

diff arquivo1 arquivo2: indica as diferenas entre dois arquivos, por exemplo: diff calc.c calc2.c;

du diretrio: mostra o tamanho de um diretrio;

emacs: abre o editor de textos emacs;

file arquivo: mostra informaes de um arquivo;

find diretrio parmetro termo: o comando find serve para localizar informaes. Para isso, deve-se
digitar o comando seguido do diretrio da pesquisa mais um parmetro (ver lista abaixo) e o termo
da busca. Parmetros:

name - busca por nome

type - busca por tipo

size - busca pelo tamanho do arquivo

mtime - busca por data de modificao

Exemplo: find /home name tristania

finger usurio: exibe informaes sobre o usurio indicado;

free: mostra a quantidade de memria RAM disponvel;

halt: desliga o computador;

history: mostra os ltimos comandos inseridos;

id usurio: mostra qual o nmero de identificao do usurio especificado no sistema;


kill: encerra processados em andamento.

ls: lista os arquivos e diretrios da pasta atual;

lpr arquivo: imprime o arquivo especificado;

lpq: mostra o status da fila de impresso;

lprm: remove trabalhos da fila de impresso;

lynx: abre o navegador de internet de mesmo nome;

mv origem destino: tem a mesma funo do comando cp, s que ao invs de copiar, move o arquivo
ou o diretrio para o destino especificado;

mkdir diretrio: cria um diretrio, por exemplo, mkdir infowester cria uma pasta de nome
infowester;

passwd: altera sua senha. Para um administrador mudar a senha de um usurio, basta digitar
passwd seguido do nome deste;

ps: mostra os processos em execuo. Saiba mais no artigo

pwd: mostra o diretrio em que voc est;

reboot: reinicia o sistema imediatamente (pouco recomendvel, prefervel shutdown -r now);

rm arquivo: apaga o arquivo especificado;

rmdir diretrio: apaga o diretrio especificado, desde que vazio;

shutdown: desliga ou reinicia o computador, veja:

shutdown -r now: reinicia o computador


shutdown -h now: desliga o computador

O parmetro now pode ser mudado. Por exemplo: digite shutdown -r +10 e o sistema ir reiniciar
daqui a 10 minutos;

su: passa para o usurio administrador, isto , root (perceba que o smbolo $ mudar para #);

tar -xzvf arquivo.tar.gz: extrai um arquivo compactado em tar.gz;

top: exibe a lista dos processos, conforme os recursos de memria consumidos;

uname: mostra informaes do sistema operacional e do computador. Digite uname -a para obter
mais detalhes;
useradd usurio: cria uma nova conta usurio, por exemplo, useradd wester cria o usurio wester;

userdel usurio: apaga a conta do usurio especificado;

uptime: mostra a quantas horas seu computador est ligado;

vi: inicia o editor de textos vi.

whereis nome: procura pelo binrio do arquivo indicado, til para conhecer seu diretrio ou se ele
existe no sistema;

w: mostra os usurios logados atualmente no computador (til para servidores);

who: mostra quem est usando o sistema.

Finalizando

Praticamente todos os comandos citados possuem parmetros que permitem incrementar suas
funcionalidades. Por exemplo, se voc digitar o comando ls com o parmetro -R (ls -R), este mostrar
todos os arquivos do diretrio, inclusive os ocultos.

A melhor forma de conhecer os parmetros adicionais de cada comando consultando as


informaes de ajuda. Para isso, pode-se usar o recurso --help. Veja o exemplo para o comando ls:

ls --help

Tambm possvel utilizar o comando man (desde que seu contedo esteja instalado), que
geralmente fornece informaes mais detalhadas. Par usar o man para obter detalhes do comando cp,
por exemplo, a sintaxe :

man cp

Se voc estiver utilizando o bash, pode-se aplicar o comando help ou info da mesma forma que o
comando man:

help cp

info cp
Assim como conhecer os comandos bsicos do Linux importante, tambm o saber como acessar
seus recursos de ajuda, pois isso te desobriga de decorar as seqncias das funcionalidades extras.
Sabendo usar todos os recursos, voc certamente ter boa produtividade em suas tarefas no Linux.

GRUPOS

Grupos servem para agrupar diversos usurios em um nico grupo, isto e um tanto quanto bvio.
Exemplificando, temos um departamento pessoal na empresa, estes usurios podem acessar uma
diretrio chamado /usr/share/dpessoal, e mais ningum da empresa pode acessar esta pasta, o
que fazemos para restringir o acesso? Ao invs de modificar a permisso de cada usurio que acessa
este diretrio, podemos criar o grupo deptopessoal, colocar os funcionrios do departamento
pessoal neste grupo e restringir o acesso ao diretrio /usr/share/dpessoal para que somente quem
faa parte deste grupo possa acessar.

Criando um grupo

Para criarmos um grupo utilizamos o comando groupadd, adicionando a opo g podemos definir
o gid (nmero de identificao do grupo) mas se for omitido o sistema vai adicionar a numerao
automaticamente:

# groupadd deptopessoal

Excluindo um grupo

Para excluir um grupo utilize o comando groupdel, uma observao importante que no podemos
excluir os grupos primrios de usurios, somente grupos secundrios.
# groupdel deptopessoal

USURIOS

Um sistema operacional multi usurio permite que mltiplos usurios utilizem o computador e
rodem programas ao mesmo tempo, compartilhando os recursos da mquina. Para que se utilize
desta caracterstica cada usurio deve ter uma conta vlida no computador para que o sistema
possa controlar as polticas de segurana, mediante autenticao o usurio pode utilizar o sistema
local e remotamente. As caractersticas de acesso usurios no Linux so rgidas, tornando-o um
sistema extremamente seguro, veremos abaixo que existem dois tipos de usurio; os usurios
normais e o usurio root (administrador).

Usurio root

A conta root tambm chamada de super usurio, este um login que no possui restries de
segurana. A conta root somente deve ser usada para fazer a administrao do sistema, e usada o
menor tempo possvel.
Qualquer senha que criar dever conter de 6 a 8 caracteres, e tambm poder conter letras
maisculas e minsculas, e tambm caracteres de pontuao. Tenha um cuidado especial quando
escolher sua senha root, porque ela a conta mais poderosa.
Evite palavras de dicionrio ou o uso de qualquer outros dados pessoais que podem ser
adivinhados. Se qualquer um lhe pedir senha root, seja extremamente cuidadoso. Voc
normalmente nunca deve distribuir sua conta root, a no ser que esteja administrando um
computador com mais de um administrador do sistema. Utilize uma conta de usurio normal ao
invs da conta root para operar seu sistema. Porque no usar a conta root? Bem, uma razo para
evitar usar privilgios root por causa da facilidade de se cometer danos irreparveis como root.
Outra razo que voc pode ser enganado e rodar um programa Cavalo de Tria -- que um
programa que obtm poderes do super usurio para comprometer a segurana do seu sistema sem
que voc saiba.

Usurio de Sistema

Tambm conhecidos como usurios lgicos, esse tipo de usurio no uma pessoa, mas um processo em
execuo no computador, que exige acesso a arquivos e processos para que possa realizar seu trabalho de
maneira segura. Temos como exemplos desses usurios: FTP, apache, mysql, etc.

Usurio normal

Os usurios normais possuem permisso de escrita somente em seu diretrio home, possui
tambm acesso de execuo nos diretrios /bin/, /usr/bin/ e /usr/local/bin/ (isto pode variar de
distribuio para distribuio). Em alguns diretrios no possui permisso de leitura como o /root/ e
nas homes de outros usurios, estas permisses podem ser redefinidas, mas note bem que quanto
menos poderes um usurio tiver mais seguro ser o sistema.
As contas aqui tambm possuem senhas portanto os cuidados so os mesmos do usurio root, a
nica diferena que se sua senha cair em mos erradas o estrago ser menor.
Criando um usurio

Vamos criar um usurio atravs do comando useradd, o comando useradd permite que
especifiquemos de uma vez diversas opes sobre o usurio as mais comuns so -g , -s , -G.

-u UID (nmero de identificao do usurio, caso seja omitido o sistema insere um nmero
automaticamente)
-g Grupo primrio a que o usurio pertence ( caso seja omitido o sistema cria um grupo
com o nome do usurio)
-G Grupos secundrios do usurio (um usurio pode fazer parte de outros grupos)
-d Diretrio home do usurio (caso seja omitido o sistema vai criar um diretrio /
home/nomedousurio)
-d Diretrio home do usurio (caso seja omitido o sistema vai criar um diretrio /
home/nomedousurio)
-s Shell padro do usurio (caso seja omitido o sistema vai selecionar o bash como padro)

Vamos criar um usurio, veja o exemplo abaixo:

# useradd -g users -G audio bruno

Certo, usurio criado, automaticamente foi adicionado no grupo users e no grupo audio. Agora
imagine como seria a criao de um usurio que acessa o servidor de uma workstation windows, o
usurio no precisa de um shell vlido. Para isso utilizamos um shell invlido chamado /bin/false
veja abaixo sua criao:

# useradd -g users -s /bin/false Bruno

Modificando um usurio

Da mesma maneira que criamos um usurio podemos modificar um usurio j criado com a
ferramenta usermod, que tem uma sintaxe muito parecida com a useradd, na verdade as opes
so as mesmas, a nica novidade a opo -l que permite a troca do nome de usurio.
Os usurios comuns no podem modificar as opes de suas prprias contas, o administrador deve
executar estas alteraes.

# usermod -l brunao bruno

Modificando o password

At agora nada foi mencionado respeito do password (senha) do usurio, a resposta que os
passwords vm bloqueados por padro nas distribuies atuais. O comando para criao e
alterao de senhas de usurios e grupos passwd, veja um exemplo de sua utilizao:

# passwd bruno
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Por senhas serem secretas cada usurio pode alterar sua senha quando bem entender com o
comando passwd sem nenhum parmetro adicional, o administrador pode mudar a senha de um
usurio, mas no pode saber qual era a senha anterior.

Excluindo um usurio

Para remover definitivamente usurios do sistema utilizamos a ferramenta userdel, adicionando a


opo -r o sistema deleta todo o contedo do diretrio home do usurio:

# userdel bruno
RPM

O sistema operacional Linux, at hoje, tem a fama de ter instalaes complicadas, o que, muitas
vezes, no deixa de ser verdade. Na tentativa de resolver esses problemas de instalao, A empresa
Red Hat criou uma tecnologia chamada RPM, que significa RedHat Package Manager (Gerenciador
de Pacotes RedHat).

O RPM um poderoso gerenciador de pacotes, que pode ser usado para criar, instalar, desinstalar,
pesquisar, verificar e atualizar pacotes individuais de software. Um pacote consiste em
armazenagem de arquivos e informaes, incluindo nome, verso e descrio. Veja a seguir, alguns
comandos e suas respectivas funes, usadas nos pacotes RPM:

rpm -ivh - Instalao de pacotes;


rpm -Uvh - Atualizao de pacotes;
rpm -qi - Informaes sobre o pacote;
rpm -ql - Lista os arquivos do pacote;
rpm -e - Desinstala o pacote;
rpm -qa - Lista os pacotes instalados;

Utilizando o RPM

O RPM tem 5 modos bsicos de operao, excluindo-se o modo de confeco de pacotes:


instalao, desinstalao, atualizao, consulta e verificao. Voc pode obter mais informaes
usando rpm --help ou man rpm. Vejamos cada modo:

Instalao

Pacotes RPM tm nomes de arquivos tais como foo-1.0-1/.i386.rpm, que incluem o nome do pacote
(foo), verso (1.0), release (1) e plataforma (i386). A instalao de um pacote feita atravs de uma
linha de comando, como por exemplo:

$ rpm -ivh foo-1.0-1.i386.rpm

foo ################################

Como se pode observar, o RPM apresenta o nome do pacote e apresenta uma sucesso de
caracteres # atuando como uma rgua de progresso do processo de instalao. O processo de
instalao foi desenvolvido para ser o mais simples possvel, porm eventualmente alguns erros
podem acorrer:

- Pacotes j instalados

Se o pacote j tiver sido instalado anteriormente ser apresentada a seguinte mensagem:

$ rpm -ivh foo-1.0-1.i386.rpm foo package foo-1.0-1 is already installed error: foo-1.0-1.i386.rpm
cannot be installed

Caso se deseje ignorar o erro, pode-se usar o parmetro --replacefiles na linha de comando;
- Dependncias no resolvidas

Pacotes RPM podem depender da instalao de outros pacotes, o que significa que eles necessitam
destes pacotes para poderem ser executados adequadamente. Caso deseje instalar um pacote que
dependa de outro pacote no localizado, ser apresentada a seguinte mensagem:

$ rpm -ivh bar-1.0-1.i386.rpm

failed dependencies:

foo is needed by bar-1.0-1

Para corrigir este erro, ser necessrio instalar o pacote solicitado. Caso deseje que a instalao
ocorra de qualquer forma, pode-se utilizar o parmetro --nodeps na linha de comando.

Desinstalao

Para desinstalar um pacote utilize o comando:

$ rpm -e foo

Onde foo o nome do pacote. Pode ser encontrado um erro de dependncia durante o processo de
desinstalao de um pacote ( outro pacote necessita de sua existncia para funcionar
corretamente). Neste caso ser apresentada a seguinte mensagem:

$ rpm -e foo removing these package

would break dependencies:

foo is needed by bar-1.0-1

Para ignorar a mensagem de erro e desinstalar o pacote deve ser utilizado o parmetro --nodeps na
linha de comando.

Atualizao

Para atualizar um pacote utilize o comando:

$ rpm -Uvh foo-2.0-1.i386.rpm

foo ########################################

O RPM desinstalar qualquer verso anterior do pacote e far a nova instalao preservando as
configuraes. Sugerimos utilizar sempre a opo -U, j que ela funciona perfeitamente, mesmo
quando no h uma verso anterior do pacote. Uma vez que o RPM executa um processo de
atualizao inteligente, apresentada uma mensagem do tipo:

saving /etc/foo.conf as /etc/foo.conf.rpmsave

O que significa que os arquivos de configurao existentes esto salvos, porm mudanas no
software podem tornar este arquivo de configurao incompatvel com o pacote. Neste caso, as
adequaes necessrias devem ser feitas pelo usurio. Como o processo de atualizao uma
combinao dos processos de desinstalao e instalao, alguns erros podem ocorrer. Por exemplo,
quando se quer atualizar um pacote com uma verso anterior verso corrente, ser apresentada a
seguinte mensagem:

# rpm -Uvh foo-1.0-1.i386.rpm

foo package foo-2.0-1 (which is never) is already installed error: foo-1.0-1.i386.rpm

cannot be installed

Para forar uma atualizao de qualquer forma, deve-se usar o parmetro --oldpackage na linha de
comando.

Consulta

A consulta base de dados de pacotes instalados feita atravs do comando rpm -q. Na sua
utilizao, so apresentados o nome do pacote, verso e release. Por exemplo:

$ rpm -q foo foo-2.0-1

Ao invs de especificar o nome do pacote, pode-se utilizar as seguintes opes aps o parmetro q :

a - Consulta todos os pacotes instalados;


f <file> - Consulta o pacote que contm o arquivo <file>;
F - Funciona como o parmetro -f, exceto que funciona a partir do stdin (entrada padro),
como por exemplo find /usr/bin | rpm -qF;
p <arquivo do pacote> - Consulta o pacote originado pelo <arquivo do pacote>;
P - Funciona como o parmetro -p, exceto que funciona a partir do stdin (entrada padro),
como por exemplo find /mnt/cdrom/RedHat/RPMS | rpm -qP.

H diversas formas de especificar que informaes devem ser apresentadas pelas consultas. As
opes de seleo so:

i - Apresenta as informaes do pacote, tais como nome, descrio, release, tamanho, data
de criao, data de instalao e outras;
l - Apresenta a lista de arquivos relacionados com o pacote;
s - Apresenta o status dos arquivos do pacote. H dois estados possveis: normal ou missing
(no localizado);
d - Apresenta uma lista dos arquivos de documentao (pginas de manual, pginas info,
README, etc.);
c - Apresenta uma lista dos arquivos de configurao. Estes arquivos podem ser alterados
aps a instalao para personalizao. Exemplos sendmail.cf, passwd, inittab, etc.

Verificao

A verificao de um pacote provoca a comparao dos arquivos instalados de um pacote com as


informaes localizadas nas bases de dados do RPM. Entre outras coisas a verificao compara o
tamanho, MD5 sum, permisses, tipo, dono e grupo de cada arquivo.

Para verificar um pacote deve-se utilizar o comando:

rpm -V <nome do pacote


Pode-se usar as mesmas opes disponveis no processo de consultas.

Exemplos:

Para verificar um pacote que contenha um arquivo em especial:

rpm -Vf /bin/vi

Para verificar todos os pacotes instalados:

rpm -Va

Para verificar um pacote instalado e o arquivo de pacote RPM:

rpm -Vp foo-1.0-1.i386.rpm

Esta funo pode ser til caso haja alguma suspeita de que a base de dados RPM esteja corrompida.
Se no houver uma discrepncia no haver resposta do sistema, caso contrrio ser apresentada
na forma de uma expresso com 8 caracteres, com um c significando arquivo de configurao e
aps, o nome do arquivo. Cada um dos 8 caracteres significa um dos atributos do arquivo
comparado aos atributos definidos no pacote RPM, onde um ponto significa que o atributo est Ok.
Os atributos so:

5 - MD5 checksum
S - Tamanho do arquivo
L - Link simblico
T - Modificao do arquivo
D - Device
U - Usurio
G - Grupo
M - Modo

Se alguma informao for apresentada, necessrio avali-la e verificar se necessrio remover o


pacote, reinstal-lo ou procurar resolver o problema, estudando outra forma.
YUM

O yum (Yellow dog Update, Modified) o gerenciador de pacotes usado por padro no CentOS, no
Fedora e no Red Hat Enterprise. O yum foi originalmente desenvolvido pela equipe do Yellow Dog
(uma distribuio baseada no Red Hat, destinada a computadores com chip PowerPC) e foi
sistematicamente aperfeioado pela equipe da Red Hat, at finalmente assumir o posto atual.

O yum trabalha de forma bem similar ao apt-get, baixando os pacotes a partir dos repositrios
especificados nos arquivos de configurao, junto com as dependncias necessrias. Assim como o
apt-get, ele capaz de solucionar conflitos automaticamente e pode ser tambm usado para
atualizar o sistema. Essencialmente, o yum e o apt-get solucionaram o antigo problema das
dependncias (um pacote precisa de outro, que por sua vez precisa de um terceiro) que
atormentava os usurios de distribuies mais antigas.

Existem muitas diferenas entre o CentOS e o Debian, uma delas o formato dos pacotes utilizados:
o CentOS utiliza pacotes .rpm, enquanto o debian utiliza pacotes .deb. Ambos tambm utilizam
repositrios separados, com pacotes construdos especificamente para cada uma das duas
distribuies, de forma que existem algumas diferenas nos nomes dos pacotes e arquivos de
configurao usados.

Diferente do apt-get, onde voc precisa rodar o "apt-get update" antes de cada instalao para
atualizar a lista de pacotes, o yum faz a atualizao automaticamente cada vez que uma instalao
solicitada, checando os repositrios, baixando os headers do pacotes e calculando as dependncias
antes de confirmar a instalao, como nesse exemplo:

Isso faz com que a instalao de pacotes usando o yum seja um pouco mais demorada que usando o
apt-get. Ou seja, ganha-se de um lado mas perde-se do outro. :)
Para instalar um pacote, use o comando "yum install", como em:

# yum install mysql-server

Para remov-lo posteriormente, use:

# yum remove mysql-server

O yum possui tambm um recurso de busca, que bastante til quando voc est procurando por
um pacote, mas no sabe o nome exato, ou em casos de pacotes que possuem nomes diferentes
em relao a outras distribuies. Use o comando "yum search", seguido por alguma palavra ou
expresso, que faa parte do nome do pacote ou descrio, como em:

# yum search samba

Ele retorna um relatrio contendo todos os pacotes relacionados, incluindo o texto de descrio de
cada um. Isso resulta geralmente em uma lista relativamente longa. Para fazer uma busca mais
restrita, procurando apenas nos nomes dos pacotes, use o parmetro "list", como em:

# yum list httpd

Ele bem menos falador, retornando apenas os pacotes que possuem "httpd" no nome, sem
pesquisar nas descries.

Uma terceira opo a "provides" que mostra pacotes que incluem um determinado arquivo,
pesquisando no no nome ou na descrio, mas sim no contedo dos pacotes. Ele bastante til
em casos em que voc precisa de alguma ferramenta ou biblioteca que faz parte de outro pacote
maior, como em:

# yum provides mcedit

Em caso de dvida, voc pode verificar se um determinado pacote est instalado e qual a verso
usando o comando "rpm -q", como em:

# rpm -q samba
samba-3.0.25b-0.el5.4

Para atualizar um pacote j instalado, use o comando "yum update", como em:

# yum update samba

O comando "yum install" tambm pode ser usado para atualizar pacotes. A diferena entre o
"install" e o "update" que o "update" se limita a atualizar pacotes j instalados. Ao perceber que o
pacote solicitado no est instalado, ele exibe um aviso e aborta a instalao, como no exemplo
abaixo. Isso reduz a possibilidade de voc acabar instalando um novo servio por engano:

# yum update mysql-server


Loading "installonlyn" plugin
Setting up Update Process
Setting up repositories
Reading repository metadata in from local files
Could not find update match for mysql-server
Outra observao que, depois de atualizar um servio, necessrio recarregar o servio (como em
"service smb restart") para que a nova verso passe a ser usada. Esta mais uma pequena diferena
com relao s distribuies derivadas do Debian, onde os servios so reiniciados de forma
automtica depois de atualizados.

Para atualizar todo o sistema, comece usando o parmetro "check-update", que lista as atualizaes
disponveis:

# yum check-update

Se usado sem especificar um pacote, o "update" vai atualizar de uma vez s todos os pacotes do
sistema, de forma similar ao "apt-get upgrade" do Debian:

# yum update

Existe ainda o comando "yum upgrade", que um pouco mais incisivo, incluindo tambm pacotes
marcados como obsoletos (que no existem mais na verso atual). Ele til em casos em que
necessrio atualizar uma verso antiga do sistema:

# yum upgrade

possvel tambm fazer com que o yum atualize o sistema automaticamente todas as madrugadas.
Para isso, basta ativar o servio "yum" e configur-lo para ser ativado durante o boot:

# chkconfig yum on
# service yum start

Isso faz com que a atualizao seja agendada atravs do cron e seja (por padro) executada todos
os dias s 4:02 da manh, como especificado no arquivo "/etc/crontab".

Repositrios Adicionais

A lista de repositrios usados pelo yum dividida em diversos arquivos, organizados na pasta
"/etc/yum.repos.d/". No CentOS, a parta inclui por padro apenas dois arquivos: "CentOS-
Base.repo" e "CentOS-Media.repo". O primeiro inclui os repositrios oficiais da distribuio,
enquanto o segundo permite que voc instale pacotes contidos nos CDs (ou no DVD) de instalao.

O arquivo "CentOS-Base.repo" contm diversas entradas como a abaixo, uma para cada repositrio:

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
Ao adicionar repositrios adicionais, voc criaria novos arquivos dentro da pasta
"/etc/yum.repos.d/", um para cada repositrio adicional.O yum verifica os arquivos dentro da pasta
cada vez que executado, fazendo com que o novo repositrio passe a ser usado automaticamente.

Normalmente, os responsveis pelos repositrios disponibilizam arquivos de configurao prontos,


que precisam ser apenas copiados para dentro da pasta "/etc/yum.repos.d". Para adicionar o
repositrio kbs-centos-extras, por exemplo, voc baixaria o arquivo "kbsing-CentOS-Extras.repo",
disponvel no http://centos.karan.org/.

Assim como o apt-get, o yum utiliza chaves GPG para checar a autenticidade dos pacotes antes de
fazer a instalao. Cada pacote assinado digitalmente pelo desenvolvedor, o que atesta que o
pacote foi realmente gerado por ele. Mesmo que algum tentasse adulterar o pacote (incluindo um
rootkit ou um script malicioso, por exemplo), no teria como falsificar tambm a assinatura, o que
levaria o yum a reportar o problema e abortar a instalao.

Ao adicionar um novo repositrio, necessrio adicionar tambm a chave pblica do


desenvolvedor, usando o comando "rpm --import", como em:

# rpm --import http://centos.karan.org/RPM-GPG-KEY-karan.org.txt

Normalmente, a URL com a chave pblica GPG fica em destaque dentro da pgina com instrues
de como adicionar o repositrio.

Da mesma forma, para remover um repositrio posteriormente, voc removeria o arquivo da pasta,
de forma que o yum deixe de us-lo. interessante tambm limpar o cache do yum, usando os
comandos:

# yum clean headers


# yum clean packages
CRON

Este um daemon usado no Linux e em vrias verses do Unix que executa tarefas agendadas no
arquivo "/etc/crontab". Esta uma ferramenta bastante poderosa, que pode ser usada para
automatizar tarefas de rotina e de manuteno do sistema. A diferena entre o at e o cron que o
at permite executar os comandos apenas uma vez, enquanto o cron permite executa-los
repetidamente, todo dia, toda semana, ou em qualquer periodicidade desejada. Para isto, basta
editar o arquivo, inserindo uma nova linha que especifique o comando a ser executado e a
periodicidade A sintaxe das linhas do cron um pouco complicada, por isso preste ateno:

Este um exemplo de linha que pode ser includa:

30 15 * * * root /usr/bin/rdate -s 131.188.3.223

O primeiro campo, "30" refere-se aos minutos, enquanto o segundo "15", s horas. Depois temos o
campo do dia, ms e dia da semana. No meu caso os trs campos esto com um *, o que significa
que o comando ser executado todos os dias na hora especificada nos campos da hora, ou seja,
todos os dias s 15:30. Finalmente, temos o usurio que executar o comando (no caso o prprio
root) e finalmente o comando que ser executado (/usr/bin/rdate -r 131.188.3.223) que serve para
sincronizar o relgio do micro com o horrio do servidor especificado (este endereo o de uma
universidade na Alemanha, que mantm um servidor rdate pblico). Para executar o comando
todas as quartas feiras, meia noite (00:00) por exemplo, voc usaria o campo de dia da semana (o
quinto) para especificar um nmero de 1 a 7 que se refere ao dia. 1 Segunda-feira e 7 o
Domingo. Quarta-feira o dia 3, ento a linha ficaria:

00 00 * * 3 root /usr/bin/rdate -s 131.188.3.223

Se fosse para executa-lo todo dia 14 de Abril s 4 da tarde (16:00), ento seria:

00 16 14 04 * root /usr/bin/rdate -s 131.188.3.223

Note que neste ltimo caso o dia da semana voltou a ser um asterisco. Se voc especificasse
tambm um dia da semana, 3 por exemplo, ele s executaria o comando caso o dia 16/04 casse
numa Quarta-Feira, o que seria improvvel :-). Voc poderia brincar com isso fazendo com um um
comando fosse executado toda Sexta-feira 13 (um backup extra, s pra garantir :-) meia-noite.
Neste caso a linha ficaria:

00 00 13 * 5 root comando

O arquivo /etc/crontab s pode ser editado pelo root, mesmo que o comando a ser inserido na
linha v ser executado por outro usurio. Lembre-se de s executar os comandos includos no
/etc/crontab como root quando necessrio. Se o comando puder ser executado por um usurio
comum, altere o "root" na linha pelo login do usurio. Os usurios do sistema tambm podem usar
o cron, mas usando o comando "crontab -e".
Exemplo de tarefas agendadas:

PERMISSES DE ARQUIVOS

O controle de acesso em arquivos e diretrios a segurana fundamental para qualquer sistema


multi-usurio.
Os sistemas de arquivos nativos do Linux implementam controle de acesso utilizando algumas
propriedades dos arquivos/diretrios.

Configuraes bsicas

No Linux h trs modelos de controle de acesso bsicos: Read, Write e Execution.

Veja um exemplo de permisso bsica na figura abaixo:

O Tipo do Objeto significa:

d => diretrio
b => arquivo de bloco
c => arquivo especial de caractere
p => canal
l => link
s => socket
- => arquivo normal

J os outros caracteres significam:

r => significa permisso de leitura (read);


w => significa permisso de gravao (write);
x => significa permisso de execuo (execution);
- => significa permisso desabilitada.

Explicando um pouco mais:

Leitura (r):
Em arquivos, permite examinar o contedo do arquivo.
Em diretrios permite listar contedo do diretrio.

Escrita (w):
Em arquivos, permite escrever, remover e alterar o arquivo.
Em diretrios, permite criar e remover arquivos dentro do diretrio.

Execuo (x):
Em arquivos, permite executar um arquivo como um programa.
Em diretrio, permite ler e escrever em arquivos dentro do diretrio.

Sendo que os trs primeiros rwx primeiros pertencem ao Dono do arquivo, e os outros trs rwx
pertencem ao Grupo e por fim os ltimos trs rwx pertencem h outros usurios que no fazem
parte do grupo.

Uma nota se faz importante neste momento. As permisses de diretrio se sobrepem s permisses do
arquivo que esto dentro dele.

No LINUX, todos os arquivos e diretrios so automaticamente assinalados por um usurio e um


grupo que so "donos" deste arquivo/diretrio, assim o sistema pode definir diferentes permisses
de acesso entre usurios. Isto muito importante pois um sistema multi usurio precisa ter uma
camada de segurana especial, imagine que o usurio1 cria um diretrio com documentos de texto
importantes, o usurio2 por sua vez no sabe para que serve esta pasta e acaba apagando-a por
engano, este tipo de coisa no pode acontecer em uma empresa. Desta forma foram criadas as
permisses de acesso, que restringem as aes que dos usurios em arquivos e diretrios. Vamos
coletar dados sobre nossa conta atual para gerenciarmos corretamente as permisses de acesso.

Verificao de conta

Para saber que usurio estamos utilizando usamos o comando whoami na verdade pode parecer
sem sentido saber que usurio estamos utilizando quando logamos, mas imagine que estemos
acessando o servidor de outra maneira ou seja um usurio genrico.

$ whoami
bruno

Precisamos saber tambm a que grupo pertencemos, utilizamos o comando groups:

$ groups
users audio webdesign
Primeiro vem o grupo primario do usurio, logo aps os grupos secundrios. O comando groups
pode retornar os grupos de outros usurios caso seja colocado seu username como parmetro:

$ groups joao
users audio vdeo

Vamos agora verificar permisses de arquivos.

Verificao de permisses com ls l

Para verificarmos as permisses de acesso arquivos utilizamos o comando ls-l, que retorna uma
lista com diversas colunas, devemos ter uma ateno especial com trs destas colunas, Veja abaixo
o exemplo:

$ ls -l /aulas/aula7/
-rw-r--r-- 1 bruno users 0 May 27 08:14 arquivo1.txt

Veja na tabela abaixo que colunas devem ser observadas:

-rw-r-r Permisses de acesso a este arquivo/diretrio.


bruno Usurio dono deste arquivo/diretrio.
Users Grupo dono deste arquivo/diretrio.

Como podemos observar, as permisses de acesso so definidas por um conjunto de caracteres, no


caso do arquivo1.txt as permisses de acesso so "-rw-r--r--", neste conjunto de caracteres esto
definidas respectivamente as permisses de acesso do usurio dono, do grupo dono e dos outros
usurios.

Para tornar isto mais claro vamos observar o output do comando que executamos anteriormente:

-rw-r--r-- 1 bruno users 0 May 27 08:14 arquivo1.txt

O usurio dono possui permisso de leitura e escrita e no possui permisso de execuo.


O grupo dono possui permisso de leitura e no possui permisso de escrita nem de execuo.
Os outros usurios possuem permisso de leitura e no possuem permisso de escrita nem de
execuo.

Definindo posse de arquivos e diretrios por usurio com chown

Agora que j sabemos como verificar as permisses de acesso de arquivos e diretrios vamos
aprender a definir estas permisses de acesso, primeiro vamos mudar o usurio dono deste
arquivo, para isso utilizamos o comando chown, sua utilizao bem simples veja abaixo um
exemplo:

# chown root /aulas/aula7/arquivo1.txt


$ ls /aulas/aula7/
-rw-r--r-- 1 root users 0 May 27 08:14 arquivo1.txt
O usurio dono foi alterado, o comando chown pode tambm alterar de uma nica vez o usurio e
o grupo, passando como parmetro usurio:grupo, veja o exemplo abaixo:

# chown bruno:webdesign /aulas/aula7/arquivo1.txt


$ ls /aulas/aula7/
-rw-r--r-- 1 bruno webdesign 0 May 27 08:14 arquivo1.txt

Definindo posse de arquivos e diretrios por grupo com chgrp

Existe tambm um comando que altera somente o grupo dono de determinado arquivo/diretorio,
este comando o chgrp sua utilizao igualmente simples:

# chgrp users /aulas/aula7/arquivo1.txt


$ ls /aulas/aula7/
-rw-r--r-- 1 bruno users 0 May 27 08:14 arquivo1.txt

O comando chmod

Enquanto os comando chown e chgrp servem para alterar respectivamente o usurio dono e o
grupo dono, o comando chmod serve para alterar as permisses rwx vistas anteriormente, o
comando chmod recebe dois argumentos: a nova permisso e o objeto de destino. Voc poder
alterar as permisses de acesso a um objeto de duas maneiras, a primeira atravs dos triplets
(rwx) vistos anteriormente, a segunda atravs de uma tabela numrica que veremos adiante.
Definindo permisses de acesso por triplets

Primeiro, vamos definir esta permisso por triplets. Veja o exemplo abaixo:

# chmod g+w /aulas/aula7/arquivo1.txt


$ ls /aulas/aula7/
-rw-rw-r-- 1 bruno users 0 May 27 08:14 arquivo1.txt

Como podemos observar foi utilizado o parmetro g+w, afinal o que isto significa?
Quer dizer que o grupo pode escrever no arquivo1.txt. Ento fica claro que os parmetros passados
so o tipo de usurio + permisso. Veja na tabela abaixo que tipos de usurios podem ser
utilizados:

u Usurio dono
g Grupo dono
o Outros usurios
a Todos os usurios

Vamos a mais um exemplo para que fique mais claro:

# chmod u+x /aulas/aula7/arquivo1.txt


$ ls /aulas/aula7/
-rwxrw-r-- 1 bruno users 0 May 27 08:14 arquivo1.txt

Como podemos observar foi utilizado o parmetro u+x, isto significa que o usurio dono pode
executar o arquivo1.txt.
Como fazemos para retirar permisses? Utilizamos o smbolo - ao invs do smbolo + Veja o
exemplo abaixo:

# chmod u-x /aulas/aula7/arquivo1.txt


$ ls /aulas/aula7/
-rw-rw-r-- 1 bruno users 0 May 27 08:14 arquivo1.txt

No lugar do rwx encontramos o rw- isto significa que retiramos a permisso de execuo do usurio
dono.

Definindo permisses de acesso pelo modo numrico

A definio de permisses pelo modo numrico funciona de maneira diferente; de uma nica vez
definimos as permisses do usurio dono, do grupo dono e dos outros usurios atravs de um
nmero passado como parmetro, a tabela de nmeros esta abaixo:

Numero Triplet
7 rwx
6 rw-
5 r-x
4 r--
3 -wx
2 -w-
1 --x
0 ---

Veja o exemplo abaixo a utilizao do modo numrico:

# chmod 664 /aulas/aula7/arquivo1.txt


$ ls /aulas/aula7/
-rw-rw-r-- 1 bruno users 0 May 27 08:14 arquivo1.txt

Utilizamos o parmetro 664; o primeiro nmero serve para o usurio dono, o segundo para o grupo
dono e o terceiro para os outros usurios.
Processos no Linux

Nos sistemas operacionais, um processo a forma de representar um programa em execuo. o


processo que utiliza os recursos do computador - processador, memria, etc - para a realizao das
tarefas para as quais a mquina destinada. Este artigo mostrar os principais conceitos
relacionados a processos no Linux e as ferramentas usadas para manipul-los e gerenci-los.

Composio de um processo

O sistema operacional lida com uma infinidade de processos e, por isso, necessrio ter meios que
permitam control-los. Para isso, os processos contam com um conjunto de caractersticas, dentre
as quais:

- Proprietrio do processo;
- Estado do processo (em espera, em execuo, etc);
- Prioridade de execuo;
- Recursos de memria.

O trabalho de gerenciamento de processos precisa contar com as informaes acima e com outras
de igual importncia para que as tarefas sejam executadas da maneira mais eficiente. Um dos meios
usados para isso atribuir a cada processo um PID.

PID e PPID

Um PID (Process Identifier) um nmero de identificao que o sistema d a cada processo. Para
cada novo processo, um novo nmero deve ser atribudo, ou seja, no se pode ter um nico PID
para dois ou mais processos ao mesmo tempo.

Os sistemas baseados em Unix precisam que um processo j existente se duplique para que a cpia
possa ser atribuda a uma tarefa nova. Quando isso ocorre, o processo "copiado" recebe o nome de
"processo pai", enquanto que o novo denominado "processo filho". nesse ponto que o PPID
(Parent Process Identifier) passa a ser usado: o PPID de um processo nada mais do que o PID de
seu processo pai.

UID e GID

Conforme j mencionado, cada processo precisa de um proprietrio, um usurio que seja


considerado seu dono. A partir da, o sistema saber, atravs das permisses fornecidas pelo
proprietrio, quem pode e quem no pode executar o processo em questo. Para lidar com os
donos, o sistema usa os nmeros UID e GID.

O Linux gerencia os usurios e os grupos atravs de nmeros conhecidos como UID (User Identifier)
e GID (Group Identifier). Como possvel perceber, UID so nmeros de usurios e GID so
nmeros de grupos. Os nomes dos usurios e dos grupos servem apenas para facilitar o uso
humano do computador.

Cada usurio precisa pertencer a um ou mais grupos. Como cada processo (e cada arquivo)
pertence a um usurio, logo, esse processo pertence ao grupo de seu proprietrio. Assim sendo,
cada processo est associado a um UID e a um GID.
Os nmeros UID e GID variam de 0 a 65536. Dependendo do sistema, o valor limite pode ser maior.
No caso do usurio root, esses valores so sempre 0 (zero). Assim, para fazer com que um usurio
tenha os mesmos privilgios que o root, necessrio que seu GID seja 0.

Sinais de processos

Os sinais so meios usados para que os processos possam se comunicar e para que o sistema possa
interferir em seu funcionamento. Por exemplo, se o usurio executar o comando kill para
interromper um processo, isso ser feito por meio de um sinal.

Quando um processo recebe um determinado sinal e conta com instrues sobre o que fazer com
ele, tal ao colocada em prtica. Se no houver instrues pr-programadas, o prprio Linux
pode executar a ao de acordo com suas rotinas.

Entre os sinais existentes, tem-se os seguintes exemplos:

STOP - esse sinal tem a funo de interromper a execuo de um processo e s reativ-lo aps o
recebimento do sinal CONT;
CONT - esse sinal tem a funo de instruir a execuo de um processo aps este ter sido
interrompido;
SEGV - esse sinal informa erros de endereos de memria;
TERM - esse sinal tem a funo de terminar completamente o processo, ou seja, este deixa de
existir aps a finalizao;
ILL - esse sinal informa erros de instruo ilegal, por exemplo, quando ocorre diviso por zero;
KILL - esse sinal tem a funo de "matar" um processo e usado em momentos de criticidade.

O kill tambm um comando que o usurio pode usar para enviar qualquer sinal, 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 us-lo 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

Estado dos processos

Quando um processo criado, isso no significa que ele ser imediatamente executado. Alm disso,
determinados processos podem ser temporariamente 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.

Comandos nice e renice

Ao abordarmos os comandos nice e renice necessrio entender o conceito de gentileza. Um


processo pode ter prioridade em relao a outros em sua execuo. Quando um processo gentil,
significa que ele "oferece a gentileza" de permitir que um processo com prioridade maior que a sua
seja executado antes dele. Os nveis de gentileza, tambm chamados de nice, so determinados
atravs de nmeros. Quanto mais alto for o valor nice, mais gentil o processo. Geralmente, o
intervalo de nmeros usados no nice so os inteiros entre -19 e 19.

Embora determinar a prioridade de um processo no seja uma prtica comum, afinal, o prprio
Linux faz muito bem essa tarefa, isso pode ser necessrio em alguma situao. Para isso, utiliza-se
um comando que recebe o mesmo nome do conceito: nice. A sintaxe :

nice -n prioridade processo

Por exemplo:

nice -n -5 ntpd

No exemplo, o ntpd recebe prioridade -5. Trata-se de uma prioridade alta, afinal, como j dito,
quanto menor o nmero menor sua gentileza.
Se um determinado processo est em execuo, isso acontece com uma prioridade j definida. Para
alterar um processo nessa condio, usa-se o comando renice, cuja sintaxe :

renice prioridade opo processo/destino

As opes do renice so:

-u - a alterao ocorrer nos processos do usurio informado;


-g - a alterao ocorrer nos processos do grupo indicado;
-p - a alterao ocorrer no processo cujo PID for informado.

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.

Verificando processos com o ps

O ps um comando de extrema importncia para o gerenciamento de processos. Por ele, possvel


saber quais os processos em execuo atualmente, quais os UIDs e PIDs correspondentes, entre
outros.

Se somente ps for digitado na linha de comando, geralmente o sistema mostra quais os processos
do usurio. preciso usar uma combinao de opes para obter mais detalhes.

As opes mais importantes so os seguintes:

a - mostra todos os processos existentes;


e - exibe as variveis de ambiente relacionadas aos processos;
f - exibe a rvore de execuo dos processos;
l - exibe mais campos no resultado;
m - mostra a quantidade de memria ocupada por cada processo;
u - exibe o nome do usurio que iniciou determinado processo e a hora em que isso ocorreu;
x - exibe os processos que no esto associados a terminais;
w - se o resultado de processo no couber em uma linha, essa opo faz com que o restante seja
exibido na linha seguinte.

Das opes acima, a combinao mais usada (pelo menos aqui no InfoWester) aux:

ps aux

Como exemplo, o resultado obtido com esse comando foi o seguinte:


Note que usando a combinao lax, o resultado mostra mais detalhes:

ps lax

A seguir, segue a descrio dos campos mostrados anteriormente e alguns que s so mostrados
com a combinao lax:

USER - nome do usurio dono do processo;


UID - nmero de identificao do usurio dono do processo;
PID - nmero de identificao do processo;
PPID - nmero de identificao do processo pai;
%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.

Verificando processos com o top

O comando ps trabalha como se tirasse uma fotografia da situao dos processos naquele
momento. O comando top, por sua vez, coleta as informaes, mas as atualiza regularmente.
Geralmente essa atualizao ocorre a cada 10 segundos.
A sintaxe do comando top a seguinte:

top -opo

Entre as opes, tem-se as que se seguem:

-d - atualiza o top aps um determinado perodo de tempo (em segundos). Para isso, informe a
quantidade de segundos aps a letra d. Por exemplo: top -d 30;
-c - exibe a linha de comando ao invs do nome do processo;
-i - faz o top ignorar processos em estado zumbi;
-s - executa o top em modo seguro.

possvel manipular alguns recursos do comando top atravs das teclas do teclado. Por exemplo,
para atualizar imediatamente o resultado exibido, basta pressionar a tecla de espao. Se pressionar
a tecla q, o top finalizado. Pressione a tecla h enquanto estiver utilizando o top para ver a lista
completa de opes e teclas de atalho.

Os recursos jobs, fg e bg, fuser, pstree, nohup

Para ter ainda mais controle sobre os processos executados no Linux, pode-se utilizar 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:

-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

Saber lidar com processos pode ser crucial para manter um computador funcionando e executando
suas tarefas numa situao crtica. O assunto essencial a administradores de sistemas, mas
importante at mesmo ao usurio domstico. Obviamente que o controle de processos no se
resume aos recursos citados aqui, uma vez que este artigo deve ser interpretado como um guia
bsico. Alm disso, se voc pretende obter algum certificado em Linux, ter conhecimento sobre o
controle de processos pode lhe dar pontos significativos. Por isso, no hesite em explorar os
comandos. Se quiser mais detalhes, use os recursos de ajuda, como o tradicional "man comando".
O Temido VI

"vi" a sigla para "Visual Interface". A origem desse nome se deve ao seguinte fato: quando o vi foi
criado (comeo da dcada de 80), no era comum existirem editores de textos como nos dias de
hoje. Naquela poca, voc digitava um texto mas no podia v-lo! Isso mesmo! Em 1992, foi criado
o vim (Vi IMitator), um clone fiel ao vi, porm com muitas outras funcionaliades, que s foram
sendo adicionadas. Algum tempo depois, o vim passou a ser chamado de `Vi IMproved' (vi
melhorado).

O vim um dos editores de textos mais utilizados no mundo Unix. Em alguns sistemas, existe um
link simblico (/bin/vi) apontando para o /usr/vim. Em outros, o /bin/vi o executvel, s que
executa diretamente o vim. Muita gente acha que usa vi, mas na verdade utiliza o vim, e eles tm
algumas diferenas. O que voc ver abaixo fala sobre o vim.

O vim um editor de textos muito poderoso, ele pode: abrir vrios arquivos ao mesmo tempo,
possui sistema de autocorreo, auto-identao, seleo visual, macros, seleo vertical de texto,
uso de expresses regulares, sintaxe colorida, e muito mais. Ele no exclusivo do Unix, ou seja,
pode ser executado em outras plataformas, como Amiga, MacOS, Sun, Windows entre outras.

Existe tambm o gvim, que o vim em modo grfico, com todas as funcionalidades do vim em
pleno funcionamento, o que muda apenas o modo grfico mesmo.

O vim possui vrios modos, ou seja, estados em que ele se encontra. So eles: modo de insero,
comandos, linha de comando, visual, busca e reposio. Abordarei os dois principais:

Modo de insero e de comandos

Para identificar o modo (estado) do vim, basta visualizar o rodap da tela.

Agora, vamos prtica. Para executar o vim, utilize:

$ vi => Abre o vim vazio, sem nenhum arquivo e exibe a tela de apresentao.
$ vi arquivo => Abre o arquivo de nome "arquivo".
$ vi arquivo + => Abre o arquivo de nome "arquivo", com o cursor no final do mesmo.
$ vi arquivo +10 => Abre o arquivo de nome "arquivo", com o cursor na linha 10.
$ vi arquivo +/Copag => Abre o arquivo de nome "arquivo", na primeira ocorrncia da palavra
"Copag".

Ao executar o vim, ele inicia diretamente em modo de comando. Para comprovar, s olhar na
ltima linha (rodap) e no vai haver nada l. Isso quer dizer que voc no conseguir escrever
nada, pode digitar a vontade que s vai ouvir beeps. Para comear a escrever, pressione "i" em seu
teclado. O vim entra em modo de insero, que voc comprova (como falado anteriormente) pelo
rodap da tela, onde fica a seguinte marcao:

- - -- INSERT --

Suponha que voc j digitou o bastante, e quer salvar, por segurana. Pressione a tecla ESC para
voltar em modo de comandos. E veja os comandos para salvar/sair:
:w => Salva o arquivo que est sendo editado no momento.
:q => Sai.
:wq => Salva e sai.
:x => Idem.
ZZ => Idem.
:w! => Salva forado.
:q! => Sai forado.
:wq! => Salva e sai forado.

Ento, voc editou uma boa quantidade de textos e quer salvar:

:w

Agora, quer voltar a editar o texto:

Lembre que utilizando o "i" para insero, a mesma se inicia inserindo texto antes do cursor. Veja
agora outros subcomandos de insero de texto:

A => Insere o texto no fim da linha onde se encontra o cursor


o => Adiciona uma linha vazia abaixo da linha corrente
O => Adiciona uma linha vazia acima da linha corrente
Ctrl + h => Apaga ltimo caracter esquerda

Voltando ao modo de comando:

Veja agora subcomandos para movimentao pelo texto:

Ctrl + f => Passa para a tela seguinte.


Ctrl + b => Passa para a tela anterior.
H => Move o cursor para a primeira linha da tela.
M => Move o cursor para o meio da tela.
L => Move o cursor para a ltima linha da tela.
h => Move o cursor para caracter a esquerda.
j => Move o cursor para linha abaixo.
k => Move o cursor para linha acima.
l => Move o cursor para caracter a direita.
w => Move o cursor para o incio da prxima palavra (no ignorando a pontuao).
W => Move o cursor para o incio da prxima palavra (ignorando a pontuao).
b => Move o cursor para o incio da palavra anterior (no ignorando a pontuao).
B => Move o cursor para o incio da palavra anterior (ignorando a pontuao).
0 (zero) => Move o cursor para o incio da linha corrente.
^ => Move o cursor para o primeiro caracter no branco da linha.
$ => Move o cursor para o fim da linha corrente.
nG => Move o cursor para a linha de nmero "n"
G => Move o cursor para a ltima linha do arquivo.

Copiando e colando textos no vim (utilizando o mouse)

Selecione o texto necessrio com o boto esquerdo do mouse. Quando voc for colar, saiba que o
texto ser colado a partir de onde se encontra o cursor (esse que aparece, s vezes piscando e s
vezes no, quando voc est digitando). Para colar, depois de ter selecionado o texto, voc pode
utilizar uma dessas opes:

1) Pressionando o boto direito do mouse;


2) Pressionando o boto direito + boto esquerdo juntos;
3) Pressionando o boto do meio do mouse (mouse de 3 botes);

Observao: Lembre-se que o vim deve estar no modo de insero.

Usando o modo visual do vim

Entre no modo visual: v


Agora, utilize as teclas direcionais (setas) do teclado, para selecionar o texto desejado.
Pressione e cole, utilizando a tecla "p" (paste).

Veja agora como apagar um determinado texto:

Utilizando normalmente as teclas Backspace/Delete, ou entrando em modo visual (v) e


pressionando a tecla Delete.

Voc pode remover at o final de uma palavra, utilizando: dw


Pode tambm remover at o final de uma frase: d$

Desfazendo uma ao

claro que voc pode desfazer uma ao que voc considera errado, ou que errou ao digitar o
texto. s utilizar: u
Se voc precisar voltar o texto na tela, utilize as teclas Ctrl + r.

Subcomandos para localizao de texto

/palavra => Procura pela palavra ou caracter acima ou abaixo do texto.


?palavra => Move para a ocorrncia anterior da palavra (para repetir a busca use "n").
n => Repete o ltimo comando utilizando / ou ?.
N => Repete o ltimo comando / ou ? ao contrrio (baixo para cima).
Ctrl+g => Mostra o nome do arquivo, o nmero da linha corrente e o total de linhas.

Mais opes para remoo de caracteres

x => Apaga o caracter onde o cursor estiver.


dd => Apaga a linha inteira onde o cursor estive
D => Apaga a linha a partir da posio do cursor at o fim.
J => Une a linha corrente prxima.
:5dd => Removeas prximas 7 linhas a partir da posio do atual do cursor (qualquer nmero).

Mais para copiar e colar

:yy => Copia a linha onde o cursor se encontra.


:5yy => Copia as prximas 5 linhas a partir da posio atual do cursor.
:p => Cola o que foi copiado na linha abaixo do cursor atual.

Opes para substituio de textos


rCARACTER => Substitui o caracter onde o cursor se encontra pelo caracter especificado em
CARACTER.
RTEXTO => Substitui o texto corrente pelo texto digitado (sobrepe).
cw => Remove a palavra corrente para substituio.
cc => Remove a linha corrente para substituio.
C => Substitui o restante da linha corrente, esperando o texto logo aps o comando.
J => Une a linha corrente prxima.
:s/velho/novo => Substitui a primeira ocorrncia de "velho" por "novo" na linha corrente.
:% s/velho/novo => Substitui em todo o arquivo (%) a primeira ocorrncia de "velho" por "novo" em
cada linha.
:% s/velho/novo/g => Substitui em todo o arquivo (%), todas (g) as ocorrncias de "velho" por
"novo".
:% s/velho/novo/gc => Igual ao anterior, mas pedindo confirmao para cada substituio.
:% s/^String[0-9]//gc => Expresses regulares tambm funcionam, como no sed.
:% s/./\u&/gc => Converte para maisculas (\u) o primeiro caracter (.) de cada linha.

Abreviaes

:ab => Mostra todas as abbr.


:abc[lear] => Remove todos.
:iab => Apenas para modo de insero.
:iabc[lear] => Tira todos de insero.
:cab => Apenas p/modo de comando ( : ).
:cabc[lear] => Tira todos os modos de comando.
:una vc => Tira ab para vc.

Observao: Pontuao, espao ou o ENTER, disparam a expanso de uma abreviao. Porm, Ctrl+]
tambm pode ser usado, para expandir sem adicionar caracteres.

Opes para o comando SET

:set
autowrite aw => Salva a cada alterao.
backspace bs => Comportamento backspace (1 ou 2).
errorbell eb => Campainha de erro.
expandtab et => Troca tab por espacos.
fileformat=dos ff => Converte o arquivo para DOS.
hidden hid => Preserva o buffer.
hlsearch hls => Elumina a ltima procura.
ignorecase ic => Case insensitive na busca.
incsearch is => Ilumina procura enquanto digita.
laststatus=2 => Mostra linha de estado.
lazyredraw lz => No redesenha em macros.
lines=N => Mmero de linhas na tela.
magic => Usar mgicas na procura de padres.
number nu => Mostra nm da linha.
report=N => Mostra aviso quando N linhas mudaram (0=sempre).
showcmd => Mostra o comando que se est fazendo.
showmatch sm => Mostra o casamento de {},[],().
smartcase scs => Assume "noic" quando tiver maisculas.
textwidth=N => Quebra de linha do texto.
undolevels ul=N => Guarde os N ltimos comandos para desfazer (padro=1000).
vb t_vb= => Retira o "beep" de erro.

Agora invertendo maisculas/minsculas

5~ => Inverte os 5 prximos caracteres.


g~$ => Inverte todos os caracteres at o fim da linha.
seleciona, u => Converte para minsculas.
seleciona, U => Converte para maisculas.
seleciona, ~ => Inverte.

Observao: Onde est escrito "seleciona", para fazer utilizando o modo visual (v).

Agora veja como definir coluna de quebra de linha (problema que eu tive quando iniciei no
aprendizado do vim):

:set textwidth=N

Se voc j estiver num arquivo pronto:

:set wm=5 => O nmero 5 aqui so as colunas que sero "cortadas".


gqG => At o final do arquivo.

Vamos ver agora o que podemos fazer pressionando a tecla "Ctrl":

claro que segurando Ctrl + .

No modo de COMANDO:

A => Incrementa um nmero (Add)


X => Decrementa um nmero
S => ScrollLock
L => Redesenha tela
V => Modo visual (Visual Vertical)
G => Status do arquivo
M => Incio da prxima linha
E => Linha abaixo sem mover cursor
Y => Linha acima sem mover cursor
N => Prxima linha (Next)
P => Linha anterior (Previous)
F => PageDown (Forward)
B => PageUp (Backyard)
U => PageUp / 2 (Up)
D => PageDown / 2 (Down)

Agora, no modo de INSERO:

A => Insere o ltimo texto inserido


I => TAB
S => ScrollLock
H => BackSpace
T => 2 tab's no incio da linha (Two Tabs)
V => Anula expanso do prximo caractere
J => Enter - quebra de linha
M => Enter - quebra de linha
L => Redesenha tela
R => Insere contedo do registrador [a-z] (Veja abaixo)
K => Insere um dgrafo (Veja abaixo)
N => Procura palavra no texto atual (Next)
P => Procura palavra no texto atual (Previous)
Y => Copia caractere que est acima (Yank)

Veja os caracteres especiais:

ga => Mostra o cdigo da letra sobre o cursor.


:dig => Mostra todos os dgrafos disponveis (tabela).

Exemplos: Para fazer um , use Ctrl+K,-,o ("Ctrl"+"K"+"-"+"o").


Para fazer um , use Ctrl+K,1,2 ("Ctrl"+"K"+"1"+"2").

Trabalhando com arquivos e janelas mltiplas

Voc pode abrir mltiplos arquivos, por exemplo:

$ vim arquivo1 arquivo2

E pode alternar entre as janelas. Veja:

:wn => Grava o atual e vai ao prximo.


:wN => Grava o atual e vai ao anterior.
:args => Mostra todos os arquivos atuais.
:qa => Sai de todas as janelas de uma vez.
:all => Abre todos os arquivos em janelas individuais.

Tecla chave das janelas = Crtl+W


j, seta abaixo => Move para janela abaixo.
k, seta acima => Move para janela acima.
o => Apenas esta janela, fecha todas as outras (Only).
+, - => Muda o tamanho da janela.
= => Deixa todas as janelas com tamanhos iguais.

Os registradores

"[a-z] => Use o registrador [a-z] para o prximo delete, cpia ou cola.
:reg => Mostra o contedo de todos os registradores.
:reg [a-z] => Mostra o contedo do registradores [a-z].

Observao: O [a-z] pode ser: 0-9a-z%#:.-="

Marcas:

m[a-z] => Marca em [a-z] a posio corrente do cursor.


`[a-z] => Vai at a marca [a-z].
`` => Vai at a posio anterior ao ltimo pulo (alterna).
:marks => Mostra as marcas ativas.

Fazendo gravao de seqncia de comandos

q[a-z] => Inicia a gravao de uma seqncia no registrador [a-z].


q[A-Z] => Inicia a gravao, adicionando no registrador [a-z].
q => Pra a gravao.
@[a-z] => Executa a seqncia do registrador [a-z] (5 vezes? 5@a)

Dica: Pode-se colocar o @[a-z] dentro da prpria gravao do q[a-z]! Assim ele executado
recursivamente. Muito til quando h uma procura de padres na gravao. faz para todas as
ocorrncias.

Mapeamentos

:map :r!date => Mapeamento em modo de comando.


:imap :r!date => Mapeamento em modo de insero.
:cmap r!date => Mapeamento em modo linha de comando.
:vmap :r!date => Mapeamento em modo visual.

Exemplos:

"html: negrito no trecho selecionado


:vmap d`pa # html: negrito no trecho selecionado

"liga/desliga autoIndent
:map ,si :set ai!:echo "autoIndent="&ai

"mostrar os espaos em branco no fim das linhas


:map / *$^M

Atravs dos mapeamentos possvel "encurtar" comandos, ou seja, abrevi-los. Conhea as


sintaxes:

Comment => Ciano


Constant => Roxo
Identifier => Ciano
PreProc => Azul escuro
Special => Vermelho
Statement => Amarelo
String => Roxo
Type => Verde

Todo => Preto, fundo marrom


Error => Branco, fundo vermelho
Ignore => Preto, fundo preto! - esconde

Utilizando o recurso de expandtab

Mas, o que isso faz? Transforma todos os TABs em espaos. Podemos ativar dentro do prprio vim,
utilizando o comando:
:set expandtab

Para desabilitar:

:set noexpandtab

Podemos colocar tambm no arquivo ~/.vimrc a seguinte linha:

set expandtab

O arquivo ~/.vimrc pode ser usado para muitas configuraes, e essa uma delas. Existe ainda o
arquivo ~/.exrc, mas no entraremos em detalhes.

Podemos incluir a sada de um comando no vim, utilizando:

:r!comando

Por exemplo:

:r!rpm -q kernel

Incluiria o seguinte resultado, dentro do seu texto (isso na minha mquina):

kernel-2.4.18-3

Dicas diversas do vim:

:xit => Igual :wq, mas s grava se tiver sido alterado algo no arquivo.

:map N_ARQ ^R=expand("%:t:r")^M


Imprime no arquivo o prprio nome do arquivo editado quando N_ARQ digitado.

Agora, veja como alinhar o texto:

:left
:right
:center

E para fazer uma busca de 2 palavras ao mesmo tempo:


/palavra1\|palavra2

O vim um editor de textos com centenas de opes, comandos, strings... Eno d para abordar
tudo aqui. Por isso, a melhor maneira de conhec-lo a fundo usando-o.
SERVIDOR FTP

O que FTP

FTP significa File Transfer Protocol (Protocolo de Transferncia de Arquivos), e uma forma bastante rpida e
verstil de transferir arquivos (tambm conhecidos como ficheiros), sendo uma das mais usadas na internet.

Pode referir-se tanto ao protocolo quanto ao programa que implementa este protocolo (Servidor FTP, neste
caso, tradicionalmente aparece em letras minsculas, por influncia do programa de transferncia de
arquivos do Unix).

A transferncia de dados em redes de computadores envolve normalmente transferncia de arquivos e


acesso a sistemas de arquivos remotos (com a mesma interface usada nos arquivos locais). O FTP (RFC 959)
baseado no TCP, mas anterior pilha de protocolos TCP/IP, sendo posteriormente adaptado para o TCP/IP.
o padro da pilha TCP/IP para transferir arquivos, um protocolo genrico independente de hardware e do
sistema operacional e transfere arquivos por livre arbtrio, tendo em conta restries de acesso e
propriedades dos mesmos.

A transferncia de arquivos d-se entre um computador chamado "cliente" (aquele que solicita a conexo
para a transferncia de dados) e um servidor (aquele que recebe a solicitao de transferncia). O utilizador,
atravs de software especfico, pode selecionar quais arquivos enviar ao servidor. Para existir uma conexo
ao servidor, o utilizador informa um nome de utilizador (ou username, em ingls) e uma senha (password),
bem como o nome correto do servidor ou seu endereo IP. Se os dados foram informados corretamente, a
conexo pode ser estabelecida, utilizando-se um "canal" de comunicao, chamado de porta (port). Tais
portas so conexes no qual possvel trocar dados. No caso da comunicao FTP, o padro para porta o
nmero 21.

Instalando o servidor

Para que nosso Linux tenha a possibilidade de se conectar por FTP para realizar transferncia de arquivos,
necessita ter instalado e configurado um servidor de FTP.

Para voc instalar um servidor FTP em Linux normalmente no necessita de nenhum programa adicional j
que o servidor FTP costuma vir com o sistema. Para os exemplos que vamos citar a seguir, utilizamos o
servidor FTP que vem com distribuies que seguem o padro RED HAT.
Para comear, teremos que instalar o pacote que contm o servidor FTP que neste caso se chama Vsftpd
1.1.3-8, para o qual executaremos a seguinte instruo:

rpm -ivh vsftpd 1.1.3-8

Observao: a verso do pacote certamente ser diferente em distribuies mais recentes do LINUX.

Configurao
Uma vez instalado o servidor de FTP, vamos configur-lo de acordo com nossas necessidades.
Comearemos com a lista de usurios que podero ter acesso ao servidor FTP:

Para configurar este parmetro necessitaremos abrir o arquivo vsftpd.user.list que se encontra em /etc/.
Neste arquivo poderemos ver uma lista com os usurios que tm acesso.

Porm, na verdade o arquivo mais importante para a configurao do servidor o vsftpd.conf que contm
todos os parmetros de configurao, entre outras coisas a localizao dos arquivos compartilhados. Dentro
deste arquivo se encontram os seguintes parmetros, que podemos modificar dependendo do uso que
quisermos dar.

anonymous.allow

Com estes parmetros se habilita ou desabilita o usurio annimo.


Anonymous.allow=trae (usurio annimo habilitado)
Anonymous.allow=false (usurio annimo desabilitado)

Write_enable

Indica se uma pasta tem permisso de escritura ou no. Em outras palavras indica se podemos subir arquivos
pasta ou no.
Write_enable=true (se tem permisso de escritura)
Write_enable=false (no tem permisso de escritura)

ftpd_banner

Permite colocar uma mensagem de boas vindas aos usurios quando se conectem
ftpd_banner=mensagem

chroot_local_user

Permite ou no aos usurios locais o acesso mquina


chroot_local_user=true
chroot_local_user=false

Para dizer ao servidor de FTP que usurios tm permisso para acessar temos que pegar a rota do arquivo
antes comentado onde se encontrava a lista de usurios (vsftpd.user_list)
Para isso, no arquivo de configurao colocaramos algo como isto:
Chroot_list_file=/etc/vsftpd.user_list

Programa o ftp para que feche qualquer sesso inativa por 2 minutos seja derrubada
idle_session_timeout=120

Programa o ftp para que durante a transferncia de dados, a sesso seja derrubada aps 2 minutos
idle_connection_timeout=120
Basicamente com estes comandos voc poder configurar seu servidor FTP em Linux sem nenhum problema.
Iniciar e interromper o servidor de FTP

J nos falta somente iniciar o servidor para o qual utilizaremos os seguintes comandos.

Para iniciar o servio:

service vsftpd start

Para parar o servio:

service vsftpd stop

Para reiniciar o servio:

service vsftpd restart


Configurando um cliente ftp para Windows

FileZilla freeware, isso quer dizer que voc pode copi-lo e us-lo livremente. Ele pode ser obtido no
endereo http://filezilla.sourceforge.net/

NOTA: Voc precisar de um endereo FTP do local que deseja acessar, bem como de um usurio e uma
senha. Verifique as configuraes de segurana de seu sistema, para que aplicaes como FIREWALL no
bloqueiem o programa de FTP e/ou as portas que ele utiliza para se conectar aos servidores.

A aplicao bastante simples de instalar, dispensando qualquer comentrio para esse processo.

Passo 1. Ao executar o FileZilla voc ter a seguinte tela

Como voc pode ver, a interface no to complicada. A esquerda poder ser vista a sua mquina local
(Local Site)

Para configurar o FileZilla para que se conecte ao seu servidor clique no pequeno computador, conforme
destacado acima pela seta vermelha.
Passo 2. A janela Site Manager ser mostrada.

Clique no boto New Site e coloque um nome para sua nova conexo
Passo 3. Agora voc precisa preencher os detalhes da conexo (setas vermelhas).

Informe o Host name (esse o endereo do seu servidor FTP)

Seu tipo de servidor FTP. O tipo de logon Normal.

Usurio e senha do servidor de ftp. Se voc estiver usando um computador compartilhado com outros
usurios, pode ser interessante solicitar ao Filezilla que no memorize sua senha, evitando dessa forma, que
outros usurios consigam fazer logon com suas credenciais.

No esquea de salvar suas alteraes clicando em Save and Exit


Passo 4. Agora, aps retornar a tela principal do Filezilla clique na pequena seta ao lado do cone do
computador e veja uma lista com os sites que voc configurou previamente. Clique no seu site para fazer a
conexo.
Passo 5. Conexo estabelecida. Voc ver a estrutura de pastas do seu servidor do lado direito da tela.
Passo 6 Selecione a pasta de destino e de origem utilizando a mesma forma usada no Windows Explorer
Passo 7. Agora, encontre os arquivos do seu computador que deseja transferir ao servidor Upload (no
lado esquerdo da tela). Simplesmente selecione os arquivos, arraste e solte-os no servidor (lado direito da
tela). Da mesma forma pode ser feito para copiar arquivos do servidor para o seu computador local
Download, que a operao contrria.

Voc ver dados sobre a transferncia na parte inferior da tela, assim pode acompanhar o andamento da
transferncia de cada arquivo, bem como saber se a transferncia foi efetuada com sucesso.
Pronto, copia terminada.
Passo 8. Se voc alterar algum arquivo no seu PC e quiser aplicar essas mudanas tambm no servidor tudo o
que precisa fazer usar novamente o drag-and-drop (arrastar e soltar) e confirmar a pergunda sobre se
deseja sobregravar o arquivo no servidor.
Passo 9. Para fazer a desconexo, basta clicar no icone apontado pela seta vermelha.

Comandos FTP (Shell)

O comando ftp permite o gerenciamento de arquivos num servidor ftp remoto.

Para iniciar o uso voc deve primeiro estar conectado a rede. No caso de um servidor ftp da
internet, voc deve estar conectado internet.

Para conectar-se ao servidor utilize a seguinte sintaxe:

ftp SERVIDOR

Por exemplo, para conectar-se ao servidor ftp.hpg.com.br voc deve digitar:

ftp ftp.hpg.com.br

Dependendo do servidor, pode ser pedido seu nome de usurio e senha. Aps estabelecida a
conexo o comando ftp exibir seu prompt e aguardar suas instrues

ftp>
Mesmo que no seja especificado um endereo para conexo o comando ftp ser iniciado e
aguardar instrues no seu prompt.

Aps estabelecida conexo com o servidor voc pode manipular os arquivos atravs dos seguintes
comandos:

COMANDO SINTAXE DESCRIO


Executa COMANDO na mquina local.

! ! COMANDO No prompt do ftp, os comandos digitados so, a princpio,


executados na mquina remota. Para executar um comando na
mquina local preceda o mesmo com o !
Configura o tipo de transferncia de arquivos para ASCII. o
Ascii ascii
valor padro
Bell bell Emite um bip quando um comando completado
Binary binary Configura o tipo de transferncia de arquivos para binrio.
Bye bye Encerra a sesso ftp e retorna ao interpretador de comandos
Cd cd DIRETRIO Muda o diretrio de trabalho para DIRETRIO
Cdup cdup Muda para o diretrio que est um nvel acima do direttio atual
Chmod chmod MODO ARQUIVO Altera as permisses de ARQUIVO de acordo com MODO.
Close close Encerra a sesso ftp e retorna ao interpretador de comandos
Delete delete ARQUIVO Apaga ARQUIVO
Lista o contedo de DIRETRIO colocando o resultado em
ARQUIVO-LOCAL, que um arquivo na sua mquina. Se
Dir dir DIRETRIO ARQUIVO-LOCAL DIRETRIO no for especificado, ser listado o contedo do
diretrio atual. Se ARQUIVO-LOCAL no for especificado a
listagem ser enviada para a tela.
Baixa ARQUIVO-REMOTO para sua mquina com o nome de
get ARQUIVO-REMOTO ARQUIVO- ARQUIVO-LOCAL. Se ARQUIVO-LOCAL no for especificado o
Get
LOCAL arquivo ser baixado com o mesmo nome que tem na mquina
remota.
Descreve sumariamente o COMANDO. Se este no for
Help help COMANDO
especificado ser exibida a lista de todos os comandos.
LCD lcd DIRETRIO Muda o diretrio de trabalho na mquina local.
Lista o contedo de DIRETRIO colocando o resultado em
ARQUIVO-LOCAL, que um arquivo na sua mquina. Se
Ls ls DIRETRIO ARQUIVO-LOCAL DIRETRIO no for especificado, ser listado o contedo do
diretrio atual. Se ARQUIVO-LOCAL no for especificado a
listagem ser enviada para a tela.
Mdelete mdelete ARQUIVOS Apaga ARQUIVOS
Mdir mdir DIRETRIOS ARQUIVO-LOCAL Semelhante a dir, porm lista o contedo de vrios diretrios
Mget mget ARQUIVOS Semelhante a get, porm baixa vrios arquivos
Mkdir mkdir DIRETRIO Cria um diretrio com o nome de DIRETRIO
Mls mls DIRETRIOS ARQUIVO-LOCAL Semelhante a ls, porm lista o contedo de vrios diretrios
Configura o modo de transferncia de arquivos para MODO. O
Mode mode MODO
modo padro "stream"
Modtime modtime ARQUIVO Exibe a hora da ltima modificao de ARQUIVO
Mput mput ARQUIVOS Semelhante a put, porm envia vrios arquivos
newer ARQUIVO-REMOTO ARQUIVO- Substitui o ARQUIVO-LOCAL pelo ARQUIVO-REMOTO se a hora
Newer
LOCAL de modificao do ARQUIVO-REMOTO for mais recente
Nlist nlist DIRETRIOS ARQUIVO-LOCAL Semelhante a nls
Envia ARQUIVO-LOCAL para o servidor ftp nomeando-o como
put ARQUIVO-LOCAL ARQUIVO-
Put ARQUIVO-REMOTO. Se ARQUIVO-REMOTO no for especificado
REMOTO
o arquivo ser enviado com o nome de ARQUIVO-LOCAL
Pwd pwd Exibe o caminho completo(PATH) do diretrio atual
Quit quit Semelhante a bye
recv ARQUIVO-REMOTO ARQUIVO-
Recv Semelhante a get
LOCAL
Semelhante a get com a diferena que se ARQUIVO-LOCAL existe
e menor que ARQUIVO-REMOTO, reget considera que
reget ARQUIVO-REMOTO ARQUIVO-
Reget ARQUIVO-LOCAL ARQUIVO-REMOTO parcialmente transferido
LOCAL
e contiua a transferncia do arquivo. Muito til quando se baixa
arquivos grandes.
remotehelp remotehelp COMANDO
Semelhante a help, porm solicita ajuda ao servidor ftp
rhelp rhelp COMANDO
remotestatus remotestatus ARQUIVO Exibe a situao de ARQUIVO. Se ARQUIVO no for especificado,
rstatus rstatus ARQUIVO exibe a situao da mquina remota.
Rename rename NOME-ANTIGO NOME-NOVO Renomeia um arquivo
Rmdir rmdir DIRETRIO Apaga DIRETRIO
send ARQUIVO-LOCAL ARQUIVO-
Send Semelhante a put
REMOTO
Size size ARQUIVO Exibe o tamanho de ARQUIVO
Status status Exibe a situao atual do servidor ftp
System system Exibe o tipo de sistema operacional da mquina remota
Configura o tipo de transferncia de arquivos para TIPO. O
Type type TIPO padro ASCII. Se TIPO no for especificado, ser mostrada a
configurao atual
? ? COMANDO Semelhante a help
SSH

Introduo

O ssh um pacote de programas cujo objetivo aumentar a segurana de um sistema de redes. Ele,
basicamente fornece um substituto mais seguro para os programas "remotos" - rsh, rlogin, rcp. Alem de ser
uma boa alternativa para o telnet.

O problema de segurana que este pacote tenta solucionar o da escuta de rede para obter
informaes sigilosas. Os comandos remotos e o telnet usam transferncia direta de dados sem
codificao. Isto permite que redes abertas a "escutas" tenham informaes criticas vazadas. Uma
"escuta" facilmente instalada numa rede ethernet na qual no possvel controlar o acesso de
maquinas ou usurios suspeitos.

A situao torna-se mais critica quando sistemas sem nenhuma segurana como DOS, WIN 3.x e
WIN 95 participam da rede, e o acesso a essas maquinas no suficientemente controlado. Isto
porque tais sistemas no possuem a noo de usurio privilegiado, no sendo muito complicado
instalar nos mesmos programas de escuta de rede que podem "ouvir" as transferncias feitas numa
rede ethernet, ou qualquer rede do tipo "broadcast".

O exemplo mais simples de utilizao de uma escuta para pegar a senha de algum que esteja
fazendo telnet. A senha passada entre a maquina cliente e o servidor de telnet como texto puro. A
soluo seria usar o rlogin no lugar do telnet mas os comandos remotos possuem tambm as suas
falhas. O sistema de autorizao da conexo (autenticao) baseado nos arquivos hosts.equiv e
.rhosts, que basicamente deveriam dizer quais maquinas podem fazer a conexo. A autenticidade
da identidade destas maquinas garantida pelo seu endereo IP ou pelo seu nome de domnio.
Existem muitos mtodos de falsificao de identidade IP e algum capaz de instalar uma escuta na
rede muito bem capaz de instalar um programa "travesti" de IP e simular que uma maquina
autorizada.

O ssh se prope a solucionar o problema da escuta com uma transferncia de dados criptografada e
com um protocolo de autenticao mais seguro. Os mtodos de autenticao selecionveis incluem
.rhosts apenas (inseguro), .rhosts com validao do host atraves de RSA ou validao exclusiva
atravs de RSA. Os protocolos do X Windows tambm apresentam diversos problemas de segurana
e o ssh procura fornecer sees seguras para clientes X11 executados a partir dele.

Configurao do ssh

O arquivo /etc/sshd_config configura o servidor sshd. Os defaults da instalao so normalmente


suficientes.

Exemplo de um configurador utilizado no CL10

sshd_config

# $OpenBSD: sshd_config,v 1.59 2002/09/25 11:17:16 markus Exp $

# This is the sshd server system-wide configuration file. See

# sshd_config(5) for more information.


# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with

# OpenSSH is to specify options with their default value where

# possible, but leave them commented. Uncommented options change a

# default value.

Port 22

#Protocol 2,1

ListenAddress 192.168.10.37

#ListenAddress ::

# HostKey for protocol version 1

#HostKey /etc/ssh/ssh_host_key

# HostKeys for protocol version 2

#HostKey /etc/ssh/ssh_host_rsa_key

#HostKey /etc/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key

#KeyRegenerationInterval 3600

#ServerKeyBits 768

# Logging

#obsoletes QuietMode and FascistLogging

#SyslogFacility AUTH

#LogLevel INFO

# Authentication:

#LoginGraceTime 120

#PermitRootLogin yes

#StrictModes yes

#RSAAuthentication yes

#PubkeyAuthentication yes

#AuthorizedKeysFile .ssh/authorized_keys

# rhosts authentication should not be used

#RhostsAuthentication no

# Don't read the user's ~/.rhosts and ~/.shosts files

#IgnoreRhosts yes

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts

#RhostsRSAAuthentication no

# similar for protocol version 2

#HostbasedAuthentication no

# Change to yes if you don't trust ~/.ssh/known_hosts for


# RhostsRSAAuthentication and HostbasedAuthentication

#IgnoreUserKnownHosts no

# To disable tunneled clear text passwords, change to no here!

#PasswordAuthentication yes

#PermitEmptyPasswords no

# Change to no to disable s/key passwords

#ChallengeResponseAuthentication yes

# Kerberos options

#KerberosAuthentication no

#KerberosOrLocalPasswd yes

#KerberosTicketCleanup yes

#AFSTokenPassing no

# Kerberos TGT Passing only works with the AFS kaserver

#KerberosTgtPassing no

# Set this to 'yes' to enable PAM keyboard-interactive authentication

# Warning: enabling this may bypass the setting of 'PasswordAuthentication'

#PAMAuthenticationViaKbdInt no

#X11Forwarding no

#X11DisplayOffset 10

#X11UseLocalhost yes

#PrintMotd yes

#PrintLastLog yes

#KeepAlive yes

#UseLogin no

#UsePrivilegeSeparation yes

#PermitUserEnvironment no

#Compression yes

#MaxStartups 10

# no default banner path

#Banner /some/path

#VerifyReverseMapping no

#Subsystem sftp /usr/libexec/sftp-server

AllowUsers marcio junior daniel supervisor laercio luiz toptel


Cliente SSH no LINUX

Diversos aplicativos fazem parte do pacote do SSH, mas vamos dar nfase aos dois mais utilizados, que
permitem o controle de um servidor via linha de comando, e tambm a copia de arquivos.

Comando ssh

Esse comando permite ao usurio ter acesso a linha de comando de um servidor ssh, podendo realizar
qualquer operao no mesmo (s sendo limitado pelas permisses de acesso do usurio utilizado)

Observao: Ao executar o cliente ssh pela primeira vez, cria-se um diretorio .ssh debaixo do $HOME e um
arquivo random_seed. Caso a maquina servidora no seja "conhecida" pela maquina cliente (chave publica
da maquina servidora no arquivo /etc/ssh_known_hosts), o ssh pede para validar a identidade da maquina
para inclui-la entre as servidoras de ssh conhecidas do usurio no arquivo .ssh/known_hosts. Estes arquivos
guardam as chaves publicas das maquinas com as quais os usurios normalmente conectam-se, quando
ocorre a mudana de chave publica de alguma maquina, existe a possibilidade de est havendo uma quebra
de segurana. O usurio, nesse caso, pode aceitar a nova chave publica ou rejeitar e consultar o responsvel
daquela maquina para saber se ele trocou as chaves do ssh.

Exemplo:

Comando scp

O Comando scp permite que sejam feitas cpias de um servidor SSH para a mquina cliente e vice-versa.

Alguns exemplos:

scp -P 222 marcio@coopemtax.no-ip.info:/jipr/projetos/data/MOV.zip mov.zip

Faz a cpia do arquivo MOV.zip que est no diretrio /jipr/projetos/data do servidor coopemtax.no-ip.info
utilizando para conexo a porta 222 para o diretrio atual do cliente

scp marcio.zip marcio@192.168.10.32:/home/marcio

Faz a cpia do arquivo marcio.zip da mquina cliente para o diretrio /home/marcio que est no servidor
192.168.10.32. Perceba que a porta no foi informada, pois o servio est escutando na porta padro 22
scp r * marcio@192.168.10.32:/home/marcio

Faz a cpia de todos os arquivos do diretrio atual e tambm dos subdiretrios da mquina cliente para o
diretrio /home/marcio que est no servidor 192.168.10.32.

Cliente SSH no Windows

Um cliente SSH para Windows que muito utilizando, e tambm gratuito, o Putty. Se trata de
uma aplicao com instalao extremamente simples e leve, mas que oferece toda a segurana e
simplicidade do acesso via ssh.

Uma vez instalado o PuTTY, sua utilizao bastante simples.

1. Clique duplo no programa PuTTY.

Ser exibida a seguinte tela. Observe no seu computador:

2. Coloque o IP ou no do computador (ver se tem DNS na tua rede). Fala de acordo com a ilustrao
abaixo:

3. Selecione o protocolo SSH. No campo Sessions, digite um nome. Geralmente o nome do servidor
e clique no boto Save.

4. Clique duas vezes no nome do servidor. Ser exibida a seguinte tela:


5. Clique no boto Yes. Pois na primeira conexo, ser gerada uma chave para identificao da
mquina remota, de forma a garantir segurana no processo

6. Agora, informe o login e senha para acesso.

Veja na ilustrao:

7. Digite su e Enter.

8. Digite a senha do root.

Pronto. Agora, possvel gerenciar o teu Linux de dentro do Windows.

Transferindo arquivo do Windows para o Linux utilizando pscp (putty)

Bem, vamos transferir arquivos usando o servidor de ssh. No Windows, vamos usar o programa
pscp. Uma informao que temos que ter um diretrio no Linux com direito de escrita. Esse
comando similar ao scp do Linux, que vimos anteriormente.

1. Abra um prompt no Windows.

2. Digite pscp Jarbas.war jarbas@192.168.1.1:/tmp .

Veja a explicao:
3. Agora tecle Enter.

Ser exibida a seguinte tela:

4. Digite y para confirmar.

Agora, selecionado solicitada a senha do usurio. Neste nosso exemplo do usurio Jarbas.

5. Informe a senha e aguardo o arquivo ser transferido. Veja a ilustrao:

Ao digitar apenas pscp e teclar (ENTER), as opes disponveis de utilizao sero mostradas:
DHCP

O DHCP, Dynamic Host Configuration Protocol, um servio de rede com servidor e cliente, do lado
servidor roda o dhcpd para fornecer endereos IP os clientes, configurar a rede automaticamente
nas estaes com opo de obter IP automaticamente no boot (DHCP), ou quando reinicia o servio
de rede, a parte bsica fornecer IP dinamico para estaes, tanto Linux e Windows, serve tambm
como configurador de rede, alm do IP pode configurar o servidor de DHCP para fornecer tambm a
mascara de rede, gateway, DNS e outras opes, muito til e prtico.

Consome o mnimo de recursos da maquina, desprezvel, considere usar um micro da rede que
fique sempre ligado, entre eles pode ser o servidor Samba, proxy, firewall, o importante manter
ligado para no falhar no fornecimento ou renovao do IP, no precisa ser o micro que compartilha
internet ou servidor proxy, pode usar qualquer maquina da rede.

O dhcp muito til em ambientes de testes e manuteno, onde sempre h mquinas novas para
conectar a rede, isso evita o problema de conflitos de Ips.

Exemplo de configurador DHCP

authoritative;
# Informa que esse o servidor DHCP com autoridade sobre a rede.
Sempre mantenho 1 servidor DHCP na rede, mas, caso voce tenha mais de 1 bom saber qual o principal.

ddns-update-style none;
# Desativa o suporte a DNS dinmico.

default-lease-time 600;
# Servidores DHCP cedem endereos sob pedido por um tempo pr-determinado.O padro neste exemplo ceder o endereo IP por
600 segundos, ou 10 minutos.

max-lease-time 7200;
# Caso o cliente solicite um tempo maior, o tempo mximo permitido ser de 7200 segundos (2 horas)

server-identifier 192.168.10.37;

option domain-name "teste.com.br";

option domain-name-servers 192.168.10.37;

option host-name "proxy1";

option routers 192.168.10.254;

option subnet-mask 255.255.255.0;

option broadcast-address 192.168.10.255;

subnet 192.168.10.0 netmask 255.255.255.0 {

range 192.168.10.206 192.168.10.253;


}

host marcio_wireless {

hardware ethernet 00:1F:3C:02:96:97;

fixed-address 192.168.10.251;

host marcio {

hardware ethernet 00:1b:38:d3:62:d1;

fixed-address 192.168.10.38;

host luiz {

hardware ethernet 00:1c:bf:31:14:87;

fixed-address 192.168.10.238;

host paulo-wireless {

hardware ethernet 00:12:f0:2f:75:4d;

fixed-address 192.168.10.7;

}
SAMBA

O SAMBA um aplicativo que torna possvel o compartilhamento de recursos com mquinas


rodando Windows. O nome SAMBA derivado do protocolo utilizado pelo Windows para
compartilhar discos e impressoras: o protocolo SMB, Server Message Block.

Atravs da utilizao do SAMBA possvel criar redes mistas, utilizando servidores Linux e clientes
Windows. O SAMBA tambm permite que o Linux acesse discos exportados de mquinas
Windows. Alm de compartilhar recursos, o SAMBA capaz de executar vrias funes de um
servidor Windows, como por exemplo autenticao de clientes, servidor WINS, e at mesmo agir
como um Controlador Primrio de Domnio (PDC).

O SAMBA capaz de executar muitas funes, no cobriremos o assunto em detalhes aqui. Ser
visto como instalar e fazer uma configurao bsica do SAMBA, como exportar um diretrio
qualquer e como exportar os diretrios home dos usurios, permitindo assim que eles tenham
acesso a seus arquivos de qualquer estao Windows de sua rede.

Adicionando Usurios ao SAMBA

Adicionar um novo usurio ao Samba, necessrio que o mesmo esteja criado no linux. Para cri-lo
no linux, voc utiliza o comando:

adduser <nome-do-usurio> -g <nome-do-grupo>


passwd <nome-do-usurio>

Aps a criao do usurio no linux, deve-se adicionar o usurio, no arquivo de configurao do


samba /etc/smb.conf. Em seguida, reinicie o Samba.

Agora basta adicionar o usurio, no Samba, com o comando:

smbadduser <nome-do-usurio>:<nome-do-grupo-no-samba>
smbpasswd <nome-o-usurio>

O configurador

Abaixo esto alguns dos parmetros usados na configurao do arquivo /etc/smb.conf:

Seo [global]
Nesta seo so definidos os parmetros globais do Samba. Veja os
parmetros que podem ser usados nesta seo:
comment
comentrio para o Host na rede.
workgroup
especifica o Domnio ou o Workgroup a que o Host pertence na Rede.
security
(O Samba utiliza segurana a nvel de usurio security=user , com opes)
_ security = share - cada recurso compartilhado necessita que uma
senha seja informada, para a utilizao daquele recurso. Geralmente
este parmetro utilizado quando para estaes Linux.
_ security = user - a permisso dada de acordo com cada usurio, na
hora em que ele efetua o login. Est opo tambm se aplica a grupos
(@grupo).
_ security = server - o Samba validar a senha enviando os dados do
usurio para outro servidor Samba ou Windows, para isso deve-se
incluir o parmetro password server = IP_SERVIDOR , na seo global.
_ security = domain - este parmetro deve ser usado, se o Host for
adicionado a um domnio Windows atravs do comando smbpasswd,
ento as informaes so enviadas para o PDC da rede.
os level
este parmetro obrigatrio, caso voc utilize mais servidores Linux ou Windows. O valor um
nmero de 1 a 255, onde 65 a mesma varivel utilizada pelo Windows, especificando um nmero
maior que este, voc garante a escolha do servidor Samba para a validao do login nas estaes.
announce as
especifica o tipo de servidor NetBios (nmbd) que ser divulgado na sua rede. As opes vlidas so:
NT Server; NT Workstation; Win95; WFW .
domain logons
usado para validar logins na rede. Apenas para estaes Windows.
logon script
define qual arquivo de logon script ser executado para os usurios. Deve-se criar o
compartilhamento de nome [netlogon] apontando para o diretrio de scripts.
logon path
o caminho do perfil remoto do usurio. Este parmetro til, quando 5 usurios costumam fazer
o login em mais de um host na rede, pois dessa forma seu perfil trazido com o login.
domain master
informa se o Host ser o Domain Master Browser da rede toda.
local master
informa se o Host ser o Master Browser da rede local.
prefered master
com este parmetro, fora-se o Samba a atuar como Master Browser para o workgroup. Junto com
este parmetro, recomendvel a utilizao do parmetro domain master = yes . Porm, se sua na
sua rede tiver outros servidores (Windows e at mesmo Samba), e alguns desses outros j forem
Domain Master, no utilize esta opo e deixe o parmetro os level = 65 .
guest account
para que ocorra uma melhor performance em redes Windows, recomendvel a utilizao de uma
conta guest(visitante), por padro, no Samba, a conta usada nobody.
wins server
aqui deve ser informado qual o servidor Wins da rede. Caso o prprio Host seja, ento no utilize
este parmetro, pois o sistema entrar em loop e conseqntemente travar.
wins support
permite que o Samba seja o servidor Wins da rede, onde conter uma tabela com o ambiente de
rede completo. Dessa forma h um certo ganho no desempenho, quando um determinado host for
localizar outra maquina na rede, por exemplo.
keep alive
verifica o estado dos hosts (ativos ou no), este parmetro deve ser utilizado quando as estaes
forem Windows, e constantemente travam. Com a utilizao deste parmetro, evita-se o trfego
desnecessrio de informaes na rede. Tambm pode ser usado com estaes Linux.
debug level
este parmetro forneve ao Samba, uma maior flexibilidade para trabalhar com algumas situaes
de erro.
winpopup command
define-se qual o comando ser executado quando o servidor receber mensagens Winpopup(existem
muitas configuraes, que podem ser colocadas aqui). interessante utilizar essa opo se a sua
rede utiliza mensagens desse tipo.
log file
especifica o arquivo de log do Samba. Por padro os arquivos de log gerados pelo Samba, esto em
/var/log/samba .
null passwords
define a permisso para contas de usurios sem senha.
1 password sync
caso este parmetro esteja ativado (com valor = yes), permite que estaes Windows troquem de
senha.
socket options
este parmetro permite configuraes extras para o protocolo, possibilitando uma melhor
performance do servidor para trablhar com os pacotes de rede.
printing
define qual o sistema padro de impresso utilizado pelo Linux.
printcap name
define qual o arquivo que contm informaes das impressoras.
load printers
disponibiliza as impressoras para a rede.
hosts allow
define qual mquina tem acesso a rede. Pode-se utilizar o IP ou o nome da mquina. Para definir
uma rede toda usa-se: " hosts allow = 192.168.10. " .
hosts deny
define qual mquina n ter acesso a rede. Deve ser utilizado da mesma forma que o parmetro
hosts allow .
admin users
define quais usurios possuem permisso completa (permisso de root ).
max disk size
especifica qual o limite de espao em disco que ser utilizado. O valor deve ser informado em
Megabytes. Para especificar, por exemplo, um determinado valor para a sesso home (vista logo
abaixo), voc deve trabalhar com as quotas do Linux.
Seo [homes]
Nesta seo, define-se os parmetros para as pastas pessoais dos usurios.
comment
parmetro de comentrio para este compartilhamento.
public
este parmetro define se outros usurios podero acessar o compartilhamento.
browseable
define se o compartilhamento ser visvel ou no no Ambiente de Rede.
writeable
define a permisso de escrita para o usurio.
Seo [netlogon]
Nesta seo, define-se os parmetros para os scripts de login dos usurios.
comment
parmetro de comentrio para este compartilhamento.
path
define o local onde esto os scripts de cada usurio.
public
este parmetro define se outros usurios podero acessar o
compartilhamento.
browseable
define se o compartilhamento ser visvel ou no no Ambiente de Rede.
writeable
define a permisso de escrita para o usurio.
Demais Sees [NOME_SESSO]
Cada sesso um compartilhamento existente na rede. Abaixo, esto alguns parmetros que
podem ser usados nesta seo.
comment
parmetro de comentrio para este compartilhamento.
path
define o local onde est o compartilhamento.
valid users
aqui deve ser informado o nome dos usurios que tem permisso para acessar este
compartilhamento.
writeable
define se ser ou no permitido criar ou excluir arquivos ou diretrios deste compartilhamento.
public / guest ok
este parmetro define se outros usurios podero acessar o compartilhamento.
browseable
define se o compartilhamento ser visvel ou no no Ambiente de Rede.
write list
define os usurios/grupos que tero acesso de escrita no compartilhamento. Para utilizar vrios
nomes de usurios, deve-se usar virgula(,) entre os nomes de cada usurio.
Para grupos deve-se usar @nome_do_grupo.
read list
define os usurios/grupos que tero acesso de leitura no compartilhamento.
force create mode
este parmetro, faz com que o Samba fore o tipo de permisso para cada arquivo criado dentro do
compartilhamento, seria semelhante ao chmod do Linux.
force directory mode
este parmetro, faz com que o Samba fore o tipo de permisso para cada diretrio criado dentro
do compartilhamento, seria semelhante ao chmod do Linux.
copy
copia os parmetros de outra seo. til se voc utiliza compartilhamentos semelhantes. Para a
alterao de algum parmetro, basta voc modific-lo na seo atual.
max connections
define o nmero mximo de conexes simultneas que o compartilhamento pode "responder".

Em alguns parmetros usa-se variveis, abaixo, encontra-se algumas variveis mais utilizadas.

_ %S - Nome do Servio (compartilhamento) atual;


_ %u - Nome do usurio;
_ %g - Nome do grupo;
_ %H - Nome do diretrio pessoal do usurio (home dir);
_ %m - Nome da mquina cliente fornecido pelo NetBios;
_ %L - Nome do Servidor NetBios, permitindo que a configurao desejada seja alterada de acordo
com o cliente que vai acessar o sistema;
_ %M - Nome Internet da mquina cliente;
_ %a - Sistema Operacional da mquina remota, onde so reconhecidos: WFW, WinNT e Win95;
_ %I - O endereo IP da mquina cliente;
_ %T - Data e Horrio.
Aps a configurao do arquivo smb.conf, voc pode fazer um teste para saber se a configurao
est correta, para isto utiliza-se o comando testparm:

testparm

Confira o resultado apresentado na tela. Caso aparea alguma mensagem de erro edite novamente
o arquivo de configurao (smb.conf).

Exemplo de um smb.conf simples e funcional

[global]
workgroup = INFORMATICA
netbios name = FEDORA_HOME
server string = SAMBA SERVER LINUX
security = user
encrypt password = yes
add machine script = /usr/sbin/adduser -n -r -g machines -c "Samba machine" -d /dev/null -s
/bin/false %u
add user script = /usr/sbin/useradd -d /dev/null -g 100 -s/bin/false -M %u
passdb backend = smbpasswd
browseable = yes

[homes]
comment = Diretorios HOME (Linux)
path = /home/%u/docs
valid users = %S
read only = no
browseable = no
writeable = yes
#create mask = 777
#directory mask = 775

[backup]
comment = LINUX Fedora - Backup Teste
public = yes
path = /backup
writeable = yes
browseable = yes
valid users = marcio
create mask = 777
directory mask = 777
guest ok = yes
REFERNCIAS

www.wikipedia.org

http://my.opera.com/Ricardo%20Belfiglio/blog/show.dml/586273

http://www.guiadohardware.net/tutoriais/instalando-fedora - Jlio Csar Bessa Monqueiro

http://robertors.blogspot.com/2006/09/linux-permisses-de-acesso-especiais.html - Roberto
Rodrigues da Silva

http://www.criarweb.com/artigos/servidor-ftp-em-linux.html

http://renator.wordpress.com/2007/01/26/instalando-um-servidor-ftp-vsftp

http://www.velnetsupport.co.uk/parrots/FTP/Filezilla/

http://www.rnp.br/newsgen/9708/n3-3.html

http://www.primeirospassos.org/sessao10_7.html

http://www.devin.com.br/intro_linux

http://www.zoomdigital.org/2008/07/gerenciando-o-linux-a-partir-do-windows

http://www.inf.ufes.br/~proinfo/docs/samba/samba.html

Dominando LINUX Red Hat e Fedora, Bill Ball e Hoyt Duff, 2004, Makron Books

Apostila LINUX Ong IDEPAC 2005 - Bruno Csar Brito Sant'Anna

APOSTILA TREINAMENTO AVANADO EM LINUX v1.5 - Rodrigo Rubira Branco - Firewalls Security

http://www.guiadohardware.net/termos/cron

Apostila Configurando o Samba - Bruno T. Russo

http://www.infowester.com/comandoslinux.php - Emerson Alecrin

http://www.infowester.com/linprocessos.php - Emerson Alecrin

http://www.infowester.com/linuxvi.php

Marcio Adroaldo da Silva

marcio_ad@yahoo.com.br
marcio.infocus@gmail.com