domingo, 6 de junho de 2010
Finalmente livre do tedioso OSX...
Após várias tentativas de dar boot na máquina com o Debian GNU/Linux Testing (Squeeze) consegui finalmente. Aí vai um resumo dos passos encotrados nos sites http://wiki.debian.org/MacBook, http://lowmemorymode.wordpress.com/2009/12/28/macbook/, dentre outros:
1º Baixar o primeiro CD do testing gerado semanalmente;
2º Iniciar a máquina com a tecla 'C' pressionada. Detalhe: você irá precisar de um teclado USB, pois, no momento da instalação o teclado do MacBook não funciona;
3º Proceder com a instalação normalmente até o particionamento do disco;
4º No meu caso apaguei todo o disco e criei uma partição do tipo EE (GPT) de 200Mb no começo do disco. O resto do particionamento é normal ext4/swap;
5º Antes da instalação do grub, pressione CTRL+F2, digite os comandos chroot /target, aptitude install gptsync, por último gptsync /dev/sda e salve como sugerido;
6º Agora é só dar boot na máquina e customizá-la. Depois disso tudo funcionando bem melhor. :-)
quarta-feira, 29 de julho de 2009
Autenticação NTLM e Basic no Apache, com o mesmo módulo, em GNU/Linux
No meu caso; um serviço de controle de versão SVN provido por Apache2+SSL. Não falarei aqui sobre o serviço de controle de versão, mas sim de como este é autorizado através da autenticação NTLM. Esta é outra história. Pense apenas em um serviço X. O sistema de autenticação? MS Active Directory do Windows Server 2008 com 33 domínios de confiança e uma floresta de logins e recursos enorme.
Depois de testar várias alternativas, cheguei ao mod_auth_ntlm_winbind. Ótima opção!
Primeiramente o seu servidor GNU/Linux deve fazer parte do domínio AD, como qualquer máquina MS Windows. Para tanto, você precisará instalar e configurar o samba e o winbind. Outra coisa, levo em consideração a distribuição Debian GNU/Linux 5.0.2 (Lenny). Mas é possível para qualquer Unix-like.
...
Rede
Deve-se saber algumas informações sobre a rede. Para tanto execute os passos a seguir:Server: 10.8.X.Y
Address: 10.8.X.Y#53
Name: sufixo_dns
Address: 10.8.N.M
Name: sufixo_dns
Address: 10.8.I.J
...
svn@poe:~$ nslookup 10.8.N.M
Server: 10.8.I.J
Address: 10.8.I.J#53
N.M.8.10.in-addr.arpa name = svr0001.sufixo_dns.
...
No meu caso, os servidores de DNS também são os servidores KDC. Como fiquei sabendo disso?
Trying 10.8.N.M...
Connected to svr0001.sufixo_dns (10.8.N.M).
Escape character is '^]'.
Connection closed by foreign host.
...
Kerberos
svn@poe:~$ sudo vi /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5.log
[libdefaults]
clockskew = 300
default_realm = SUFIXO_DNS_EM_LETRAS_MAIÚSCULAS
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
[realms]
SUFIXO_DNS_EM_LETRAS_MAIÚSCULAS = {
kdc = svr0001:88
kdc = svr0002:88
kdc = svr0003:88
kdc = svr0004:88
default_domain = SUFIXO_DNS_EM_LETRAS_MAIÚSCULAS
}
[domain_realm]
.sufixo_dns_em_letras_minúsculas = SUFIXO_DNS_EM_LETRAS_MAIÚSCULAS
sufixo_dns_em_letras_minúsculas = SUFIXO_DNS_EM_LETRAS_MAIÚSCULAS
Execute os comandos como no quadro abaixo e se a saída for parecida com a ali apresentada, tudo está correto.
Password for cperpetuo@SUFIXO_DNS_EM_LETRAS_MAIÚSCULAS:
svn@sac0344:~$ klist
Ticket cache: FILE:/tmp/krb5cc_1001
Default principal: cperpetuo@SUFIXO_DNS_EM_LETRAS_MAIÚSCULAS
Valid starting Expires Service principal
07/29/09 13:47:52 07/30/09 01:48:00 krbtgt/SUFIXO_DNS_EM_LETRAS_MAIÚSCULAS@SUFIXO_DNS_EM_LETRAS_MAIÚSCULAS
renew until 07/30/09 13:47:52
Kerberos 4 ticket cache: /tmp/tkt1001
klist: You have no tickets cached
...
Samba
svn@poe:~$ sudo vi /etc/samba/smb.conf
[global]
workgroup = DOMÍNIO
server string = SVN Server
realm = SUFIXO_DNS_EM_LETRAS_MAIÚSCULAS
security = ADS
password server = *
restrict anonymous = 2
client NTLMv2 auth = Yes
printcap name = /dev/null
idmap uid = 10000-200000
idmap gid = 10000-200000
template homedir = /tmp
template shell = /bin/false
winbind separator = \\
idmap backend = ad
winbind enum users = Yes
winbind enum groups = Yes
printing = bsd
printcap name = /dev/null
~
NTP
Também no meu caso, os servidores de DNS também são servidores NTP.svn@poe:~$ vi /etc/default/ntpdate
# The settings in this file are used by the program ntpdate-debian, but not
# by the upstream program ntpdate.
# Set to "yes" to take the server list from /etc/ntp.conf, from package ntp,
# so you only have to keep it in one place.
NTPDATE_USE_NTP_CONF=no
# List of NTP servers to use (Separate multiple servers with spaces.)
# Not used if NTPDATE_USE_NTP_CONF is yes.
NTPSERVERS="svr0001 svr0002 svr0003 svr0004"
# Additional options to pass to ntpdate
NTPOPTIONS="-s"
~
svn@poe:~$ sudo ln -s /usr/sbin/ntpdate-debian /etc/cron.daily/
Inserção da máquina no domínio
svn@poe:~$ sudo invoke-rc.d winbind start
svn@poe:~$ sudo net -W DOMÍNIO -S svr0001 -U administrador_de_domínio
Se tudo está correto:
Join is OK
klaux@poe:~$ sudo net rpc testjoin
Join to 'DOMÍNIO' is OK
klaux@poe:~$ wbinfo -i DOMÍNIO\\cperpetuo
DOMÍNIO\cperpetuo:*:10000:10000:Clauzio 'KlauX' Perpétuo:/tmp:/bin/false
mod_auth_ntlm_winbind
A segunda parte é justamente baixar o mod_auth_ntlm_winbind, compilá-lo, instalá-lo e configurá-lo.> mod_auth_ntlm_winbind
...
Sugiro a aplicação do diff abaixo, pois os valores padrões para algumas flags do módulo estão sem o path absoluto e no meu caso isso foi um problema. Isso também evita a necessidade de se passar valores para as flags PlaintextAuthHelper e NTLMAuthHelper.
Index: mod_auth_ntlm_winbind.c
===================================================================
--- mod_auth_ntlm_winbind.c (revisão 801)
+++ mod_auth_ntlm_winbind.c (cópia de trabalho)
@@ -884,9 +884,9 @@
crec->negotiate_on = 0;
crec->ntlm_basic_on = 0;
crec->ntlm_basic_realm = "REALM";
- crec->ntlm_auth_helper = "ntlm_auth --helper-protocol=squid-2.5-ntlmssp";
- crec->negotiate_ntlm_auth_helper = "ntlm_auth --helper-protocol=gss-spnego";
- crec->ntlm_plaintext_helper = "ntlm_auth --helper-protocol=squid-2.5-basic";
+ crec->ntlm_auth_helper = "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp";
+ crec->negotiate_ntlm_auth_helper = "/usr/bin/ntlm_auth --helper-protocol=gss-spnego";
+ crec->ntlm_plaintext_helper = "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic";
return crec;
}
...
klaux@poe:~$ sudo echo "LoadModule \
> auth_ntlm_winbind_module \
> /usr/lib/apache2/modules/mod_auth_ntlm_winbind.so" >\
> /etc/apache2/mods-available/auth_ntlm_winbind.load
...
klaux@poe:~$ sudo a2enmod auth_ntlm_winbind
...
klaux@poe:~$ sudo vi /etc/apache2/conf.d/pasta
<Location /pasta>
AuthName "SVN - ECT"
NTLMAuth on
NTLMBasicAuth on
NTLMBasicAuthoritative on
AuthType NTLM
SSLRequireSSL
Require valid-user
</Location>
~
klaux@poe:~$ sudo invoke-rc.d apache2 restart
Pronto! Agora é só acessar http(s)://localhost/pasta por um cliente, MS IE, TortoiseSVN etc., em máquinas MS Windows, que suporte o tipo de autenticação NTLM. Neste serão utilizadas as mesmas ACLs do login no SO, ou seja, não será solicitada senha alguma.
No caso dos clientes que não suportem o tipo de autenticação NTLM, o próprio módulo, através da flag 'NTLMBasicAuth on', providenciará a autenticação pelo método Basic. Muita atenção aqui: o método de autenticação Basic passa suas informações em texto plano, ou seja, instale o módulo SSL no Apache.
Fonte:www.debian-administration.org, adldap.sourceforge.net
segunda-feira, 6 de julho de 2009
VMWare e os caracteres "/" e "?" no teclado ABNT2
Pois bem, seguem os passos necessários para corrigir esse problema.
Abra o arquivo /usr/lib/vmware/config para edição:
sudo vi /usr/lib/vmware/config
Acrescente a seguinte linha no final do arquivo:
xkeymap.keycode.211 = 0x073
Reinicie o vmware:
/etc/init.d/vmware restart
Pronto, agora é só entrar na(s) máquina(s) guest que a tecla estará funcionando!
Fonte: hamacker.wordpress.com
quarta-feira, 13 de maio de 2009
2D barcodes: QR Code e Data matrix
Existem hoje dois "padrões" para códigos de barra 2D bem difundidos no mundo: O japonês QR Code e o Data matrix. Este último recomendado pela (EIA) para identificar pequenos componentes eletrônicos como periféricos para PCs e Notebooks.
Essa tecnologia está cada vez mais presente na Internet e fora dela. É uma excelente forma de difundir pequenas quantidades de informação como dados pessoais (nome, telefone, e-mail), números de série de placas de computador etc. Mas, a principal vantagem, acredito, é a possibilidade de se utilizar um simples celular com câmera digital para ter acesso a tais informações. Imagine colocar no seu portal um QR code com seu cartão de visitas. As pessoas interessadas poderiam simplesmente escaneá-lo para terem acesso aos seus dados. Só preste muita atenção na capacidade de leitura entre os dispositivos disponíveis e a quantidade de informação codificada. Isso é diretamente proporcional: Veja mais: Versões, correção de erros e máximo de caracteres.
Um boa forma de se inteirar um pouco mais sobre o assunto é assistindo o vídeo QR code: o que é isso? da Profª Martha Gabriel. Lá ela apresenta o i-nigma. Tanto o leitor que pode ser instalado em celulares com JVM quanto o portal onde se pode gerar códigos de barra bidimencionais nos formatos já apresentados.
Alguns links relacionados:
-= Geradores =-
http://www.mobile-barcodes.com/qr-code-generator/
http://code.google.com/intl/pt-BR/apis/chart/#qrcodes
http://zxing.appspot.com/generator/
http://www.quickmark.com.tw/En/diy/?qrVcard
http://www.i-nigma.com/Create.asp
http://mobilecodes.nokia.com/create.jsp?terms=accepted
http://qrcode.kaywa.com/
http://datamatrix.kaywa.com/
-= Leitores =-
http://code.google.com/p/zxing/
http://mobilecodes.nokia.com/scan.htm
http://reader.kaywa.com
http://www.i-nigma.com/GetReader.asp
http://www.upc.fi/en/upcode/download/
http://www.neoreader.com/download.html --> Lê mais formatos Aztec Code, Data matrix, UPC, Code 128.
Fonte: tvig.ig.com.br, blog.mazolini.com.br e code.google.com
quarta-feira, 6 de maio de 2009
Tecla Caps Lock invertida
Depois de muito procurar descobri que o culpado era o OpenOffice. Existe uma opção de autocorreção chamada "Correct accidental use of cAPS LOCK key" que causa essa confusão. O que fiz foi desabilitá-la.
Para acessar tal opção:
menu Ferramentas > AutoCorreção... > Opções > Correct accidental use of cAPS LOCK key > OK.
Não testei em outro sistema operacional e nem em outra versão do OpenOffice, além da 2.4.1.
T+
terça-feira, 5 de maio de 2009
Usando o VMware Virtual Disk Manager
Os exemplos abaixo ilustram como se deve usar o virtual disk manager. Você deve executar o virtual disk manager a partir do prompt de comando.
Para criar um novo disco virtual, execute o comando como demonstrado abaixo:
vmware-vdiskmanager -c -t 0 -s 40GB -a ide myDisk.vmdkIsso cria um disco IDE de 40GB com o nome de myDisk.vmdk. Todo o disco virtual corresponde a um único arquivo .vmdk e o espaço em disco não está pré-alocado.
Convertendo um Disco Virtual
Para converter um disco virtual do tipo pré-alocado para alocação dinâmica, execute o comando como demonstrado abaixo:
vmware-vdiskmanager -r sourceDisk.vmdk -t 0 targetDisk.vmdkIsso converte um disco virtual originalmente do tipo pré-alocado para o tipo alocação dinâmica em um único arquivo. O espaço do disco virtual não mais é pré-alocado, e o virtual disk manager requisitará o espaço necessário, até sua capacidade, na medida que o conteúdo do disco virtual aumenta.
Expandindo o tamanho de um Disco Virtual
Para expandir o tamanho de um disco virtual, execute o comando como demonstrado abaixo:
vmware-vdiskmanager -x 40GB myDisk.vmdkIsso aumenta a capacidade máxima do disco para 40GB.
Desfragmentando um Disco Virtual
Para desfragmentar um disco virtual, execute o comando como demonstrado abaixo:
vmware-vdiskmanager -d myDisk.vmdk
Atenção:
não se pode desfragmentar um disco virtual caso este seja do tipo pré-alocado. Também não se pode desfragmentar um disco físico.
Isso apenas é necessário em máquinas MS Windows. Para mais detalhes acesse o documento original da VMware
Para encolher um disco virtual, execute o comando como demonstrado abaixo:
vmware-vdiskmanager -k myDisk.vmdk
Atenção:
Não se pode encolher um disco virtual caso este seja do tipo pré-alocado (preallocated) e também não se pode encolher um disco físico.
Para que a operação seja bem sucedida, será necessário o dobro do tamanho do disco virtual no disco físico.
Caso o disco virtual tenha um snapshot, será necessário removê-lo primeiro.
Alguns Tipos de Discos Virtuais Suportados
0 : Disco virtual dinâmico simples
1 : Disco virtual dinâmico repartido em arquivos de 2G
2 : Disco virtual pré-alocado
3 : Disco virtual pré-alocado repartido em arquivos de 2G
Fonte: www.vmware.com e www.nanolime.eti.br
segunda-feira, 4 de maio de 2009
Acertando o formato de data do Trac
A boa notícia é que é muito simples acertar isso. O que define o formato de apresentação de data usado pelo Trac é o Locale configurado no servidor. Sendo assim, basta mudar o Locale para que o formato fique no formato desejado.
Uma das maneiras de fazer isso é configurar uma variável de ambiente do Apache. No Debian GNU/Linux, basta acrescentar a seguinte linha no arquivo /etc/apache2/envvars:
export LC_ALL=pt_BR.UTF-8
Não esqueça de fazer o restart do Apache depois.
Fonte: pronus.eng.br