Matthew Jurgens wrote:
> 
>> I bet that:
>> mount -t cifs -o username=USER,password=PASS \
>>     '//xp0/C\$' /mnt/C\$
>> fails.
>>
>>   
> Good bet.
> It certainly does fail. The output of mount for that is now:
> 
> //xp0/C/$ on /mnt/C$ type cifs (rw,mand)
> 
> Reading ahead in the thread Jeff says "'\' is a valid character in posix
> path components" which does explain this behaviour
> 
> Do you really need the \ in front of the $ when it is already quoted?
> 
> Reading ahead again I comment out the gsub in /etc/auto.smb which
> changes the output from
> -fstype=cifs,username=USER,password=PASS \
>         /C "://xp0/C" \
>         /ADMIN\$ "://xp0/ADMIN\$" \
>         /C\$ "://xp0/C\$"
> 
> to
> 
> -fstype=cifs,username=USER,password=PASS \
>         /C "://xp0/C" \
>         /ADMIN$ "://xp0/ADMIN$" \
>         /C$ "://xp0/C$"

Of course, it then doesn't escape $ in the offsets.
But, it looks like your script isn't up to date.
I'm fairly sure the current script should output:
 -fstype=cifs,username=USER,password=PASS \
         "/C" "://xp0/C" \
         "/ADMIN$" "://xp0/ADMIN$" \
         "/C$" "://xp0/C$"

which is why I thought we shouldn't need the "\" escapes.
Can you check your auto.smb against the one attached please, in
particular the last line at the bottom of the "/Disk/" block should be:

print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\""

Ian

#!/bin/bash

# $Id: auto.smb,v 1.3 2005/04/05 13:02:09 raven Exp $

# This file must be executable to work! chmod 755!

key="$1"
opts="-fstype=cifs"

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

$SMBCLIENT -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
        BEGIN   { ORS=""; first=1 }
        /Disk/  {
                  if (first)
                        print opts; first=0
                  dir = $2
                  loc = $2
                  # Enclose mount dir and location in quotes
                  # Double quote "$" in location as it is special
                  gsub(/\$$/, "\\$", loc);
                  print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\""
                }
        END     { if (!first) print "\n"; else exit 1 }
        '

_______________________________________________
autofs mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/autofs

Reply via email to