Final conversion questions

Bob Martin bob at buckhorn.net
Sat Feb 28 22:41:32 PST 2004


Scott,
After you move the directories, use the attached perl script (run as 
root). Use the -r option to scp, and you'll get all files, including . 
files.

Bob Martin



Scott St. John wrote:
> Bob-
> 
> I do not have a NFS connection between the two boxes, I am using scp to 
> transfer files between the Linux and the new FreebSD boxes.  I used John The 
> Ripper to merge my passwd and shadow files and then used some awk scripts 
> from the OpenBSD site to format, then create my new passwd file for BSD.  I 
> am almost sure the UID/GID will NOT be the same since BSD starts at a 
> different # than Linux where my first UID is 1000.
> 
> If you have it, it sounds like the perl script would be the better trick 
> since it would check the passwd file instead of assuming the UID/GID were 
> the same.
> 
> Thanks!
> 
> -Scott
> 
> On Sat, 28 Feb 2004 13:53:12 -0600, Bob Martin wrote
> 
>>Scott,
>>I haven't followed this thread closely enough, but from what you're
>>saying, it sounds like you have a NFS connection between the 2 boxen.
>>That being the case, and since the UID/GID's are the same on both boxen
>>(IIRC you moved the Linux accounts to the BSD box), the following
>>command will get all of the files, and maintain the permissions:
>>
>>cp -pRP /<linux mount point/home/* /home/
>>
>>If the UID/GID's have changed, then this command will fix them for you:
>>(Note, this assumes you use bash as your shell)
>>cd /home
>>for a in `ls -1 /home`;do chown -R $a:users $a;done
>>
>>That command does assume that you have a 1 to 1 relationship between
>>home directories and usernames. If not, let me know and I'll find my
>>little perl script that reads /etc/passwd and sets the permissions.
> 
> 
> _______________________________________________
> freebsd-isp at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-isp
> To unsubscribe, send any mail to "freebsd-isp-unsubscribe at freebsd.org"
-------------- next part --------------
#!/usr/bin/perl
$Home = "/home";

open(PASSWD, '/etc/passwd') or die("Can't open password: $!\n");
while (<PASSWD>) {
        chomp;
        ($login, $passwd, $uid, $gid, $gcos, $home, $shell) = split(/:/);
        system("chown -R $uid:$gid $home") or die("Error: $!\n");
        print "$login, $uid, $gid, $home\n";
}


More information about the freebsd-isp mailing list