Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 Sep 2001 01:10:02 -0700 (PDT)
From:      Peter Pentchev <roam@ringlet.net>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/30424: Generalization of vipw to lock pwdb while being edited by a script
Message-ID:  <200109080810.f888A2Y27121@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/30424; it has been noted by GNATS.

From: Peter Pentchev <roam@ringlet.net>
To: alan@batie.org
Cc: FreeBSD-gnats-submit@freebsd.org
Subject: Re: bin/30424: Generalization of vipw to lock pwdb while being edited by a script
Date: Sat, 8 Sep 2001 11:08:06 +0300

 On Fri, Sep 07, 2001 at 03:34:37PM -0700, alan@batie.org wrote:
 > 
 > >Number:         30424
 > >Category:       bin
 > >Synopsis:       Generalization of vipw to lock pwdb while being edited by a script
 > >Originator:     Alan Batie
 > >Release:        FreeBSD 4.3-STABLE i386
 > >Organization:
 > RainDrop Laboratories
 > >Environment:
 > System: FreeBSD aggie.rdrop.com 4.3-STABLE FreeBSD 4.3-STABLE #3: Wed Sep 5 13:36:38 PDT 2001 root@aggie.rdrop.com:/usr/src/freebsd/sys/compile/AGORA i386
 > 
 > 
 > >Description:
 > 	I have scripts to update accounts, and need to have the password
 > 	file locked while they run to avoid having a user change their
 > 	password at the same time and losing one of the updates.  Since
 > 	vipw already does most of what needs to be done, I've modified it
 > 	so that when invoked as "pw_lock", instead of running vi, it runs
 > 	the specified command, but still does all the locking and database
 > 	updating.
 
 Good idea!
 
 [snip]
 > + 	if (!(pid = vfork())) {
 > + 		execl(argv[0], progname, tempname, (char *)NULL);
 > + 		warn("Command '%s' failed", argv[0]);
 > + 		pw_error((char *)NULL, 0, 0);
 > + 	}
 
 I think you should check pid for -1 here, though..
 
 > ***************
 > *** 83,88 ****
 > --- 85,95 ----
 >   at very large sites could take several minutes.  Until this update
 >   is completed, the password file is unavailable for other updates
 >   and the new information is not available to programs.
 > + .Pp
 > + If invoked as
 > + .Nm pw_lock
 > + , the user database ...
 
 This might be written better as
 
 If invoked as
 .Nm pw_lock ,
 the user database ...
 
 Other than that, good work!
 
 G'luck,
 Peter
 
 -- 
 If there were no counterfactuals, this sentence would not have been paradoxical.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200109080810.f888A2Y27121>