#include <util.h> intpw_lock(int retries);
intpw_mkdb(char *username, int pwflags);
voidpw_abort();
DESCRIPTION
The
pw_lock();,
pw_mkdb();,
and
pw_abort();
functions allow a program to update the system passwd database.
The
pw_lock();
function attempts to lock the passwd database by creating the file
/etc/ptmp,
and returns the file descriptor of that file.
If
retries
is greater than zero,
pw_lock();
will try multiple times to open
/etc/ptmp,
waiting one second between tries.
In addition to being a lock file,
/etc/ptmp
will also hold the contents of the new passwd file.
A different lock file can be specified with
pw_file(3).
pw_init(3)
must be called before
pw_lock();.
The
pw_mkdb();
function updates the passwd file from the contents of
/etc/ptmp
via
pwd_mkdb(8).
If a
username
is specified, only the record for the specified user will be updated.
The
pwflags
are specified by
OR
the following values:
_PASSWORD_SECUREONLY
only update the secure database file
(/etc/spwd.db).
_PASSWORD_OMITV7
do not update the Version 7 format password file
(/etc/passwd).
By default the secure, insecure and Version 7 format password databases
are updated.
You should finish writing to and close the file descriptor returned by
pw_lock();
before calling
pw_mkdb();.
If
pw_mkdb();
fails and you do not wish to retry, you should make sure to call
pw_abort();
to clean up the lock file.
The
pw_abort();
function aborts a passwd file update by deleting
/etc/ptmp.
The passwd database remains unchanged.
RETURN VALUES
The
pw_lock();
function returns \-1 on error and sets
errno.
The
pw_mkdb();
function returns \-1 if it is unable to complete properly.