Active Directory 集成无法与 winbind 和 samba 正常配合

Active Directory 集成无法与 winbind 和 samba 正常配合

我正在尝试让我的 Linux 机器使用 Active Directory 身份验证。我相信我几乎已经正确设置了所有内容。我能够分别发出wbinfo -gwbinfo -u查看所有组和用户。

我的设置简要介绍:

我在 Linux 机器上执行管理操作时使用的用户名是nick。我的活动目录用户名是nwalke。它们有两个不同的密码。我可以使用 和该用户的密码登录机器nick,也可以使用nwalkenwalke密码登录。

令人好奇的是:

在创建活动目录用户的主目录后,我运行了一个需要 root 访问权限的脚本。这是为他们设置一些系统范围的东西,比如 samba 共享。当我以 身份登录时nwalke,我输入我的nwalke密码,然后成功了。然后我收到了[sudo] password for nick:。如果我nwalke在这里输入我的密码,它会说Sorry, try again.。如果我输入nick的密码,它会说Sorry, user nick is not allowed to execute scriptname as root

如果我groups这样做nwalke,我会发现我的用户神奇地被赋予了该组nick

现在,我意外地认为nickUID 是 100,而不是 1000。所以最初在我的账户中smb.conf我有idmap uid 1000-10000。我唯一能想到的是,我在仍设置该值时使用 进行登录nwalke,现在我得到的只是 UID 1000,这迫使 Linux 认为我是nick

我不太确定接下来该怎么做。就像我说的,我相当确定 Active Directory 正在与我的服务器正确通信,但 Linux 端肯定有什么东西没有正确映射。

有什么想法吗?

这是我的smb.conf

[global]
    security = ads
    netbios name = hostname
    realm = COMPANY.COM
    password server = adshost.company.com
    workgroup = COMPANY
    idmap uid = 10000-90000
    idmap gid = 10000-90000
    winbind separator = +
    winbind enum users = no
    winbind enum groups = no
    winbind use default domain = yes
    template homedir = /home/%D/%U
    template shell = /bin/bash
    client use spnego = yes
    domain master = no
    load printers = no
    printing = bsd
    printcap name = /dev/null
    disable spoolss = yes

我是否需要以某种方式绑定到Linux机器上的用户?

答案1

听起来你的 UID 有重叠。
如果nwalke和共享相同的数字 UID,则第一个 nsswitch 匹配将获胜,nick例如,,等(并且第一个匹配通常不在 passwd 文件中,除非你更改了或等效顺序)。idsudols/etc/nsswitch.conf

(登录可以使用任意名称,因为登录会按名称查找用户。但是如果两个用户同名,将会引起一些有趣的混乱……)

您的本地(/etc/passwd/etc/group)和远程(NIS、Samba、LDAP 等)UID/GID 不应重叠。解决该核心问题,其余问题将迎刃而解。

答案2

我已将 smb.conf 中的值更改为 10,000,但仍然感觉 nwalke 与 1000 配对。我该如何解决这个问题?

我不记得它是哪个文件,而且我目前没有系统可以检查。

当用户首次连接时,系统会分配一个 ID,然后将其存储在 Samba 数据库之一中。/var/lib/samba/ 查看该文件夹,可能很明显它是哪个文件。您可以尝试停止 Samba,然后移动/删除那里的所有文件,但您需要重新加入域,因为计算机帐户凭据也存储在其中一个数据库中。

相关内容