9. 擴展記錄
擴展記錄是在Leopard的OD中引入的概念. 正如這個名字隱含的, 擴展記錄是在另一個引入的記錄上添加了信息的記錄. 擴展記錄允許實施一個本來在前面目錄服務中沒有的記錄應用到一個用戶記錄. 這一點對主目錄服務器沒有擴展架構權限的管理很有用.
為了實施擴展記錄, 要把主OD綁定到根目錄服務, 把對象從根目錄引入, 然后用Mac OS X特殊的屬性增加到引入的記錄上, 比如MCX設置, IMHandle和WeblogURI等. Mac OS X客戶被綁定到主OD和其它的目錄服務. 當Mac OS X客戶查找目錄時, 它首先找到擴展記錄然后覆蓋原先的記錄.
大多數情況, 僅在根目錄服務中沒有定義的擴展記錄屬性,才被客戶接受. givenname, gidNumber和UniqueID等屬性就是不能用擴展記錄來覆蓋的例子. homeDirectory也在一般的目錄服務中使用, 但是這是在AD插件中一個特殊的例子(參見6節中的C小節). AD插件動態地根據其它用戶信息生成一些Mac OS X專署的屬性, 例如"NFSHomeDirectory"屬性值就是從AD的homeDirectory屬性派生的. 僅當"Use UNC path from Active Directory to derive network home location"打開時, homeDirectory屬性值被重格式化為AD值。
根據AD插件的這個特性, 當設定不"Use UNC path from Active Directory to derive network home location"時, 就可以把從AD得到的homeDirectory屬性值覆蓋. 下面介紹如何實施擴展記錄, homeDirectory將作為一個例子.
A. 在ODM構造容器中配置擴展記錄
擴展記錄存儲在OD的構造容器的"augmentconfiguration"記錄中. 它包括擴展節點(也就是節點包含擴展信息), 擴展節點(亦即"外節點")可以用不同的記錄類型來擴展.
一個典型的擴展記錄:
<?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> |
上面的配置顯示這個擴展記錄可以定義ServicesLocater屬性在主OD. 當從另外一個目錄服務引入對象時,這個"augmentconfig"構造記錄會被自動生成.
2. 在WGM的偏好中, 選中'Show "All Records" tab and Inspector'. 點Ok.
3. 點選Users標簽, 在Server菜單中選擇"New Augmented User Records", 彈出面板中查找可以引入的用戶記錄. 即可以查找用戶,也可以查找AD中的組以引入屬于該組的所有用戶.
4. 選擇至少一個記錄,點擊"Create"按鈕,然后"Done".
5. 點擊Inspector標簽(在右邊的牛眼圖標)
6. 在構造容器中應該包含一個叫"augmentconfiguration"的記錄, 點擊那個組, 然后在Inspector的右邊點擊"XMLPlist"屬性. 點擊"Edit"按鈕來查看內容, 它應該和上面列出的類似.
7. 這個練習我們添加三個屬性到augmentconfiguration記錄的"Augment Attribute List"中(在ServicesLocator下面)
<string>dsAttrTypeStandard:HomeDirectory</string>
<string>dsAttrTypeStandard:NFSHomeDirectory</string> <string>dsAttrTypeStandard:Keywords</string> |
8. 保存.
這些步驟只需要做一次, 也就是沒必要在每次引入用戶記錄的時候都做.
B. 擴展用戶記錄
1. 點擊Users標簽, 選擇其中一個擴展記錄. 擴展記錄帶有藍色凝膠圖標.
在右邊的記錄中, 僅有3項:Baisc, Advanced,和Inspector. Basic的內容不可編輯, 而Advanced僅僅和iCal服務器設置相關. 在Inspector中可以添加任何我們想要的. 我們來添加Home目錄屬性.
注:不要混淆Native和Standard屬性, 例如, "homeDirectory"是一個Native屬性, 而"HomeDirectory"是一個Standard屬性. 它們分別對應與不同的其它屬性:
dsAttrTypeStandard:NFSHomeDirectory <--> dsAttrTypeNative:homeDirectory
dsAttrTypeStandard:HomeDirectory <--> dsAttrTypeNative:apple-user-homeurl
一般地, 最好隱藏Native或者Standard屬性, 因為它們互相映射而不太了解時會造成困惑. 在Inspector框中點擊”Options...“按鈕, 取消選擇"Show Standard attributes.", 來隱藏Standard"屬性.
2. 點擊homeDirectory屬性, 然后"Edit"按鈕. 在Edit面板里, 輸入*local*路徑到用戶的Home目錄. 例如:
/Network/Servers/yourserver.domain.com/Users/username
記住如果路徑不是啟動卷,需要加入/Volumes在路徑中, 比如:
/Network/Servers/yourserver.domain.com/Volumes/Homes/username
3. 如果擴展記錄中沒有"apple-user-homeurl"屬性, 點擊”New attribute...“按鈕, 設置名字為”apple-user-homeurl“,屬性是:
<home_dir><url>afp://yourserver.domain.com/Users</
url><path>username</path></home_dir> |
4. 保存.
重復上面的步驟設置所有的擴展記錄. 如果有較多的記錄要編輯,那么使用dscl工具來自動化過程更好。
在Home目錄宿主服務器和客戶端完成下面的步驟
5. 首次檢查機器已經綁定到OD和AD, 并且在AD插件中禁止了"Use UNC path from Active Directory to derive network home location"選項
6. 重啟動DirectoryService后臺程序來讓系統認知OD節點的擴展記錄
sudo killall DirectoryService |
7. 記錄的擴展過程作為/Search節點發生在客戶端(和Home目錄服務器), 運行下面的命令來查看OD的擴展記錄是如何校對來自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. 批量處理擴展用戶記錄
對于一個習慣動手的用戶, 管理擴展用戶記錄很容易,但是如果(譯者注: 使用上面手動方式)管理數百的用戶,簡直是不可完成的任務, 特別是擴展用戶Home目錄屬性. 下面的代碼演示如何使用dscl命令來生成擴展記錄以及Home目錄屬性. 這個jiaobe年還為擴展記錄添加了標簽, 從而允許使用關鍵子在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” |
生成擴展記錄后, 在文件服務器上運行下面的命令(也就是例子中的services.apple.edu)來為所有的引入用戶創建Home目錄.
services:~ admin$ sudo createhomedir -s |
參考本文后面的資源部分, 哪里有一個完整的循環過程完成在主OD中為一組用戶組添加擴展記錄.
這里有一點有關使用擴展記錄的提示:
- 如果用戶網絡Home目錄在AD中沒有定義,那么HomeDirecory屬性可以被覆蓋, 但是NFSHomeDirectory不行. 因此, 網絡Home目錄共享將被安裝在/Users目錄,而不是/Network/Server/server.apple.ed/sharepoint。 這樣只有當用戶登錄,用戶的Home目錄才有效, 一旦登出/Users目錄將可供本地用戶使用.
- 擴展記錄本能被用在OD組, 所以它們不能象管理用戶一樣.
- 可以是用apple已經定義的關鍵字來擴展記錄,但是它們不會在WGM中顯示, 它們也無法被查找, 比如"dscl /Search search".
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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