Como fazer com que o Samba compartilhe para NÃO PEDIR SENHA


20

NOTA: Li provavelmente até 50 páginas diferentes descrevendo como configurar o compartilhamento público do Samba no período de 2 anos e nada funcionou para mim. Não sei quanto RTFM preciso para definir essas coisas.

Preciso / desejo configurar um compartilhamento de arquivo público completamente aberto no meu servidor doméstico para duas estações de trabalho.

A instalação é a seguinte:

Servidor :

  • Debian Wheezy
  • sudo smbd --versionme dá Version 3.6.6.
  • 2 partições locais que eu quero compartilhar, formatadas em NTFS devido a serem antigas e retiradas da máquina Windows. Não consigo formatá-los para ext * FS porque eles têm muitos dados que ainda não consigo mover em nenhum outro lugar.
  • máquina chamada "homeserv" por falta de originalidade.

Cliente :

  1. Teste do Debian (Jessie)
  2. Windows 7 (2 máquinas diferentes). De fato, minha máquina é Debian / Windows dualboot e a máquina de minha esposa é apenas Windows.

Meu smb.conf após a destilação tem a seguinte aparência ( literalmente , nada mais existe):

[global]
  workgroup = WORKGROUP
  security = user
  map to guest = Bad User

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

Nas duas máquinas clientes, no Debian e no Windows, eu obtenho o mesmo resultado: caixa de diálogo de login / senha. Nenhuma combinação de security = user, map to guest = Bad user, security = share, guest ok = yese tal ajudou.

O Windows 7 mostra a caixa de diálogo de login / senha logo após clicar na máquina compartilhada na vizinhança da rede. smb://homeserv/O caminho do arquivo no Debian (em qualquer navegador de arquivos) me mostra duas pastas: disk1e disk2, como pretendido, tentando abri-las, traga a caixa de diálogo de login / senha.

Então, o que me falta no esquema para NÃO TER para inserir login / senha? Esta é uma questão de usabilidade, não vou criar uma autenticação baseada em usuário para o ferro-velho de arquivos.

Respostas:


14

OK, eu mesmo encontrei uma resposta.

Como isso não é absolutamente óbvio nos documentos e HOWTOs, o motivo é que a senha solicita a senha, porque não é possível mapear o usuário convidado para o proprietário do diretório que está sendo compartilhado .

Eu tenho partições NTFS que eu preciso montar o RW, então usei a seguinte configuração no meu /etc/fstab:

/dev/sdb1  /media/disk1  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2
/dev/sdb2  /media/disk2  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2

As partes mais importantes da configuração são uide gid(talvez apenas uidnão saibam). Eles são definidos para o UID e o GID do usuário jonnieconfigurado no servidor (obviamente não raiz). Portanto, quando o ntfs-3g montar esses discos, tudo será de sua propriedade.

Depois disso, adicionei esse usuário ao registro do Samba (ou talvez crie um novo idêntico, não se importe):

# smbpasswd -a jonnie

Ele pediu a senha, digitei o mesmo que para o sistema principal.

Depois disso, adicionei as configurações force usere force groupao smb.conf:

[global]
  workgroup = WORKGROUP
  netbios name = HOMESERV
  security = share

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

Então, a parte mais importante da configuração relevante para mim foi force user.

Cortesia do HOWTO Samba


1
"obviamente não raiz". Na verdade, isso não é tão óbvio. O Samba possui dezenas de modos de falha. A maioria resulta em mensagens de erro idênticas. É por isso que você passou tanto tempo em pesquisas infrutíferas do Google. Não apenas uma única pesquisa trará uma mistura de problemas, mas as respostas encontradas também sofrerão a mesma confusão. O uso de root elimina o lado de segurança do Linux, mas também permite diagnosticar o problema. Se ele funciona como root, você tem um problema de segurança a nível Linux, se Samba ainda falhar, o problema está dentro ideia de Samba de usuários (eles são diferentes, e deve ter tido erros únicos)
MSalters

2

A configuração pode ser mais curta:

Criar usuário unix jonnie

useradd jonnie -s /usr/sbin/nologin

Criar smbuser

smbpasswd -a jonnie

Crie o diretório Linux para compartilhar

mkdir /mysmbshare

Mude o proprietário do diretório para jonnie

chown /mysmbshare jonnie

smb.conf

[global]
  workgroup = MyWorkGroup
  server string = Hello, use me
  security = share
  guest account = jonnie
  passdb backend = tdbsam

[the_public_share]
   path = /mysmbshare
   writable = yes
   printable = no
   public = yes

Todos os arquivos pertencem a jonnie e todos têm acesso rw aos arquivos.


Sim, "alterar o proprietário do diretório para jonnie" é provavelmente a parte mais importante aqui. Obrigado por uma solução muito mais curta!
hijarian 13/09

1

A maneira rápida e suja de ter um compartilhamento aberto do Samba é ter:

# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.

        security = share
        passdb backend = tdbsam

e ter ações define como tal:

[export]
   comment = Data Export Directory
   path = /data/export
   read only = no
   public = yes
   browseable = yes
   writeable = yes
   create mask = 666
   directory mask = 777

Reinicie o daemon.

Para clientes do Windows 7, a partir de 2014, eu precisava definir a política de domínio: assinar digitalmente as comunicações de sempre para DISABLE.


Meu Deus, mudar a política de domínio para ações supostamente públicas ... (facepalm). Ok, obrigado de qualquer maneira, mas não, eu tentei isso agora e o acesso smb://homeserv/disk1ainda requer uma senha no Debian. Eu usei os navegadores de arquivos Dolphin e Krusader. Talvez seja algo no KDE.
hijarian 23/09/14

ei que funcionou! : D public = yese 777permissões fizeram o truque (Win 10 hospedando Ubuntu 18.04). Felizmente, ele está na minha estação de trabalho pessoal, então não preciso me preocupar com isso
Arthur Tarasov
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.