[206] | 1 | #!/bin/csh
|
---|
| 2 | #
|
---|
| 3 | # smbadduser - Written by Mike Zakharoff
|
---|
| 4 | #
|
---|
| 5 |
|
---|
| 6 | prefix=@prefix@
|
---|
| 7 | exec_prefix=@exec_prefix@
|
---|
| 8 | LIBDIR=@libdir@
|
---|
| 9 | PRIVATEDIR=@privatedir@
|
---|
| 10 | CONFIGDIR=@configdir@
|
---|
| 11 |
|
---|
| 12 | unalias *
|
---|
| 13 | set path = ($path /usr/bin)
|
---|
| 14 |
|
---|
| 15 | set smbpasswd = $PRIVATEDIR/smbpasswd
|
---|
| 16 | set user_map = $CONFIGDIR/smbusers
|
---|
| 17 |
|
---|
| 18 | #
|
---|
| 19 | # Set to site specific passwd command
|
---|
| 20 | #
|
---|
| 21 | set passwd = "getent passwd"
|
---|
| 22 | #set passwd = "niscat passwd.org_dir"
|
---|
| 23 | #set passwd = "ypcat passwd"
|
---|
| 24 |
|
---|
| 25 | set line = "----------------------------------------------------------"
|
---|
| 26 | if ($#argv == 0) then
|
---|
| 27 | echo $line
|
---|
| 28 | echo "Written: Mike Zakharoff email: michael.j.zakharoff@boeing.com"
|
---|
| 29 | echo ""
|
---|
| 30 | echo " 1) Updates $smbpasswd"
|
---|
| 31 | echo " 2) Updates $user_map"
|
---|
| 32 | echo " 3) Executes smbpasswd for each new user"
|
---|
| 33 | echo ""
|
---|
| 34 | echo "smbadduser unixid:ntid unixid:ntid ..."
|
---|
| 35 | echo ""
|
---|
| 36 | echo "Example: smbadduser zak:zakharoffm johns:smithj"
|
---|
| 37 | echo $line
|
---|
| 38 | exit 1
|
---|
| 39 | endif
|
---|
| 40 |
|
---|
| 41 | touch $smbpasswd $user_map
|
---|
| 42 | set new = ()
|
---|
| 43 | foreach one ($argv)
|
---|
| 44 | echo $one | grep ':' >& /dev/null
|
---|
| 45 | if ($status != 0) then
|
---|
| 46 | echo "ERROR: Must use unixid:ntid like -> zak:zakharoffm"
|
---|
| 47 | continue
|
---|
| 48 | endif
|
---|
| 49 | set unix = `echo $one | awk -F: '{print $1}'`
|
---|
| 50 | set ntid = `echo $one | awk -F: '{print $2}'`
|
---|
| 51 |
|
---|
| 52 | set usr = `eval $passwd | awk -F: '$1==USR {print $1}' USR=$unix`
|
---|
| 53 | if ($#usr != 1) then
|
---|
| 54 | echo "ERROR: $unix Not in passwd database SKIPPING..."
|
---|
| 55 | continue
|
---|
| 56 | endif
|
---|
| 57 | set tmp = `cat $smbpasswd | awk -F: '$1==USR {print $1}' USR=$unix`
|
---|
| 58 | if ($#tmp != 0) then
|
---|
| 59 | echo "ERROR: $unix is already in $smbpasswd SKIPPING..."
|
---|
| 60 | continue
|
---|
| 61 | endif
|
---|
| 62 |
|
---|
| 63 | echo "Adding: $unix to $smbpasswd"
|
---|
| 64 | /usr/bin/smbpasswd -a -n $unix
|
---|
| 65 | if ($unix != $ntid) then
|
---|
| 66 | echo "Adding: {$unix = $ntid} to $user_map"
|
---|
| 67 | echo "$unix = $ntid" >> $user_map
|
---|
| 68 | endif
|
---|
| 69 | set new = ($new $unix)
|
---|
| 70 | end
|
---|
| 71 |
|
---|
| 72 | #
|
---|
| 73 | # Enter password for new users
|
---|
| 74 | #
|
---|
| 75 | foreach one ($new)
|
---|
| 76 | echo $line
|
---|
| 77 | echo "ENTER password for $one"
|
---|
| 78 | smbpasswd $one
|
---|
| 79 | end
|
---|