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

Ano*_*uin 8 server samba networking

我正在尝试在运行服务器 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
Run Code Online (Sandbox Code Playgroud)

那里一切都好。(我应该注意,我也有一个名为 的帐户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("/", "")
Run Code Online (Sandbox Code Playgroud)

我也试过用另一个不在系统上的用户名。它不起作用。

我什至不能完成一个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"])
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

tvn*_*tvn 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 的指南。Samba4 与 samba3 的这些设置兼容,尽管您需要smbpasswd在 samba 中创建用户。Ubuntu 服务器文档的“General Samba Guides”应该为您提供所需的所有信息。


小智 7

只需在终端中写这个:

smbpasswd -a penguin
Run Code Online (Sandbox Code Playgroud)

并且您添加的用户需要在Ubuntu系统中添加,就像新用户一样。

这可以使用

sudo useradd penguin
Run Code Online (Sandbox Code Playgroud)

或者

sudo adduser penguin
Run Code Online (Sandbox Code Playgroud)