9. 擴(kuò)展記錄
擴(kuò)展記錄是在Leopard的OD中引入的概念. 正如這個(gè)名字隱含的, 擴(kuò)展記錄是在另一個(gè)引入的記錄上添加了信息的記錄. 擴(kuò)展記錄允許實(shí)施一個(gè)本來在前面目錄服務(wù)中沒有的記錄應(yīng)用到一個(gè)用戶記錄. 這一點(diǎn)對主目錄服務(wù)器沒有擴(kuò)展架構(gòu)權(quán)限的管理很有用.
為了實(shí)施擴(kuò)展記錄, 要把主OD綁定到根目錄服務(wù), 把對象從根目錄引入, 然后用Mac OS X特殊的屬性增加到引入的記錄上, 比如MCX設(shè)置, IMHandle和WeblogURI等. Mac OS X客戶被綁定到主OD和其它的目錄服務(wù). 當(dāng)Mac OS X客戶查找目錄時(shí), 它首先找到擴(kuò)展記錄然后覆蓋原先的記錄.
大多數(shù)情況, 僅在根目錄服務(wù)中沒有定義的擴(kuò)展記錄屬性,才被客戶接受. givenname, gidNumber和UniqueID等屬性就是不能用擴(kuò)展記錄來覆蓋的例子. homeDirectory也在一般的目錄服務(wù)中使用, 但是這是在AD插件中一個(gè)特殊的例子(參見6節(jié)中的C小節(jié)). AD插件動態(tài)地根據(jù)其它用戶信息生成一些Mac OS X專署的屬性, 例如"NFSHomeDirectory"屬性值就是從AD的homeDirectory屬性派生的. 僅當(dāng)"Use UNC path from Active Directory to derive network home location"打開時(shí), homeDirectory屬性值被重格式化為AD值。
根據(jù)AD插件的這個(gè)特性, 當(dāng)設(shè)定不"Use UNC path from Active Directory to derive network home location"時(shí), 就可以把從AD得到的homeDirectory屬性值覆蓋. 下面介紹如何實(shí)施擴(kuò)展記錄, homeDirectory將作為一個(gè)例子.
A. 在ODM構(gòu)造容器中配置擴(kuò)展記錄
擴(kuò)展記錄存儲在OD的構(gòu)造容器的"augmentconfiguration"記錄中. 它包括擴(kuò)展節(jié)點(diǎn)(也就是節(jié)點(diǎn)包含擴(kuò)展信息), 擴(kuò)展節(jié)點(diǎn)(亦即"外節(jié)點(diǎn)")可以用不同的記錄類型來擴(kuò)展.
一個(gè)典型的擴(kuò)展記錄:
<?xml version=”1.0” encoding=”UTF-8”?>
<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http:// www.apple.com/DTDs/PropertyList-1.0.dtd”> <plist version=”1.0”> <dict> <key>Augment Attribute List</key> <dict> <key>dsRecTypeStandard:Users</key> <array> <string>dsAttrTypeStandard:ServicesLocator</string> </array> </dict> <key>Augment Directory Node Name</key> <string>/LDAPv3/master.apple.edu</string> <key>Augment Search</key> <true/> <key>Augmented Directory Node Name</key> <string>/Active Directory/All Domains</string> </dict> </plist> |
上面的配置顯示這個(gè)擴(kuò)展記錄可以定義ServicesLocater屬性在主OD. 當(dāng)從另外一個(gè)目錄服務(wù)引入對象時(shí),這個(gè)"augmentconfig"構(gòu)造記錄會被自動生成.
2. 在WGM的偏好中, 選中'Show "All Records" tab and Inspector'. 點(diǎn)Ok.
3. 點(diǎn)選Users標(biāo)簽, 在Server菜單中選擇"New Augmented User Records", 彈出面板中查找可以引入的用戶記錄. 即可以查找用戶,也可以查找AD中的組以引入屬于該組的所有用戶.
4. 選擇至少一個(gè)記錄,點(diǎn)擊"Create"按鈕,然后"Done".
5. 點(diǎn)擊Inspector標(biāo)簽(在右邊的牛眼圖標(biāo))
6. 在構(gòu)造容器中應(yīng)該包含一個(gè)叫"augmentconfiguration"的記錄, 點(diǎn)擊那個(gè)組, 然后在Inspector的右邊點(diǎn)擊"XMLPlist"屬性. 點(diǎn)擊"Edit"按鈕來查看內(nèi)容, 它應(yīng)該和上面列出的類似.
7. 這個(gè)練習(xí)我們添加三個(gè)屬性到augmentconfiguration記錄的"Augment Attribute List"中(在ServicesLocator下面)
<string>dsAttrTypeStandard:HomeDirectory</string>
<string>dsAttrTypeStandard:NFSHomeDirectory</string> <string>dsAttrTypeStandard:Keywords</string> |
8. 保存.
這些步驟只需要做一次, 也就是沒必要在每次引入用戶記錄的時(shí)候都做.
B. 擴(kuò)展用戶記錄
1. 點(diǎn)擊Users標(biāo)簽, 選擇其中一個(gè)擴(kuò)展記錄. 擴(kuò)展記錄帶有藍(lán)色凝膠圖標(biāo).
在右邊的記錄中, 僅有3項(xiàng):Baisc, Advanced,和Inspector. Basic的內(nèi)容不可編輯, 而Advanced僅僅和iCal服務(wù)器設(shè)置相關(guān). 在Inspector中可以添加任何我們想要的. 我們來添加Home目錄屬性.
注:不要混淆Native和Standard屬性, 例如, "homeDirectory"是一個(gè)Native屬性, 而"HomeDirectory"是一個(gè)Standard屬性. 它們分別對應(yīng)與不同的其它屬性:
dsAttrTypeStandard:NFSHomeDirectory <--> dsAttrTypeNative:homeDirectory
dsAttrTypeStandard:HomeDirectory <--> dsAttrTypeNative:apple-user-homeurl
一般地, 最好隱藏Native或者Standard屬性, 因?yàn)樗鼈兓ハ嘤成涠惶私鈺r(shí)會造成困惑. 在Inspector框中點(diǎn)擊”O(jiān)ptions...“按鈕, 取消選擇"Show Standard attributes.", 來隱藏Standard"屬性.
2. 點(diǎn)擊homeDirectory屬性, 然后"Edit"按鈕. 在Edit面板里, 輸入*local*路徑到用戶的Home目錄. 例如:
/Network/Servers/yourserver.domain.com/Users/username
記住如果路徑不是啟動卷,需要加入/Volumes在路徑中, 比如:
/Network/Servers/yourserver.domain.com/Volumes/Homes/username
3. 如果擴(kuò)展記錄中沒有"apple-user-homeurl"屬性, 點(diǎn)擊”New attribute...“按鈕, 設(shè)置名字為”apple-user-homeurl“,屬性是:
<home_dir><url>afp://yourserver.domain.com/Users</
url><path>username</path></home_dir> |
4. 保存.
重復(fù)上面的步驟設(shè)置所有的擴(kuò)展記錄. 如果有較多的記錄要編輯,那么使用dscl工具來自動化過程更好。
在Home目錄宿主服務(wù)器和客戶端完成下面的步驟
5. 首次檢查機(jī)器已經(jīng)綁定到OD和AD, 并且在AD插件中禁止了"Use UNC path from Active Directory to derive network home location"選項(xiàng)
6. 重啟動DirectoryService后臺程序來讓系統(tǒng)認(rèn)知OD節(jié)點(diǎn)的擴(kuò)展記錄
sudo killall DirectoryService |
7. 記錄的擴(kuò)展過程作為/Search節(jié)點(diǎn)發(fā)生在客戶端(和Home目錄服務(wù)器), 運(yùn)行下面的命令來查看OD的擴(kuò)展記錄是如何校對來自AD的記錄:
host10:~ apple$ dscl localhost
> read /LDAPv3/master.apple.edu/Augments/Users:labadmin/ AppleMetaNodeLocation: /LDAPv3/master.apple.edu GeneratedUID: 0D3870FD-BFEF-4E8E-8216-5BBFBB3AB5A1 HomeDirectory: <home_dir><url>afp://services.apple.edu/ Users</url><path>labadmin</path></home_dir> NFSHomeDirectory: /Network/Servers/services.apple.edu/Users/ labadmin PasswordPlus: ******** PrimaryGroupID: 20 RealName: Lab Admin RecordName: Users:labadmin RecordType: dsRecTypeStandard:Augments ServicesLocator: (null):(null):calendar UniqueID: 221802749 UserShell: /usr/bin/false > read /Active/ Directory/All/ Domains/Users/labadmin/ AppleMetaNodeLocation: /Active Directory/apple.edu AuthenticationAuthority: 1.0;Kerberosv5;FD3AA261-AE21-4A60- 9D86-9DA5B7234850;labadmin@APPLE.EDU;APPLE.EDU; FirstName: Lab GeneratedUID: FD3AA261-AE21-4A60-9D86-9DA5B7234850 LastName: Admin Password: ******** 48 PasswordPlus: ******** PrimaryGroupID: 278245951 RealName: Lab Admin RecordName: labadmin lab admin labadmin@apple.edu APPLE/labadmin APPLE/lab admin Lab Admin RecordType: dsRecTypeStandard:Users SMBAccountFlags: 805306368 SMBGroupRID: 513 SMBHome: //master/Users/labadmin SMBHomeDrive: H: SMBLogoffTime: 0 SMBLogonTime: 128614125322148848 SMBPasswordLastSet: 128566355521191920 SMBPrimaryGroupSID: S-1-5-21-2554006548-4090241852- 3873005326-513 SMBSID: S-1-5-21-2554006548-4090241852-3873005326-1201 UniqueID: 221802749 UserShell: /bin/bash > read /Search/Users/labadmin/ dsAttrTypeNative:distinguishedName: CN=Lab Admin,CN=Users,DC=apple,DC=edu ... FirstName: Lab GeneratedUID: 0D3870FD-BFEF-4E8E-8216-5BBFBB3AB5A1 HomeDirectory: <home_dir><url>afp://services.apple.edu/ Users</url><path>labadmin</path></home_dir> LastName: Admin NFSHomeDirectory: /Network/Servers/services.apple.edu/Users/ labadmin Password: ******** PasswordPlus: ******** PrimaryGroupID: 278245951 RecordType: dsRecTypeStandard:Users ServicesLocator: (null):(null):calendar SMBAccountFlags: 805306368 SMBGroupRID: 513 SMBLogoffTime: 0 SMBLogonTime: 128582793083305216 SMBPasswordLastSet: 128582365602518032 SMBPrimaryGroupSID: S-1-5-21-2554006548-4090241852- 3873005326-513 SMBSID: S-1-5-21-2554006548-4090241852-3873005326-1136 UniqueID: 221802749 UserShell: /bin/bash |
C. 批量處理擴(kuò)展用戶記錄
對于一個(gè)習(xí)慣動手的用戶, 管理擴(kuò)展用戶記錄很容易,但是如果(譯者注: 使用上面手動方式)管理數(shù)百的用戶,簡直是不可完成的任務(wù), 特別是擴(kuò)展用戶Home目錄屬性. 下面的代碼演示如何使用dscl命令來生成擴(kuò)展記錄以及Home目錄屬性. 這個(gè)jiaobe年還為擴(kuò)展記錄添加了標(biāo)簽, 從而允許使用關(guān)鍵子在WGM中搜索.
host10:~ apple$ dscl /LDAPv3/master.apple.edu
> auth diradmin apple > create /Augments/Users:labadmin RealName “Lab Admin” > create /Augments/Users:labadmin GeneratedUID E426858E-DA85- 4085-BB28-4DEE094357A1 > create /Augments/Users:labadmin HomeDirectory <home_dir><url>afp://services.apple.edu/Users</ url><path>labadmin</path></home_dir> > create /Augments/Users:labadmin NFSHomeDirectory /Network/ Servers/services.apple.edu/Users/labadmin > create /Augments/Users:labadmin UniqueID 221802749 > create /Augments/Users:labadmin PrimaryGroupID 20 > create /Augments/Users:labadmin Keywords “ad_group” |
生成擴(kuò)展記錄后, 在文件服務(wù)器上運(yùn)行下面的命令(也就是例子中的services.apple.edu)來為所有的引入用戶創(chuàng)建Home目錄.
services:~ admin$ sudo createhomedir -s |
參考本文后面的資源部分, 哪里有一個(gè)完整的循環(huán)過程完成在主OD中為一組用戶組添加擴(kuò)展記錄.
這里有一點(diǎn)有關(guān)使用擴(kuò)展記錄的提示:
- 如果用戶網(wǎng)絡(luò)Home目錄在AD中沒有定義,那么HomeDirecory屬性可以被覆蓋, 但是NFSHomeDirectory不行. 因此, 網(wǎng)絡(luò)Home目錄共享將被安裝在/Users目錄,而不是/Network/Server/server.apple.ed/sharepoint。 這樣只有當(dāng)用戶登錄,用戶的Home目錄才有效, 一旦登出/Users目錄將可供本地用戶使用.
- 擴(kuò)展記錄本能被用在OD組, 所以它們不能象管理用戶一樣.
- 可以是用apple已經(jīng)定義的關(guān)鍵字來擴(kuò)展記錄,但是它們不會在WGM中顯示, 它們也無法被查找, 比如"dscl /Search search".
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
