PW_LOCK(3) | Library Functions Manual | PW_LOCK(3) |
pw_lock
, pw_mkdb
,
pw_abort
, pw_setprefix
,
pw_getprefix
—
#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);
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.
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.
pw_lock
() and pw_mkdb
()
functions return -1 if they are unable to complete properly.
February 17, 2007 | NetBSD 9.0 |