Samba 3, LDAP, PDC, member 速記

[華語, cmn-Hant-TW]

剛好有兩到三台 samba 3 分享的需求,所以研究了一下怎麼把這堆機器串到 ldap 上。

看了一下 standalone 的架構不好管理,所以就用 domain controller (pdc) 加 members 的形式,也就是只有 pdc 串到 ldap 上,其他的 member 只跟 pdc 問權限而已,不會直接串 ldap。當然,不管是間接或是直接,整個網域使用者帳號跟機器都會由 ldap 管控。

因為還蠻複雜的,這邊就大概列了一下卡關的地方,跟要注意的點而已

首先要把一台設成 pdc,照這篇跟官網這篇來設定應該沒啥太大問題,雖然說那篇的目的是要弄 windows 7 登入網域就是。ldap 存取權限要設好,有用 SSL 的話,CA 也要設好,這樣 domain 應該就會自動在 ldap 上開好了,不過 domain 會自動開在根目錄下,要換位子的話開好再自己移即可。

接下來要設 clients,看官網這篇即可,大致上就是在 smb.conf 裡面 workgroup 要設成跟 pdc 一樣,netbios 設自己的名字,security 設成 domain 即可,接著只要 net join 成功,連到這台要認證的東西都會透過 pdc 處理了,不過要能 join 成功其實沒那麼容易,至少還要達成這些條件

  1. client 帳號要在 ldap 註冊好
  2. 下指令的 user 帳號要有 join domain 的權限
  3. 所有帳號的 primary group sid 都要跟 domain 一致

第一點其實可以在 smb.conf 裡面設好自動開帳號的指令來註冊,不過反正要加的 server 是固定那幾台,用一些常見的 ldap 管理工具先加好即可。第二點的話要注意的是這個權限可以用這篇提到的方法設定,但是要管理者才能設,不過預設情況下 samba 不知道誰才是管理者,所以沒有人有權限可以設定。設管理者最方便的方式就是把某個 unix 群組對應成 samba domain 的管理者群組,詳細方法可以看這篇,對應好之後該群組就是管理者,群組的成員就可以設定權限了,有趣的地方在於管理者本身就有 join domain 的權限,所以變成管理者之後也不用特別再設給自己 join domain 權限了。

第三點基本上就是想辦法讓所有看得到 sid 的地方通通一致化,如果不小心清掉本機 samba 的資料庫,也要想辦法用 net setlocalsid 把他設回來,當然 ldap 裡面的值也要一致,只要有不一致的地方,就很可能會連不上。

大致上這樣就可以動,至於像是 ADS 或是跨網域登入之類的東西這次沒用到就先放著,之後有要用到的話再來作功課好了。

Leave a Reply

Your email address will not be published. Required fields are marked *