Pourquoi Samba n'ajoute-t-il pas un nouvel utilisateur avec "samba-tool"?

8

J'essaie de configurer un partage Samba sur mon serveur Dell Poweredge 860 exécutant 14.04 LTS. Samba est venu désinstallé (quand je l'ai choisi), j'ai juste besoin de le configurer. J'essaie de le connecter à ma machine Windows.

Mon fichier de configuration (répertorié ci-dessous) semble être valide. Je ne reçois aucune erreur avec. C'est une version modifiée de quelque chose que j'ai trouvé sur un tutoriel en ligne.

[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

C'est très bien là-bas. (Je dois noter que j'ai également un compte nommé penguin, mais je veux que tous les utilisateurs soient configurés à l'aide samba-toolcar penguinc'est le seul compte utilisateur qui y sera, et il y aura plus d'utilisateurs qu'aujourd'hui).

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

Je l'ai également essayé avec un autre nom d'utilisateur qui n'est pas sur le système. Ça ne marche pas.

Je ne peux même pas accomplir un simple sudo samba-tool user listsans erreurs!

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'est-ce que je fais mal?

Pingouin anonyme
la source

Réponses:

7

Autant que je sache, samba-toolc'est uniquement pour l'approvisionnement Active Directory (AC). Donc, si vous n'avez pas configuré votre Samba comme serveur AC, samba-tool user addcela ne fonctionnera pas.

Vous devez vous demander si vous avez besoin d'un serveur Active Directory dans votre réseau ou si vous n'avez besoin que d'un simple serveur Samba uniquement avec ses propres utilisateurs.

Si vous avez besoin d'un serveur AC, vous devez suivre le guide fourni par le projet samba lui-même ( https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO ). Mais attention, cette documentation ne suit pas directement ubuntu et vous devez comprendre ce qui en dépend (à savoir DNS, Kerberos, LDAP).

Si vous n'avez besoin que d'un simple serveur qui a des comptes pour son propre but et donne accès à certains dossiers partagés, vous devez suivre les guides de samba3. Samba4 est compatible avec ces configurations pour samba3 et bien que vous deviez smbpasswdcréer un utilisateur dans samba. Les «Guides Samba généraux» de la documentation du serveur Ubuntu devraient vous fournir toutes les informations dont vous avez besoin.

tvn
la source
7

Écrivez simplement ceci à la place dans le terminal:

smbpasswd -a penguin

Et l'utilisateur que vous ajoutez doit être ajouté dans le système Ubuntu, comme un nouvel utilisateur.

Cela peut être fait en utilisant

sudo useradd penguin

ou

sudo adduser penguin
Gustav G
la source
1

Je crains que ce «bug» ne soit mal catégorisé, car il apparaît sous de nombreuses formes différentes. Je viens de trouver un rapport de bug remontant à 2014, rapportant exactement la même chose que j'ai rencontrée:

la liste des utilisateurs de samba-tool ... échoue à plusieurs reprises. Mais alors, faites toutes les autres commandes impliquant samba-tool, sauf: samba-tool -V (qui rapporte correctement le numéro de version)

Voici la pointe (ou je devrais dire «une pointe») de l'iceberg:

acel: / mnt / nsd # liste d'utilisateurs samba-tool Paramètre inconnu rencontré: "acl xattr update mtime" Ignorer le paramètre inconnu "acl xattr update mtime" ERREUR (ldb): exception non interceptée - ldb_search: invalid basedn '(null)' File " /usr/lib/python2.7/dist-packages/samba/netcmd/ init .py ", ligne 175, dans _run renvoie self.run (* args, ** kwargs) Fichier" /usr/lib/python2.7/ dist-packages / samba / netcmd / user.py ", ligne 292, dans l'exécution attrs = [" samaccountname "]) acel: / mnt / nsd # liste d'utilisateurs samba-tool ERREUR (ldb): exception non interceptée - ldb_search: invalid basedn '(null)'
File "/usr/lib/python2.7/dist-packages/samba/netcmd/ init.py ", ligne 175, dans _run, retourne self.run (* args, ** kwargs) Fichier" /usr/lib/python2.7/dist-packages/samba/netcmd/user.py ", ligne 292, en cours d'exécution attrs = ["samaccountname"]) acel: / mnt / nsd # which ldb ldb: Commande introuvable.

Le problème? Après avoir rencontré cela sur un système, j'ai vérifié samba-tool sur trois autres systèmes indépendants (tous Ubuntu), et samba-tool était également cassé sur eux. J'ai trouvé quelques références isolées à des manifestations similaires dans les rapports de bogues, certaines remontant à 4 à 6 ans. J'ai également trouvé plusieurs rapports de bug corrigé ... (cette variation n'est pas corrigée).

Tout ce que je voulais faire était de m'assurer que la base de données des utilisateurs / mots de passe samba était propre, en supprimant un orphelin, et je n'ai pas pu. De toute évidence, si samba-tool ne fonctionne pas (et dans mon cas, j'ai 4 serveurs exécutant Samba, et qu'il ne fonctionne sur aucun d'entre eux), il doit être corrigé.

Le seul autre indice que je puisse offrir: une référence que j'ai lue mentionnait la synchronisation des mots de passe dans Samba comme cause possible. J'ai rencontré cela lorsque samba a rencontré un ID utilisateur orphelin de samba, que j'avais créé en renommant son jumeau d'origine dans le fichier / etc / passwd. J'essayais juste d'utiliser samba-tool pour supprimer l'orphelin. Mais je suppose qu'il est possible que lorsque samba a essayé de synchroniser sa base de données d'utilisateurs avec le système et a trouvé l'utilisateur d'origine manquant, des dommages ont été causés. (?)

Ce n'est pas une réponse. C'est juste une suggestion que le bogue est probablement toujours là, et le meilleur endroit pour commencer à vérifier si vous êtes affecté, est d'exécuter des fonctions simples de samba-tool, pour voir si cela fonctionne correctement:

'samba-tool user list' ou 'samba-tool dbcheck' par exemple.

Tous les miens (1 V4.7 et 3 V4.3) sont cassés. (J'espère que cela t'aides.)

Tb Thomas
la source