我正在運行 SLES 11.4,當用戶嘗試使用smbpasswd
.作為 root,如果我smbpasswd
為使用者帳戶執行此操作,那麼就可以了。一旦smbpasswd
設定完畢,samba 伺服器就可以正常運作,使用者可以存取或不存取他們應該存取的所有內容。在開啟日誌記錄等級 10 專門寫入 時/var/log/samba.log
,我發現了這一點:
gid_to_sid: winbind failed to find a sid for gid 100
LEGACY: gid 100 -> sid S-1-22-2-100
Forcing Primary Group to 'Domain Users' for ron
該日誌檔案是為了在命令提示字元下執行以下操作而產生的,我自己以 Linux 中的常規使用者身分登入。它以看起來成功的方式結束,但 smbpasswd 沒有改變。
ron/Desktop> smbpasswd
Old SMB password:
New SMB password:
Retype new SMB password:
cli_negprot: SMB signing is mandatory and the server doesn't support it.
machine 127.0.0.1 rejected the negotiate protocol. Error was : NT_STATUS_ACCESS_DENIED.
Password changed for user ron
ron/Desktop>
有人知道問題是什麼以及如何糾正它嗎?我正在嘗試盡可能簡單地運行 samba 伺服器,共享一個資料夾並在本地完成所有 samba 密碼。
答案1
因此,如果您正在測試,作為非 root 用戶,在使用 smbpasswd 時,您必須使用長度為 5 個字元或更長的密碼。當我使用 4 個時失敗,但 5 個或更多有效。作為 root,您可以smbpasswd <username>
成功地使用任何字元長度。所以要注意這一點。
我的 /etc/samba/smb.conf 檔案是這樣的,它解決了問題,特別是server signing = auto
似乎obey pam restrictions
沒有影響,我透過多次更改所有密碼要求{參見下圖}並重新啟動 smb 和 nmb 進行驗證,似乎是什麼讓這一切順利進行的是server signing = auto
[global]
workgroup = abc.com
passdb backend = tdbsam
map to guest = Bad User
usershare allow guests = No
add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$
domain master = No
security = user
wins support = No
log file = /var/log/samba.log
log level = 10
# client signing = auto
server signing = auto {need this to allow users to use smbpasswd successfully}
# obey pam restrictions = Yes
# pam password change = Yes