Solaris Resource Manager 1.3 系統管理指南

建立與刪除 lnode

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

# limreport \!flag.real - uid lname 

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

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

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


註解 -

刪除 lnode 時請確定將子排程樹由最底層的 lnode 開始刪除。如果您從樹的最上層開始刪除,會失去對刪除的子 lnode 的控制權,因為它們會因為雙親被移除而成為孤兒。


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

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

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

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

下列步驟說明如何將一個 lnode 的 UID 從 X 變更為 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 之上。

  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 包含下列特性:

如果該使用者帳號或是 root lnode 有一個 lnode 存在的話,新的 lnode 排程群組會設為 'other' 使用者 (srmother)。

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

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