From owner-FreeBSD-users-jp@jp.freebsd.org  Mon Nov 17 16:49:27 1997
Received: by jaz.jp.freebsd.org (8.8.8+2.7Wbeta7/8.7.3) id QAA25079
	Mon, 17 Nov 1997 16:49:27 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.8+2.7Wbeta7/8.7.3) with ESMTP id QAA25072
	for <FreeBSD-users-jp@jp.freebsd.org>; Mon, 17 Nov 1997 16:49:23 +0900 (JST)
Received: from mailsv.nec.co.jp ([133.200.254.203])
	by TYO9.gate.nec.co.jp (8.8.7+2.7Wbeta6/3.6Wbeta697082713) with ESMTP id QAA23334
	for <FreeBSD-users-jp@jp.freebsd.org>; Mon, 17 Nov 1997 16:49:20 +0900 (JST)
Received: from cadup.com1.fc.nec.co.jp (cadup.cad.com1.fc.nec.co.jp [133.203.27.1]) by mailsv.nec.co.jp (8.8.7+2.7Wbeta6/3.6Wbeta6-97092610) with ESMTP
	id QAA00253 for <FreeBSD-users-jp@jp.freebsd.org>; Mon, 17 Nov 1997 16:49:19 +0900 (JST)
Received: from solar02.pes.com1.fc.nec.co.jp (solar02.pes.com1.fc.nec.co.jp [133.203.30.210]) by cadup.com1.fc.nec.co.jp (8.8.7+2.7Wbeta7/3.4W4970520-115018) with ESMTP id QAA19925 for <FreeBSD-users-jp@jp.freebsd.org>; Mon, 17 Nov 1997 16:48:13 +0900 (JST)
Received: from nadia.pes.com1.fc.nec.co.jp by solar02.pes.com1.fc.nec.co.jp (8.8.4+2.7Wbeta4/6.4JAIN-solar02-pes-MX01)
	id HAA02759; Mon, 17 Nov 1997 07:48:24 GMT
Received: by nadia.pes.com1.fc.nec.co.jp (5.67+1.6W/6.4J.6-pes-4.2)
	id AA03138; Mon, 17 Nov 97 16:49:23 JST
From: oota toshiya <oota@pes.com1.fc.nec.co.jp>
Message-Id: <9711170749.AA03138@nadia.pes.com1.fc.nec.co.jp>
To: FreeBSD-users-jp@jp.freebsd.org
Date: Mon, 17 Nov 1997 16:49:23 +0900 (JST)
X-Mailer: ELM [version 2.4(JP v0.40) PL25]
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=20]
X-Sequence: FreeBSD-users-jp 20806
Subject: [FreeBSD-users-jp 20806] FML remote admin command patch
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org

FreeBSD$B$G(B FML $B$N(B remote admin $B$,I8=`$G$OF0:n$7$J$$$N$G$9$,!"(B

libcrypt.pl $B$r%O%C%/$7!"(BFreeBSD $BI8=`$N(B MD5 $B=hM}%k!<%A%s$rAH$_9~$`(B

$B$H$$$&J}K!$G2r7h$7$^$7$?$N$G>R2p$7$^$9!#(B

FreeBSD $B$G(B remote admin $B7O%3%^%s%I$,F0:n$7$J$$$N$O!"(Bcrypt() $B$,(B
des$B$NJ*$HHs8_49$J$?$a$G$9!#(Bdes$B$N>l9g$K$O0E9f2=$5$l$?%Q%9%o!<%I$N(B
$B@hF,(B2$B%P%$%H$,(B seed $B$K$J$j$^$9$,!"(BFreeBSD $B$N(BMD5 $B$N>l9g$K$O(B 

$1$ $B$,@hF,$KIU$-!"$=$N8e(B$$B$,Mh$k4V(B

$B$^$G$,(B seed $B$K$J$j$^$9!#$G!"4{B8$N(B libcrypt.pl $B$G$O(B seed $B$,(B2$B%P%$%H(B
$B$H;W$C$F$$$k$?$a$K!"0E9f2=$5$l$?%Q%9%o!<%I$+$i(B seed $B$rH4$-=P$9=j$G(B
$B$*$+$7$/$J$C$F$7$^$&$N$G$9!#(B

$B2<5-$,%Q%C%A$G$9!#$3$N%Q%C%A$r$"$F$l$P(B MD5 $B%k!<%A%s$rAH$_9~$^$J$/$F$b(B
FreeBSD$B$G$=$N$^$^(BFML$B$,MxMQ$G$-$k$h$&$K$J$j$^$9!#(B

diff$B$O(B snapshot3$B$+$i$NJ*$G$9$,!":G?7HG$N(B snapshot15$B$G$bBg>fIW(B
($B%=!<%9$NJQ99$,$J$$$N$G(B)$B$G$9!#(B


*** /prj3/local/fml2/fml-2.1A-snapshot3/src/libcrypt.pl	Sun Aug 17 02:30:26 1997
--- libcrypt.pl	Mon Nov 17 16:23:21 1997
***************
*** 63,69 ****
  	&Log("MD5::Fail, so MD5 -> crypt(3)");
      }
  
!     &Log("HasCrypt: $HasCrypt") if $debug;
  
      # if not have crypt();
      return $passwd unless $HasCrypt;
--- 63,69 ----
  	&Log("MD5::Fail, so MD5 -> crypt(3)");
      }
  
!     &Log("HasCrypt: $HasCrypt $passwd $salt") if $debug;
  
      # if not have crypt();
      return $passwd unless $HasCrypt;
***************
*** 70,76 ****
  
      # if DES function is not given
      srand(time|$$);
!     $salt = $salt || rand(64);
  
      # crypt
      crypt($passwd, $salt);
--- 70,78 ----
  
      # if DES function is not given
      srand(time|$$);
!     if (&GetOSType ne "FREEBSD") {
! 	$salt = $salt || rand(64);
!     }
  
      # crypt
      crypt($passwd, $salt);
***************
*** 85,98 ****
  
      &Log("CmpPasswd: $c eq crypt($p)") if $debug;
  
!     ($c =~ /^(\S\S)/) && ($p = &Crypt($p, $1));
! 
      &Log("CmpPasswd: $c eq $p") if $debug;
  
      ($c eq $p) ? 1: 0;
  }
  
- 
  # in password file $file
  # check '$passwd' for '$from' address
  # return the retult
--- 87,109 ----
  
      &Log("CmpPasswd: $c eq crypt($p)") if $debug;
  
!     if( &GetOSType eq "FREEBSD") {
! 	local($seed);
! 	$c =~ /^(\S\S)/;
! 	if( substr($c,0,3) eq "\$1\$" ) {	# using MD5 crypt
! 	    $seed = substr($c,3,index($c,"\$",3)-3);
! 	} else {
! 	    $seed = substr($c,0,2);		# using DES crypt
! 	}
! 	$p = &Crypt($p, $seed);
!     } else {
! 	($c =~ /^(\S\S)/) && ($p = &Crypt($p, $1));
!     }
      &Log("CmpPasswd: $c eq $p") if $debug;
  
      ($c eq $p) ? 1: 0;
  }
  
  # in password file $file
  # check '$passwd' for '$from' address
  # return the retult
***************
*** 189,193 ****
--- 200,219 ----
  	return 0;
      }
  }
+ 
+ sub GetOSType {
+ 
+     local($eval,$pwd);
+ 
+     if( -f "/usr/bin/uname") {
+ 	$eval = qq#\$OS_TYPE = `uname`;#;
+     	eval($eval);
+     }
+     chop $OS_TYPE;
+     $OS_TYPE =~ tr/a-z/A-Z/;
+     &Log ("OS_TYPE= $OS_TYPE");
+     return $OS_TYPE;
+ }
+ 
  
  1;



----
NEC $BBh0l%3%s%T%e!<%?;v6HK\It(B $B%3%s%T%e!<%?;v6HIt(B $B5;=Q4IM}It(B   $BB@ED(B $B=S:H(B
$BI\Cf;T(B $BEl5~ET(B $BF|K\9q(B $BCO5e(B $BB@M[7O(B
