dbmmanage revision bfa0550c70764e386d678a6f2db3d81f23e9b4aa
# ====================================================================
# Copyright (c) 1995-1999 The Apache Group. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# distribution.
#
# 3. All advertising materials mentioning features or use of this
# software must display the following acknowledgment:
# "This product includes software developed by the Apache Group
# for use in the Apache HTTP server project (http://www.apache.org/)."
#
# 4. The names "Apache Server" and "Apache Group" must not be used to
# endorse or promote products derived from this software without
# prior written permission. For written permission, please contact
# apache@apache.org.
#
# 5. Products derived from this software may not be called "Apache"
# nor may "Apache" appear in their names without prior written
# permission of the Apache Group.
#
# 6. Redistributions of any form whatsoever must retain the following
# acknowledgment:
# "This product includes software developed by the Apache Group
# for use in the Apache HTTP server project (http://www.apache.org/)."
#
# THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR
# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
# OF THE POSSIBILITY OF SUCH DAMAGE.
# ====================================================================
#
# This software consists of voluntary contributions made by many
# individuals on behalf of the Apache Group and was originally based
# on public domain software written at the National Center for
# Supercomputing Applications, University of Illinois, Urbana-Champaign.
# For more information on the Apache Group and the Apache HTTP server
# project, please see <http://www.apache.org/>.
#for more functionality see the HTTPD::UserAdmin module:
#
# usage: dbmmanage <DBMfile> <command> <user> <password> <groups> <comment>
# -ldb -lndbm -lgdbm -lsdbm
use strict;
use Fcntl;
# if your osname is in $newstyle_salt, then use new style salt (starts with '_' and contains
# four bytes of iteration count and four bytes of salt). Otherwise, just use
# the traditional two-byte salt.
# see the man page on your system to decide if you have a newer crypt() lib.
# The new style crypt() allows up to 20 characters of the password to be
# significant rather than only 8.
#
# Some platforms just can't crypt() for Apache
#
}
# Some platforms won't jump through our favorite hoops
#
}
shift @ARGV;
print STDERR
"Warning: Apache/$^O does not support crypt()ed passwords!\n\n";
}
}
shift @ARGV;
}
shift @ARGV;
print STDERR
"Warning: Apache/$^O does not support plaintext passwords!\n\n";
}
}
shift @ARGV;
}
# remove extension if any
sub usage {
die <<SYNTAX;
Usage: dbmmanage [enc] dbname command [username [pw [group[,group] [comment]]]]
where enc is -d for crypt encryption (default except on Win32, Netware)
-m for MD5 encryption (default on Win32, Netware)
-s for SHA1 encryption
-p for plaintext
command is one of: $cmds
pw of . for update command retains the old password
pw of - (or blank) for update command prompts for the password
groups or comment of . (or blank) for update command retains old values
groups or comment of - for update command clears the existing value
groups or comment of - for add and adduser commands is the empty value
Note that crypt is not accepted by Apache/Win32 or Apache/Netware,
and plaintext is accepted only by Apache/Win32 and Apache/Netware.
SYNTAX
}
my $x;
sub genseed {
my $psf;
}
else {
}
}
}
sub randchar {
}
sub saltpw_crypt {
return $newstyle_salt ?
}
sub cryptpw_crypt {
}
sub saltpw_md5 {
}
sub cryptpw_md5 {
}
sub cryptpw_sha1 {
}
sub cryptpw {
}
@_[0]; # otherwise return plaintext
}
sub getpass {
}
$pwd .= $c;
}
return $pwd;
}
$crypted_pwd = (split /:/, $DB{$key}, 3)[0] if $crypted_pwd eq '.';
if (!$crypted_pwd || $crypted_pwd eq '-') {
dbmc->adduser;
}
else {
dbmc->add;
}
}
sub dbmc::add {
unless($is_update) {
}
$DB{$key} = $crypted_pwd;
}
sub dbmc::adduser {
$crypted_pwd = cryptpw $value;
dbmc->add;
}
sub dbmc::delete {
}
sub dbmc::view {
}
sub dbmc::check {
} else {
}
? " password ok\n" : " password mismatch\n");
}
}
}