From owner-freebsd-isp@FreeBSD.ORG Sun Feb 29 08:00:42 2004 Return-Path: Delivered-To: freebsd-isp@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1F97616A4CF for ; Sun, 29 Feb 2004 08:00:42 -0800 (PST) Received: from phuket.psconsult.nl (ps226.psconsult.nl [213.222.19.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id D3EF043D2F for ; Sun, 29 Feb 2004 08:00:40 -0800 (PST) (envelope-from fb-isp@psconsult.nl) Received: from phuket.psconsult.nl (localhost [127.0.0.1]) by phuket.psconsult.nl (8.12.8p2/8.12.8) with ESMTP id i1TG0d5f036243; Sun, 29 Feb 2004 17:00:39 +0100 (CET) (envelope-from fb-isp@psconsult.nl) Received: (from paul@localhost) by phuket.psconsult.nl (8.12.8p2/8.12.8/Submit) id i1TG0c3l036242; Sun, 29 Feb 2004 17:00:38 +0100 (CET) Date: Sun, 29 Feb 2004 17:00:38 +0100 From: Paul Schenkeveld To: freebsd-isp@freebsd.org Message-ID: <20040229160038.GA36107@psconsult.nl> Mail-Followup-To: freebsd-isp@freebsd.org, "Scott St. John" References: <20040228191105.M42305@scottah.com> <4040F1A8.1070108@buckhorn.net> <20040228211439.M89441@scottah.com> <404189B9.6040801@buckhorn.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <404189B9.6040801@buckhorn.net> User-Agent: Mutt/1.5.6i cc: "Scott St. John" Subject: Re: Final conversion questions X-BeenThere: freebsd-isp@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Internet Services Providers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Feb 2004 16:00:42 -0000 Hi Scott, Bob, All, PLEASE be VERY CAREFULL with the perl script. The first account in /etc/passwd is root with / as its home directory, so everything will be chown'd to root. Later they ge chown'd to operator, bin, tty, kmem and so on because all these accounts have / as their home dir. Files for normal users will eventually be corrected once their accounts are encountered later in the password file but ownership/group membership of all system files and directories will be lost forever this way. You could use this perl script on a copy op /etc/passwd with all system accounts removed, leaving just the normal users and you'll be fine. Or - without perl - the following lines can be cut-n-pasted directly into a /bin/sh compatible shell to do what you want to do, assuming all normal users have home directories living under /home. awk -F: '$6 ~ "^/home/" {print $6, $3, $4}' /etc/passwd | while read dir uid gid do chown -R $uid:$gid $dir done Regards, Paul Schenkeveld, Consultant PSconsult ICT Services BV On Sun, Feb 29, 2004 at 12:42:01AM -0600, Bob Martin wrote: > 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 / >> > >>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@freebsd.org mailing list > >http://lists.freebsd.org/mailman/listinfo/freebsd-isp > >To unsubscribe, send any mail to "freebsd-isp-unsubscribe@freebsd.org" > #!/usr/bin/perl > $Home = "/home"; > > open(PASSWD, '/etc/passwd') or die("Can't open password: $!\n"); > while () { > 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"; > } > _______________________________________________ > freebsd-isp@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-isp > To unsubscribe, send any mail to "freebsd-isp-unsubscribe@freebsd.org"