我想將 NT 群組對應Domain Users
到與 Samba 4.7.6 Active Directory 網域控制站上不同的 UNIX 群組users
,但是當我嘗試執行此操作時,它會失敗,如下所示:
> net groupmap modify ntgroup='Domain Users' unixgroup='share' type=domain
Could not update group database
[255]
我讀到您現在可以使用 winbind 執行此操作,因此我嘗試了,但隨後出現以下錯誤。
> wbinfo --set-gid-mapping=1000,S-1-5-21-...-513
failed to call wbcSetGidMapping: WBC_ERR_NOT_IMPLEMENTED
Could not create or modify gid to sid mapping
[1]
在 Samba 4 中管理 NT 到 UNIX 群組映射的正確方法是什麼?
編輯:在 Samba 郵件清單中我發現有人類似的問題,所以也許我可以透過直接修改內部 LDAP 伺服器來解決這個問題?就像是:
ldbadd /var/lib/samba/private/sam.ldb.d/metadata.tdb ...
不幸的是,我沒有使用 LDAP 的經驗,因此我不知道如何為我的用例提供有效的 LDIF 檔案。
編輯2:感謝一個關於 LDAP 中的 Samba 4 使用者和群組管理的部落格文章,我設法編輯 NT 群組映射到的 UNIX 群組:
> ldbedit -e nano -H /var/lib/samba/private/idmap.ldb '(objectSid=S-1-5-21-1580746459-3543417057-3597883204-513)'
> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:100:
> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share
因此,現在正在報告正確的群組net groupmap
,但wbinfo
仍會報告舊值,因此它可能無法從該資料庫取得資料。我不確定wbinfo
報告正確的群組對於我的用例有多重要,但在使用它作為我的答案並將其標記為已解決之前,我會看看是否可以更改它。
答案1
據我所知,除了直接編輯內建 LDAP 伺服器之外,Samba 4 中似乎沒有任何工具可以讓您正確配置此功能。
該net
工具似乎無法很好地與內建 LDAP 伺服器配合使用,只有某些操作成功,例如列出群組映射和授予權限工作,但列出群組成員或修改群組映射不起作用(如我的問題)。
為了修改映射,我以 root 身分執行了以下命令。首先,我們必須檢索 的 SID Domain Users
,因為它對於 Samba 伺服器的每次設定都是唯一的。
root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> users
xidNumber: 100
然後,我們透過使用預期的 UNIX GID來更新內建 LDAP 伺服器的 SID 記錄:
root> ldbedit -e nano -H /var/lib/samba/private/idmap.ldb '(objectSid=S-1-5-21-1580746459-3543417057-3597883204-513)'
# 0 adds 1 modifies 0 deletes
假設您將其變更為250
名為 的 UNIX 群組的GID share
,那麼呼叫net groupmap
將導致傳回的群組為share
:
root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share
但wbinfo
仍然winbindd
會報告舊的 GID:
root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:100:
所以我們必須使 的快取條目無效Domain Users
。經過一些實驗後,我設法透過要求它找到更新的 GID 來做到這一點:
root> wbinfo --gid-info 250
AD.EXAMPLE\domain users:x:250:
然後也可以透過以下方式正確報告--group-info
:
root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:250: