NAME
pw_lock
, pw_mkdb
,
pw_abort
, pw_setprefix
,
pw_getprefix
—
passwd file update functions
LIBRARY
library “libutil”
SYNOPSIS
#include
<util.h>
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);
DESCRIPTION
Thepw_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.
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.
RETURN VALUES
The pw_lock
() and
pw_mkdb
() functions return -1 if they are unable to
complete properly.
FILES
- /etc/master.passwd
- /etc/ptmp