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

我有一个偶尔会发生的问题 – 消失,这使我疯狂。

我的Debian服务器通过ADauthentication,只有“linuxadmins”组成员可以通过SSH连接服务器和“sudo su”。

SSHlogin工作,没有问题,但用户在使用sudo时出现“用户xyz不在sudoers”错误

我的/ etc / sudoers包含AD组名

%linuxadmins ALL =(ALL) ALL 

和桑巴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 

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

 getent group | grep linuxadmins 

在几分钟之间给出两个不同的结果

 linuxadmins:x:784:xyz 

要么

 \linuxadmins:x:784:xyz 

如果没有反斜杠,用户只能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:

 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服务器发生的

对,所以实际上 idmap的uid范围已被弃用,但它被replace为:

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

看,我认为正在发生..是桑巴(和相关模块)不知道如何分配正确的ID /用户ID。

我将这3行放入/etc/samba/smb.conf ,清除sambacaching文件(它们全部重新创build) rm -rf /var/lib/samba/*重新启动所有samba服务, winbinddsmbdnmbd ,然后与wbinfo -uwbinfo -gwbinfo -i $id

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

您还需要有一个gidNumber用于对树进行分组,包括域用户。