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.

hijarian
fonte

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

hijarian
fonte
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.

BdK
fonte
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.

ewwhite
fonte
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