getent passwd 仅输出本地用户

getent passwd 仅输出本地用户

我想要通过 CentOS 6.4 服务器上的 Active Directory 进行身份验证。

wbinfo -uwbinfo -g显示域用户/组。通过wbinfo -a DOMAIN+userworks 进行身份验证。通过kinit userworks 进行身份验证。

但出于某种原因,getent passwdgetent group显示本地用户/组。我发现了很多关于这个主题的论坛帖子,但没有一个提供可行的解决方案。

这是我的/etc/samba/smb.conf

[global]
        workgroup = DOMAIN
        realm = DOMAIN.LOCAL
        security = ADS
        max log size = 50
        template shell = /bin/bash
        winbind separator = +
        winbind enum users = Yes
        winbind enum groups = Yes
        winbind use default domain = Yes
        idmap config DOMAIN : schema_mode = rfc2307
        idmap config DOMAIN : range = 10000000-29999999
        idmap config DOMAIN : default = yes
        idmap config DOMAIN : backend = ad
        idmap config * : range = 20000-29999
        idmap config * : backend = tdb

/etc/krb5.conf

[libdefaults]
 default_realm = DOMAIN.LOCAL
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 DOMAIN.LOCAL = {
  kdc = ADSERVER.DOMAIN.LOCAL
  admin_server = ADSERVER.DOMAIN.LOCAL
 }

/etc/nsswitch.conf

passwd:     files winbind
shadow:     files winbind
group:      files winbind

AD 服务器运行 Windows Small Business Server 2008。

答案1

我也遇到了同样的问题。就我而言,我忘记在 Ubuntu 上安装 libnss-winbind 和 libpam-winbind 包了。

希望这能帮助那些正在解决这个问题的人;)

答案2

我使用了backend = ad,这需要在 AD 服务器上进行额外配置。我真正想要的是backend = rid,现在一切都正常了。

答案3

以上方法在 CentOS 7 上都不起作用。解决问题的方法是打开

/etc/nsswitch.conf

并在后面加上以下几行:

passwd:     files sss
shadow:     files sss
group:      files sss

使用“winbind”如下:

passwd:     files sss winbind
shadow:     files sss winbind
group:      files sss winbind

保存对文件所做的更改后,所有以下命令:

id <AD user name>
getent passwd
getent group

开始工作。无需重新启动 smbd / nmbd / winbindd。

答案4

我就是这样解决问题的。

更改 /etc/samba/smb.conf

将 idmap 配置 *:backend = ab 更改为 idmap 配置 *:backend = tdb

这样就好了。

这是我的 smb.conf

相关内容