从 CentOS 4 升级到 6 后,新的 samba 用户无法登录工作站

从 CentOS 4 升级到 6 后,新的 samba 用户无法登录工作站

我有一台 CentOS 服务器,已经运行了大约 10 年。每隔几年,我就会清理它,安装最新的 CentOS,并重新配置所有服务。显然,很多硬件也发生了变化。

这台机器直到最近还在运行带有 samba 3.x 的 CentOS 4,并充当 Windows XP 机器的小型办公网络的 PDC。我将其清除并安装了最新的 CentOS 6 和 samba 3.6.9。然后我复制了旧的配置文件并调整了所有testparm有问题的内容。

一切似乎都运行良好——现有用户可以使用现有的 Windows 域登录到他们的 Windows 工作站。

以下是服务器设置的 testparm 转储:

[global]
    workgroup = RRMSC_DOM
    server string = RRM Primary Domain Controller Samba Server
    interfaces = 192.168.231.0/24, 10.8.3.0/24
    smb passwd file = /etc/samba/smbpasswd
    passdb backend = smbpasswd
    log file = /var/log/samba/smbd.log
    max log size = 50
    smb ports = 139
    time server = Yes
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    printcap name = /etc/printcap
    add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %m$
    logon script = logon.bat
    logon path = \\%L\Profiles\%U
    domain logons = Yes
    os level = 255
    preferred master = Yes
    domain master = Yes
    dns proxy = No
    wins support = Yes
    message command = /bin/mail -s 'message from #% on %M< %S; rm %S
    idmap config * : backend = tdb
    admin users = root, sdc
    hosts allow = 192.168.231.0/24, 127.0.0.1, 10.8.3.0/24
    cups options = raw

最近我添加了一个新用户吉姆。按照使用的标准程序useradd添加此用户,并将他添加到与其他用户相同的 unix 组中。我用 设置他的 unix 密码,passwd用 设置他的 samba 密码smbpasswd

然而,我发现吉姆无法登录办公室中的任何 Windows 工作站。在 Windows 工作站上,您会看到消息“登录失败:未知用户名或密码错误。”

我已经检查了 Windows 工作站上的 eventvwr,没有发现与登录失败相关的任何内容。

为了在 Linux 服务器端解决这个问题,我将 smb.conf 中的日志级别提高到

log level = 2 auth:10

我在日志中看到这一点:

[2013/05/14 20:28:21.994731,  5] auth/auth_util.c:211(make_user_info_map)
  Mapping user [RRMSC_DOM]\[jim] from workstation [UNCONFINED]
[2013/05/14 20:28:21.994754,  5] auth/auth_util.c:122(make_user_info)
  attempting to make a user_info for jim (jim)
[2013/05/14 20:28:21.994773,  5] auth/auth_util.c:132(make_user_info)
  making strings for jim's user_info struct
[2013/05/14 20:28:21.994792,  5] auth/auth_util.c:164(make_user_info)
  making blobs for jim's user_info struct
[2013/05/14 20:28:21.994811, 10] auth/auth_util.c:182(make_user_info)
  made an encrypted user_info for jim (jim)
[2013/05/14 20:28:21.994829,  3] auth/auth.c:216(check_ntlm_password)
  check_ntlm_password:  Checking password for unmapped user [RRMSC_DOM]\[jim]@[UNCONFINED] with the new password interface
[2013/05/14 20:28:21.994851,  3] auth/auth.c:219(check_ntlm_password)
  check_ntlm_password:  mapped user is: [RRMSC_DOM]\[jim]@[UNCONFINED]
[2013/05/14 20:28:21.994882, 10] auth/auth.c:228(check_ntlm_password)
  check_ntlm_password: auth_context challenge created by random
[2013/05/14 20:28:21.994901, 10] auth/auth.c:230(check_ntlm_password)
  challenge is: 
[2013/05/14 20:28:21.994921, 10] auth/auth.c:256(check_ntlm_password)
  check_ntlm_password: guest had nothing to say
[2013/05/14 20:28:21.995773,  4] auth/auth_sam.c:180(sam_account_ok)
  sam_account_ok: Checking SMB password for user jim
[2013/05/14 20:28:21.995816,  5] auth/auth_sam.c:162(logon_hours_ok)
  logon_hours_ok: user jim allowed to logon at this time (Wed May 15 03:28:21 2013
  )
[2013/05/14 20:28:21.996529,  5] auth/auth_util.c:649(make_server_info_sam)
  make_server_info_sam: made server info for user jim -> jim
[2013/05/14 20:28:21.996573,  3] auth/auth.c:265(check_ntlm_password)
  check_ntlm_password: sam authentication for user [jim] succeeded
[2013/05/14 20:28:21.996611,  5] auth/auth.c:291(check_ntlm_password)
  check_ntlm_password:  PAM Account for user [jim] succeeded
[2013/05/14 20:28:21.996630,  2] auth/auth.c:304(check_ntlm_password)
  check_ntlm_password:  authentication for user [jim] -> [jim] -> [jim] succeeded
[2013/05/14 20:28:21.996652,  5] auth/auth_util.c:2119(free_user_info)
  attempting to free (and zero) a user_info structure
[2013/05/14 20:28:21.996670, 10] auth/auth_util.c:2123(free_user_info)
  structure was created for jim

让我特别困惑的是有关 的消息authentication for use [jim] succeeded。这似乎表明用户在服务器上正确登录,但他无法在工作站上登录。

那么有人能告诉我这里出了什么问题或者我应该在哪里进行故障排除吗?

请注意,我之前已在此机器上将 selinux 设置为禁用,因此这不是 selinux 问题。

答案1

一些网友认为这可能是某种缓存造成的。基于此,我决定尝试从域中删除一个工作站,然后重新添加。

成功了!我强制工作站清除域并重新添加后,用户 jim 终于可以登录了。哇!

答案2

我猜你需要做的就是使用以下命令禁用 SELinux此链接中概述了此方法。SELinux 可能不是 CentOS4 的一部分。有一种方法可以让 Samba 在启用 SELinux 的情况下工作,但这并不简单。

相关内容