9e66c6e8f0
r285050 fixed a bug in pw that could lead to /etc/passwd or /etc/group corruption on power loss. However, it fixed it by opening those files with O_SYNC, which is very slow, especially on ZFS. This change replaces O_SYNC with appropriately placed fsync()s instead, which is much faster. Using a ZFS tmpdir, the time to run pw's kyua tests drops from 245s to 35s. Reviewed by: allanjude, bapt, vangyzen, garga Tested on pfSense by: garga MFC after: 4 weeks Sponsored by: Spectra Logic Corp Differential Revision: https://reviews.freebsd.org/D8319 |
||
---|---|---|
.. | ||
tests | ||
bitmap.c | ||
bitmap.h | ||
cpdir.c | ||
grupd.c | ||
Makefile | ||
Makefile.depend | ||
psdate.c | ||
psdate.h | ||
pw_conf.c | ||
pw_group.c | ||
pw_log.c | ||
pw_nis.c | ||
pw_user.c | ||
pw_utils.c | ||
pw_vpw.c | ||
pw.8 | ||
pw.c | ||
pw.conf.5 | ||
pw.h | ||
pwupd.c | ||
pwupd.h | ||
README | ||
rm_r.c | ||
strtounum.c |
pw is a command-line driven passwd/group editor utility that provides an easy and safe means of modifying of any/all fields in the system password files, and has an add, modify and delete mode for user and group records. Command line options have been fashioned to be similar to those used by the Sun/shadow commands: useradd, usermod, userdel, groupadd, groupmod, groupdel, but combines all operations within the single command `pw'. User add mode also provides a means of easily setting system useradd defaults (see pw.conf.5), so that adding a user is as easy as issuing the command "pw useradd <loginid>". Creation of a unique primary group for each user and automatic membership in secondary groups is fully supported. This program may be FreeBSD specific, but should be trivial to port to other bsd4.4 variants. Author and maintainer: David L. Nugent, <davidn@blaze.net.au> $FreeBSD$