¿Por qué Samba no agrega un nuevo usuario con "samba-tool"?

8

Estoy tratando de configurar un recurso compartido Samba en mi servidor Dell Poweredge 860 con 14.04 LTS. Samba vino desinstalado (cuando lo elegí), así que solo necesito configurarlo. Estoy tratando de conectarlo a mi máquina con Windows.

Mi archivo de configuración (enumerado a continuación) parece ser válido. No consigo ningún error con eso. Es una versión modificada de algo que encontré en un tutorial en línea.

[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

Eso está bien allí. (Debo señalar que también tengo una cuenta con nombre penguin, pero quiero que todos los usuarios se configuren usando samba-toolporque penguines la única cuenta de usuario que estará en ella, y habrá más usuarios de los que hay ahora).

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("/", "")

Lo probé también con otro nombre de usuario que no está en el sistema. No funciona

¡Ni siquiera puedo lograr un simple sudo samba-tool user listsin errores!

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"])

¿Qué estoy haciendo mal?

Pingüino anónimo
fuente

Respuestas:

7

Hasta donde yo sé, samba-tooles solo para el aprovisionamiento de Active Directory (AC). Entonces, si no ha configurado su Samba como servidor de CA, samba-tool user addno funcionará.

Debe preguntarse si necesita un servidor de Active Directory en su red o si solo necesita un servidor Samba simple solo con sus propios usuarios.

En caso de que necesite un servidor de CA, debe seguir la guía que proporciona el proyecto samba en sí ( https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO ). Pero tenga en cuenta que esta documentación no se adapta directamente a ubuntu y debe comprender las cosas que dependen de ella (es decir, DNS, Kerberos, LDAP).

Si solo necesita un servidor simple que tenga algunas Cuentas para su propio propósito y brinde acceso a algunas carpetas compartidas, debe seguir las guías para samba3. Samba4 es compatible con estas configuraciones para samba3 y aunque necesita smbpasswdcrear un usuario en samba. Las "Guías generales de Samba" de la Documentación del servidor Ubuntu deben proporcionarle toda la información que necesita.

tvn
fuente
7

Solo escribe esto en la terminal:

smbpasswd -a penguin

Y el usuario que está agregando debe agregarse en el sistema Ubuntu, como un nuevo usuario.

Eso se puede hacer usando

sudo useradd penguin

o

sudo adduser penguin
Gustav G
fuente
1

Me preocupa que este 'error' pueda estar mal categorizado, porque se muestra en muchas formas diferentes. Acabo de encontrar un informe de error que se remonta a 2014, informando exactamente lo mismo que encontré:

La lista de usuarios de samba-tool ... falla repetidamente. Pero entonces, también lo hacen todos los otros comandos que involucran a samba-tool, excepto: samba-tool -V (que informa el número de versión correctamente)

Aquí está el consejo (o debería decir 'un consejo') del iceberg:

acel: / mnt / nsd # samba-tool lista de usuarios Parámetro desconocido encontrado: "acl xattr update mtime" Ignorando el parámetro desconocido "acl xattr update mtime" ERROR (ldb): excepción no detectada - ldb_search: inválido basado en '(nulo)' Archivo " /usr/lib/python2.7/dist-packages/samba/netcmd/ init .py ", línea 175, en _run return self.run (* args, ** kwargs) File" /usr/lib/python2.7/ dist-packages / samba / netcmd / user.py ", línea 292, en ejecución attrs = [" samaccountname "]) acel: / mnt / nsd # samba-tool user list ERROR (ldb): excepción no detectada - ldb_search: invalid basedn
Archivo '(nulo)' "/usr/lib/python2.7/dist-packages/samba/netcmd/ init.py ", línea 175, en _run return self.run (* args, ** kwargs) Archivo" /usr/lib/python2.7/dist-packages/samba/netcmd/user.py ", línea 292, en ejecución attrs = ["samaccountname"]) acel: / mnt / nsd # que ldb ldb: Comando no encontrado.

¿El problema? Después de encontrar esto en un sistema, verifiqué samba-tool en otros tres sistemas independientes (todos Ubuntu), y samba-tool también se rompió en ellos. Encontré algunas referencias aisladas a manifestaciones similares en informes de errores, algunas de 4 a 6 años atrás. También he encontrado varios informes de que el error ha sido 'arreglado' ... (esta variación no está arreglada).

Todo lo que quería hacer era asegurarme de que la base de datos de usuario / contraseña de samba estuviera limpia, eliminando a un huérfano, y no pude. Claramente, si samba-tool no funciona (y en mi caso, tengo 4 servidores que ejecutan Samba, y no funciona en ninguno de ellos), debe repararse.

La única otra pista que puedo ofrecer: una referencia que leí mencionó la sincronización de la función de contraseñas en Samba como una posible causa. Encontré esto cuando samba encontró un ID de usuario de samba huérfano, que había creado al renombrar su gemelo original en el archivo / etc / passwd. Solo estaba tratando de usar samba-tool para eliminar al huérfano. Pero supongo que es posible que cuando Samba trató de sincronizar su base de datos de usuarios con el sistema, y ​​encontró que faltaba el usuario original, se hizo algún daño. (?)

Esta no es una respuesta. Es solo una sugerencia de que el error probablemente todavía está ahí, y el mejor lugar para comenzar a verificar si está afectado es ejecutar funciones simples de samba-tool, para ver si funciona correctamente:

'samba-tool user list' o 'samba-tool dbcheck' por ejemplo.

Todos los míos (1 V4.7 y 3 V4.3) están rotos. (Espero que esto ayude.)

Tb Thomas
fuente