適用於 Solaris 2.6 的 Solaris Resource Manager 1.0 系統管理指南(SPARC 平台版)

建立與刪除 lnode

每當一位新的使用者被建立之後,就會建立一個對應的 lnode,也會設定其限制及權限。使用者必須等到 lnode 建立之後才能登入系統。使用 Solaris Resource Manager 時,管理員應該維護限制資料庫,讓它和一般 Solaris 密碼資料庫保持一致。指令﹕

# limreport \ !flag.real - uid lname 

可以用來列印一份 UID 及沒有對應 lnode 的任何使用者登入名稱清單。

在此版本中,用來建立與刪除帳號的系統指令不會自動建立與刪除 lnode。要由管理員自行決定是否執行這些動作。然而,使用者登入時可以要求自動建立 lnode,請參閱"PAM 子系統"中的細節說明。

同樣地,在從密碼映射中刪除使用者帳號之前,應該使用 limadm(1MSRM) 指令,從限制資料庫中移除對應的 lnode。

如果一個使用者的 UID 有所變更,應該將其 lnode 的內容複製到對應至新號碼的一個新的 lnode 上,而刪除原始的 lnode。請參閱"複製與移除 lnode"

任何子 lnode 應該被附加至新建立的 lnode,或是其他適當的雙親 lnode 之上。指令﹕

# limreport 'sgroup==X' '%u\tsgroup=Y\n' uid | limadm set -u -f - 

可以用來尋找所有擁有 UID 為 X 的排程群組雙親的 lnode,讓它們成為有一個 Y UID 的子 lnode。

下列步驟說明如何從 X 將一個 lnode 的 UID 變更為 Y。

  1. 儲存其中 UID 需要變更的 lnode 的狀態﹕

    # limreport 'uid==X' - lname preserve > /var/tmp/savelnode.X

  2. 將使用者密碼映射登錄的 UID 從舊的數值 (X) 變更為新的 UID (Y)。

  3. 建立一個新 UID 的 lnode,從先前儲存的狀態中回復﹕

    # limadm set -f /var/tmp/savelnode.X

  4. 若要變更 lnode 的所有子 lnode (UID X),將其排程群組變更為新的 lnode (UID Y)﹕

    # limreport 'sgroup==X' '%u\tsgroup=Y\n' uid | limadm set -u -f -  

  5. 確定目前沒有任何處理附加在舊的 lnode 之上。請參閱"建立與刪除 lnode"

  6. 使用 chown(2) 指令來將原始 UID 所擁有的所有檔案所有者變更為新的 UID。舉例來說﹕

    # find / -user X -print | xargs chown Y

  7. 刪除舊的 lnode﹕

    # limadm delete X

Lnode 維護程式

limadm 指令是管理員用來維護使用者 lnode 的主要工具。此指令會變更使用者帳號清單中的 Solaris Resource Manager 屬性值。如果任何使用者都沒有一個 lnode 存在的話,則會先建立一個內定的空白 lnode。新的 lnode 包含下列特性﹕

如果該使用者為子管理員,新 lnode 的排程群組設為limadm 調用程式的值;否則如果該使用者帳號有一個 lnode 的話(如果調用程式是 rootuselimadm 旗標為 set),便設為使用者 other,否則便設為 root lnode。

limadm 調用程式需要充份的管理權限以執行指定的變更。它們必須是超級使用者,有一個為 set 的uselimadm 旗標,或是一位子管理員而只變更其排程群組成員的屬性。子管理員使用 limadm 的限制如下﹕

limadm 指令可以讓管理員移除一個 lnode 而不需要刪除密碼映射中對應的使用者帳號。要使用 limadm,調用程式必須為超級使用者,有一個 set 的uselimadm 旗標,或是有 set 的admin 旗標。如果調用程式只有一個 set 的admin 旗標,那麼他們便只能刪除其作為群組 header 的使用者 lnode。