Linux

特定的 Windows 使用者以“nobody”而不是給定的使用者名連接到 samba 共享?

  • January 21, 2013

我們有一個執行 samba 的 Ubuntu 9.04 伺服器,帶有空密碼和主目錄共享,我們有相應的使用者在 Windows 機器上掛載所述共享。本質上,每個使用者在伺服器上都有一個帳戶(與他們的 Windows 機器上的使用者名相同)和**/home/USERNAME中的主目錄,該目錄作為****\SAMBABOX\USERNAME**安裝在他們的本地電腦上,然後他們可以完全訪問.

對於大多數使用者來說,這沒有問題;他們可以毫無問題地讀取、寫入、創建和刪除共享上的文件。以下是在 samba 日誌中看到的這樣一個初始連接:

[2009/12/02 10:30:22,  1] smbd/service.c:make_connection_snum(1115)
 somewindowsbox (192.168.2.123) connect to service ekaufman initially as user ekaufman (uid=1002, gid=1002) (pid 22574)

然而,特別是對於一個使用者,他們不能 - 至少 - 創建某些文件(為 SVN 工作副本鎖定文件)。請注意,這是來自我們 AD 域中的任何 Windows 機器。查看他們的 samba 日誌,他們的初始連接是作為使用者nobody建立的,我終生無法弄清楚原因。

[2009/11/18 10:19:32,  1] smbd/service.c:make_connection_snum(1115)
 somewindowsbox (192.168.2.123) connect to service jdoe initially as user nobody (uid=65534, gid=65534) (pid 15570)

他們在 ubuntu 伺服器上的使用者帳戶或多或少與其他使用者帳戶相同,如**/etc/passwd**所示:

ekaufman:x:1002:1002:,,,:/home/ekaufman:/bin/bash
jdoe:x:1015:1015:,,,:/home/jdoe:/bin/bash

和**/etc/group**:

ekaufman:x:1002:
jdoe:x:1015:

甚至**/etc/shadow**(當然,在發布之前刪除了密碼雜湊):

ekaufman:!:14580:0:99999:7:::
jdoe:!:14572:0:99999:7:::

我什至在 ubuntu 盒子上刪除了他們的帳戶並重新創建了它,沒有任何變化。根據 AD 域控制器的管理員的說法,他們在那裡的帳戶或多或少與其他所有人相同(在那裡刪除和重新創建它會非常複雜)。

如果我從 Windows 機器手動安裝我自己帳戶的共享,強制使用使用者名,它可以正常工作:

C:\> net use z: \\sambabox.local\ekaufman /user:ekaufman
The command was completed successfully

如果我對這個特定的使用者做同樣的事情,它仍然連接為nobody,默默地失敗:

C:\> net use z: \\sambabox.local\jdoe  /user:jdoe
The command was completed successfully

這給我的印像是,無論問題是什麼,它都在 linux 方面。

這是正在使用的整個 smb 配置:

[global]
  null passwords = yes
  guest ok = yes
  security = user
  workgroup = WORKGROUP
  server string = %h server (Samba, Ubuntu)
  dns proxy = no
  log file = /var/log/samba/log.%m
  max log size = 1000
  syslog = 0
  panic action = /usr/share/samba/panic-action %d
  encrypt passwords = true
  passdb backend = tdbsam
  obey pam restrictions = yes
  unix password sync = yes
  passwd program = /usr/bin/passwd %u
  passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
  pam password change = yes
  map to guest = bad user
  usershare allow guests = yes

[homes]
  comment = Home Directories
  browseable = no
  read only = no

[printers]
  comment = All Printers
  browseable = no
  path = /var/spool/samba
  printable = yes
  guest ok = no
  read only = yes
  create mask = 0700

[print$]
  comment = Printer Drivers
  path = /var/lib/samba/printers
  browseable = yes
  read only = yes
  guest ok = no

我發現錯誤是 users.map 中的使用者名映射,我以前用它來將 NIS 使用者名與 AD 帳戶相關聯。將所有 NIS 切換到 AD ServicesForUNIX NIS 後,我忘記刪除這些舊的使用者名映射。

在我的系統上,有一個名為“sambashare”的組。查看jdoe是否是成員(以及其他所有人)。

引用自:https://serverfault.com/questions/90315