I have gone round and round this track quite a few times, and eventually stub my toe on the inconvenient fact that Samba does not use the Linux password file (or shadow passwords) to validate logons. Instead, it uses a parallel data set in
/etc/samba/smbpasswd. To further confuse things, it uses a file named
/etc/samba/smbusers to map various SMB logon names onto Linux logon names
before consulting its private password file. All this is done for some obscure but probably defensible reasons having to do with system-wide security, but it sure does make it hard to debug things in any straightforward way.
There is a pretty good tutorial on how to debug a new installation from both sides here:
http://us3.samba.org/samba/docs/man/...n/install.html
starting with "List Shares".