Samba: Diretório de compartilhamento com um usuário específico do Windows 10 sem senha requerida

2

Eu gostaria de instruções para criar um compartilhamento do Samba que só pode ser acessado por um usuário específico do Windows 10 sem a necessidade de senha.

Eu li alguns tutoriais e, embora eu possa criar facilmente um compartilhamento que qualquer pessoa possa acessar, não consegui criar um que apenas o usuário específico possa acessar. Eu posso ver o diretório em questão, mas se eu tentar abri-lo, recebo um erro de acesso negado e o Windows File Explorer solicita um nome de usuário e senha.

Eu criei um usuário Linux com o que eu acredito ser o nome de usuário no PC com Windows e a mesma senha que o usuário do Windows. Se eu digitar as credenciais deste usuário do Linux que criei no prompt mencionado acima, receberei o acesso. Tudo o que posso pensar neste momento é que o nome de usuário da conta do Linux não é o mesmo que a conta correspondente do Windows.

Aqui está o que eu tenho no smb.conf

encrypt passwords = yes
security = user

[Email Backup]
    comment = email backup folder
    path = /home/samba/emailbackup
    guest ok = yes
    read only = no
    browseable = yes
    valid users = xavie emailer +emailbackup

xavie é o nome da conta do Linux que deve corresponder à conta do Windows, emailer é outra conta do Linux que precisa de acesso ao diretório e emailbackup é um grupo em que as duas contas são membros do. A conta do Windows é uma conta da Microsoft (ou seja, não é uma conta local; vinculada a um endereço de e-mail @ Outlook.com), se isso mudar alguma coisa.

Se este problema é causado pelo nome de usuário errado, alguém pode me avisar sobre como eu posso encontrar o nome de usuário que precisa ser atribuído à conta do Linux (por exemplo, existe um arquivo de log para ver o que o usuário tentou para obter acesso ao compartilhamento Samba)? Caso contrário, há mais alguma coisa que eu possa verificar que possa ser a causa deste problema?

EDITAR: Eu fiz algumas pesquisas na internet e fiz algum progresso. Depois de examinar os arquivos de log do Samba, descobri que estava correto ao acreditar que o nome de usuário estava incorreto. De acordo com os arquivos de log, o Windows 10, quando o usuário usa uma conta da Microsoft, identifica o usuário no Samba com o endereço de e-mail usado por essa conta em vez do nome de usuário. Aqui está o log (nível 2) que eu estava vendo:

[2016/08/20 14:15:36.349641,  2] ../source3/param/loadparm.c:2700(lp_do_section)
  Processing section "[All Users]"
[2016/08/20 14:15:36.349966,  2] ../source3/param/loadparm.c:2700(lp_do_section)
  Processing section "[Email Backup]"
[2016/08/20 14:15:36.350850,  2] ../source3/auth/auth.c:315(auth_check_ntlm_password)
  check_ntlm_password:  Authentication for user [<snip email address>] -> [<snip email address>] FAILED with error NT_STATUS_NO_SUCH_USER

Adicionei o endereço de e-mail ao arquivo smbuser, associando-o à conta do Linux que criei. Isso funcionou e o log agora diz que eu autentiquei com sucesso, mas agora tenho um novo problema.

O novo problema é que o compartilhamento do Samba não funciona para o meu PC quando conectado à conta que eu observei acima. Basicamente, eu tenho dois compartilhamentos no meu servidor Ubuntu; um compartilhamento público que qualquer pessoa pode acessar e o outro compartilhamento que eu quero acessar apenas para o usuário do Windows 10. Esse usuário do Windows 10, depois que eu fiz as alterações acima, agora não pode mais ver nenhum dos compartilhamentos ou até mesmo acessar o servidor Ubuntu. OTOH, o laptop do meu pai, que não tem uma conta no Samba, pode acessar o servidor e ver os dois compartilhamentos (mas não pode acessar o compartilhamento não público sem autenticação). Aqui está o novo log criado com as alterações nos smbusers:

[2016/08/20 14:36:44.523779,  2] ../source3/param/loadparm.c:2700(lp_do_section)
  Processing section "[All Users]"
[2016/08/20 14:36:44.524358,  2] ../source3/param/loadparm.c:2700(lp_do_section)
  Processing section "[Email Backup]"
[2016/08/20 14:36:44.552274,  2] ../source3/auth/auth.c:305(auth_check_ntlm_password)
  check_ntlm_password:  authentication for user [<snip email address>] -> [xavie] -> [xavie] succeeded
[2016/08/20 14:36:44.553509,  1] ../source3/param/loadparm.c:2389(lp_idmap_range)
  idmap range not specified for domain '*'
[2016/08/20 14:36:44.553782,  1] ../source3/auth/token_util.c:430(add_local_groups)
  SID S-1-5-21-1934213540-918117097-1557597498-1000 -> getpwuid(1002) failed
[2016/08/20 14:36:44.554723,  1] ../source3/param/loadparm.c:2389(lp_idmap_range)
  idmap range not specified for domain '*'
[2016/08/20 14:36:44.554938,  1] ../source3/auth/token_util.c:430(add_local_groups)
  SID S-1-5-21-1934213540-918117097-1557597498-1000 -> getpwuid(1002) failed

Aqui está o conteúdo atual do smb.conf, se ajudar alguém. Eu só estou incluindo o que eu mudei; qualquer coisa não mencionada está no padrão:

[global]
  log level = 2
  username map = /etc/samba/smbusers
  encrypt passwords = yes
  security = user    

[All Users]
    comment = Directory accessible to all users
    path = /home/samba/allusers
    guest ok = yes
    read only = no
    browseable = yes
    create mask = 0777
    directory mask = 0777

[Email Backup]
    comment = email backup folder
    path = /home/samba/emailbackup
    guest ok = yes
    read only = no
    browseable = yes
    valid users = xavie emailer +emailbackup

Alguém pode ver qual é o novo problema que estou tendo?

A ajuda será muito apreciada, Atenciosamente

    
por XJDHDR 20.08.2016 / 08:31

1 resposta

2

Consegui descobrir como fazer o que solicitei e postarei as instruções.

  1. Primeiro, você precisa descobrir qual é o nome de usuário que você precisa adicionar. A maneira mais fácil de fazer isso é primeiro adicionar log level = 2 a smb.conf . Em seguida, inicie e ative o serviço Samba. Em seguida, conecte-se ao servidor Samba usando o Gerenciador de arquivos no Windows PC enquanto estiver conectado à conta relevante (não é necessário abrir nenhum diretório compartilhado). Em seguida, abra o arquivo de log encontrado em /var/log/samba/log.<ip address of Windows PC> e o nome de usuário necessário será anotado lá. Agora você pode definir o nível de log como 0, se desejar.
  2. Crie uma conta do Linux para o usuário do Samba usando o comando useradd (ou use um existente, se preferir). Você não precisa se preocupar com senhas com essa conta, mas se você criar uma nova conta, talvez queira bloquear o login nela. O nome de usuário dessa conta não precisa ser o mesmo que o nome mencionado acima, mas seria mais fácil se fosse. O propósito desta conta é para o propósito de permissões de arquivo e para o Linux determinar quais arquivos e diretórios o usuário do Windows tem permissão para acessar.
  3. Crie um usuário do Samba com o mesmo nome da conta do Linux na etapa 2 usando o comando smbpasswd . Verifique se a senha atribuída a essa conta é a mesma usada para a conta do Windows.
  4. Se as contas do Samba e do Windows não compartilharem o mesmo nome de usuário, você deverá adicionar !<Samba user> = <Windows user> a smb.conf ou adicionar <Samba user> = <Windows user> a smbusers e username map = /etc/samba/smbusers a smb.conf .
  5. E deveria ser isso. Certifique-se de definir a opção valid users = em todos os compartilhamentos que você deseja que sejam acessíveis somente pela sua conta do Windows.
por XJDHDR 21.08.2016 / 20:39