On Wed, Aug 18, 1999 at 11:05:20PM -0700, Coda wrote:
> 
> Hi.  I'd like to be able to incorporate username, uid, password, and
> access assignments for coda users into some perl scripts that I currently
> use to make administration on my system easy (your basic adduser, deluser,
> password change kind of scripts)
> 
> what is the best way to add coda users, delete coda users, change
> coda passwords, and modify the acls of volumes, by way of a perl script?
> 
> -- Jonathan

Hi Jonathan,

I saw that Clement already followed up, but here is the sequence I use:

#!/bin/sh
# assuming the 5.2.x version of pdbtool
# a coda-client installed on the SCM.

USER=$1
USERID=$2
#########################################################
# Add user and add the user to the appropriate groups
pdbtool << EOF
aui $USER $USERID                       #   Add user with userid
ag -221 $USERID                         #   Add userid to groupid
EOF

# Activate the user in the auth2 database
au -h $SCM nu << EOF
jaharkes                                #   Administrator name
......                                  #   Administrators password
$USER                                   #   New user id
random                                  #   New user's password
                                        #   Empty info line (not used afaik)
EOF

# the following stuff needs to be run on a Coda client (the SCM could
# also run this client)

# Create a new volume for this user
createvol_rep u.$USER E0000157 /vicepa << EOF
y                                       # yes, we want backups
Wed                                     # We still have some space on wednesday
EOF

# Mount the user's volume
cfs mkm /coda/usr/$USER u.$USER         # create mountpoint for the new volume
cfs sa /coda/usr/$USER sa $USER all     # give the user access to his volume

echo "done"
exit
#########################################################
# In 5.3.x I would use pdbtool something like:

pdbtool aui $USER $USERID
for group in System:coda Braam:Developers ; do
    groupid=`pdbtool l System:coda | cut -d' ' -f 4`
    pdbtool ag $groupid $USERID
done


Ofcourse, there are so many things that can go wrong in this sequence.
Especially in the 'cfs mkm/cfs sa' phases, since the new user/volume
information is not alway promptly propagated (f.i. a server's
updateclnt, or the SCM's updatesrv might have crashed).

So I normally just do it by hand. I also don't have 100's of users to
add ;). Looking at this sequence, Some tools could be improved:

pdbtool:
 - add a user _name_ to a _named_ group. The best solution would
   probably be to `generalize' the processing of id-numbers, by allowing
   names to be entered in places we currently expect an id. Whenever the
   id is not a numeric value, assume it is a name, and perform a lookup.

au:
 - Accept on the commandline:
     au nu <adminname> <username> <userpassword> [<userinfo>]

   And only query for the administrator's password. This way the
   password doesn't need to be stored in the script.

createvol_rep:
 - Accept a dumpday on the commandline. If dayname is None, no backups,
   and when not specified query like we do now.

Jan

Reply via email to