Quoting Volker Lendecke ([EMAIL PROTECTED]):
> On Tue, Feb 19, 2008 at 07:00:36AM +0100, Christian Perrier wrote:
> > In short, we (Ubuntu and Debian maintainers) are dropping support for
> > smbfs. This code caused many regressions in recent security fixes as
> > it is essntially unmaintained in the samba code.
> 
> To make it even clearer -- would anybody mind if we removed
> the smbfs helpers from Samba 3.2?


Maybe provide a wrapper script as mount.smbfs ?

Steve Langasek wrote one when we (Debian dudes) decided to drop
support from smbfs recently.

At least considering to distribute it (or a derived work) as part of
the samba distribution could help samba users to switch from smbfs to
cifs?


#!/bin/bash
# Debian mount.smbfs compatibility wrapper
# Copyright 2007, Steve Langasek <[EMAIL PROTECTED]>
# Licensed under the GNU General Public License, version 2.  See the
# file /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>.

# This script accepts all documented mount options for mount.smbfs,
# passing through those that are also recognized by mount.cifs,
# converting those that are not recognized but map to available cifs
# options, and warning about the use of options for which no equivalent
# exists.

# known bugs: quoted spaces in arguments are not passed intact

set -e

# reverse the order of username and password in a "username" parameter,
# taking care to leave any "%password" bit intact

reverse_username_workgroup() {
        local workgroup password username

        username="$1"
        case "$username" in
        *%*)    password="${username#*%}"
                username="${username%%%*}"
                ;;
        *) ;;
        esac
        case "$username" in
        */*)    workgroup="${username#*/}"
                username="${username%%/*}"
                ;;
        *) ;;
        esac
        if [ -n "$workgroup" ]; then
                username="$workgroup\\$username"
        fi
        if [ -n "$password" ]; then
                username="$username%$password"
        fi
        echo "$username"
}


# parse out the mount options that have been specified using -o, and if
# necessary, convert them for use by mount.cifs

parse_mount_options () {
        local OLD_IFS IFS options option username
        OLD_IFS="$IFS"
        IFS=","
        options=""
        workgroup=""
        password=""

        for option in $@; do
                case "$option" in
                sockopt=* | scope=* | codepage=* | ttl=* | debug=*)
                        echo "Warning: ignoring deprecated smbfs option 
'$option'" >&2
                        ;;

                krb)
                        options="$options${options:+,}sec=krb5"
                        ;;

                guest)
                        echo "Warning: mapping 'guest' to 'guest,sec=none'" >&2
                        options="$options${options:+,}guest,sec=none"
                        ;;

                # username and workgroup are reversed in username= arguments,
                # so need to be parsed out
                username=*/*)
                        IFS="$OLD_IFS"
                        username="${option#username=}"
                        username="$(reverse_username_workgroup "$username")"
                        IFS=","
                        options="$options${options:+,}username=$username"
                        ;;

                *)
                        options="$options${options:+,}$option"
                        ;;
                esac
        done
        IFS="$OLD_IFS"
        echo $options
}

args=()
while [ "$#" -gt 0 ]; do
        case "$1" in
        -o*)
                arg=${1#-o}
                shift
                if [ -z "$arg" ]; then
                        arg=$1
                        shift
                fi
                arg="$(parse_mount_options "$arg")"
                if [ -n "$arg" ]; then
                        args=("[EMAIL PROTECTED]" "-o" "$arg")
                fi
                ;;
        *)
                args=("[EMAIL PROTECTED]" "$1")
                shift
                ;;
        esac
done

USER="$(reverse_username_workgroup "$USER")"

exec /sbin/mount.cifs "[EMAIL PROTECTED]"
-- 
To unsubscribe from this list go to the following URL and read the
instructions:  https://lists.samba.org/mailman/listinfo/samba

Reply via email to