smb_auth.sh
上传用户:liugui
上传日期:2007-01-04
资源大小:822k
文件大小:2k
源码类别:

代理服务器

开发平台:

Unix_Linux

  1. #!/bin/sh
  2. #
  3. # smb_auth - SMB proxy authentication module
  4. # Copyright (C) 1998  Richard Huveneers <richard@hekkihek.hacom.nl>
  5. #
  6. # This program is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 2 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # This program is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. # GNU General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with this program; if not, write to the Free Software
  18. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  19. read SAMBAPREFIX
  20. read DOMAINNAME
  21. read NMBADDR
  22. read NMBCAST
  23. read SMBUSER
  24. read SMBPASS
  25. # Find domain controller
  26. echo "Domain name: $DOMAINNAME"
  27. if [ -n "$NMBADDR" ]
  28. then
  29.   if [ "$NMBCAST" = "1" ]
  30.   then
  31.     addropt="-U $NMBADDR -R"
  32.   else
  33.     addropt="-B $NMBADDR"
  34.   fi
  35. else
  36.   addropt=""
  37. fi
  38. echo "Query address options: $addropt"
  39. dcip=`$SAMBAPREFIX/bin/nmblookup $addropt "$DOMAINNAME#1b" | awk '/^[0-9.]+ / { print $1 ; exit }'`
  40. echo "Domain controller IP address: $dcip"
  41. [ -n "$dcip" ] || exit 1
  42. # All right, we have the IP address of a domain controller,
  43. # but we need its name too
  44. dcname=`$SAMBAPREFIX/bin/nmblookup -A $dcip | awk '$2 == "<00>" { print $1 ; exit }'`
  45. echo "Domain controller NETBIOS name: $dcname"
  46. [ -n "$dcname" ] || exit 1
  47. # Pass password to smbclient through environment. Not really safe.
  48. USER="$SMBUSER%$SMBPASS"
  49. export USER
  50. # Read the contents of the file "proxyauth" on the NETLOGON share
  51. proxyauth=`$SAMBAPREFIX/bin/smbclient //$dcname/NETLOGON -I $dcip -E -W "$DOMAINNAME" -c "get proxyauth -" 2>/dev/null`
  52. echo "Contents of //$dcname/NETLOGON/proxyauth: $proxyauth"
  53. [ "$proxyauth" = "allow" ] || exit 1
  54. exit 0