Perché Samba non sta aggiungendo un nuovo utente con "samba-tool"?


8

Sto cercando di configurare una condivisione Samba sul mio Dell Poweredge 860 con server 14.04 LTS. Samba è venuto disinstallato (quando l'ho scelto), quindi ho solo bisogno di configurarlo. Sto provando a collegarlo al mio computer Windows.

Il mio file di configurazione (elencato di seguito) sembra essere valido. Non ci sono errori. È una versione modificata di qualcosa che ho trovato in un 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

Va tutto bene lì. (Dovrei notare che ho anche un account chiamato penguin, ma voglio che tutti gli utenti siano configurati usando samba-toolperché penguinè l'unico account utente che sarà su di esso e ci saranno più utenti di quanti ce ne siano ora).

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

L'ho provato anche con un altro nome utente non presente nel sistema. Non funziona

Non riesco nemmeno a realizzare un semplice sudo samba-tool user listsenza errori!

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

Che cosa sto facendo di sbagliato?

Risposte:


7

Per quanto ne so, samba-toolè solo per il provisioning di Active Directory (AC). Quindi, se non hai configurato Samba come server AC, samba-tool user addnon funzionerà.

Dovresti chiederti se hai bisogno di un server Active Directory nella tua rete o hai solo bisogno di un semplice server Samba solo con i suoi utenti.

Nel caso in cui sia necessario un server AC, è necessario seguire la guida fornita dal progetto samba stesso ( https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO ). Ma attenzione, questa documentazione non si collega direttamente a Ubuntu ed è necessario comprendere le cose che dipendono da esso (vale a dire DNS, Kerberos, LDAP).

Se hai solo bisogno di un server semplice che abbia alcuni account per il suo scopo e fornisca l'accesso ad alcune cartelle condivise, dovresti seguire le guide per samba3. Samba4 è compatibile con queste configurazioni con samba3 e sebbene sia necessario smbpasswdcreare l'utente in samba. Le "Guide generali Samba" della documentazione di Ubuntu Server dovrebbero fornirti tutte le informazioni di cui hai bisogno.


7

Basta scrivere questo invece nel terminale:

smbpasswd -a penguin

E l'utente che stai aggiungendo deve essere aggiunto nel sistema Ubuntu, come un nuovo utente.

Questo può essere fatto usando

sudo useradd penguin

o

sudo adduser penguin

1

Sono preoccupato che questo "bug" possa essere classificato erroneamente, perché si presenta in così tante forme diverse. Ho appena trovato una segnalazione di bug risalente al 2014, che riportava esattamente la stessa cosa che ho riscontrato:

elenco utenti samba-tool ... fallisce ripetutamente. Ma poi, così fanno tutti gli altri comandi che coinvolgono samba-tool, tranne: samba-tool -V (che riporta correttamente il numero di versione)

Ecco il suggerimento (o dovrei dire 'un suggerimento') dell'iceberg:

acel: / mnt / nsd # elenco utenti samba-tool Parametro sconosciuto rilevato: "acl xattr update mtime" Ignora parametro sconosciuto "acl xattr update mtime" ERRORE (ldb): eccezione non rilevata - ldb_search: invalid basedn '(null)' File " /usr/lib/python2.7/dist-packages/samba/netcmd/ init .py ", riga 175, in _run return self.run (* args, ** kwargs) File" /usr/lib/python2.7/ dist-pacchetti / samba / netcmd / user.py ", riga 292, in esecuzione attrs = [" nome account sam "]) acel: / mnt / nsd # samba-tool user list ERROR (ldb): eccezione non rilevata - ldb_search: invalid basedn '(null)'
File "/usr/lib/python2.7/dist-packages/samba/netcmd/ init.py ", riga 175, in _run return self.run (* args, ** kwargs) File" /usr/lib/python2.7/dist-packages/samba/netcmd/user.py ", riga 292, in esecuzione attrs = ["samaccountname"]) acel: / mnt / nsd # which ldb ldb: comando non trovato.

Il problema? Dopo aver riscontrato questo su un sistema, ho controllato samba-tool su altri tre sistemi indipendenti (tutti Ubuntu) e anche su samba-tool è stato rotto. Ho trovato alcuni riferimenti isolati a manifestazioni simili nelle segnalazioni di bug, alcuni risalenti a 4-6 anni. Ho anche trovato diversi rapporti sul bug che sono stati "riparati" ... (questa variazione non è stata risolta).

Tutto quello che volevo fare era assicurarmi che il database utente / password di samba fosse pulito, rimuovendo un orfano, e non potevo. Chiaramente, se samba-tool non funziona (e nel mio caso, ho 4 server che eseguono Samba e non funziona su nessuno di essi) deve essere riparato.

L'unico altro indizio che posso offrire: un riferimento che ho letto menzionava la sincronizzazione della funzione password in Samba come possibile causa. Ho riscontrato questo quando samba ha incontrato un idid samba orfano, che avevo creato rinominando il suo gemello originale nel file / etc / passwd. Stavo solo cercando di usare lo strumento samba per rimuovere l'orfano. Ma suppongo sia possibile che quando samba abbia provato a sincronizzare il suo database utente con il sistema e abbia riscontrato la mancanza dell'utente originale, si sia verificato un danno. (?)

Questa non è una risposta È solo un suggerimento che il bug probabilmente è ancora là fuori, e il posto migliore per iniziare a controllare per vedere se sei interessato, è eseguire semplici funzioni di samba-tool, per vedere se funziona correttamente:

'samba-tool user list' o 'samba-tool dbcheck' per esempio.

Tutti i miei (1 V4.7 e 3 V4.3) sono rotti. (Spero che sia di aiuto.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.