Firstly, there are a couple of locations on the web with some really useful docs:
http://samba.mirror.ac.uk/samba/samba.html (my closest mirror)
http://samba.mirror.ac.uk/samba/docs/ (the official docs)
http://hr.uoregon.edu/davidrl/samba/samba-unofficial-multiple.html (dave lechnyr's unoffical howto)
and now the core process:
get the sources and unpack
# cd /usr/src/
# wget http://samba.mirror.ac.uk/samba/ftp/samba-latest.tar.gz
# tar -zxvf samba-latest.tar.gz
compile and install
# cd samba-<version>
# ./configure && make && make install
drop config into place
# cp ../examples/smb.conf.default /usr/local/samba/lib/smb.conf
Then open up in vi and start editing the config. These are just a couple of notes on what has to go in for a basic setup.
# file: smb.conf
[global]
workgroup = mygroup
server string = samba server
log file = /usr/local/samba/var/log.%m
security = user
dns proxy = no
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
# homes - if you want users to be able to browse home areas
[homes]
comment = Home Directories
browseable = yes
writable = yes
# publicly shared files - under 'path' on server, writeable by users in the group identified by write list = <group>
[public]
comment = Public Shares
path = /export/share
public = yes
writeable = yes
write list = @users
#### end of smb.conf
the users were then set up, but first they need to have entries in the system password file '/etc/passwd', so create the users thus:
# adduser username
and then create the samba password for each user
# /usr/local/samba/bin/smbpasswd -a username
The final stage on the server end of things is to start up the two daemons required - you can edit your init scripts to do this, or just fire them manually like so:
# smbd -D
# nmbd -D