I am not a Samba guru, so any who know more, please feel free to correct me.
I notice a couple of things, though:
1. You have no "hosts allow" directive in [global]. I think for security reasons Samba defaults to a "deny" mode and you have to specify the hosts who can connect. For example:
hosts allow = 10.10.10. 127.
would allow anyone in the 10.10.10.xxx subnet to connect. 127. allows localhost loopback.
I'm sure there is a way to set the default mode to "allow" for all IP addresses, but is that wise?
2. You might have an overly simple configuration in [publicshare]. Try adding a list of valid users:
valid users = user1 user2 user3
Other than that, I would recommend you comment out other areas of your [global] configuration one by one, restarting Samba each time, and testing.
Here is an example configuration file that works very well for my specific situation:
Code:
[global]
workgroup = MY_WORKGROUP
server string = Samba Server
hosts allow = 192.168.1.22 192.168.1.23 127.
log file = /usr/local/samba/var/log.%m
log level =3
max log size = 50
security = user
encrypt passwords = yes
socket options = TCP_NODELAY
local master = no
wins support = yes
dns proxy = no
#================= Share Definitions =================
[homes]
comment = Home Directories
browseable = no
writable = yes
[sweb]
comment = Joe's stuff
path = /usr/home/joe
valid users = joe
public = yes
writable = yes
printable = no
create mask = 0765
guest ok=no
[rick]
comment = Rick's stuff
path = /usr/home/rick
valid users = rick
public = yes
writable = yes
printable = no
create mask = 0765
guest ok=no
This is a very simple configuration that allows Unix system users to connect to their home directories via Samba. Bear in mind that with this you also need a smbpasswd file (usually in /usr/local/private), and you need to enter the passwords with an executable called smbpasswd {username} (as the root user, usually in /usr/local/bin/smbpasswd)