适用于 Solaris 2.6 (SPARC 平台版) 的 Solaris Resource Manager 1.0 系统管理指南

创建和删除 lnode

每创建一个新的用户,就应当创建一个相应的 lnode,并设置其限制和特权。只有创建了 lnode,用户才能登录。在使用 Solaris Resource Manager 时,管理员应当在维护常规的 Solaris 口令数据库的同时,也对限制数据库进行维护。命令:

# limreport \ !flag.real - uid lname 

可以用来打印出没有对应 lnode 的用户的 UID 和登录名称列表。

在本版本中,用于创建和删除帐户的系统命令并不自动创建和删除 lnode。要由管理员来进行这些操作。但是,用户登录时,可以根据要求自动创建 lnode,请参阅 "PAM 子系统",了解更多的细节。

同理,就在从口令映射中删除某一用户帐户之前,应当从限制数据库删除其对应的 lnode,方法是使用 limadm(1MSRM)命令。

如果某个用户的 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)更改为新的值(Y)。

  3. 为新的 UID 创建一个 lnode,恢复先前所保存的状态:

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

  4. 针对将要更改的 lnode(UID X)的所有子 lnode,将其调度组更改到新的 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 的调用者,条件是该用户是一个分管理员;否则(如果调用者是或者其 uselimadm 标志得到设置),则设置为用户其它,条件是该用户帐户否则设置为根 lnode。

limadm 调用者需要足够的管理特权才能进行所指定的更改。其必须是超级用户,有一个得到设置的 uselimadm 标志,或者是分管理员,且只是要更改其调度组成员的属性。分管理员使用 limadm 时受到限制:

limadm 命令使得管理员可以删除某一 lnode,而不删除口令映射中相对应的用户帐户。如要使用 limadm,调用者必须是超级用户,有一个设置过的 uselimadm 标志,或者有一个设置过的 admin 标志。如果调用者有一个设置过的 admin 标志,则其只能删除其为组头目的用户的 lnode。