X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=support%2Fdbmmanage.in;h=2dd8c8679ba359b32b8d3551caa352e918a717ae;hb=15734940adae6ea9b660a9595ca359c078640bc3;hp=5309253a4243ba1334e65f3b862bdfe34c4e49ef;hpb=742af25096a2a1ee4d38e0e6350a176cfab1146e;p=apache diff --git a/support/dbmmanage.in b/support/dbmmanage.in index 5309253a42..2dd8c8679b 100644 --- a/support/dbmmanage.in +++ b/support/dbmmanage.in @@ -1,57 +1,19 @@ #!@perlbin@ -# ==================================================================== -# The Apache Software License, Version 1.1 # -# Copyright (c) 2000-2003 The Apache Software Foundation. All rights -# reserved. +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at # -# 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 -# the documentation and/or other materials provided with the -# distribution. -# -# 3. The end-user documentation included with the redistribution, -# if any, must include the following acknowledgment: -# "This product includes software developed by the -# Apache Software Foundation (http://www.apache.org/)." -# Alternately, this acknowledgment may appear in the software itself, -# if and wherever such third-party acknowledgments normally appear. -# -# 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written -# permission of the Apache Software Foundation. -# -# THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more -# information on the Apache Software Foundation, please see -# . +# http://www.apache.org/licenses/LICENSE-2.0 # +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. #for more functionality see the HTTPD::UserAdmin module: # http://www.perl.com/CPAN/modules/by-module/HTTPD/HTTPD-Tools-x.xx.tar.gz @@ -91,9 +53,9 @@ sub need_sha1_crypt { print STDERR </dev/null`; + for (qw(-xlwwa -le)) { + `ps $_ 2>/dev/null`; $psf = $_, last unless $?; } srand (time ^ $$ ^ unpack("%L*", `ps $psf | gzip -f`)); @@ -215,14 +177,14 @@ sub genseed { $x = int scalar @range; } -sub randchar { +sub randchar { join '', map $range[rand $x], 1..shift||1; } sub saltpw_crypt { - genseed() unless @range; - return $newstyle_salt ? - join '', "_", randchar, "a..", randchar(4) : + genseed() unless @range; + return $newstyle_salt ? + join '', "_", randchar, "a..", randchar(4) : randchar(2); } @@ -233,7 +195,7 @@ sub cryptpw_crypt { } sub saltpw_md5 { - genseed() unless @range; + genseed() unless @range; randchar(8); } @@ -262,15 +224,15 @@ sub cryptpw { sub getpass { my $prompt = shift || "Enter password:"; - unless($not_unix) { - open STDIN, "/dev/tty" or warn "couldn't open /dev/tty $!\n"; - system "stty -echo;"; + unless($not_unix) { + open STDIN, "/dev/tty" or warn "couldn't open /dev/tty $!\n"; + system "stty -echo;"; } my($c,$pwd); print STDERR $prompt; while (($c = getc(STDIN)) ne '' and $c ne "\n" and $c ne "\r") { - $pwd .= $c; + $pwd .= $c; } system "stty echo" unless $not_unix; @@ -295,7 +257,7 @@ sub dbmc::update { sub dbmc::add { die "Can't use empty password!\n" unless $crypted_pwd; unless($is_update) { - die "Sorry, user `$key' already exists!\n" if $DB{$key}; + die "Sorry, user `$key' already exists!\n" if $DB{$key}; } $groups = '' if $groups eq '-'; $comment = '' if $comment eq '-'; @@ -337,14 +299,14 @@ sub dbmc::check { } else { $crypt_method = "plain"; } - print $crypt_method . (cryptpw($testpass, $chkpass) eq $chkpass + print $crypt_method . (cryptpw($testpass, $chkpass) eq $chkpass ? " password ok\n" : " password mismatch\n"); } sub dbmc::import { while(defined($_ = ) and chomp) { - ($key,$crypted_pwd,$groups,$comment) = split /:/, $_, 4; - dbmc->add; + ($key,$crypted_pwd,$groups,$comment) = split /:/, $_, 4; + dbmc->add; } }