为什么Samba不使用“ samba-tool”添加新用户?


8

我试图在运行服务器14.04 LTS的Dell Poweredge 860上配置Samba共享。Samba被卸载了(当我选择它的时候),所以我只需要配置它。我正在尝试将其连接到Windows计算机。

我的配置文件(在下面列出)似乎有效。我没有任何错误。这是我在在线教程中找到的内容的修改版本。

[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

没事的。(我应该注意,我也有一个名为的帐户penguin,但是我希望所有用户都使用该帐户进行配置,samba-tool因为这penguin是唯一的用户帐户,并且用户数量将超过现在)。

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

我也尝试过使用不在系统上的另一个用户名。没用

sudo 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 271, in run
    attrs=["samaccountname"])

我究竟做错了什么?

Answers:


7

据我所知,samba-tool仅适用于Active Directory(AC)设置。因此,如果您尚未将Samba设置为AC服务器,samba-tool user add则将无法使用。

您应该问自己是否需要网络中的Active Directory服务器,或者只需要拥有自己用户的简单Samba服务器即可。

如果您需要一台AC服务器,则应遵循samba项目本身提供的指南(https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO)。但请注意,本文档不能直接适合ubuntu,您需要了解依赖于它的内容(即DNS,Kerberos,LDAP)。

如果您只需要一个简单的服务器,该服务器本身具有一些帐户并可以访问某些共享文件夹,则应遵循samba3的指南。尽管您需要smbpasswd在samba中创建用户,但Samba4与samba3的这些设置兼容。Ubuntu服务器文档的“通用Samba指南” 应为您提供所需的所有信息。


7

只需将其写在终端中即可:

smbpasswd -a penguin

您要添加的用户需要像新用户一样被添加到Ubuntu系统中。

可以使用

sudo useradd penguin

要么

sudo adduser penguin

1

我担心这个“错误”可能会被错误分类,因为它以多种不同的形式出现。我刚刚发现了一个错误报告可以追溯到2014年,报告的内容与我遇到的完全相同:

samba-tool用户列表...反复失败。但是,其他所有涉及samba-tool的命令也要这样做,除了:samba-tool -V(正确报告版本号)

这是冰山的一角(或者我应该说“一角”):

acel:/ mnt / nsd#samba工具用户列表遇到未知参数:“ acl xattr更新mtime”忽略未知参数“ acl xattr更新mtime” ERROR(ldb):未捕获的异常-ldb_search:无效的basedn'(null)'File“ /usr/lib/python2.7/dist-packages/samba/netcmd/ init .py“,第175行,在_run中返回self.run(* args,** kwargs)文件” /usr/lib/python2.7/ dist-packages / samba / netcmd / user.py“,第292行,运行attrs = [” samaccountname“])acel:/ mnt / nsd#samba工具用户列表ERROR(ldb):未捕获的异常-ldb_search:基于无效的n '(null)'
文件“ /usr/lib/python2.7/dist-packages/samba/netcmd/ init.py“,第175行,在_run中返回self.run(* args,** kwargs)文件“ /usr/lib/python2.7/dist-packages/samba/netcmd/user.py”,第292行,正在运行attrs = [“ samaccountname”])acel:/ mnt / nsd#其中的ldb ldb:找不到命令。

问题?在一个系统上遇到此问题后,我检查了其他三个独立系统(均为Ubuntu)上的samba-tool,并且在它们上的samba-tool也被破坏了。我在错误报告中发现了一些类似现象的单独引用,有些可以追溯到4-6年。我还发现了一些有关该错误已“修复”的报告...(此变化未修复)。

我要做的就是通过删除一个孤儿来确保samba用户/密码数据库是干净的,而我做不到。显然,如果samba-tool无法正常工作(在我的情况下,我有4台运行Samba的服务器,并且在其中的任何服务器上均不工作),则需要对其进行修复。

我可以提供的唯一其他线索是:我阅读的一份参考资料提到Samba中密码同步功能是可能的原因。当samba遇到一个孤立的samba用户ID时,我遇到了这个问题,该ID是通过在/ etc / passwd文件中重命名其原始双胞胎而创建的。我只是在尝试使用samba-tool来删除孤儿。但是我认为当samba尝试将其用户数据库与系统同步并发现缺少原始用户时,可能会造成一定程度的损害。(?)

这不是答案。它只是一个建议,表明该错误可能仍然存在,并且开始检查是否受到影响的最佳位置是运行samba-tool简单功能,以查看其是否正常运行:

例如,“ samba-tool用户列表”或“ samba-tool dbcheck”。

我的所有(1 V4.7和3 V4.3)都损坏了。(希望这可以帮助。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.