Por que o Samba não está adicionando um novo usuário com “samba-tool”?

7

Estou tentando configurar um compartilhamento do Samba no meu servidor em execução Dell Poweredge 860 14.04 LTS. O Samba veio desinstalado (quando eu escolhi), então eu só preciso configurá-lo. Estou tentando conectá-lo à minha máquina Windows.

Meu arquivo de configuração (listado abaixo) parece ser válido. Eu não recebo nenhum erro com isso. É uma versão modificada de algo que encontrei em um tutorial online.

[global]
        workgroup = HOME
        server string = Samba Ubuntu Server
        map to guest = Bad User
        log file = /var/log/samba/log.%m
        max log size = 50
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        local master = No
        dns proxy = No
        idmap config * : backend = tdb

[Queue]
        comment = "A small folder to move files from/to the server. For use by server admin."
        path = /serv/samba/queue
        valid users = penguin
        read only = No
        create mask = 0777
        directory mask = 0777

Tudo bem por lá. (Devo observar que também tenho uma conta chamada penguin , mas desejo que todos os usuários sejam configurados usando samba-tool porque penguin é a única conta de usuário que estará nela e haverá mais usuários do que existe agora).

penguin@Ubuntu-Server-1:~/serv/samba$ sudo samba-tool user add penguin
New Password:
Retype Password:
ERROR(<type 'exceptions.ValueError'>): Failed to add user 'penguin':  - unable to parse dn string
  File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line 176, in run
    uid=uid, uidnumber=uid_number, gidnumber=gid_number, gecos=gecos, loginshell=login_shell)
  File "/usr/lib/python2.7/dist-packages/samba/samdb.py", line 343, in newuser
    dnsdomain = ldb.Dn(self, self.domain_dn()).canonical_str().replace("/", "")

Eu tentei também com outro nome de usuário que não está no sistema. Não funciona.

Eu nem consigo realizar um sudo samba-tool user list simples sem erros!

ERROR(ldb): uncaught exception - ldb_search: invalid basedn '(null)'
  File "/usr/lib/python2.7/dist-packages/samba/netcmd/__init__.py", line 175, in _run
    return self.run(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line 271, in run
    attrs=["samaccountname"])

O que estou fazendo de errado?

    
por Anonymous Penguin 08.06.2014 / 18:00

3 respostas

6

Até onde eu sei, o samba-tool é somente para o provisionamento do Active Directory (AC). Portanto, se você não tiver configurado o seu Samba como servidor AC, samba-tool user add não funcionará.

Você deve se perguntar se precisa de um servidor Active Directory em sua rede ou precisa apenas de um simples Samba-Server apenas com seus próprios usuários.

Se você precisar de um servidor AC, você deve seguir o guia fornecido pelo próprio projeto do samba ( link ). Mas esteja avisado, esta documentação não é compatível com o Ubuntu diretamente e você precisa entender o que está dependendo (DNS, Kerberos, LDAP).

Se você precisar apenas de um servidor simples que tenha algumas contas para seu próprio propósito e forneça acesso a algumas pastas compartilhadas, siga os guias do samba3. O Samba4 é compatível com estas configurações para o samba3 e você precisa de smbpasswd para criar usuário no samba. Os "Guias Gerais do Samba" da Documentação do Servidor Ubuntu devem fornecer todas as informações que você precisa.

    
por tvn 01.07.2014 / 14:40
6

Basta escrever isso no terminal:

smbpasswd -a penguin

E o usuário que você está adicionando precisa ser adicionado no sistema Ubuntu, como um novo usuário.

Isso pode ser feito usando

sudo useradd penguin

ou

sudo adduser penguin
    
por Gustav G 02.01.2015 / 22:38
1

Eu estou preocupado que esse 'bug' possa ser classificado incorretamente, porque está aparecendo de muitas formas diferentes. Acabei de encontrar um relatório de erros que remonta a 2014, relatando exatamente a mesma coisa que encontrei:

lista de usuários da samba-tool ... falha repetidamente. Mas então, todos os outros comandos envolvendo samba-tool, exceto: samba-tool -V (que relata o número da versão corretamente)

Aqui está a dica (ou devo dizer 'uma dica') do iceberg:

acel:/mnt/nsd# samba-tool user list Unknown parameter encountered: "acl xattr update mtime" Ignoring unknown parameter "acl xattr update mtime" ERROR(ldb): uncaught exception - ldb_search: invalid basedn '(null)' File "/usr/lib/python2.7/dist-packages/samba/netcmd/init.py", line 175, in _run return self.run(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line 292, in run attrs=["samaccountname"]) acel:/mnt/nsd# samba-tool user list ERROR(ldb): uncaught exception - ldb_search: invalid basedn '(null)'
File "/usr/lib/python2.7/dist-packages/samba/netcmd/init.py", line 175, in _run return self.run(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line 292, in run attrs=["samaccountname"]) acel:/mnt/nsd# which ldb ldb: Command not found.

O problema? Depois de encontrar isso em um sistema, verifiquei o samba-tool em três outros sistemas independentes (todo o Ubuntu), e o samba-tool também foi quebrado neles. Eu encontrei algumas referências isoladas para manifestações semelhantes em relatórios de bugs, alguns voltando 4-6 anos. Também encontrei vários relatos de que o bug foi "consertado" ... (essa variação não é fixa).

Tudo o que eu queria fazer era garantir que o banco de dados de usuário / senha do samba estivesse limpo, removendo um órfão, e eu não poderia. Claramente, se a ferramenta de samba não está funcionando (e no meu caso, eu tenho 4 servidores executando o Samba, e não está funcionando em nenhum deles) ele precisa ser corrigido.

A única pista que posso oferecer: uma referência que li mencionou o recurso de sincronização de senhas no Samba como uma possível causa. Eu encontrei isso quando o samba encontrou um userid órfão do samba, que eu havia criado renomeando seu gêmeo original no arquivo / etc / passwd. Eu estava apenas tentando usar a ferramenta samba para remover o órfão. Mas suponho que seja possível que, quando o samba tentou sincronizar seu banco de dados do usuário com o sistema e descobriu que o usuário original estava faltando, algum dano foi feito. (?)

Esta não é uma resposta. É apenas uma sugestão de que o bug provavelmente ainda está por aí, e o melhor lugar para começar a checar se você é afetado, é executar funções simples do samba-tool, para ver se ele está funcionando corretamente:

'lista de usuários da samba-tool' ou 'samba-tool dbcheck' por exemplo.

Todos os meus (1 V4.7 e 3 V4.3) estão quebrados. (Espero que isso ajude.)

    
por 19.10.2018 / 03:39