Configurando um compartilhamento público anônimo do Samba a ser acessado via Windows 7 e XBMC

6

Então, devo começar dizendo que fiz isso com sucesso há menos de uma semana e não tive nenhum problema, mas tenho reformatado e reconfigurado meu servidor e agora estou tendo o pior tempo lembrando como o fiz.

Aqui está o que eu tinha antes e o que estou tentando realizar novamente. Eu tive um compartilhamento de samba público 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 faziam parte do 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. (Windows 7)

Agora, se eu tentar conectar a \ Hostname, será solicitado um nome de usuário e uma senha. Se eu entrar no un pw eu tenho acesso total, mas eu não deveria precisar; 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 cima deste. Alguma sugestão?

EDITAR:

Ugh, isso está me dando tanto trabalho. Estou tão perto.

Aqui está o que eu tenho.

Eu posso acessar o compartilhamento do Windows 7 indo até o início e digitando \ Hostname \ Sharename, mas sou solicitado a fornecer um nome de usuário e uma senha. Eu não posso simplesmente deixar em branco, porque vai usar o meu grupo de trabalho como o domínio; então eu entro \ para o nome de usuário para limpá-lo e fazer o login com um nome de usuário e senha em branco. Ótimo agora eu posso acessar os arquivos no compartilhamento.

Quando estou em, a configuração do grupo de trabalho está funcionando corretamente. Se eu estiver em um computador com o WORKGROUP padrão, posso ler e executar; um computador no meu grupo de trabalho Página inicial pode ler a gravação e a execução. Então está funcionando.

O problema é que ele não deveria estar pedindo uma senha. Deve ser totalmente público para qualquer pessoa na rede. Estou tentando compartilhá-lo com o XBMC e ele nem aparece sob o SMB no gerenciador de arquivos. Eu não consigo acessá-lo manualmente a partir do XBMC também. Eu recebo um erro de conexão recusada.

Ainda puxando o cabelo por isso. A pior parte é a primeira vez que fiz isso há uma semana, passei cerca de 30 minutos e funcionou perfeitamente. Agora eu 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

UPDATE: o compartilhamento agora está disponível em toda a minha rede, independentemente do grupo de trabalho. Qualquer usuário do Windows que se conecta à minha rede pode ver o NAS no Netowork e acessá-lo. A chave foi configurar a segurança para security = share. Eu sei, é obsoleto, mas funciona e segurança = usuário e mapa para usuário = usuário ruim não estava funcionando para mim.

De qualquer forma, agora parece que qualquer um que se conecta ao compartilhamento obtém permissões globais unix para o diretório, o que é gerenciável, mas eu quero que os usuários que se juntaram ao grupo de trabalho especificado em smb.conf obtenham permissões de grupo unix. p>

Dessa forma, eu posso definir o diretório como 775 e serei capaz de escrever porque estou unido ao grupo de trabalho, mas outros usuários só podem ler e executar.

    
por George Spake 19.02.2013 / 18:04

2 respostas

6

É assim que o OpenElec é configurado. Deve fazer o que você está pedindo. (mesmo que seja um ano depois ... talvez ajude o 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
    
por Ken 02.07.2014 / 22:41
4

Aconteceu de se deparar com esta discussão nos fóruns do Ubuntu , e achou que isso poderia ajudar. Explica os passos que acontecem nos bastidores:

  

No Windows, o nome de usuário e a senha do cliente são enviados automaticamente   quando navega por compartilhamentos - isso é feito sem o usuário   conhecimento. Isso força o Samba a lidar com as credenciais enviadas   embora seja um compartilhamento de convidado que não requer autenticação.

     

Quando esse nome de usuário é passado, o Samba pesquisará sua senha   banco de dados para esse usuário:

     
  • Se não houver correspondência para o nome de usuário, o usuário cliente será marcado como "Usuário inválido" e convertido (mapeado) para a conta de convidado que, por   o padrão é "nobody".

  •   
  • Se encontrar uma correspondência para o nome de usuário e houver uma senha do samba que corresponda à enviada pelo cliente do Windows, o usuário do Windows   obtém automaticamente acesso, embora não como um usuário anônimo que é   Por que você precisou adicionar "force user = nobody" à sua definição de compartilhamento.

  •   
  • Se encontrar uma correspondência para o nome de usuário, mas a senha do samba não corresponder exatamente à senha enviada automaticamente pelo Windows   cliente, em seguida, você será solicitado para uma senha - mesmo para um convidado   compartilhar.

  •   

Tente adicionar force user = nobody à sua definição de compartilhamento e veja se isso acontece.

Editar 20/02/2013:

testparm está retornando um código de saída diferente de zero? De qualquer forma, eu iria em frente e daria a essa área da configuração uma boa aparência. Além disso, não tenho certeza de como o smb.conf é sensível a maiúsculas e minúsculas, mas cada exemplo que vejo (por exemplo) de map to guest = Bad User tem o B e o U em maiúscula. Confira as páginas de manual do Samba para as opções que você é usando e verifique tudo.

    
por Aaron 19.02.2013 / 21:43