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