Acessando um servidor Novel Netware a partir do Ubuntu

Muitas instituições ainda utilizam o Novel Netware e embora o cliente padrão seja desenvolvido para plataforma Windows, nós podemos acessar os serviços deste servidor sem muitos  problemas pelo Linux usando a biblioteca libncp e o conjunto de ferramentas do pacote ncpfs.

Algum tempo atrás eu havia conseguido a proeza de conectar ao meu servidor Netware 6.5 sem problemas seguindo um tutorial que achei na Internet (infelizmente não tenho mais o arquivo). Na época criei um script para facilitar a vida (disponível abaixo) e que permite fazer o login e o logoff no NDS, bem como acessar todos os volumes disponíveis no servidor a qual o usuário tenha permissão de acesso, mas depois de algumas atualizações no meu sistema não conseguia mais realizar a façanha.

O bug

O problema em questão impedia logar no servidor e sempre retornava a mensagem de erro abaixo:

wbraga@info1054:~$ netwarelogin.sh
ndslib.c:1051: Invalid start: 1835008 00010000 00010000 00100006
ncpmount: Resposta do servidor inválida (-330) no login no nds
Login negado.
wbraga@info1054:~$

Pesquisei bastante até cansar, mas como todo brasileiro eu não desisto nunca e por isso voltei a pesquisar sobre o assunto. Depois de alguns minutos “conversando” com o Google eu encontrei no Launchpad uma thread que culpava a última versão do pacote ncpfs no repositório do Ubuntu por isso. O bug #328020[1] está em aberto até hoje mas há um meio paleativo para resolver o problema e que consiste em remover o pacote do ncpfs atual e instalar uma versão mais antiga que funciona.

Resolvendo

De forma direta o procedimento é o seguinte:

sudo aptitude install ncpfs
sudo apt-get remove ncpfs
wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncpfs/ncpfs_2.2.6-4ubuntu3_i386.deb
sudo dpkg -i ncpfs_2.2.6-4ubuntu3_i386.deb

Veja que para remover o pacote eu usei o comando apt-get ao invés do aptitude, isso se faz necessário pois o aptitude remove as dependências que não estão mais em uso e o resultado seria a necessidade de reinstalação dos pacotes libpam-ncp e libncp que na verdade continuarão sendo exigidas pelo pacote de versão antiga instalado pelos comandos seguintes.

Logando

O procedimento de login é basicamente este:

/usr/bin/ncpmount -A IPSERVIDOR -U USUARIONETWARE -u USUARIOLINUX -g GRUPOLINUX -S NOMESERVIDOR PONTOMONTAGEM-P SENHANETWARE

  • IPSERVIDOR é o endereço IP do seu servidor Netware, ou se preferir o nome registrado no DNS
  • USUARIONETWARE é o nome do usuário com o seu contexto.
  • USUARIOLINUX é o usuário que você está logado na sua estação – ele será o dono dos arquivos neste compartilhamento
  • GRUPOLINUX é o grupo do seu usuário Linux e que esrá o grupo padrão para todos os arquivos do compartilhamento
  • NOMESERVIDOR é o nome do seu servidor na árvore do NDS
  • PONTOMONTAGEM é um diretório qualquer e vazio no seu home onrde o compartilhamento será montado
  • SENHANETWARE é a sua senha no servidor Netware.

Ex:

/usr/bin/ncpmount -A 10.2.1.3 -U welrbraga.gestao.jbrj -u wbraga -g wbraga -S FSJBRJ /home/wbraga/netware -P minhasenha

Facilitando

Seguindo a idéia de que se é difícil é preciso facilitar, eu criei um pequeno e estúpido  shellscript que chama aquela linha de comandos toda com requintes de criar um ponto de montagem, solicitar a senha em modo gráfico, chamar o gerenciador de arqiuvos após a montagem etc etc.

O script completo que usa basicamente o ncpmount para acessar o servidor e o zenity para interagir com o usuário é bem simples e pode ser livremente alterado como queira, mas não dou qualquer garantia de que ele funcione no seu sistema – já que não entendo “patavinas” de Novel.

#!/bin/bash
#
#Realiza o login / logout no servidor Netware
#
#Necessita dos pacotes ncpfs e zenity instalados no sistema.
#
#O pacote ncpfs do Ubuntu 9.04 e 8.10 (ncpfs 2.2.6-6 está bugado)
#a solucao e'descrita em https://bugs.launchpad.net/ubuntu/+source/ncpfs/+bug/328020/comments/10
#
#Simplificando
# sudo  aptitude install ncpfs
# sudo apt-get remove ncpfs
# wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncpfs/ncpfs_2.2.6-4ubuntu3_i386.deb
# dpkg -i ncpfs_2.2.6-4ubuntu3_i386.deb
#
# WBRAGA - 18-03-2009
#
LOGIN_NETWARE="wbraga.login.jbrj"
SERVER_NETWARE="FSJBRJ"
SERVER_NAME="info.jbrj.gov.br"
USUARIO="${USER}"
GRUPO="${USER}"
MOUNTPOINT="${HOME}/netware"
#
mkdir -p ${MOUNTPOINT}
NCONEXOES=$(ls -1 ${MOUNTPOINT}|wc -l)
#
acao="DESMONTAR"
if [ "${NCONEXOES}" == "0" ]; then
    acao="MONTAR"
fi
#
if [ "${acao}" == "MONTAR" ]; then
	SENHA=$(zenity --entry --text "Informe a senha do Netware" --hide-text)
	/usr/bin/ncpmount -A ${SERVER_NAME} -U ${LOGIN_NETWARE} -u ${USUARIO} -g ${GRUPO} -S ${SERVER_NETWARE} ${MOUNTPOINT} -P ${SENHA} && nautilus --no-desktop ${MOUNTPOINT}
else
	zenity --question --text "Voce ja esta conectado ao servidor\nDesconectar do servidor Netware?" --title "Desconectar" --ok-label="Sim, imediatamente" --cancel-label="Ainda não" && /usr/bin/ncpumount ${MOUNTPOINT}
fi

Obs: A droga do WordPress costuma alterar as aspas comuns por um caracter mais bonitinho e que não funciona, então certifique-se de substituir pelas aspas corretas antes de usar o script. Se preferir baixe o arquivo a partir daqui.

Também não esqueça de dar permissões de execução para este script. Feito isso basta executa-lo pela linha de comandos ou então criar um atalho na sua área de trabalho.

Da forma como está, ele deve ser executado a partir do home do usuário, já que não previ o seu uso por vários usuários na mesma estação, de forma que o login e o contexto do usuário auteticado estão no próprio arquivo do script ao invés de um arquivo de configuração a parte e pessoal. Isso pode até ser feito, mas não tive interesse em fazê-lo, então a critério de sua criatividade. Estudando um pouco dos parâmetros do ncpmount e o restante do conteúdo do pacote você verá que é possível até autenticar a sua estação Linux no NDS, assim como se faz com o LDAP, mas não vou me arriscar nesse assunto, pois como já disse o Netware não deverá viver muitos anos, pelo menos não por aqui.

Referências

[1] – Bug #328020 no pacote ncpfs – https://bugs.launchpad.net/ubuntu/+source/ncpfs/+bug/328020

One thought on “Acessando um servidor Novel Netware a partir do Ubuntu”

  1. Pingback: Welington via Rec6

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *