
Portanto, devo começar dizendo que fiz isso com sucesso há menos de uma semana e não tive problemas, mas desde então reformatei e reconfigurei meu servidor e agora estou tendo dificuldade em lembrar como fiz isso.
Aqui está o que eu tinha antes e o que estou tentando realizar novamente. Eu tive um compartilhamento público de samba no servidor Ubuntu. Qualquer pessoa na minha rede pode acessar o compartilhamento e seu conteúdo simplesmente digitando \Hostname. Nenhuma senha necessária. Os usuários que não estavam no grupo de trabalho do compartilhamento tinham acesso de leitura, mas os usuários que estavam no grupo de trabalho tinham acesso de leitura/gravação. (janelas 7)
Agora, se eu tentar me conectar ao \Hostname, será solicitado um nome de usuário e uma senha. Se eu entrar no un pw, terei acesso total, mas não deveria; minhas configurações atuais são...
security = user
map to guest = bad user
[Shares]
path = /home/shares
available = yes
read only = no
browsable = yes
public = yes
writable = yes
guest ok = yes
Estou puxando meu cabelo por causa disso. Alguma sugestão?
EDITAR:
Ugh, isso está me dando muita dificuldade. Estou tão perto.
Aqui está o que eu tenho.
Posso acessar o compartilhamento do Windows 7 iniciando e digitando \Hostname\Sharename mas sou solicitado a fornecer um nome de usuário e uma senha. Não posso simplesmente deixar em branco porque ele usará meu grupo de trabalho como domínio; então eu digito \ para o nome de usuário para apagá-lo e faço login com um nome de usuário e senha em branco. Ótimo, agora posso acessar os arquivos no compartilhamento.
Assim que entrar, a configuração do grupo de trabalho está funcionando corretamente. Se eu estiver em um computador com o GRUPO DE TRABALHO padrão, posso ler e executar; um computador no meu grupo de trabalho doméstico pode ler, escrever e executar. Então isso está funcionando.
O problema é que ele não deveria estar pedindo nenhuma senha. Deve ser totalmente público para qualquer pessoa na rede. Estou tentando compartilhá-lo com o XBMC e ele nem aparece em smb no gerenciador de arquivos. Também não consigo acessá-lo manualmente no XBMC. Recebo um erro de conexão recusada.
Ainda arrancando os cabelos por causa disso. A pior parte é que a primeira vez que fiz isso há cerca de uma semana, gastei cerca de 30 minutos nisso e funcionou perfeitamente. Agora provavelmente passei pelo menos 4 horas e ainda não está funcionando.
Testparm:
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = FELLOWSHIP
server string = %h server (Samba, Ubuntu)
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = No
wins support = Yes
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
printable = Yes
print ok = Yes
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
[Shares]
path = /home/shares
read only = No
guest ok = Yes
ATUALIZAÇÃO: Portanto, o compartilhamento agora está disponível na minha rede, independentemente do grupo de trabalho. Qualquer usuário do Windows que se conecte à minha rede pode ver o NAS em Netowork e acessá-lo. A chave era definir a segurança como security = share. Eu sei, está obsoleto, mas funciona e security = user e map to user = bad user não estavam funcionando para mim.
De qualquer forma, agora parece que qualquer pessoa que se conecte ao compartilhamento obtém permissões globais unix para o diretório, o que é gerenciável, mas quero que os usuários que ingressam no grupo de trabalho especificado em smb.conf obtenham permissões de grupo unix.
Dessa forma, posso definir o diretório como 775 e poderei escrever porque estou ingressado no grupo de trabalho, mas outros usuários só podem ler e executar.
Responder1
Aconteceu de tropeçareste tópico nos fóruns do Ubuntue pensei que poderia ajudar. Ele explica as etapas que acontecem nos bastidores:
No Windows, o nome de usuário e a senha do cliente são enviados automaticamente quando ele procura compartilhamentos - isso é feito sem o conhecimento do usuário. Isso força o Samba a lidar com as credenciais enviadas, mesmo que seja um compartilhamento de convidado que não requer autenticação.
Quando esse nome de usuário for passado, o Samba procurará esse usuário em seu banco de dados de senhas:
Se não houver correspondência com o nome de usuário, o usuário cliente será marcado como "Usuário Mau" e convertido (mapeado) para a conta de convidado que por padrão é "ninguém".
Se encontrar uma correspondência com o nome de usuário e houver uma senha do samba que corresponda àquela enviada pelo cliente Windows, o usuário do Windows obterá acesso automaticamente, embora não como um usuário anônimo, e é por isso que você precisou adicionar "forçar usuário = ninguém" para sua definição de compartilhamento.
Se encontrar uma correspondência com o nome de usuário, mas a senha do samba não corresponder exatamente à senha enviada automaticamente pelo cliente Windows, será solicitada uma senha - mesmo para um compartilhamento de convidado.
Tente adicionar force user = nobody
à sua definição de compartilhamento e veja se isso acontece.
Editar 20/02/2013:
Está testparm
retornando um código de saída diferente de zero? Mesmo assim, eu iria em frente e daria uma boa olhada nessa área da configuração. Além disso, não tenho certeza de quão smb.conf diferencia maiúsculas de minúsculas, mas todos os exemplos que vejo (por exemplo) map to guest = Bad User
têm B e U em maiúscula. Confira aPáginas de manual do Sambapara as opções que você está usando e verifique tudo.
Responder2
É assim que o OpenElec está configurado. Deve fazer o que você está pedindo. (mesmo que seja um ano depois... talvez ajude no próximo) Basta ajustar as configurações de compartilhamento conforme necessário.
[global]
server string = YOURSERVERNAME
workgroup = WORKGROUP
netbios name = %h
security = share
guest account = root
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
smb ports = 445
max protocol = SMB2
min receivefile size = 16384
deadtime = 30
os level = 20
mangled names = no
syslog only = yes
syslog = 2
name resolve order = lmhosts wins bcast host
preferred master = auto
domain master = auto
local master = yes
printcap name = /dev/null
load printers = no
browseable = yes
writeable = yes
printable = no
encrypt passwords = true
enable core files = no
passdb backend = smbpasswd
smb encrypt = disabled
use sendfile = yes
[share]
comment = Share
path = /share
available = yes
browsable = yes
writable = yes
public = yes
Responder3
Como a pesquisa do Google nos traz até aqui e não há uma resposta clara, resumi.
Abaixo estão as condições necessárias para garantir que os clientes SMB não solicitarão o nome de usuário e a senha ao acessar o servidor Samba:
Adicione
guest account = <owner-of-your-shares>
em uma[global]
seção. É importante que a conta proprietária das suas ações tenha acesso a elas. Se você não fizer isso, o Samba assumirá que a conta de convidado é umnobody
usuário que provavelmente não terá acesso aos dados do seu compartilhamento.Alternativamente, você pode especificar
force user = <owner-of-your-share>
em seu[shareXYZ]
bloco.Certifique-se de que você
[shareXYZ]
temguest ok = yes
.Set
browsable = yes
, mas geralmente é herdado de[global]
e é definidoyes
por padrão.
Então, provavelmente security = user
também deve ser definido (este é o padrão quando você não tem o Active Directory configurado em seu ambiente). Porém, não tenho certeza se esse sinalizador é necessário, pois não tenho AD em meu ambiente.
Claro, se você quiser que o nobody
usuário funcione, então você pode simplesmente chown -Rh 65534:65534 /yourshare
, depois disso você ficará bem apenas com a configuração única guest ok = yes
em seu [shareXYZ]
.
Observe que definir rwx
como others
( chmod o+rwx /yourshare
) não permitiu que o Samba e seu nobody
usuário entrassem no compartilhamento. Eu verifiquei isso com strace -f -e chdir,geteuid,getegid -p <pid-of-the-parent-smbd-process>
. Provavelmente o Samba simplesmente ignora as permissões definidas para o others
? Não tenho certeza.
Responder4
Esta provavelmente não será a solução para todos com esse problema, mas meu problema foi devido às permissões do diretório pai em que o diretório compartilhado estava. Assim que habilitei "Ler por outros", consegui acessar anonimamente a partilha. Isso me pegou um pouco de surpresa, pois nos servidores Windows as permissões do diretório pai não importam para o diretório compartilhado.
Então meu caminho fica assim:
/data1/Downloads
Tive que habilitar "lido por outros" no data1
diretório.
Eu não precisei de nada de especial smb.conf
, minha entrada de compartilhamento ficou assim ...
[Downloads]
path = /data1/Downloads
browseable = yes
read only = yes
guest ok = yes
public = yes