CIFS 공유의 자동 마운트가 제대로 작동하지 않습니다. 이상한 결과가 나타납니다.

CIFS 공유의 자동 마운트가 제대로 작동하지 않습니다. 이상한 결과가 나타납니다.

autofs를 통해 삼바 공유를 얻기 위해 이 페이지의 가이드를 따랐습니다.

http://www.howtoforge.com/accessing_windows_or_samba_shares_using_autofs

서버 및 구성

내 Samba 서버(원격)는 "mattserver"(Windows 서버 이름)라는 서버에 있습니다. "백업", "매트", "인쇄" 및 "웹"이라는 4개의 공유가 있습니다. Samba 클라이언트(로컬)의 이름은 "bird"입니다.

내 설정은 위 튜토리얼의 예와 매우 유사하지만 몇 가지 차이점이 있습니다.

  • /cifs /etc/auto.cifs --ghost/cifs /etc/auto.cifs --timeout=60안으로 보다는/etc/auto.master
  • uid=1000,gid=1000uid=user,gid=users안으로 보다는/etc/auto.cifs

이 내 꺼야 /etc/auto.master:

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

이 내 꺼야 /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 }
        '

직접 호출하면 다음과 같은 결과가 나옵니다 /etc/auto.cifs.

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

지금까지는 모든 것이 괜찮다고 생각합니다.

시험

해당 디렉터리에 접근하려고 하면 /cifs이라는 디렉터리가 나타나야 합니다 mattserver. 그렇죠? --ghost옵션을 거기에 두었습니다 . 하지만 나는 아무것도 얻지 못했습니다.

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

서버 디렉토리에 접근하면 공유 목록을 얻지만 엉망이 됩니다.

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

실제 공유에 액세스하려고 하면 아무것도 얻지 못합니다.

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

테스트로 /etc/hostsfor 에 한 줄을 추가했습니다 mattserver.

여전히 고스팅이 없습니다.

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

서버 디렉토리에 다시 액세스하려고 하면 더 이상 공유 목록을 얻을 수 없습니다.

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

하지만 실제 공유에 액세스하면 전체 액세스 권한을 얻게 됩니다.

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

브로드캐스팅에 의존할 수 있어야 하며 /etc/hosts에 아무 것도 포함할 필요가 없습니다(맞죠?). 방송이 진행 중입니다:

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

질문

  • 을(를) 호출하여 서버 목록에 액세스하려고 하면 ls -l /cifs아무것도 얻지 못합니다.
  • call 을 통해 공유 목록에 액세스하려고 하면 ls -l /cifs/mattserver엉망인 목록이 표시됩니다(위 참조).
  • 서버 이름 항목을 추가하지 않으면 공유를 마운트할 수 없습니다 /etc/hosts. 나는 에 의존하고 싶지 않습니다 /etc/hosts.

여기서 내 옵션은 무엇입니까?

관련 정보