19dbf6437b
Bump PORTREVISION PR: ports/78163 Submitted by: Jose M Rodriguez <josemi@freebsd.jazztel.es>
104 lines
2.3 KiB
Text
104 lines
2.3 KiB
Text
--- userdb/pw2userdb.in.orig Wed Jul 19 13:55:15 2000
|
|
+++ userdb/pw2userdb.in Tue Mar 1 21:58:51 2005
|
|
@@ -7,6 +7,8 @@
|
|
# Copyright 1998 - 1999 Double Precision, Inc. See COPYING for
|
|
# distribution information.
|
|
|
|
+# Adapted to BSD master.passwd
|
|
+
|
|
use Getopt::Long;
|
|
|
|
#
|
|
@@ -22,42 +24,66 @@
|
|
if $vpopuid;
|
|
|
|
$passwd="/etc/passwd" unless $passwd =~ /./;
|
|
-$shadow="/etc/shadow" unless $shadow =~ /./;
|
|
+$shadow="/etc/master.passwd" unless $shadow =~ /./;
|
|
|
|
$domain="" unless $domain =~ /./;
|
|
$domain="\@$domain" if $domain =~ /./;
|
|
|
|
-open(PASSWD, $passwd) || die "$!\n";
|
|
-
|
|
-while (<PASSWD>)
|
|
+if (! $noshadow && $shadow =~ /master.passwd$/)
|
|
{
|
|
- chop if /\n$/;
|
|
- next if /^#/;
|
|
- ($acct,$passwd,$uid,$gid,$name,$home,$shell)=split( /:/ );
|
|
-
|
|
- ($uid,$gid)=($fixed_uid,$fixed_gid) if $vpopuid;
|
|
-
|
|
- $PASSWORD{$acct}=$passwd if $passwd ne "x";
|
|
- $UID{$acct}=$uid;
|
|
- $GID{$acct}=$gid;
|
|
- $HOME{$acct}=$home;
|
|
- $SHELL{$acct}=$shell;
|
|
-
|
|
- $name =~ s/\|/./g; # Just in case
|
|
- $GECOS{$acct}=$name;
|
|
-}
|
|
-close (PASSWD);
|
|
+ open(PASSWD, $shadow) || die "$!\n";
|
|
|
|
-if ( -f $shadow && ! $noshadow)
|
|
-{
|
|
- open (SHADOW, $shadow) || die "$!\n";
|
|
- while (<SHADOW>)
|
|
+ while (<PASSWD>)
|
|
{
|
|
+ chop if /\n$/;
|
|
next if /^#/;
|
|
- ($acct,$passwd,$dummy)=split(/:/);
|
|
+ ($acct,$passwd,$uid,$gid,$class,$change,$expire,$name,$home,$shell)=split( /:/ );
|
|
+
|
|
+ ($uid,$gid)=($fixed_uid,$fixed_gid) if $vpopuid;
|
|
+ $name =~ s/\|/./g; # Just in case
|
|
+
|
|
$PASSWORD{$acct}=$passwd;
|
|
+ $UID{$acct}=$uid;
|
|
+ $GID{$acct}=$gid;
|
|
+ $HOME{$acct}=$home;
|
|
+ $SHELL{$acct}=$shell;
|
|
+ $GECOS{$acct}=$name;
|
|
+ }
|
|
+ close (PASSWD);
|
|
+} else {
|
|
+ open(PASSWD, $passwd) || die "$!\n";
|
|
+
|
|
+ while (<PASSWD>)
|
|
+ {
|
|
+ chop if /\n$/;
|
|
+ next if /^#/;
|
|
+ ($acct,$passwd,$uid,$gid,$name,$home,$shell)=split( /:/ );
|
|
+
|
|
+ ($uid,$gid)=($fixed_uid,$fixed_gid) if $vpopuid;
|
|
+
|
|
+ $PASSWORD{$acct}=$passwd if $passwd ne "x";
|
|
+ $UID{$acct}=$uid;
|
|
+ $GID{$acct}=$gid;
|
|
+ $HOME{$acct}=$home;
|
|
+ $SHELL{$acct}=$shell;
|
|
+
|
|
+ $name =~ s/\|/./g; # Just in case
|
|
+ $GECOS{$acct}=$name;
|
|
+ }
|
|
+ close (PASSWD);
|
|
+
|
|
+ if ( -f $shadow && ! $noshadow)
|
|
+ {
|
|
+ open (SHADOW, $shadow) || die "$!\n";
|
|
+ while (<SHADOW>)
|
|
+ {
|
|
+
|
|
+ next if /^#/;
|
|
+ ($acct,$passwd,$dummy)=split(/:/);
|
|
+ $PASSWORD{$acct}=$passwd;
|
|
+ }
|
|
+ close (SHADOW);
|
|
}
|
|
- close (SHADOW);
|
|
}
|
|
|
|
while ( defined ($key=each %UID))
|