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