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