Recuperando parti??es danificadas

Este artigo foi retirado do site Dicas-L da Unicamp

Por Carlos E. Morimoto (http://www.guiadohardware.net)

Assim como no Windows, voc? nunca deve desligar o micro
no bot?o ao rodar qualquer distribui??o Linux.

Mas, acidentes acontecem. A energia el?trica acaba de vez
em quando, alguns dos drivers de softmodems podem fazer o
micro travar (estes drivers s?o propriet?rios, por isso n?o
? poss?vel corrigir bugs, como em outras partes do sistema;
voc? depende unicamente da boa vontade do fabricante)
e assim por diante.

Durante o boot, o sistema verifica as parti??es em busca
de problemas, tentando resolver qualquer inconsist?ncia
no sistema de arquivos causado por um desligamento
incorreto. Voc? pode perder alguns arquivos que ainda n?o
tivesse sido salvos no HD, mas a id?ia ? que a verifica??o
coloque todo o resto em ordem.

Para parti??es em ReiserFS ? usado o reiserfsck, para
parti??es em Ext2 ou Ext3 ? usado o fsck e para parti??es
em XFS ? usado o xfs_repair.

Mas, em alguns casos, o dano pode ser grande o suficiente
para que n?o seja poss?vel repar?-lo automaticamente,
fazendo com que o sistema simplesmente deixe de dar boot.

N?o h? motivo para p?nico. Voc? pode dar boot pelo CD do
Kurumin e us?-lo para reparar as parti??es danificadas.

Abra um terminal e vire root (su), lembre-se que ao
rodar o Kurumin pelo CD voc? pode definir a senha de root
usando o comando “sudo passwd”. A parti??o a ser reparada
precisa estar desmontada. Vou usar como exemplo a parti??o
/dev/hda1.

Se for uma parti??o Ext2 ou Ext3, use o comando:

# fsck /dev/hda1

Ele vai come?ar a apontar os erros e perguntar se
cada um deve ser corrigido. Normalmente voc? pode ir
apenas respondendo “y” para tudo, mas caso existam dados
realmente importantes na parti??o ? melhor prestar mais
aten??o. Arquivos danificados ou fragmentos de arquivos
que puderam ser recuperados v?o para a pasta “lost+found”
no diret?rio raiz da parti??o.

Numa parti??o ReiserFS, comece com o comando:

# reiserfsck –check /dev/hda1

Ele exibe um aviso:

Do you want to run this program?[N/Yes] (note need to type Yes if you do):

Ou seja, voc? precisa digitar “Yes” para continuar, caso
apenas d? Enter ele aborta a opera??o.

Ele vai verificar toda a estrutura do sistema de arquivos
e indicar os erros encontrados. O pr?ximo passo ? usar a
op??o “–fix-fixable”:

# reiserfsck –fix-fixable /dev/hda1

Este segundo comando efetivamente corrige todos os erros
simples, que possam ser corrigidos sem colocar em risco
as demais estruturas do sistema de arquivos. Em 90% dos
casos isto ? suficiente.

Caso seja encontrado algum erro grave, ele vai abortar
a opera??o. Estes erros mais graves podem ser corrigidos
com o comando:

# reiserfsck –rebuild-tree /dev/hda1

Este comando vai reconstruir do zero todas as estruturas
do sistema de arquivos, vasculhando todos os arquivos
armazenados. Esta opera??o pode demorar bastante, de acordo
com o tamanho e quantidade de arquivos na parti??o. Nunca
interrompa a reconstru??o, caso contr?rio voc? n?o vai
conseguir acessar nada dentro da parti??o at? que recomece
e realmente termine a opera??o.

O –rebuild-tree vai realmente corrigir qualquer tipo de
erro no sistema de arquivos. Ele s? n?o vai resolver o
problema caso realmente existe algum problema f?sico, como
por exemplo um grande n?mero de setores defeituosos no HD.

Finalmente, caso voc? esteja usando uma parti??o formatada
em XFS, comece com o:

# xfs_check /dev/hda1

Ele vai indicar os problemas encontrados. Para realmente
corrigi-los, rode o:

# xfs_repair /dev/hda1

Assim como no caso do reiserfsck, todo o processo ?
autom?tico. Ao contr?rio do ext2, tanto o reiserfs quanto
o XFS s?o sistemas de arquivos muito complexos, por isso
qualquer interven??o manual s? aumentaria a possibilidade
de destruir tudo.

Mas, ambos incluem algumas op??es avan?adas, que podem ser
especificadas no comando. Voc? pode dar uma olhada dentro
dos manuais: “man reiserfsck” ou “man xfs_repair”.

Posted in Sem categoria

Gerenciamento de setores defeituosos com o ReiserFS

Este artigo foi retirado do site Dicas-L da Unicamp.

Por Carlos E. Morimoto (http://www.guiadohardware.net)

“Como funciona o gerenciamento de setores defeituosos (bad blocks)
no HD ao usar o sistema de arquivos ReiserFS? Existe algum utilit?rio
que fa?a um exame de superf?cie e marque os setores defeituosos,
como faz o scandisk?”

Voc? pode usar o comando “badblocks”, ele vai fazer um exame de
superf?cie e mostrar uma lista com os setores defeituosos. Para
usar em conjunto com o ReiserFS, voc? precisa especificar o tamanho
dos blocos (em bytes). Se voc? n?o usou nenhuma op??o especial ao
formatar a parti??o, os blocos ter?o 4096 bytes. O comando para
verificar a parti??o /dev/hda1 por exemplo, fica:

# badblocks -b 4096 /dev/hda1

(como root)

Isso demora alguns minutos. Se estiver tudo certo ele n?o vai
retornar nada no final do teste.

Hoje em dia os HD’s s?o capazes de marcar automaticamente os setores
defeituosos, o pr?prio hardware faz isso, independentemente do
sistema operacional.

Existe uma ?rea reservada no in?cio do disco chamada “defect
map” (mapa de defeitos) com alguns milhares de setores que ficam
reservados para isso. Sempre que o HD encontra um erro ao ler ou
gravar num determinado setor, ele remapeia este setor defeituoso para
um bom dentro do defect map, de modo que o HD continua aparecendo
intacto para o sistema operacional.

Os setores s? realmente come?am a aparecer quando o HD j? possui
muitos setores defeituosos e o defect map j? est? cheio. Isso ? um
ind?cio de um problema grave. O HD j? deu o que tinha que dar e o
melhor ? troca-lo o mais r?pido poss?vel para n?o arriscar perder
os dados.

Alguns sintomas de que o HD est? desfrutando de seus ?ltimos dias
de vida s?o:

– Muitos badblocks (causados por envelhecimento da m?dia)

– Desempenho muito abaixo do normal (isso indica problemas de
leitura, o que faz com que a cabe?a de leitura tenha que ler v?rias
vezes o mesmo setor para finalmente conseguir acessar os dados)

– Um barulho de click-click (o famoso click da morte, que indica
problemas no sistema de movimenta??o da cabe?a de leitura, um
ind?cio de que o HD est? realmente nas ?ltimas)

De qualquer forma, o ReiserFS ? capaz de marcar via software setores
defeituosos que for encontrando. Isso ? feito automaticamente, assim
como no NTFS do Windows XP. S? ? preciso marcar setores defeituosos
manualmente em sistemas de arquivos antigos, como o FAT32 e o EXT2.

Ou seja, para marcar setores defeituosos que por ventura existam,
voc? s? precisa copiar um monte de arquivos, at? encher a
parti??o. Para ver se existem setores defeituosos na parti??o,
marcados via software, rode o comando:

# debugreiserfs /dev/hda1

Caso exista algum erro no sistema de arquivos, causados por
desligamentos incorretos por exemplo, voc? pode corrigir com
o comando:

# reiserfsck /dev/hda1

Este comando deve ser executado com a parti??o desmontada. O ideal
? dar boot pelo CD do Kurumin e rodar a partir dele.

Em casos mais extremos, caso voc? tenha um HD cheio de badblocks
em m?os e queira us?-lo mesmo assim, num micro que n?o ? usado para
nada importante por exemplo, voc? pode fazer o seguinte:

Comece enchendo o HD de bits zero, isso vai for?ar a controladora
a escrever em todos os setores e marcar via hardware os
setores defeituosos que conseguir. Isso pode ser feito usando o
dd. Naturalmente isso vai apagar todos os dados. A forma ideal de
fazer isso ? dando boot atrav?s do CD do Kurumin:

# dd if=/dev/zero of=/dev/hda

(onde o /dev/hda ? o dispositivo do HD. Na d?vida, d? uma olhada
no qtparted)

Reparticione o HD usando o cfdisk e formate as parti??es em ReiserFS,
como em:

# mkreiserfs /dev/hda1

Monte a parti??o e copie arquivos (qualquer coisa) para dentro dela
at? encher. Isso deve marcar via software os setores defeituosos
que sobrarem. A partir da? voc? pode ir usando o HD at? que ele
pife definitivamente.

Posted in Sem categoria

Instalando OpenLdap + phpLdapAdmin em um FC3 f?cil e r?pido

Este artigo foi retirado do site Dicas-L da Unicamp.

Colabora??o: Renato Torresan Pagano

Instalando OpenLdap + phpLdapAdmin em um FC3 f?cil e r?pido

Pacotes Utilizados
==================

– cyrus-sasl-2.1.19-3.i386.rpm
– BerkleyDB-2.7.7-1.i386.rpm
– nss_ldap-220-3.i386.rpm
– openldap-2.2.13-2.i386.rpm
– openldap-servers-2.2.13-2.i386.rpm
– phpldapadmin-0.9.6c.zip (http://phpldapadmin.sourceforge.net)
– php-4.3.9.tar
– apache_1.3.33.tar

1. Instale todos os rpms

cd /root/pacotes
rpm -Uvh *

2. Instale o Apache

cd /usr/src
tar -xzvf /root/apache_1.3.33.tar
cd apache_1.3.33
./configure –enable-module=so –enable-module=rewrite
make
make install

3. Instale o PHP

cd ..
tar -xzvf /root/php-4.3.9.tar
cd php-4.3.9
./configure –with-mysql
–with-apxs=/usr/local/apache/bin/apxs –with-gd=/usr/lib
–with-jpeg-dir=/usr/lib –with-png-dir=/usr/lib
–with-zlib-dir=/usr/lib –with-xpm-dir=/usr/lib
–with-freetype-dir=/usr/lib –with-ldap

Obs.: Caso ele reclame da depend?ncia ldap.h, insira no
arquivo /etc/ld.so.conf o caminho /usr/lib/ e /usr/include/
e fa?a ldconfig, rode novamente o configure.

make
make install

4. Configure o Apache para que ele carregue o modulo do
php, insira as seguintes linhas no arquivo de configura??o
httpd.conf do seu apache:

LoadModule php4_module libexec/libphp4.so

Aqui procure pela palavra LoadModule e procure adicionar
na linha abaixo,para manter o arquivo organizado.

AddType application/x-httpd-php .php

Aqui procure pela palavra “AddType” e procure adicionar
na linha abaixo, para manter o arquivo organizado.

Configure o seu DocumentRoot, aqui irei utilizar o
/var/www/html e inicie o seu Apache

5. Configure agora o seu LDAP

Adicione no /etc/syslog.conf as seguinte linha:

#Save ldap messages
local.4* /var/log/ldap

Reinicie o syslog

service syslog restart

Vamos editar o arquivo slapd.conf em /etc/openldap, dentro
do arquivo procure pelo campo “ldbm and/or bdb database
definitions” e adicione as seguintes linhas:

database bdb
suffix “dc=podiumjundiai”
rootdn “cn=adm,dc=podiumjundiai,dc=intranet”

Obs.:Troque os campos podiumjundiai e intranet pelo
seu dom?nio

Ainda nesse arquivo adicione um rootpw, ? recomendado
que insira uma senha cifrada aqui para isso use o comando
slappassword

$slappassword
New password:
Re-enter new password:
{SSHA}Ij+9Nx490e7W9zAolkcOg+uRnwg

Copie e cole a ultima linha no campo rootpw ficando assim:

rootpw {SSHA}Ij+9Nx490e7W9zAolkcOg+uRnwg

Crie um arquivo chamado base.ldif e insira as seguintes configura??es:

#————————-inicio————————–
dn: dc=podiumjundiai,dc=intranet
dc: podiumjundiai
objectClass: top
objectClass: domain

dn: ou=Usuarios,dc=podiumjundiai,dc=intranet
ou: Usuarios
objectClass: top
objectClass: organizationalUnit
#————————-fim————————–

Vamos inserir essas informa??es no ldap para isso fa?a:

#ldapadd -x -D cn=adm,dc=podiumjundiai,dc=intranet -W -f base.ldif
Enter LDAP Password:
adding new entry “dc=podiumjundiai,dc=intranet”
adding new entry “ou=Usuarios,dc=podiumjundiai,dc=intranet”

Executando o comando ldapsearch deve aparecer as seguintes informa??es:

[root@constantine renato]# ldapsearch -x
# extended LDIF
#
# LDAPv3
# base <> with scope sub
# filter: (objectclass=*)
# requesting: ALL
#

# podiumjundiai.intranet
dn: dc=podiumjundiai,dc=intranet
dc: podiumjundiai
objectClass: top
objectClass: domain

# Usuarios, podiumjundiai.intranet
dn: ou=Usuarios,dc=podiumjundiai,dc=intranet
ou: Usuarios
objectClass: top
objectClass: organizationalUnit

Pronto sua base ldap esta pronta.

1. Vamos configurar agora o phpldapadmin

Descompacte o arquivo em /var/www/html

unzip phpldapadmin-0.9.6c.zip

Entre na pasta descompactada e fa?a:

cp config.php.example config.php

Altere as linhas do arquivo config.php:

$servers[$i][‘name’] = ‘My LDAP Server’;

Adicione aqui o nome do seu servidor, ex.: ‘Servidor LDAP Podium Jundiai’

$servers[$i][‘host’] = ‘ldap.example.com’;

Adicione aqui o endere?o do seu servidor, ex.: ‘192.168.1.230’

$servers[$i][‘base’] = ‘dc=example,dc=com’;

Adicione aqui o seu DN, ex.: ‘dc=podiumjundiai,dc=intranet’

$servers[$i][‘login_dn’] = ‘cn=Manager,dc=example,dc=com’;

Adicone aqui o seu rootdn, ex.: ‘cn=adm,dc=podiumjundiai,dc=intranet’;

$servers[$i][‘login_pass’] = ‘secret’;

Adicione a senha para acesso a base ldap, ex.: ‘minhasenha’ Obs.:? a mesma senha inserida na slapd.conf porem sem ser criptografada.

Salve e saia, digite no seu browser o
http://IP_do_servidor_ldap/phpldapadmin, se tudo foi feito
corretamente ir? aparecer a tela do phpldapadmin junto
com a base ldap criada, agora ? s? come?ar a adicionar
os usu?rios.

Salve e saia, vamos agora editar o arquivo ldap.conf,
dentro do arquivo insira as seguintes linhas:

2. Configurar as esta??es linux FC3 para autenticar no LDAP

Edite o arquivo nsswitch.conf:

vi /etc/nsswitch.conf

Procure pelas linhas abaixo e adicione o ldap na frente

passwd: files ldap
shadow: files ldap
group: files ldap

Agora edite o arquivo ldap.conf em /etc/ldap.conf e
adicione o endere?o e a base do servidor LDAP (Procure
pelas linhas host e base)

host 192.168.1.230
base dc=podiumjundiai,dc=intranet

Troque o /ect/pam.d pelo pam.d que esta em /usr/share/doc/nss_ldap-220/pam.d

# mv /etc/pam.d /etc/pam.d.ori
# cp -R /usr/share/doc/nss_ldap-220/pam.d /etc/pam.d

Pronto sua esta??o linux com FC3 j? esta aut?nticando em uma base ldap

Posted in Sem categoria

Desvendando o RealVNC para Unix

Artigo retirado do site Dicas-L, da unicamp.

Colabora??o: Ricardo Iramar dos Santos

1. Introdu??o
=============

A muito tempo utilizo o RealVNC (chamemos de VNC daqui para frente) e n?o s? eu mas o mundo inteiro tem visto uma grande evolu??o deste software que tanto nos ajuda no dia a dia.

No ?nicio, eu utilizava o vncserver que na verdade ? um script em Perl. O vncserver executa o Xvnc que cria uma outra sess?o do X no ambiente do VNC. Por?m n?o era p?ss?vel acessar via VNC sess?es do X j? iniciada utilizando o vncserver.

Ent?o um amigo me apresentou o x0vncserver (esse sim ? um bin?rio) que compartilha a sess?o do X com quase todas as op??es do Xvnc.

Em um belo dia, navegando pelo site http://www.realvnc.com (http://www.realvnc.com), encontrei uma documenta??o sobre como carregar o m?dulo do VNC no X (http://www.realvnc.com/products/free/4.1/x0.html). A implementa??o foi mais simples do que eu imaginava. Al?m disso descobri que era poss?vel acessar minha m?quina remotamente usando somente um browser com suporte a java.

Pensando nessas solu??es resolvi escrever uma documenta??o completa ? respeito. Ent?o comecei a ler mais a respeito sobre o VNC e lendo a man page do Xvnc percebi que tamb?m era poss?vel usar o Xvnc tamb?m com o inetd.

Nesta documenta??o ser? abordada todas essas formas de utiliza??o do VNC para Unix. Em todos os exemplos estarei utilizando a vers?o 4.1.1 do VNC, Slackware 10.1 e Perl 5.8.6. Por?m, vou tentar ser o mais gen?rico poss?vel para atender a outras vers?es do VNC assim como outras distribui??es Linux.

Agora chega de conversa e m?os ? obra.

2. Pr?-requisitos
=================

– VNC Free Edition for Linux (x86) 4.1.1 (vnc-4_1_1-x86_linux.tar.gz (http://www.realvnc.com/products/free/4.1/download.html)).
– Slackware Linux 10.1 (http://www.slackware.com), n?o ser? abordada a instala??o ou configura??o.
– Perl 5.8.6 (http://www.perl.com), n?o ser? abordada a instala??o ou configura??o.

3. Instala??o
=============

Fa?a o download do pacote de instala??o completo do VNC Free Edition for Linux (x86) vers?o 4.1.1 e descompacte da seguinte forma.

agent@smith:~/bin?rios/vnc$ tar zxvf vnc-4_1_1-x86_linux.tar.gz
vnc-4_1_1-x86_linux/
vnc-4_1_1-x86_linux/README
vnc-4_1_1-x86_linux/vncinstall
vnc-4_1_1-x86_linux/LICENCE.txt
vnc-4_1_1-x86_linux/vnc.so
vnc-4_1_1-x86_linux/vncviewer
vnc-4_1_1-x86_linux/vncpasswd
vnc-4_1_1-x86_linux/vncconfig
vnc-4_1_1-x86_linux/x0vncserver
vnc-4_1_1-x86_linux/Xvnc
vnc-4_1_1-x86_linux/vncviewer.man
vnc-4_1_1-x86_linux/vncpasswd.man
vnc-4_1_1-x86_linux/vncconfig.man
vnc-4_1_1-x86_linux/x0vncserver.man
vnc-4_1_1-x86_linux/Xvnc.man
vnc-4_1_1-x86_linux/vncserver
vnc-4_1_1-x86_linux/vncserver.man
vnc-4_1_1-x86_linux/java/
vnc-4_1_1-x86_linux/java/index.vnc
vnc-4_1_1-x86_linux/java/vncviewer.jar
vnc-4_1_1-x86_linux/java/logo150x150.gif
agent@smith:~/bin?rios/vnc$

Agora execute os comandos abaixo para a instala??o.

agent@smith:~/bin?rios/vnc$ cd vnc-4_1_1-x86_linux
agent@smith:~/bin?rios/vnc/vnc-4_1_1-x86_linux$ su
Password authentication bypassed.
root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux# ./vncinstall /usr/local/bin /usr/local/man
Copying Xvnc to /usr/local/bin
Copying Xvnc.man to /usr/local/man/man1/Xvnc.1
Copying vncviewer to /usr/local/bin
Copying vncviewer.man to /usr/local/man/man1/vncviewer.1
Copying vncpasswd to /usr/local/bin
Copying vncpasswd.man to /usr/local/man/man1/vncpasswd.1
Copying vncconfig to /usr/local/bin
Copying vncconfig.man to /usr/local/man/man1/vncconfig.1
Copying vncserver to /usr/local/bin
Copying vncserver.man to /usr/local/man/man1/vncserver.1
Copying x0vncserver to /usr/local/bin
Copying x0vncserver.man to /usr/local/man/man1/x0vncserver.1
Copying vnc.so to /usr/X11R6/lib/modules/extensions
root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux#

Se voc? pretende acessar sua m?quina usando um browser com suporte a java execute os comandos abaixo.

root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux# mkdir -p /usr/local/vnc/classes
root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux# cp java/* /usr/local/vnc/classes
root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux#

Agora vamos criar o arquivo que cont?m a senha do VNC, porque n?o queremos que todo mundo acesse nosso ambiente. Digite os comandos abaixo e escolha uma senha com seis ou mais caracteres.

root@smith:/home/agent/bin?rios/vnc# exit
exit
agent@smith:~/bin?rios/vnc$ vncpasswd
Password:
Verify:
agent@smith:~/bin?rios/vnc$

Por padr?o a senha ? gerada no arquivo $HOME/.vnc/passwd.

Se voc? esta usando VNC provavelmente n?o ir? mais precisar do recurso de acesso remoto do X que por padr?o vem habilitado na maioria das distribui??es. Caso for utilizar o VNC com inetd n?o desabilite essa op??o, veja porque no item Utilizando o VNC com inetd.

Para desabilitar tal op??o, caso use GDM assim como eu, basta alterar a op??o DisallowTCP para true (exemplo: DisallowTCP=true) no arquivo /etc/X11/gdm/gdm.conf.

Caso voc? utilize o script startx para iniciar o X, basta editar a linha serverargs=””, no pr?prio arquivo startx, para serverargs=”-nolisten tcp”. Se voc? utiliza kdm ou xdm edite a linha :0 local /usr/X11R6/bin/X para :0 local /usr/X11R6/bin/X -nolisten tcp do arquivo /etc/X11/xdm/Xservers.

4. Utiliza??o
=============

Para um melhor entendimento este item foi subdividido em itens menores conforme as formas de utiliza??o do VNC.

Como a maioria das op??es do arquivo Xvnc ? v?lida para todos os itens abaixo, segue abaixo a descri??o das op??es que acho mais relevantes.

-desktop [nome]
Espec?fica o nome que ir? aparecer na janela do vncviewer. O padr?o ? x11.

-rfbport [porta]
Espec?fica a porta em que VNC ir? escutar, ideal se o firewall da sua empresa bloqueia a
porta padr?o. O padr?o ? 5900 mais o n?mero do display.

-httpd [diret?rio]
Executa um mini servidor HTTP com diret?rio raiz informado. Este diret?rio raiz deve conter
as classes java para o viewer, que por padr?o ficam em “/usr/local/vnc/classes”. Esta op??o
permite voc? acessar seu ambiente remotamente com um browser que tenha suporte a java.

-httpPort [porta]
Espec?fica a porta na qual o servidor HTTP ir? escutar. O padr?o ? 5800 mais o n?mero do
display.

-rfbauth [arquivo], -PasswordFile [arquivo]
Espec?fica o arquivo de senhas que o VNC deve consultar quando receber uma requisi??o. Voc?
deve especificar o arquivo que foi gerado atrav?s do arquivo vncpasswd conforme procedimento
acima (exemplo: “/home/agent/.vnc/passwd”).

-SendCutText
Habilita o compartilhamento da ?rea de transfer?ncia entre o ambiente do VNC para a m?quina
que esta executando o vncviewer. Esta op??o ? habilitada por padr?o. Para que esta op??o
funcione ? necess?rio executar o vncconfig no ambiente do VNC.

-AcceptCutText
Idem a anterior por?m no sentido inverso.

-DisconnectClients
Desconecta o usu?rio atual do ambiente VNC quando uma nova requisi??o n?o compartilhada ?
feita. O padr?o ? ativado. Se est? op??o for definida como “false”, novas requis?es n?o
compartilhadas ser?o recusadas enquanto o primeiro usu?rio estiver ativo. Quando est? op??o
for combinada com a op??o “NeverShared” s? ser? poss?vel ter um ?nico usu?rio por vez.

-NeverShared
Independente da configura??o do client, n?o permite conex?es compartilhadas. O padr?o ?
desativado.

-AlwaysShared
Independente da configura??o do client, sempre permite conex?es compartilhadas. O padr?o ?
desativado.

-SecurityTypes [op??o]
Define o modo de autentica??o. Atualmente s? existem as op??es “None” e “VncAuth”. O valor
padr?o ? “VncAuth”. Se voc? configurar esta op??o com “None” n?o ser? necess?rio informar
nenhuma senha no momento da requisi??o, isto ?, qualquer um ter? acesso ao seu ambiente VNC.
Portanto s? configure com “None” est?o op??o se voc? tiver certeza do que est? fazendo.

-QueryConnect
Pergunta ao usu?rio do ambiente VNC se deve aceitar ou n?o conex?es externas no momento da
requisi??o. Se voc? for usar o m?dulo do VNC ou vncserver ? necess?rio executar o vncconfig
no ambiente VNC, entretando n?o ? necess?rio para o x0vncserver.

-localhost
Aceita somente requisi??es locais. Ideal se voc? for acessar o ambiente atrav?s de um t?nel
SSH. Veja a documenta??o “Tunelando com OpenSSH” em
http://agentsmith.powerlinux.com.br/docs/doc7.html.

4.1. Utilizando o vncserver
===========================

Necessariamente voc? n?o precisa fazer nenhum configura??o inicial para usar o vncserver.

Quando o vncserver ? executado pela primeira vez ele checa a exist?ncia dos arquivos $HOME/.vnc/passwd (caso um alternativo n?o seja informado pela op??o -rfbauth ou -PasswordFile) e $HOME/.vnc/xstartup. Caso algum desses arquivos n?o exista o vncserver ir? criar um arquivo padr?o. No caso do arquivo $HOME/.vnc/passwd voc? precisa informar a senha de acesso ao ambiente do VNC.

agent@smith:~$ vncserver

You will require a password to access your desktops.

Password:
Verify:

New ‘smith:1 (agent)’ desktop is smith:1

Creating default startup script /home/agent/.vnc/xstartup
Starting applications specified in /home/agent/.vnc/xstartup
Log file is /home/agent/.vnc/smith:1.log

agent@smith:~$

Por padr?o o vncserver utiliza o display :1, sendo assim o Xvnc ir? escutar na porta 5901. Se voc? deseja saber quais op??es que foram passadas para o Xvnc execute o comando abaixo.

agent@smith:~$ ps aux | grep Xvnc
agent 436 0.1 1.4 9528 7404 pts/0 S 17:00 0:00 Xvnc :1 -desktop smith:1 (agent) -httpd /usr/local/vnc/classes -auth /home/agent/.Xauthority -geometry 1024×768 -depth 16 -rfbwait 30000 -rfbauth /home/agent/.vnc/passwd -rfbport 5901 -pn

O arquivo xstartup padr?o de longe n?o ? a melhor op??o, pois o mesmo executa o twm como gerenciador de janelas. Se voc? deseja que seja iniciado o mesmo gerenciador de janelas que ? iniciado pelo script startx substitua o arquivo xstartup com o conte?do abaixo.

#!/bin/sh

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
sh /etc/X11/xinit/xinitrc

Se voc? possui um configura??o personalizada para seu usu?rio altere a linha sh /etc/X11/xinit/xinitrc para sh $HOME/.vnc/xinitrc.

Voc? tamb?m pode utilizar todas as op??es descritas no iten Utiliza??o para o arquivo Xvnc.

agent@smith:~$ vncserver –help

usage: vncserver [:] [-name ] [-depth ]
[-geometry x]
[-pixelformat rgbNNN|bgrNNN]

vncserver -kill

Al?m das op??es descritas no item Utiliza??o voc? pode especificar as dimens?o da nova sess?o do X com a op??o -geometry. Essa op??o n?o pode ser usada com as outras formas de utiliza??o do VNC descritas nos outros itens.

-geometry [largura]x[altura]
Define as dimens?es da uma nova sess?o do X criada pelo vncserver. O padr?o ? 1024×768.

Essa op??o ? util quando voc? sabe as dimens?es do ambiente onde o vncviewer ser? executado. Desta forma voc? pode definir as dimens?es da nova sess?o do X seja menor do que as dimens?es do ambiente da m?quina onde ser? executado o vncviewer.

Para que a nova sess?o do X n?o escute na porta 6000 voc? tamb?m pode adicionar a op??o -nolisten tcp no final do comando do vncserver.

O VNC utiliza como padr?o o arquivo $HOME/.vnc/[hostname][display].log para armazenar seus logs. O $HOME/.vnc/[hostname][display].pid armazena o id do processo do Xvnc, este n?mero ? utilizado pelo comando vncserver -kill.

Para finalizar o ambiente VNC e a sess?o do X basta executar vncserver -kill seguido do display.

agent@smith:~$ vncserver -kill :1
Killing Xvnc process ID 436

4.2. Utilizando o x0vncserver
=============================

Para usar o x0vncserver voc? ser? obrigado a usar no m?nimo a op??o -rfbauth [arquivo] ou -PasswordFile [arquivo] caso voc? deseje que seu ambiente seja protegido por uma senha ou -SecurityTypes None para um acesso direto sem senha.

Se voc? estiver localmente na m?quina na qual deseja compartilhar o ambiente VNC basta executar o comando abaixo em um terminal qualquer. N?o feche este terminal pois se n?o o processo do VNC ser? finalizado tamb?m. Voc? pode criar um atalho em seu gerenciador de janela para n?o precisar deixar um terminal aberto ou colocar esse comando no arquivo ~/.xprofile para ser executa na inicializa??o da sess?o do X.

agent@smith:~$ x0vncserver PasswordFile=~/.vnc/passwd &

Ou se voc? estiver remotamente via SSH ser? necess?rio especificar o display com a op??o -display :0 da seguinte forma.

agent@smith:~$ x0vncserver PasswordFile=~/.vnc/passwd -display :0 &

Caso voc? use GDM e ao tentar usar o x0vncserver ? retornado o erro Xlib: Invalid MIT-MAGIC-COOKIE-1 key configure a v?riavel XAUTHORITY de acordo com o arquivo utilizado pelo GDM da seguinte forma.

agent@smith:~# XAUTHORITY=/var/lib/gdm/\:0.Xauth x0vncserver PasswordFile=/home/agent/.vnc/passwd -display :0 &

Se voc? iniciou a sess?o do X via startx e tamb?m tiver problemas do tipo Xlib: connection to “:0.0” refused by server utilize o comando xhost + como root antes de executar o x0vncserver.

Voc? tamb?m pode utilizar as op??es descritas no item Utiliza??o.

agent@smith:~$ x0vncserver -h

usage: x0vncserver []

Parameters can be turned on with – or off with –=0
Parameters which take a value can be specified as –
Other valid forms are===
Parameter names are case-insensitive.

Para finalizar o x0vncserver basta executar o comando abaixo.

agent@smith:~$ killall -9 x0vncserver
[1]+ Killed x0vncserver PasswordFile=~/.vnc/passwd -display :0

4.3. Utilizando o VNC como m?dulo para X
========================================

Atualmente utilizo o VNC desta forma, ela ? ideal para quem n?o usa uma m?quina compartilhada. Caso sua m?quina seja compartilhada com outros usu?rios utilize o VNC com inetd conforme item Utilizando o VNC com inetd.

Edite o arquivo /etc/X11/xorg.conf ou XF86Config e insira a linha Load “vnc” na sess?o Module.

Section “Module”

Load “vnc”
EndSection

Neste mesmo arquivo na sess?o Screen insira as op??es do Xvnc descritas no item Utiliza??o conforme desejar.

Section “Screen”

# VNC Configuration
# Option “SecurityTypes” “None”
Option “SecurityTypes” “VncAuth”
Option “UserPasswdVerifier” “VncAuth”
Option “PasswordFile” “/home/agent/.vnc/passwd”
Option “Httpd” “/usr/local/vnc/classes”
Option “Desktop” “Agent Smith VNC”
EndSection

Agora reinicie o X (Ctrl+Alt+Backspace ou killall -1 X) para carregar o m?dulo do VNC. Para descarregar o m?dulo edite o arquivo xorg.conf ou XF86Config novamente e comente a linha Load “vnc” colocando um # no in?cio.

4.4. Utilizando o VNC com inetd
===============================

O VNC com inetd ? ideal para m?quinas utilizadas por v?rios usu?rios ao mesmo tempo, pois permite multiplos logins com usu?rios diferentes ao mesmo tempo. Para isso voc? precisa ter um gerenciador de login gr?fico com suporte ? XDMCP. Al?m disso o Xvnc ser? executado somente a cada requis?o externa.

Existem dois modos no qual o VNC pode ser utilizado com o inetd chamados nowait e wait.

4.4.1. Modo nowait
==================

No modo nowait a cada requis?o externa em uma mesma porta o Xnvc ? executado. O Xvnc nunca ir? escutar a porta diretamente, portanto n?o ser? poss?vel efetuar requisi??es externas compartilhadas. Entretanto, utilizando o vncconfig ? poss?vel efetuar requisi??es reversas (do servidor para o cliente) colocando o vncviewer em modo de escuta, veja em detalhes no item Utilizando o vncconfig mais abaixo. Quando a conex?o com o vncviewer ? finalizada ou interrompida o processo do Xnvc tamb?m ? finalizado.

Para habilitar esse modo edite o arquivo /etc/inetd.conf e insir? a seguinte linha.

5900 stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once securitytypes=none

Neste exemplo a cada requisi??o externa o Xvnc ser? executado e o usu?rio ter? acesso da tela de login gr?fico via XDMCP, desta forma n?o precisamos configurar uma senha para o ambiente do VNC (securitytypes=none).

Para parar de usar o VNC basta comentar a linha do inetd.conf e reiniciar o inetd (/etc/rc.d/rc.inetd restart ou killall -1 inetd).

4.4.2. Modo wait
================

No modo wait, na primeira requis?o, o inetd faz com que o Xvnc seja executando escutando a porta diretamente. Isto significa que para cada porta existir? somente Xvnc executando. Portanto novas requisi??es compartilhadas poder?o ser aceitas pelo Xvnc. Mesmo quando a conex?o com o vncviewer for finalizada ou interrompida o processo do Xnvc continuar? rodando. O processo do Xnvc somente ser? finalizado quando o usu?rio efetuar um logoff da sess?o do gerenciador de login.

Para habilitar esse modo edite o arquivo /etc/inetd.conf e insir? a seguinte linha.

5900 stream tcp wait agent /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once passwordFile=/home/agent/.vnc/passwd

Neste modo ? necess?rio especificar um arquivo de senha pois o Xvnc continuar? rodando at? que o usu?rio efetue o logoff. Se voc? fechar a janela do vncviewer o Xvnc ainda continuar? rodando podendo ser acessado posteriormente por qualquer usu?rio que tenha acesso a rede. Al?m disso o Xvnc poder? receber requisi??es compartilhadas.

Para parar de usar o VNC basta comentar a linha do inetd.conf e reiniciar o inetd (/etc/rc.d/rc.inetd restart ou killall -1 inetd).

5. Utilizando o vncconfig
=========================

O vncconfig possu? duas finalidades. A principal ? para controlar um Xvnc que j? esta em execu??o e a outra ? habilitar o compartilhamento da ?rea de transfer?ncia.

Segue abaixo as op??es para a fun??o principal do vncconfig.

-connect [nome ou ip]:[porta]
Faz um conex?o reversa com um vncviewer que esta escutando em [nome ou ip]. Se a op??o
:[porta] n?o for especif?cada a padr?o (5500) ser? utilizada.

-disconnect
Desconecta todos os clientes conectados ao ambiente VNC.

[-set] [op??o do Xvnc]=[valor]
Especif?ca um valor para o Xvnc que esta em execu??o. Essa op??o n?o serve para todas as
op??es do Xvnc.

-list
Lista todos as op??es que Xvnc suporta.

-get [op??o do Xvnc]
Imprime na tela o valor atual da op??o do Xvnc.

-desc [op??o do Xvnc]
Imprime na tela um pequena descri??o da op??o do Xvnc.

Segue abaixo as op??es para o compartilhamento da ?rea de transfer?ncia.

-display [display]
Especif?ca o display em que o ambiente VNC esta sendo executado.

-nowin
N?o exibe a janela de compartilhamento da ?rea de transfer?ncia.

-iconic
Executa a janela de compartilhamento da ?rea de transfer?ncia minimizada.

6. Utilizando o vncviewer ou browser
====================================

O vncviewer ? o cliente para acesso ao ambiente do VNC. Quando executa sem nenhuma op??o ? exibido uma janela para que voc? forne?a as informa??es do ambiente VNC que se deseja conectar.

Voc? tamb?m pode especif?car essas op??es via linha de comando da seguinte forma vncviewer [op??es] nome ou (ip)[:display].

? possivel executar o vncviewer em modo de escuta da seguinte forma vncviewer [op??es] -listen [porta]. Nesse modo a requisi??o ser? feita atrav?s do servidor onde se encontra o ambiente VNC em execu??o.

Cado voc? n?o especif?que o modo de condifica??o e a quantidade de cores o vncviewer ir? testar a velocidade entre o cliente e o server e selecionar? a mais adequada. Uma vez conectado voc? poder? alterar algumas dessas op??es atrav?s do menu do vncviewer precionando a tecla F8.

Segue abaixo as principais op??es que voc? pode utilizar com vncviewer via linha de comando.

-listen [porta]
Especif?ca a porta em que o o vncviewer ir? escutar. A porta padr?o ? 5500. A conex?o remota
deve ser inicia a partir do ambiente VNC utilizando o vncconfig (exemplo “vncconfig -connect
192.168.0.2:5500″).

-Shared
Envia uma requisi??o compartilhada. Por padr?o o ambiente VNC fecha todas as outras conex?es
quando recebe uma nova requisi??o n?o compartilhada.

-ViewOnly
Faz com que os eventos de teclado e mouse n?o sejam enviados para o ambiente VNC. Essa op??o
? util quando se deseja somente visualizar somente o que outro usu?rio j? conectado esta
fazendo, por isso ? ideal que essa ela seja utilizada em conjunto com a op??o “-Shared”.

-FullScreen
Inicia a sess?o em modo tela cheia.

Outras op??es do vncviewer podem ser vistas em sua man page (man vncviewer).

Para acessar um ambiente via browser, caso o servidor tenha suporte, basta digitar o endere?o seguido de dois pontos e a porta na barra de endere?os (exemplo http://192.168.0.2:5800). O unico pr?-requisito ? que o browser precisa ter suporte a java.

7. Conclus?o
============

O VNC ? mais f?cil de usar do que ele ja aparenta ser. Al?m de f?cil existe diversas formas seguras de utiliza??o.

A ?nica implementa??o que falta para o VNC ? implementar a transfer?ncia de arquivos entre o servidor e cliente. Isso j? existe para os projetos http://ultravnc.sourceforge.net e http://www.tightvnc.com por?m s? para Windows.

8. Refer?ncias
==============

– RealVNC (http://www.realvnc.com)
– Google (http://www.google.com.br)

Posted in Sem categoria