適用於 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 的話(如果調用程式是 root 或 uselimadm 旗標為 set),便設為使用者 other,否則便設為 root lnode。

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

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