getent 组中的 winbind 分隔符和组名行为不断变化

getent 组中的 winbind 分隔符和组名行为不断变化

我遇到了一个问题,它偶尔会出现然后又消失,这让我很抓狂。

我的 Debian 服务器通过 AD 进行身份验证,只有“linuxadmins”组成员可以通过 SSH 连接到服务器并“sudo su”。

SSH 登录正常,没有任何问题,但用户在使用 sudo 时收到错误“用户 xyz 不在 sudoers 中”

我的 /etc/sudoers 包含 AD 组名

%linuxadmins ALL =(ALL) ALL

和 samba conf

#GLOBAL PARAMETERS
[global]
   workgroup = RKAS
   realm = RKAS.RK
   preferred master = no
   server string = SEP DEV Server
   security = ADS
   encrypt passwords = true
   log level = 3
   log file = /var/log/samba/%m
   max log size = 50
   printcap name = cups
   printing = cups
   winbind enum users = Yes
   winbind enum groups = Yes
   winbind use default domain = Yes
   winbind nested groups = Yes
   #winbind separator = +
   #idmap uid = 600-20000
   #idmap gid = 600-20000
   ;template primary group = "Domain Users"
   template shell = /bin/bash
   template homedir = /home/%D/%U
   winbind offline logon = yes
   winbind refresh tickets = yes

问题在于 Samba 处理的组分隔符。

getent group | grep linuxadmins

在几分钟内返回两个不同的结果

linuxadmins:x:784:xyz

或者

\linuxadmins:x:784:xyz

仅当没有 baskslash 时,用户才能够使用 sudo。

怎么了?我不明白为什么它在组名中不断添加反斜杠并将其删除?

普通账户:

account [success=2 new_authtok_reqd=done default=ignore]        pam_unix.so
account [success=1 new_authtok_reqd=done default=ignore]        pam_winbind.so
account required                        pam_permit.so

通用身份验证:

auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login require_membership_of=linuxadmins try_first_pass
auth    required                        pam_permit.so

没有共同制度,只有会话

session     required    pam_mkhomedir.so umask=0022 skel=/etc/skel

我必须补充一点,这种行为发生在所有 Linux 服务器上

答案1

好的,所以实际上idmap uid 范围已被弃用,但它已被替换为:

idmap backend = ad
idmap config *:backend = ad
idmap config *:range = 10000-20000

看,我认为发生了什么.. samba(和相关模块)不知道如何为用户分配正确的 id/uid。

我会将这 3 行放入/etc/samba/smb.conf,清除 Samba 缓存文件(它们都会重新创建),重新启动rm -rf /var/lib/samba/* 所有 Samba 服务,,,winbindd然后尝试,,smbdnmbdwbinfo -uwbinfo -gwbinfo -i $id

您还需要确保所有用户和组都具有 uidNumbers 和 gidNumbers(Active Directory 管理中心,右键单击用户,打开属性,找到属性编辑器,如果尚未设置,请设置 uidnumber 和 gidnumber)。

您还需要为树中的组(包括域用户)提供一个 gidNumber。

相关内容