每當一位新的使用者被建立之後,就會建立一個對應的 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。
儲存其中 UID 需要變更的 lnode 的狀態﹕
# limreport 'uid==X' - lname preserve > /var/tmp/savelnode.X |
將使用者密碼映射登錄的 UID 從舊的數值 (X) 變更為新的 UID (Y)。
建立一個新 UID 的 lnode,從先前儲存的狀態中回復﹕
# limadm set -f /var/tmp/savelnode.X |
若要變更 lnode 的所有子 lnode (UID X),將其排程群組變更為新的 lnode (UID Y)﹕
# limreport 'sgroup==X' '%u\tsgroup=Y\n' uid | limadm set -u -f - |
確定目前沒有任何處理附加在舊的 lnode 之上。請參閱"建立與刪除 lnode"。
使用 chown(2) 指令來將原始 UID 所擁有的所有檔案所有者變更為新的 UID。舉例來說﹕
# find / -user X -print | xargs chown Y |
刪除舊的 lnode﹕
# limadm delete X |
limadm 指令是管理員用來維護使用者 lnode 的主要工具。此指令會變更使用者帳號清單中的 Solaris Resource Manager 屬性值。如果任何使用者都沒有一個 lnode 存在的話,則會先建立一個內定的空白 lnode。新的 lnode 包含下列特性﹕
flag.real 設為 set;
cpu.shares 和 cpu.myshares 屬性設為 1;
旗標 uselimadm 和 admin 設為 clear;
所有其他旗標設為 inherit;
所有的限制及使用屬性設為 0。
如果該使用者為子管理員,新 lnode 的排程群組設為limadm 調用程式的值;否則如果該使用者帳號有一個 lnode 的話(如果調用程式是 root 或 uselimadm 旗標為 set),便設為使用者 other,否則便設為 root lnode。
limadm 調用程式需要充份的管理權限以執行指定的變更。它們必須是超級使用者,有一個為 set 的uselimadm 旗標,或是一位子管理員而只變更其排程群組成員的屬性。子管理員使用 limadm 的限制如下﹕
他們無法變更自己屬性的數值,擁有 selfadmin 條件(例如, cpu.myshares 屬性)的屬性除外。
一個使用者的 sgroup 屬性只能指派給一個屬於調用程式的排程群組成員的群組 header,或調用程式本身。
無法變更排程群組之外的使用者屬性。
無法修改任何用來內存usages 的屬性。如果沒有這個限制,那麼子管理員可以減少使用其子中的一個,因而減少群組使用,以繞過其 lnode 內的群組限制。
如果他們的旗標求到與旗標內定值相反的值,便無法修改其群組中任何成員的旗標數值,除非將它設為相同的對比數值。這可以確保權限被否決的子管理員無法將權限賦予任何影響之下的使用者。這可以確保那些權限被拒的子管理員無法將權限賦予其影響下的任何使用者。
limadm 指令可以讓管理員移除一個 lnode 而不需要刪除密碼映射中對應的使用者帳號。要使用 limadm,調用程式必須為超級使用者,有一個 set 的uselimadm 旗標,或是有 set 的admin 旗標。如果調用程式只有一個 set 的admin 旗標,那麼他們便只能刪除其作為群組 header 的使用者 lnode。