Date: 07 Sep 1998 18:54:49 -0400 From: Kevin Street <street@iname.com> To: Dr R D Gidden <rdg@theleys.cambs.sch.uk> Cc: freebsd-questions@FreeBSD.ORG Subject: Re: Invalid master.passwd file Message-ID: <87af4b3552.fsf@kstreet.interlog.com> In-Reply-To: Kevin Street's message of "07 Sep 1998 17:29:42 -0400" References: <Marcel-1.08-0907181724-0b0cqa6@barium.theleys.cambs.sch.uk> <87hfyj4nnd.fsf@kstreet.interlog.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Kevin Street <street@iname.com> writes:
> Dr R D Gidden <rdg@theleys.cambs.sch.uk> writes:
> snip
>
> > I have over 700 users in this file (AARGH!): is it possible
> > to work back from the .db file(s)? My backup was just
> > *before* a whole slew of new users were added :-((
>
> Bob, I don't know about working backwards from the .db files, but have
> you checked in /var/backups to see if there's a good version there?
Oh, and come to think of it, it is easy to get the info from the .db
files too if you have really wiped out master.passwd & all backups.
If you run this as root it should print out a copy of the
master.passwd file that it reads from spwd.db. (If you run it as a
normal user you get "*" for all the passwords.)
#include <sys/types.h>
#include <pwd.h>
int
main(int argc, char **argv)
{
struct passwd * pw;
pw = getpwent();
while (0 != pw) {
printf("%s:%s:%d:%d:%s:%d:%d:%s:%s:%s\n",
pw->pw_name, pw->pw_passwd, pw->pw_uid, pw->pw_gid,
pw->pw_class, pw->pw_change, pw->pw_expire,
pw->pw_gecos, pw->pw_dir, pw->pw_shell);
pw = getpwent();
}
endpwent();
return 0;
}
--
Kevin Street
street@iName.com
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?87af4b3552.fsf>
