J'essaie de configurer un partage Samba sur le serveur 14.04 LTS de mon serveur Dell Poweredge 860 exécutant. Samba est arrivé désinstallé (quand je l’ai choisi), je dois donc le configurer. J'essaie de le connecter à ma machine Windows.
Mon fichier de configuration (listé ci-dessous) semble être valide. Je ne reçois aucune erreur avec cela. 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
Tout va bien là-bas. (Je dois également noter que j’ai aussi un compte nommé penguin
, mais je veux que tous les utilisateurs soient configurés à l’aide de samba-tool
car penguin
est le seul compte utilisateur qui y sera, et il y aura plus d’utilisateurs que maintenant).
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 essayé aussi 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 list
sans 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?
Autant que je sache, le samba-tool
est destiné à l'approvisionnement d'Active Directory (AC) uniquement. Donc, si vous n'avez pas configuré votre Samba en tant que serveur AC, samba-tool user add
ne fonctionnera pas.
Vous devez vous demander si vous avez besoin d'un serveur Active Directory sur votre réseau ou si vous avez besoin 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 soyez averti, cette documentation ne correspond pas directement à Ubuntu et vous devez comprendre les éléments qui en dépendent (à savoir DNS, Kerberos, LDAP).
Si vous n'avez besoin que d'un serveur simple disposant de comptes pour son propre usage et donnant accès à certains dossiers partagés, suivez les guides de samba3. Samba4 est compatible avec ces configurations de samba3 et vous avez besoin de smbpasswd
pour créer un utilisateur dans samba. Les "Guides généraux de samba" de la documentation du serveur Ubunt devraient vous donner toutes les informations dont vous avez besoin.
Il suffit d'écrire ceci à la place dans le terminal:
smbpasswd -a penguin
Et l'utilisateur que vous ajoutez doit être ajouté au système Ubuntu, comme un nouvel utilisateur.
Cela peut être fait en utilisant
Sudo useradd penguin
ou
Sudo adduser penguin
Je crains que ce "bogue" ne soit mal catégorisé, car il apparaît sous tant de formes différentes. Je viens de trouver un rapport de bogue remontant à 2014, rapportant exactement la même chose que celle que j'ai rencontrée:
la liste des utilisateurs de samba-tool ... échoue à plusieurs reprises. Mais alors, il en va de même pour toutes les autres commandes impliquant samba-tool, à l'exception de: samba-tool -V (qui indique correctement le numéro de version)
Voici le conseil (ou devrais-je dire "un conseil") 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 capturée - ldb_search: invalid basedn '(null)' Fichier "/usr/lib/python2.7/dist-packages/samba/netcmd/init.py", ligne 175, dans _run return 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 # samba-tool liste d'utilisateurs ERROR (ldb): exception non capturée - ldb_search: invalid basedn '(null)'
Fichier "/usr/lib/python2.7/dist-packages/samba/netcmd/init.py", ligne 175, dans _run return self.run (* arguments, * * kwargs) Fichier "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", ligne 292, dans l'exécution attrs = ["samaccountname"]) acel:/mnt/nsd # which ldb ldb : Commande non trouvée.
Le problème? Après avoir rencontré ceci sur un système, j'ai vérifié samba-tool sur trois autres systèmes indépendants (tous Ubuntu), et samba-tool était cassé sur eux aussi. J'ai trouvé quelques références isolées à des manifestations similaires dans des rapports de bugs, certains remontant à 4-6 ans. J'ai également trouvé plusieurs rapports indiquant que le bogue avait été "corrigé" ... (cette variante n'est pas corrigée).
Tout ce que je voulais faire, c'était m'assurer que la base de données d'utilisateurs/mots de passe samba était propre en supprimant un orphelin, et je ne pouvais pas. Clairement, si samba-tool ne fonctionne pas (et dans mon cas, j'ai 4 serveurs exécutant Samba et que cela ne fonctionne sur aucun d’eux), il doit être corrigé.
Le seul autre indice que je puisse offrir: une référence que j'ai lue mentionne la synchronisation des mots de passe dans Samba comme cause possible. J'ai rencontré ce problème lorsque Samba a rencontré un ID utilisateur de samba Orphan, 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 que c’est possible que lorsque samba ait tenté de synchroniser sa base de données d’utilisateurs avec le système et trouvé l’utilisateur manquant, des dommages aient été causés. (?)
Ce n'est pas une réponse. C'est simplement une suggestion que le bogue est probablement toujours présent, et le meilleur endroit pour commencer à vérifier si vous êtes affecté est d'exécuter des fonctions simples de samba-tool, pour voir s'il 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.)