特定的 Windows 使用者以“nobody”而不是給定的使用者名連接到 samba 共享?
我們有一個執行 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是否是成員(以及其他所有人)。