Active Directory 组成员身份在 Linux 中无法正确反映

Active Directory 组成员身份在 Linux 中无法正确反映

背景:

在隔离网络上。多个 RHEL6 Linux 系统连接到 Windows 2012R2 DC。系统已加入域并使用 DC 进行身份验证。使用 IDMAP_RID。Windows 或 Linux 配置文件没有已知更改。一切都运行了好几年,直到最近才停止。Windows 端的安全配置发生了变化,但这些变化没有得到很好的跟踪。我不得不问那些管理员一些具体的事情。RH 支持不是很有用。

问题:

上个月的某个时候,大多数用户不再显示正确的组信息。所有用户都自动成为“域用户”的成员,因为这是默认的 Windows 组。几乎所有用户都在我创建的名为“程序用户”的 AD 安全组中。当我对所有帐户执行“id”或“groups”时,仅显示“域用户”的成员身份,而不显示其他任何组的成员身份。对于“id”命令,有时它会多次显示该组。

id 返回:

uid=###(username) gid=###(domain user) groups=###(domain user) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

wbinfo -u 和 wbinfo -g 返回所有用户和组的正确列表

getent group Program\Users (和 wbinfo --group-info)返回:

Program users:*:GID#:comma separated list of users

用户列表正确,包括缺少数据的用户。

wbinfo -r 没有返回正确的列表。

我尝试清除 /var/lib/samba/*.tdb,但没有帮助。

一些配置数据:

SMB.CONF:
[global]
   workgroup = DOMAIN0
   password server = server0.DOMAIN0.LOCAL
   realm = DOMAIN0.LOCAL
   security = ads
   idmap config * : backend = tdb
   idmap config * : range = 300000-399999
   idmap config DOMAIN0:backend = rid
   idmap config DOMAIN0:range = 100000-199999
   idmap config DOMAIN0:base_rid = 0
   template shell = /bin/bash
   winbind enum users = no
   winbind enum groups = no
   winbind separator = +
   winbind use default domain = yes
   winbind offline logon = false
   kerberos method = secrets and keytab
   client signing = mandatory
   server signing = mandatory

NSSWITCH.CONF:
passwd:     files winbind
shadow:     files winbind
group:      files winbind
hosts:      files dns

SYSTEM-AUTH:
auth        required      pam_env.so
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_winbind.so use_first_pass
auth        [default=die] pam_faillock.so authfail deny=3 unlock_time=604800 fail_interval=900
auth        required      pam_faillock.so authsucc deny=3 unlock_time=604800 fail_interval=900
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_winbind.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 minlen=14 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=4 remember=24 maxrepeat=3
password    sufficient    pam_unix.so sha512 shadow try_first_pass use_authtok
password    sufficient    pam_winbind.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     required      pam_lastlog.so showfailed
session     optional      pam_oddjob_mkhomedir.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

REQUEST-KEY.CONF
#OP     TYPE    DESCRIPTION     CALLOUT INFO    PROGRAM ARG1 ARG2 ARG3 ...
#====== ======= =============== =============== ===============================
create  user    debug:*         negate          /bin/keyctl negate %k 30 %S
create  user    debug:loop:*    *               |/bin/cat
create  user    debug:*         *               /usr/share/keyutils/request-key-debug.sh %k %d %c %S
negate  *       *               *               /bin/keyctl negate %k 30 %S
create  cifs.spnego  *          *               /usr/sbin/cifs.upcall %k
create  cifs.idmap      *       *               /usr/sbin/cifs.idmap %k
create  dns_resolver  *         *               /usr/sbin/cifs.upcall %k

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

[realms]
 DOMAIN0.LOCAL = {
  kdc = server0.DOMAIN0.LOCAL
 }

答案1

你找到解决方案了吗?解决方案似乎是

wbinfo -a user%passwd

别问我为什么。

https://bugs.debian.org/cgi-bin/bugr...cgi?bug=454670

相关内容