Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Nov 1996 16:29:46 -0700
From:      Dave Andersen <angio@aros.net>
To:        Michael Slater <slaterm@tnet.com.au>
Cc:        freebsd-isp@freebsd.org
Subject:   Re: Converting linux shadow passwords 
Message-ID:  <199611112329.QAA01390@fluffy.aros.net>
In-Reply-To: Your message of "Mon, 11 Nov 1996 09:56:09 %2B0800." <Pine.LNX.3.91.961111095358.32124A-100000@access.tnet.com.au> 

next in thread | previous in thread | raw e-mail | index | archive | help

>       I am in the process of switching from Linux to FreeBSD, and am 
> wondering if their is a method of Converting the Linux password/shadow
> file into a FreeBSD password file, other than manually re-entering every
> user ?

   You have to be set up using DES passwords on your FreeBSD system.
There's a FAQ entry that tells you how to do this, I believe.

   Once you've done that, use a script like this, which will print out
the freebsd-style master.passwd file.  Don't forget to run pwd_mkdb
afterwords.



#!/bin/perl
# Copyright 1996 David G. Andersen.  All rights reserved.  No warranty
# is expressed or implied for the fitness of this program for any purpose.
$shadow = "/etc/shadow";
$passwd = "/etc/passwd";
$output = "npasswd";

umask 077;

open(SHADOW, $shadow) || die "Could not open shadow file\n";
while (<SHADOW>) {
        ($name, $enc) = split(/:/);
        $PASS{$name} = $enc;
}

close(SHADOW);

open(PASSWD, $passwd) || die "Could not open passwd file\n";
open(OUT, ">$output") || die "Could not open output file\n";

while (<PASSWD>) {
        chop;
        ($uname, $blah, $uid, $gid, $gecos, $homedir, $shell) = split(/:/);
        printf(OUT "%s:%s:%d:%d::0:0:%s:%s:%s\n",
                $uname, $PASS{$uname}, $uid, $gid, $gecos, $homedir, $shell);
}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611112329.QAA01390>