Montagem sob demanda um Compartilhamento do Ruindows

Iniciado por Lex Luthor, 24 de Abril de 2007, 16:58

tópico anterior - próximo tópico

Lex Luthor

Pessoal,

    Estou penando aqui para fazer funcionar. Tenho um servidor de arquivos Ruindows com um compartilhamento.
    Esse servidor precisa de autenticação para entrar, e não tenho o nome NETBIOS dele, somente o IP.
    Consigo montar manualmente utilizando o comando:

# mount.cifs //10.0.0.1/Compartilhamento$ /mnt/compartilhamento -o fstype=cifs,file_mode=0644,dir_mode=0755,credentials=/etc/auto.smb.credencial


   Eu quero usar o AutoFS para que o diretório apareça dentro do diretório /mnt/windows e só seja montado quando eu acessar o diretório. Então, instalei o AutoFS e coloquei no auto.master:

/mnt/windows /etc/auto.cifs --ghost

   Criei o /etc/auto.cifs com o script abaixo. Ele pega o IP do servidor e procura as credenciais em um arquivo /etc/auto.smb.IP para se logar no servidor:


#!/bin/bash

key="$1"

opts="-fstype=cifs,file_mode=0644,dir_mode=0755"
smbclientopts=""

credfile="/etc/auto.smb."`echo $key |awk -F \/ '{print $1}'`

for P in /bin /sbin /usr/bin /usr/sbin
do
        if [ -x $P/smbclient ]
        then
                SMBCLIENT=$P/smbclient
                break
        fi
done

[ -x $SMBCLIENT ] || exit 1

if [ -e "$credfile" ]
then
        opts=$opts",credentials=$credfile"
        smbclientopts="-A "$credfile
else
        smbclientopts="-N"
fi

$SMBCLIENT  $smbclientopts -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
        BEGIN   { ORS=""; first=1 }
        /Disk/  { if (first) { print opts; first=0 }; sub(/ /, "\\ ", $2); print " \\\n\t /" $2, "://" key "/" $2 }
        END     { if (!first) print "\n"; else exit 1 }
        '



Pelo que entendi (e modifiquei para tal), este script pega o pedido feito e gera uma linha para a montagem do mount.cifs montar. No entanto, quando dou um ls -al /mnt/windows/compartilhamento, obtenho o seguinte erro no syslog:

Apr 24 17:05:45 localhost kernel: [ 3875.839716]  CIFS VFS: cifs_mount failed w/return code = -6
Apr 24 17:05:45 localhost kernel: [ 3875.841492]  CIFS VFS: cifs_mount failed w/return code = -6
Apr 24 17:05:45 localhost automount[10417]: >> retrying with upper case share name
Apr 24 17:05:45 localhost automount[10417]: >> mount error 6 = No such device or address
Apr 24 17:05:45 localhost automount[10417]: >> Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
Apr 24 17:05:45 localhost automount[10417]: mount(generic): failed to mount //10.0.0.1/Alex/C (type cifs) on /mnt/windows/10.0.0.1/Alex$/C
Apr 24 17:05:45 localhost kernel: [ 3875.847419]  CIFS VFS: cifs_mount failed w/return code = -5
Apr 24 17:05:45 localhost automount[10417]: >> mount error 5 = Input/output error
Apr 24 17:05:45 localhost automount[10417]: >> Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
Apr 24 17:05:45 localhost automount[10417]: mount(generic): failed to mount //10.0.0.1/Alex/f (type cifs) on /mnt/windows/10.0.0.1/Alex$/f


E os erros continuam para cada diretório que ele acha compartilhado.
Me retorna somente os compartilhamentos e não monta o compartilhamento...

Analisando, percebi que o script gera a seguinte linha para o autofs (ao rodar pedir o compartilhamento 10.0.0.1/compartilhamento) :

-fstype=cifs,file_mode=0644,dir_mode=0755,credentials=/etc/auto.smb.compartilhamento \
         /E$ ://10.0.0.1/compartilhamento/E$ \
         /D$ ://10.0.0.1/compartilhamento/D$ \
         /G$ ://10.0.0.1/compartilhamento/G$ \
         /M$ ://10.0.0.1/compartilhamento/M$ \
         /compartilhamento ://10.0.0.1/compartilhamento/compartilhamento \
         /F$ ://10.0.0.1/compartilhamento/F$ \
         /ADMIN$ ://10.0.0.1/compartilhamento/ADMIN$ \
         /C$ ://10.0.0.1/compartilhamento/C$ \


que são todos os diretórios compartilhados no servidor. Isso deve ser passado para o autofs que não sei o que ele está fazendo. para mim deveria passar somente a parte do compartilhamento que pedi... mas porque não funciona colocando somente a linha ?

Já tentei colocar manualmente o auto.cifs como :
servidor         -fstype=cifs,dmask=0700,fmask=0700,credentials=/etc/auto.smb.10.0.0.1 ://10.0.0.1/compartilhamento


E também não funcionou. Assim ele dá um erro de resolução de nomes:
automount[12157]: lookup(program): lookup for 10.0.0.1 failed
Apr 24 17:39:32 localhost automount[12157]: failed to mount /mnt/windows/10.0.0.1




Alguém sabe o que está acontecendo ?????? PLEASE !!!!
Analista de Redes- Segurança da Informação
Bacharel em Ciências da Computação - UnB
Ubuntu Forever - Compiz Fusion -

Lex Luthor

Analista de Redes- Segurança da Informação
Bacharel em Ciências da Computação - UnB
Ubuntu Forever - Compiz Fusion -