我的 Samba 配置有問題。我運行 Samba 已有大約 12 或 13 年了,以前從未見過這種情況。曾經有一段時間,我對 Windows 網域非常了解,但 Windows 世界已經與我擦肩而過,與 Active Directory 一起發展的 Samba 的各個方面都讓我感到困惑。
我的設定非常簡單。我只有一台帶有一些磁碟空間的伺服器和一台印表機,我想在其他 4 台電腦之間共用。這些年來,我一直使用單一 PDC 的簡單網域。最近,有些事情發生了變化。我不知道它是否是 Lucid 的更新,還是 Samba 的特定更新,但我的資料庫中不斷出現一些問題。
有時,我的帳戶密碼會變得「錯誤」。我將能夠登入——我想是使用快取的憑證——但我將無法安裝磁碟機或列印到印表機。我認為這種情況大約每 30 天就會發生一次。也許是 45。另外,我從日誌中註意到機器密碼也變得混亂。
我終於猜到我的資料庫——我已經遷移和更新了大約十幾年——太過時了,所以我刪除了它並從頭開始使用一個新網域。現在又發生了,所以這顯然不是問題所在。
我以為可能只有我的 Windows 7 機器有這種情況,但現在我的 XP 機器也有這種情況。
我不認為這是密碼過期策略的問題。如果是的話,我應該會收到一個提示,說是時候更改我的密碼了,對嗎?當我去調查這樣的事情時,我迷失了net
andpdbedit
和wbinfo
命令的各種排列。我已經習慣了一般不需要它們。我想我曾在某個時候將我的帳戶添加到其中一個帳戶的「網域管理員」群組中,但我不記得這是如何完成的。
我對關於是否應該在我的配置中運行 winbind 的文檔感到特別困惑。我不認為我這樣做,但顯然運行wbinfo
進行診斷需要它,而且我認為運行它不會傷害任何東西。它默認在 Ubuntu 中運行,所以我想保留它並在可能的情況下使用它。我的 /etc/nsswitch.conf 中未引用 Winbind。
我在日誌中收到很多有趣的錯誤訊息,但 Google 沒有引導我理解其中任何一條。 smb.conf 中的一項告訴我我的工作站之一未正確連接:
[2011/08/27 19:02:04, 0] rpc_server/srv_netlog_nt.c:603(_netr_ServerAuthenticate3)
_netr_ServerAuthenticate3: netlogon_creds_server_check failed. Rejecting auth request from client PROXIMA machine account PROXIMA$
許多這樣的內容來自 Google 上的 log.winbindd-idmap,沒有明確表明可能出了什麼問題,或者是否需要修復。 (是的,我需要用於 NFSv4 的 idmapd。)似乎是 Ubuntu 特有的。我不知道我的“配置”可能有什麼“不完整”。
[2011/08/27 19:02:04, 0] winbindd/idmap_tdb.c:287(idmap_tdb_open_db)
Upgrade of IDMAP_VERSION from -1 to 2 is not possible with incomplete configuration
[2011/08/27 19:02:04, 1] winbindd/idmap.c:321(idmap_init_domain)
idmap initialization returned NT_STATUS_UNSUCCESSFUL
我思考log.winbindd 中的這個是無害的,因為 winbindd 只是確定我的伺服器是 PDC 還是其他伺服器:
[2011/08/27 17:55:46, 0] libsmb/namequery.c:75(saf_store)
saf_store: refusing to store 0 length domain or servername!
[2011/08/27 17:55:46, 1] rpc_client/cli_pipe.c:949(cli_pipe_validate_current_pdu)
cli_pipe_validate_current_pdu: RPC fault code DCERPC_FAULT_OP_RNG_ERROR received from host EXCELSIOR!
最後,這是我的 smb.conf:
[global]
workgroup = STARFLEET
map to guest = Bad User
obey pam restrictions = yes
smb passwd file = /var/lib/samba/passdb.tdb
private dir = /var/lib/samba
pam password change = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = yes
log level = 2
load printers = yes
printcap name = cups
add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
add group script = /usr/sbin/addgroup --force-badname %g
add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
logon script = %U.bat
logon path =
logon drive = Z:
logon home =
domain logons = yes
os level = 65
preferred master = yes
domain master = yes
wins support = yes
usershare allow guests = yes
use sendfile = yes
[homes]
comment = Home Directories
path = /data/Users/%U
valid users = %S
read only = no
create mask = 0700
directory mask = 0700
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
browseable = no
browsable = no
share modes = no
[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
printable = yes
browseable = yes
browsable = yes
[data]
path = /data
read only = no
guest ok = yes
[temp]
path = /data/Temp
read only = no
guest ok = yes
[homes]
comment = Home Directories
path = /data/Users/%U
valid users = %S
read only = no
create mask = 0700
directory mask = 0700
那麼...發生了什麼事,我該如何解決它?