A montagem automática não está funcionando corretamente para compartilhamentos CIFS; resultados estranhos [fechados]

5

Eu segui o guia nesta página para obter compartilhamentos de samba trabalhando via autofs:

link

Servidores e configuração

Meu servidor Samba (remoto) está em um servidor chamado "mattserver" (esse é o nome do servidor Windows). Tem quatro compartilhamentos, chamados "backup", "matt", "print" e "web". O cliente Samba (local) é chamado de "pássaro".

Minha configuração é muito parecida com os exemplos do tutorial mencionado acima, exceto por algumas diferenças:

  • /cifs /etc/auto.cifs --ghost em vez de /cifs /etc/auto.cifs --timeout=60 in /etc/auto.master
  • uid=1000,gid=1000 em vez de uid=user,gid=users in /etc/auto.cifs

Aqui está o meu /etc/auto.master :

matt@bird:~ $ cat /etc/auto.master
/cifs /etc/auto.cifs --ghost

Aqui está o meu /etc/auto.cifs :

matt@bird:~ $ cat /etc/auto.cifs
#!/bin/bash
key="$1"
credfile="/etc/auto.smb.$key"
mountopts="-fstype=cifs,file_mode=0644,dir_mode=0755,uid=1000,gid=1000"
smbclientopts=""
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
    mountopts=$mountopts",credentials=$credfile"
    smbclientopts="-A "$credfile
else
    smbclientopts="-N"
fi
$SMBCLIENT $smbclientopts -gL $key 2>/dev/null \
    | awk -v key="$key" -v opts="$mountopts" -F'|' -- '
        BEGIN   { ORS=""; first=1 }
        /Disk/  { if (first) { print opts; first=0 };
        gsub(/ /, "\ ", $2);
        sub(/\$/, "\$", $2);
        print " \\n\t /" $2, "://" key "/" $2 }
        END     { if (!first) print "\n"; else exit 1 }
        '

Então, aqui está o que recebo quando chamo /etc/auto.cifs diretamente:

matt@bird:~ $ sudo bash /etc/auto.cifs mattserver
-fstype=cifs,file_mode=0644,dir_mode=0755,uid=1000,gid=1000,credentials=/etc/auto.smb.mattserver \
            /print\$ ://mattserver/print\$ \
            /matt ://mattserver/matt \
            /web ://mattserver/web \
            /backup ://mattserver/backup

Até agora, tudo bem, eu acho.

Teste

Quando tento acessar o diretório /cifs , devo obter um diretório chamado mattserver , certo? Eu coloquei a opção --ghost lá. Eu não entendo nada:

matt@bird:~ $ ls -l /cifs
total 0

Quando eu acesso o diretório do servidor, obtenho uma lista de compartilhamentos, mas está errado:

matt@bird:~ $ ls -l /cifs/mattserver
ls: cannot access /cifs/mattserver/web: No such file or directory
ls: cannot access /cifs/mattserver/print$: No such file or directory
ls: cannot access /cifs/mattserver/matt: No such file or directory
ls: cannot access /cifs/mattserver/backup: No such file or directory
total 0
d????????? ? ? ? ?                ? backup
d????????? ? ? ? ?                ? matt
d????????? ? ? ? ?                ? print$
d????????? ? ? ? ?                ? web

Quando tento acessar um compartilhamento real, não recebo nada:

matt@bird:~ $ ls -l /cifs/mattserver/web
ls: cannot access /cifs/mattserver/web: No such file or directory

Como teste, adicionei uma linha a /etc/hosts para mattserver .

Ainda sem fantasmas:

matt@bird:~ $ ls -l /cifs
total 0

Quando tento acessar o diretório do servidor novamente, não consigo mais obter uma lista de compartilhamentos:

matt@bird:~ $ ls -l /cifs/mattserver
ls: cannot access /cifs/mattserver: No such file or directory

Mas quando eu acesso um compartilhamento real, obtenho acesso total:

matt@bird:~ $ ls -l /cifs/mattserver/web
[correct listing of files -- removed]

Eu deveria poder confiar na transmissão e eu não deveria precisar de nada em / etc / hosts (certo?). A transmissão está funcionando:

matt@bird:~ $ nmblookup mattserver
querying mattserver on 192.168.0.255
192.168.0.2 mattserver<00>

Problemas

  • Quando tento acessar uma lista de servidores chamando ls -l /cifs , não recebo nada.
  • Quando tento acessar uma lista de compartilhamentos chamando ls -l /cifs/mattserver , recebo uma lista de erros (veja acima).
  • Não consigo montar um compartilhamento sem adicionar uma entrada para o nome do servidor a /etc/hosts . Eu não quero depender de uma entrada kludgy em /etc/hosts .

Quais são minhas opções aqui?

    
por Matt Alexander 05.08.2011 / 06:30

0 respostas