Commit Graph

34 Commits

Author SHA1 Message Date
billf
909f97e4b4 Enable source file locking in pwd_mkdb by including the proper letter
in getopt(). The code was there, the means to use it wasn't.

Also update the usage() statment to reflect reality.

PR:		bin/9248
Submitted by:	Jos Backus <jbackus@plex.nl>
Forgotten By:	dillon
1999-01-01 20:39:37 +00:00
dillon
4db40135ef PR: bin/3478
Have pwd_mkdb lock the source file while rebuilding the database.  When
    called by programs such as vipw, the source file is a temporary file and
    this does not conflict with the lock on /etc/master.passwd already held
    by vipw.  When run manually, however, master.passwd is typically specified
    as the argument and the locking prevents other programs from messing with
    master.passwd during the database rebuild.

    Also pwd_mkdb uses a blocking exclusive lock as it may be called from
    a script.  The -N option was added to cause pwd_mkdb to get the lock
    non-blocking and exit with an error if the attempt fails, again useful
    for scripts.
1998-12-13 01:53:50 +00:00
foxfair
a73a037fb6 Close PR bin/8753 pwd_mkdb problem when having comments in passwd file
Submitted by Chia-liang Kao clkao@CirX.ORG .
1998-12-12 16:08:41 +00:00
dt
8d4ba0e0ec Rename a static variable, so it will not shadowed by a local variable.
Now comments will be ignored, rather than put junk in the password database.

Broken in:	rev. 1.21
1998-09-29 20:01:21 +00:00
ache
6b49c1beaa Fix usage string 1998-06-09 20:19:59 +00:00
phk
408ddd8b1c Allow specification of cache-size to pwd_mkdb
PR:		5193
Reviewed by:	phk
Submitted by:	Nick Hilliard <nick@foobar.org>
1998-04-19 07:15:34 +00:00
guido
e1ce88a831 Reenable building of /etc/passwd.
Pointed out by: "Julie M. Juracich" <julie@xaqti.com>
1998-02-19 08:12:11 +00:00
guido
977c976366 Apparently, if fprintf() fails, it can return any negative value
Pointed out by: Bruce
1998-02-16 19:08:18 +00:00
guido
bfe224349b Check return values of fprintf, fclose (this one is overdone I guess)
and pw_db->close.
PR:		4202 (probably, I askd the submitter)
Obtained from:	OpenBSD
1998-02-15 22:31:40 +00:00
wosch
b1ce14e5be Rename the pwd_mkdb(8) option '-c' to '-C' for better compatiblity
with BSD/OS.
1998-01-10 17:27:28 +00:00
charnier
b93d92dbcd Staticize usage(). Cosmetics. 1997-10-10 06:27:07 +00:00
jlemon
667917cb16 db close routine actually writes data out to disk; return value was
not being checked.  Change code to fail if db->close errors.

PR:		4202
1997-08-18 20:48:35 +00:00
mpp
1b03e753f3 Document the -u option.
Forgotten by: guido
1997-04-04 00:49:35 +00:00
imp
691010efad compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-31 05:11:47 +00:00
davidn
352dc5651f Fix possible (not stack) overflow from -d <dir> commandline option. 1997-03-20 03:35:06 +00:00
wosch
9643ba6a4a Allow comments in password database. The comments are copied from
the password file into /etc/master.passwd and optional (-p) into
/etc/passwd. Enable this feature with the compile
option -DPASSWD_IGNORE_COMMENTS.

The character `#' introduces a comment. Leading spaces and tabs are
ignored: '^[ \t]*#.*\n$'

Count an empty line - only spaces, tabs or newline - also as a comment.
An empty line at the bottom of /etc/master.passwd is a common
novice error and increased my mail load: '^[ \t]*\n$'
1997-03-08 14:09:24 +00:00
wpaul
46b1a4aff5 Begin closing out PR #1519 (this requires a change to chpass too,
and both changes need to be pulled into the stable branch). The
problem here is that when pwd_mkdb creates /etc/passwd, it turns
empty UID and GID fields into zeroes. To fix this, we check the
_PWF_UID and _PWF_GID bits in the pw_fields flag: if the bits
are not set, we print an empty field instead of a zero. This way,
you don't get zeroes in the UID or GID fields unless you explicit
want them.
1996-10-22 03:18:11 +00:00
wosch
62a6bfaf7a New option: [-c]
Check if the password file is in the correct format. Do not
        change, add, or remove any files.
1996-08-19 16:03:15 +00:00
bde
95254df1ef Fixed brackets in usage message.
Reformatted some of recent changes to KNF.
1996-07-12 08:20:28 +00:00
martin
c42838f64b Check if username is a NULL pointer before dereferencing it. 1996-07-03 21:43:48 +00:00
guido
70bae2bee1 Implement incremental passwd database updates. This is done by ading a '-u'
option to pwd_mkdb and adding this option to utilities invoking it.
Further, the filling of both the secure and insecure databases has been
merged into one loop giving also a performance improvemnet.
Note that I did *not* change the adduser command. I don't read perl
(it is a write only language anyway).
The change will drastically improve performance for passwd and
friends with large passwd files. Vipw's performance won't change.
In order to do that some kind of diff should be made between the
old and new master.passwd and depending the amount of changes, an
incremental or complete update of the databases should be agreed
upon.
1996-07-01 19:38:50 +00:00
julian
e7934b56b0 Submitted by: archie@whistle.com
This program should COMPLAIN about uids > 65K but not abort.. they are after
all legal, and some of us NEED them!
1996-06-20 19:19:29 +00:00
wpaul
fc6f345c4d NIS cleanups and fixes, the next generation, continued.
pwd_mkdb.c:

- Don't save the PLUSCNT and MINUSCNT tokens: we don't need them anymore.

- Count the + and - entires for NIS together instead of counting + and -
  entries seperately. Index all special NIS entries using new _PW_KEYYPBYNUM
  token.

pwd.h:

- Remove the PLUSBYNUM, MINUSBYNUM, PLUSCNT and MINUSCNT tokens and replace
  then with a single _PW_KEYYPBYNUM token.
1996-04-16 00:23:59 +00:00
rgrimes
4f960dd75f Remove trailing whitespace. 1995-05-30 03:57:47 +00:00
jkh
cf9f680883 Add what looks to be the right fix to this bogus code. 1995-03-24 16:07:09 +00:00
wpaul
a37e0133a6 Re-enable +::::::::: wildcards that I had previously disallowed.
Note: if you put +::0:0:::::: in /etc/master.passwd as your only NIS
entry, it will cause all NIS uids and gids to be remapped to zero. This
is *intentional*. That's the way it's supposed to work. Enabling NIS with
no remapping at all is done with +:::::::::, not +::0:0::::::. Similarly,
+:::::::::/bin/csh will remap the shells of all NIS users to /bin/csh.
Or, you could do +wpaul:::::::::/bin/csh to remap NIS user wpaul's shell
to /bin/csh but leave everyone else alone.
1995-03-23 22:31:11 +00:00
wpaul
f1a6a16e95 Summarily enable YP as soon as any a '+' is detected instead of generating
special values when +user substitutions are in effect. The new getpwent
code can handle all the special cases itself now.
1995-03-23 17:22:37 +00:00
wpaul
a8b9de3061 - Add support for embedding special entries in the password databases
for +@netgroup/-@netgroup entries. This saves the getpwent functions
from having to do all the work.

- Fix potential bug: when pwd_mkdb writes the YP-enabled flag to the secure
password database, it uses the wrong database descriptor. (It uses the
descriptor from the non-secure database, which is already closed by the time
things are being written into the secure dastabase).
1995-03-23 00:54:57 +00:00
dg
7e03208067 Be sure to properly fail if there are not enough fields. Problem
reported by MARC Giannoni <marc@cmc.eng.comsat.com>, this fix is by me.
1995-01-27 22:30:03 +00:00
wollman
45c19324be Fix security hole in YP password support, which wouldmake +user entries
act like + entries in some cases.  Requires support in libc from next
commit.
1994-09-20 21:40:12 +00:00
wollman
c9c7dd75b7 Maintain pw_fields, and output same to password database.
!!!!!!!!
NB
!!!!!!!!
You MUST pwd_mkdb /etc/master.passwd before attempting to use the new
libc, or things may go wrong.  (I doubt anything actually /will/ go
wrong, but the actual behavior is undefined.  YOU HAVE BEEN WARNED.)
The database format is, however, backwards-compatible, so old executables
will still work.
1994-09-20 01:15:08 +00:00
gpalmer
84234df44f Added the -d <directory> functionality to allow construction of the
password databases somewhere other than /etc.
1994-09-07 22:54:00 +00:00
wollman
d7fca5c189 Get rid of update. Make man page installation work with our scheme
(and rename a few in the process).
1994-08-05 16:31:05 +00:00
rgrimes
862fdf11a2 BSD 4.4 Lite usr.sbin Sources 1994-05-26 05:23:31 +00:00