pw and file locking

Odhiambo Washington wash at wananchi.com
Mon Apr 26 03:49:44 PDT 2004


Hi,

I am using pw to process users on my box from a small script.
What happens is that one script on a different machines executes
the script (below) on another machine with the required variables.
NB: It is quite possible that the script on the remote box can be
executed by two processes simultaneously, so my concern here would
be about locking.
Variously I have ended up with a corrupted master.passwd file and
I had to restore from backup (Thanks to FreeBSD periodic-daily scripts).

Here is the script, very simplistic, but it works:

<quote>
#!/bin/sh

# -- useradd

# Script to ADD a mail account
# This script essentially requires the following data:
# username = $1
# realname = $2
# password = $3
#

PW=`which pw`
OPERATION='useradd'

# Note: I am not quite sure about how to handle the initial password entry..
# So I am doing that on the 2nd step ..

# Add the user account
$PW $OPERATION $1 -c "$2" -g users -m

# Now fix the password
echo $1 $2 $3  >> /script/WBS/useradd.log
echo "$3" | pw usermod $1 -h 0


My questions:

1. It it possible (or even necessary) to implement locking when this
   script runs to take care of any race condition that might lead to
   master.passwd file corruption? If so, clues/suggestions are welcome.
2. I'll need to capture stderr to the logfile. At what juncture is this
   suitable?

Thanks
 

-Wash

http://www.netmeister.org/news/learn2quote.html

--
+======================================================================+
    |\      _,,,---,,_     | Odhiambo Washington    <wash at wananchi.com>
Zzz /,`.-'`'    -.  ;-;;,_ | Wananchi Online Ltd.   www.wananchi.com
   |,4-  ) )-,_. ,\ (  `'-'| Tel: +254 20 313985-9  +254 20 313922
  '---''(_/--'  `-'\_)     | GSM: +254 722 743223   +254 733 744121
+======================================================================+
Aleph-null bottles of beer on the wall,
Aleph-null bottles of beer,
	You take one down, and pass it around,
Aleph-null bottles of beer on the wall.


More information about the freebsd-isp mailing list