int
pw_lock(int retries)
int
pw_mkdb(const char *username, int secureonly)
void
pw_abort(void)
int
pw_setprefix(const char *new_prefix)
const char *
pw_getprefix(void)
),
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.
The
pw_mkdb()
function updates the passwd file from the contents of
/etc/ptmp.
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.
If the
username
argument is not NULL, only database entries pertaining to the specified user
will be modified.
If the
secureonly
argument is non-zero, only the secure database will be updated.
The
pw_abort()
function aborts a passwd file update by deleting
/etc/ptmp.
The passwd database remains unchanged.
The
pw_setprefix()
function defines the root directory used for passwd file updates.
If the prefix is set to
/newroot
pw_lock()
will operate on
/newroot/etc/ptmp
afterwards.
The default prefix is an empty string.
The
pw_getprefix()
function returns the root directory which is currently used for passwd file
updates.
)
and
pw_mkdb()
functions return -1 if they are unable to complete properly.
/etc/master.passwd/etc/ptmp