vchkpw2userdb.in
上传用户:s81996212
上传日期:2007-01-04
资源大小:722k
文件大小:2k
- #! @PERL@
- #
- # Convert vchkpw to userdb format.
- #
- # $Id: vchkpw2userdb.in,v 1.4 2000/02/16 01:12:13 mrsam Exp $
- #
- # Copyright 1998 - 1999 Double Precision, Inc. See COPYING for
- # distribution information.
- use Getopt::Long;
- die "Invalid options.n" unless
- GetOptions("vpopmailhome=s" => $vpopmailhome,
- "todir=s" => $todir);
- if ( ! ( $vpopmailhome =~ /./ ))
- {
- (undef, undef, undef, undef, undef, undef, undef, $vpopmailhome)
- = getpwnam("vpopmail");
- die "Cannot find vpopmail home.n" unless $vpopmailhome =~ /./;
- }
- -d "$vpopmailhome" || die "$vpopmailhome: not found.n";
- if ( $todir =~ /./ )
- {
- -d "$todir" || mkdir($todir, 0700) || die "$!n";
- }
- $bindir=$0;
- if ($bindir =~ /^(.*)/[^/]*$/ )
- {
- $bindir=$1;
- }
- else
- {
- $bindir=".";
- }
- die "Unable to locate pw2userdb.n" unless -f "$bindir/pw2userdb";
- $redir="";
- if ( $todir =~ /./ )
- {
- $redir=">$todir/users-vpasswd";
- -d "$todir/domains" || mkdir("$todir/domains", 0700) || die "$!n";
- }
- if ( -f "$vpopmailhome/users/vpasswd")
- {
- $rc=system ("$bindir/pw2userdb --vpopuid --passwd='$vpopmailhome/users/vpasswd' --noshadow --nouid $redir");
- exit $rc / 256 if $rc;
- }
- if ( opendir(DIR, "$vpopmailhome/domains"))
- {
- while ($domain=readdir(DIR))
- {
- $domainopt="--domain='$domain'";
- $domainopt="" if $domain eq "default";
- next if $domain eq "." || $domain eq "..";
- next unless -f "$vpopmailhome/domains/$domain/vpasswd";
- $redir="";
- if ( $todir =~ /./ )
- {
- $redir=">$todir/domains/$domain";
- $redir=">$todir/users-default"
- if $domain eq "default";
- }
- $rc=system ("$bindir/pw2userdb --passwd='$vpopmailhome/domains/$domain/vpasswd' --vpopuid --noshadow --nouid $domainopt $redir");
- exit $rc / 256 if $rc != 0;
- }
- close(DIR);
- }