I spent some tedious time writing a preexec and a script for capturing all those variables which samba has when a user logs in. I thought I would pass them along, just in case someone else finds them useful. The smb.conf preexec isn't very pretty. I can't be sure it will work in its present form, since in my smb.conf file it was all one long line, but when I cut and pasted it into this email vi automatically put in returns. I put in \ at the end of each line so things might work just fine as it is. The preexec close = yes makes samba deny the connection if the preexec script returns an error code. Very handy. I call this a preexec script, but SWAT calls them exec scripts and removes the pre, but it is the same thing. Maybe SWAT removes those carriage returns, too. Not sure. [public] comment = Root directory path = / read only = No create mask = 0766 guest ok = Yes preexec close = yes exec = rm /tmp/Hello;echo \"m %m \" \"G %G \" \"I %I \" \"L %L \" \ \"M %M \" \"N %N \" \"R %R \" \"T %T \" \"U %U \" \ \"a %a \" \"d %d \" \"h %h \" \"p %p \" \"v %v \" \ \"H %H \" \"P %P \" \"S %S \" \"g %g \" \"u %u \" | xargs -n1 /usr/local/samba/bin/Hello; To make things confusing, I called the data file Hello and the script Hello, but, since they are in different directories, that shouldn't be a problem. Joel This is the script Hello: #!/bin/bash i=`echo "$1" | tr -s " "` index=`echo "$i" | cut -d" " -f1` value=`echo "$i" | sed 's/^. //'` case $index in m ) message="client machine NetBios name = $value";; M ) message="Internet DNS of client= $value";; I ) message="IP address of client = $value";; a ) message="Architecture of remote machine= $value";; U ) message="Session user name (one the client wanted)= $value";; L ) message="Netbios name of server = $value";; h ) message="Internet DNS hostname of server= $value";; R ) message="Protocal level = $value";; v ) message="Samba version= $value";; T ) message="Current time and date= $value";; G ) message="Primary goup name of u = $value";; N ) message="NIS home directory= $value";; d ) message="Process ID of current server= $value";; p ) message="Path of services home directory from NIS= $value";; H ) message="Home directory of user in u= $value";; P ) message="Root directory of current service = $value";; S ) message="Name of current service = $value";; g ) message="Primary group name of u in share = $value";; u ) message="User name of current service = $value";; esac echo $message \(\%$index\) >> /tmp/Hello