vchkpw2userdb.in
上传用户:s81996212
上传日期:2007-01-04
资源大小:722k
文件大小:2k
源码类别:

WEB邮件程序

开发平台:

C/C++

  1. #! @PERL@
  2. #
  3. #  Convert vchkpw to userdb format.
  4. #
  5. #  $Id: vchkpw2userdb.in,v 1.4 2000/02/16 01:12:13 mrsam Exp $
  6. #
  7. # Copyright 1998 - 1999 Double Precision, Inc.  See COPYING for
  8. # distribution information.
  9. use Getopt::Long;
  10. die "Invalid options.n" unless
  11. GetOptions("vpopmailhome=s" => $vpopmailhome,
  12. "todir=s" => $todir);
  13. if ( ! ( $vpopmailhome =~ /./ ))
  14. {
  15. (undef, undef, undef, undef, undef, undef, undef, $vpopmailhome)
  16. = getpwnam("vpopmail");
  17. die "Cannot find vpopmail home.n" unless $vpopmailhome =~ /./;
  18. }
  19. -d "$vpopmailhome" || die "$vpopmailhome: not found.n";
  20. if ( $todir =~ /./ )
  21. {
  22. -d "$todir" || mkdir($todir, 0700) || die "$!n";
  23. }
  24. $bindir=$0;
  25. if ($bindir =~ /^(.*)/[^/]*$/ )
  26. {
  27. $bindir=$1;
  28. }
  29. else
  30. {
  31. $bindir=".";
  32. }
  33. die "Unable to locate pw2userdb.n" unless -f "$bindir/pw2userdb";
  34. $redir="";
  35. if ( $todir =~ /./ )
  36. {
  37. $redir=">$todir/users-vpasswd";
  38. -d "$todir/domains" || mkdir("$todir/domains", 0700) || die "$!n";
  39. }
  40. if ( -f "$vpopmailhome/users/vpasswd")
  41. {
  42. $rc=system ("$bindir/pw2userdb --vpopuid --passwd='$vpopmailhome/users/vpasswd' --noshadow --nouid $redir");
  43. exit $rc / 256 if $rc;
  44. }
  45. if ( opendir(DIR, "$vpopmailhome/domains"))
  46. {
  47. while ($domain=readdir(DIR))
  48. {
  49. $domainopt="--domain='$domain'";
  50. $domainopt="" if $domain eq "default";
  51. next if $domain eq "." || $domain eq "..";
  52. next unless -f "$vpopmailhome/domains/$domain/vpasswd";
  53. $redir="";
  54. if ( $todir =~ /./ )
  55. {
  56. $redir=">$todir/domains/$domain";
  57. $redir=">$todir/users-default"
  58. if $domain eq "default";
  59. }
  60. $rc=system ("$bindir/pw2userdb --passwd='$vpopmailhome/domains/$domain/vpasswd' --vpopuid --noshadow --nouid $domainopt $redir");
  61. exit $rc / 256 if $rc != 0;
  62. }
  63. close(DIR);
  64. }