Você precisa ter cuidado com as opções.
valid users=nobody , por exemplo, não significa que o usuário nobody tenha permissão para efetuar login. Isso significa que nenhum outro usuário mas nobody pode efetuar login.
Como você está obviamente bem para permitir o acesso de visitantes, basta remover valid users=nobody da seção global.
Além disso, embora você tenha definido corretamente map to guest = bad user , também é necessário verificar qual usuário assume a função de guest em seu sistema. Aparentemente, você acabou de assumir que é nobody , mas isso não é necessariamente o caso. Se não tiver certeza, você pode especificá-lo manualmente com guest account = nobody . Escusado será dizer que nobody tem que existir no seu sistema!
Em seguida, você precisa garantir que o compartilhamento tenha as respectivas permissões POSIX para nobody . Por exemplo, se as permissões de arquivo permitirem que nobody leia os arquivos no compartilhamento, mas não os modifique, a opção writeable em smb.conf não substituirá isso.
Agora chegamos à parte compartilhada do seu smb.conf, podemos tornar isso muito mais simples. Se você deseja mapear todas as ações para a conta de convidado, não é necessário usar force user e force group . Apenas use o parâmetro guest only = yes . Juntamente com guest ok = yes , isso fará com que todas as conexões sejam mapeadas para a conta de convidado correta, no nosso caso nobody .
Resultado (para acesso total de convidados):
# chmod -R a+rwX /srv/samba/share
/etc/samba/smb.conf
-------------------
[global]
guest account = nobody
map to guest = bad user
[share]
path = /srv/samba/share
writeable = yes
guest ok = yes
guest only = yes