
OK... first of all, Samba does NOT have separate permissions and usernames (what a NIGHTMARE that would be to implement!) Samba DOES (or more corectly, CAN) have a mapping of Windoze permissions to Linux permissions, and also has a username map (so that Linux username 'account123' can be accessed by the Windoze username 'Millie'). If you've enabled it, Samba can even use the Linux ACLs (Access Control Lists -- which let you go beyond the standard User/Group/Other permissions). But when it comes to accessing a file (in a directory that is properly shared), the Linux permissions "rule."
If you are using a Windoze domain or AD server, then Samba can automatically create appropriate usernames using the winbindd daemon (NOTE: winbindd generated names will NOT appear in /etc/passwd, /etc/shadow, or local LDAP user listings, but will appear normally when you use an 'ls -l'! If you don't know how to do this, there are LOTS of Samba HOWTO's to help). If Samba is your Domain Controller, then users
have to have an entry in /etc/passwd, /etc/shadow, or LDAP.
Based upon what I've read, however, I'd suspect that the original poster created the user account manually -- which means that the /home/user directory that is being shared in Samba is owned by root, and not the user. As a basic rule of thumb, if the directory shows up on the Windoze client (Windoze XP), but you cannot write to it, then it either has been shared as a read-only share (unlikely to be an accident), or the directory does not have the proper owner/group/permissions settings. The rest of the Samba settings are working if you can see the share from XP!
Just to test my theory, I suggest logging into the Linux server, cd-ing to the shared directory, and then allowing full access (
chmod 777 .) [don't forget the dot!] and then trying again from Windoze (fortunately, no reboot necessary -- even for the XP system!)
If this does the trick, then set the ownership of the directory to the user in question (HINT: if you create a file in the shared directory from the Windoze XP client, it will be owned by the Linux User whose access permissions are being used - regardless of any special Samba settings, winbindd, or otherwise. Use 'ls -l' on the server to see who owns the file Windoze XP created!)
Once you've figured it all out, don't forget to use chmod again to remove the excessive permissions! For user home directories, I typically use '
chmod 700 .' For shared directories, I'll use either 770 (if I'm limiting access to a specific group, or 777 (for all to access). In the latter case, I also recommend using the Sticky Bit (1777) so that people cannot so easily delete each others files!
Peace, Love, & Unix!