Arquivo de 12/05/2011

Alguma vez você já precisou abrir um aplicativo gráfico em uma estação remota com os privilégios do próprio usuário que a utiliza?

Recentemente precisei configurar um aplicativo para um usuário específico em uma estação remota, porém não queria ocupar a estação do usuário enquanto configurava o aplicativo. Neste caso, abrí-lo através de uma conexão SSH com o X habilitado seria o ideal.

Quando você possui o usuário e senha do host remoto no qual quer configurar o aplicativo isso não é problema, bastando fazer algo do tipo:

  info02@info02:~$ ssh -X compras@compras03
  compras@compras03's password:
  compras@compras03:~$ xsane

O aplicativo abrirá sem problemas e qualquer alteração em suas configurações serão guardadas no perfil deste mesmo usuário.

Suponhamos que você não tenha a senha do usuário para o qual deseja configurar o software. O que fazer?

Podemos tentar logar como super usuário, alterar o perfil para o usuário que queremos e tentar abrir o software. Porém receberemos um erro:

  info02@info02:~$ ssh -X root@compras03
  root@compras03's password:
  compras03:~# su - compras
  compras@compras03:~$ xsane

  (xsane:3095): Gtk-WARNING **: cannot open display:
  compras@compras03:~$

A sequência para conseguir abrir a aplicação com sucesso seria:

  1. Logar na estação remota com usuário que você possui habilitando o X. (loguei como root);
  2. Confirmar o Display setado nas variáveis de ambiente (echo $DISPLAY) ;
  3. Verificar e copiar a linha que contém o “cookie” relacionado ao display setado em nossa seção (xauth list);
  4. Alternar para o usuário que deve ter o software configurado em seu perfil( su < usuario>);
  5. Adicionar o cookie do display ao novo usuário (xauth add < linha copiada no passo 3>);
  6. Executar a aplicação.

Um exemplo prático destes passos pode ser visto abaixo:

  info02@info02:~$ ssh -X root@compras03
  root@compras03's password:
  compras03:~# echo $DISPLAY
  localhost:10.0
  compras03:~# xauth list
  compras03/unix:11  MIT-MAGIC-COOKIE-1  e2564ead0158e22db6b243ed3008bdc8
  compras03/unix:10  MIT-MAGIC-COOKIE-1  4120ad75e0a2be45464d6aa8217a0d48
  compras03:~# su compras
  compras@compras03:/root$ xauth add compras03/unix:10  MIT-MAGIC-COOKIE-1  4120ad75e0a2be45464d6aa8217a0d48
  compras@compras03:/root$ xsane

Isso pode ser bem útil no dia a dia. ;)

Islan Rocha é bacharel em Ciência da Computação, pós-graduando em Administração de Redes Linux pela Universidade Federal de Lavras. Usuário Linux e disseminador da cultura open source desde 2003.

Veja a relação completa dos artigos de Islan Rocha

Fonte: Dicas-L

Após atualizar o sistema, o GRUB do Linux Mint 10 sumiu e fiquei sem poder acessar o Windows que está em outra partição. Fuçando um pouco no Google encontrei a solução. Apenas dois comandos:

$ sudo os-prober
$ sudo update-grub

Após isso reiniciei o sistema a tudo estava normalizado, com o GRUB de volta e reconhecendo o Windows.

Valeu!

Fonte:

Publicado por Xerxes Lins

Fonte: viva o linux

Pessoal, esta dica é para aqueles que querem instalar o Slackware 13.1 no HP Mini 110 (acredito que outros da mesma família também). Testei o Dreamlinux e o Ubuntu e todos funcionaram de primeira, menos a placa de rede.

Primeiro problema é que não será possível dar boot do DVD do Slackware, pois a inicialização irá travar quando for ativado o udev. O ACPI também dará problema. Para iniciar o DVD, deve ser dado o seguinte comando no boot:

hugesmp.s noudev=yes acpi=off

Depois de inicializado é só proceder com a instalação normal do Slackware. O problema acontece depois quando for dado o boot pelo HD: na inicialização da placa de rede sem fio. O boot irá congelar e aí só desligando o netbook na marra.

O problema é causado pelo modulo ssb que é carregado na inicialização da placa de rede sem fio. Por um motivo qualquer este modulo tem problemas com o kernel do Slackware. A solução é colocar este módulo na blacklist.

Assim sendo, antes de dar o boot, editar o arquivo /etc/modproble.d/blacklist.conf do local onde foi instalado o Slackware. Para isso, dê o boot normal pelo DVD, monte a partição onde foi instalado o Slackware em qualquer local (eu criei uma pasta “sss”) usando o comando “mount” e, com o editor “vi” acrescentar a linha abaixo no arquivo:

blacklist ssb

Pronto. É só dar o boot normal que tudo vai funcionar, menos a placa de rede!

Para que ela funcione corretamente, baixe o driver do link:

Siga as instruções de instalação contidas num arquivo README.txt que tudo vai funcionar!

É isso, pessoal!

Publicado por Ciro Souza

Fonte: viva o linux

Plugin que faz verificação do status do serviço da Nota Fiscal eletrônica 2.00.

O plugin foi escrito em Java e Shell Script, os méritos das classes principais são de www.javac.com.br, apenas fiz pequenas modificações para adaptá-lo ao ambiente.

Irei disponibilizar tanto o código fonte, quanto ele já construído. Devido ao fato de eu ter suprimido algumas mensagens de erro do try do Java, o código fonte é necessário, para que as mensagens sejam exibidas.

O projeto foi construído e escrito no Netbeans. Vale lembrar que para o plugin funcionar, claro, é preciso ter o JRE na máquina.

Também irei anexar o projeto já construído chamado NFeBuildCacerts, que gera os certificados CA para cada link.

Os projetos já construídos e prontos para uso encontram-se no diretório “dist”.

Usei o banco de dados HSQLDB. Para manter as configurações básicas do aplicativo, existe o HSQL Database Manager que é um front-end para manipular a base, porém não entraremos em detalhes, modificaremos a base com editor de texto de sua preferência.

A base encontra-se no diretório “bd”, e o arquivo a ser modificado é o “nfeStatus.script”, nele haverá o cadastro dos links da Sefaz a ser verificado. O caminho completo para os certificados (cacert, e pfx), senhas dos certificados. (No projeto em anexo, existe a base já populada para alguns links).

Vamos iniciar à configuração do plugin.

Primeiro, gere os certificados CA para cada link com o projeto NFeBuildCacerts:

# java -jar NFeBuildCacerts.jar nfe-cacerts-sp nfe.fazenda.sp.gov.br

Onde:

  • NFeBuildCacerts.jar é o projeto construído.
  • NnfeCacerts-sp é o certificado a ser gerado (pode ter qualquer nome, lembre-se que ele deve ser configurado no BD depois).
  • nfe.fazenda.sp.gov.br é o link ao qual deverá ser gerado o certificado.

Ao executar o aplicativo e tudo ocorrer de acordo, será exibido algo parecido com o que segue abaixo:

INFO: | Loading KeyStore nfe-cacerts-sp…
INFO: | Opening connection to nfe.fazenda.sp.gov.br:443…
INFO: | Starting SSL handshake…
INFO: | No errors, certificate is already trusted
INFO: | Server sent 3 certificate(s):
INFO: | Added certificate to keystore ‘nfe-cacerts-sp’ using alias ‘nfe.fazenda.sp.gov.br-0′
INFO: | Added certificate to keystore ‘nfe-cacerts-sp’ using alias ‘nfe.fazenda.sp.gov.br-1′
INFO: | Added certificate to keystore ‘nfe-cacerts-sp’ using alias ‘nfe.fazenda.sp.gov.br-2′
INFO: | Cacerts gerado em: D:\Projetos\Projeto NFE\NFeBuildCacerts\nfe-cacerts- sp

Após gerado o certificado para cada link, atualize o BD. Exemplo:

INSERT INTO WEBSERVICE VALUES(35,’https://nfe.fazenda.sp.gov.br/nfeweb/services/nfestatusservico2.asmx&#8217;,'/usr/local/nagios/li bexec/nfeStatus/certsPFX/meu.pfx’,'senha_pfx’,'/usr/local/nagios/libexec/nfeStatus/cacerts/nfe- cacerts-sp’)

Agora criaremos a estrutura de diretórios no Nagios, ficando assim: “/usr/local/nagios/libexec/nfeStatus”.

Linux: Plugin NFe 2.00 Nagios
  • bd -> Onde encontra-se o Banco de Dados
  • cacerts -> Colocar os certificados gerados com NFeBuildCacerts
  • certsPFX -> Certificados propriamente dito. (.pfx)
  • lib -> Bibliotecas de dependências do aplicativo Java (NFeConsultaStatus.jar).
  • check_status_nfe -> Shell Script que retorna os estados do link para o Nagios, baseado no retorno do NFeConsultaStatus.jar.
  • log4j.properties -> Arquivo de propriedades do log4j (Caso queira ver os logs no shell altere a linha log4j.rootCategory=OFF, S , para, log4j.rootCategory=INFO, S)
  • NFeConsultaStatus.jar -> O aplicativo que construímos.

Após os certificados gerados, o Java instalado na máquina, vamos testar o aplicativo. Dentro do shell script “check_status_nfe” há uma linha que chama o java para executar o aplicativo, assim:

/usr/java/jre1.6.0_24/bin/java -jar /usr/local/nagios/libexec/nfeStatus/NFeConsultaStatus.jar $CODIGO_ESTADO

Troque o “$CODIGO_ESTADO” pelo código cadastrado no BD, lembrando que utilizei os códigos oficiais do IBGE (pode ser encontradas na net com facilidade).

Logo, execute no shell informando um dos códigos que tenha no BD, com o certificados. Exemplo para São Paulo seria:

# /usr/java/jre1.6.0_24/bin/java -jar /usr/local/nagios/libexec/nfeStatus/NFeConsultaStatus.jar 35
Serviço em Operação – Tempo medio: 1

Note a resposta: “Serviço em Operação – Tempo medio: 1″, isso nos diz que esta tudo OK com os certificados, links e, por consequência, o BD está OK também. (confronte o resultado com os semáforos do site da Sefaz versão 2.00).

Detalhe: Devido a falta de padrão na resposta (Operação, operacao), o shell script tem a linhas que tratam a resposta, são as condições if.

O script trata a resposta do aplicativo que criamos e retorna os estados para o Nagios, logo, não esqueça de alterar o script caso mude os retornos do aplicativo no Java.

Se for utilizar os links de homologação é preciso alterar o tipo de ambiente no código Java na linha 67 aproximadamente (<tpAmb>1</tpAmb>), reconstrua o aplicativo.

Altere de:

xml.append(“<?xml version=\”1.0\” encoding=\”UTF-8\”?>”).append(” <consStatServ versao=\”2.00\” xmlns=\”http://www.portalfiscal.inf.br/nfe\”>”).append(” <tpAmb>1</tpAmb>”).append(“<cUF>”).append(codigoDoEstado).append(“</cUF>”) .append(” <xServ>STATUS</xServ>”).append(“</consStatServ>”);

Para:

xml.append(“<?xml version=\”1.0\” encoding=\”UTF-8\”?>”).append(” <consStatServ versao=\”2.00\” xmlns=\”http://www.portalfiscal.inf.br/nfe\”>”).append(” <tpAmb>2</tpAmb>”).append(“<cUF>”).append(codigoDoEstado).append(“</cUF>”) .append(” <xServ>STATUS</xServ>”).append(“</consStatServ>”);

Agora vamos configurar o Nagios. Adicione no nagios.cfg:

# Sefaz
cfg_file=/usr/local/nagios/etc/objects/sefazgroups.cfg
cfg_file=/usr/local/nagios/etc/objects/linksSefaz.cfg

Crie linksSefaz.cfg.

#Defina um host
define host{
use         linux- server               ;
host_name   Links SEFAZ
alias       Links SEFAZ
address     127.0.0.1
}# SP – https://nfe.fazenda.sp.gov.br/nfeweb/services/nfestatusservico2.asmx
define service{
use              &n bsp;    generic-nfe
host_name             Links SEFAZ
service_description   NFe 35 – SP
check_command         check_nfe_status!35
contact_groups        admins,programadores
servicegroups         links_sefaz
}

Crie sefazgroups.cfg:

define servicegroup{
servicegroup_name   links_sefaz
alias              & nbsp;  Servicos SEFAZ
}

No commands.cfg:

# ‘check_nfe_status’ command definition
define command{
command_name   check_nfe_status
command_line   /usr/local/nagios/libexec/nfeStatus/check_status_nfe $ARG1$
}

No templates.cfg:

define service{
name                       ;       generic-nfe
active_checks_enabled   &nb sp;       1
passive_checks_enabled   &n bsp;      1
parallelize_check    &n bsp;          1
obsess_over_service     ;         1
check_freshness    &n bsp;            0
notifications_enabled     ;       1
event_handler_enabled   &nb sp;       1
flap_detection_enabled   &nb sp;      1
failure_prediction_enabled       1
process_perf_data    & nbsp;          1
retain_status_information   & nbsp;   1
retain_nonstatus_information  &nbs p; 1
is_volatile     &n bsp;               0
check_period                      ;24×7
max_check_attempts   &nbs p;          5
normal_check_interval   &nb sp;       5
retry_check_interval     ;        2
contact_groups    &nbs p;             admins
notification_options             w,u,c,r
notification_interval            8
notification_period    & nbsp;        24×7
register     &nbs p;              &nb sp;   0
}

Neste ponto devemos estar com tudo funcionando.

Linux: Plugin NFe 2.00 Nagios

Reinicie o Nagios e aguarde a tarefa de checagem ser executada. Lembre-se: sempre verifique as permissões dos arquivos. Caso queira ver as mensagens que suprimi (Exceções), altere as linhas 104 e 105:

( System.out.println(“Time out”);

para:

System.out.println(ex));

Assumi que qualquer coisa diferente de OK, é problema para nós, então suprimi as mensagens de erro.

Os arquivos:

  • NFe_Consulta Status.zip -> Projeto Netbeans completo, com fonte e já construido (Dir. dist), aplicativo que verifica o status do serviço.
  • nfeStatus.zip -> Projeto já construido com estrutura de diretório pronta para adicionar ao Nagios aplicativo que verifica o status do serviço.
  • NFeBuildCacerts.z ip -> Projeto Netbeans completo, com fonte e já construido (Dir. dist), aplicativo que gera o certificados.

Não retiro o mérito dos autores, que toda base para projeto foi conseguida através da comunidade:

Apenas ajustei e adicionei algumas funções.

Sintam-se a vontade para opinar, alterar, sugerir e distribuir o conteúdo desta dica.

Espero que seja útil. Qualquer dúvida, sugestão… Só comentar, que na medida do tempo disponível vou respondendo.

Publicado por Rogério Tomassoni

Fonte: viva o linux