组管理员可能遇到的一个问题就是他们与组成员共享组限制。例如,如果组长 lnode 对组设定了进程限制,则该限制就能控制包括组长在内的整个组所能使用的进程的数目。除非进一步限制,否则调度组内的任何用户都能不让组管理员只通过简单地超过进程限制就可以创建新的进程。
预防这种情况的一种方法是,由组管理员针对每个组成员分别设定限制。但为了有效起见,这些限制可能必须要有过度的限制作用。此外,强迫某个组管理员管理每个限制也与 Solaris Resource Manager 的分层结构资源控制的目标相冲突。
解决这一问题的一种替代方法是,由中央管理员修改组中的 lnode 的结构。在组管理员的 lnode 的下方创建一个“控制” lnode,作为唯一的子 lnode,而不是把用户直接放置到组管理员自己的 lnode 下方,这样,用户就被设定为控制 lnode 的子节点。这样创建的结构如图所示。
如上图所示,组管理员帐户的 UID 对应于标志为“实际的”lnode(即树的父节点)的 UID。这就是具有设定 admin 标志的 lnode。可以为“控制”lnode 创建一个模拟帐户。在这个帐户上不允许登录许可。标志为 'A'、'B' 和 'C' 的 lnode 对应于在组管理员控制之下的用户。
在这种情况下,针对“实际的”lnode 的进程限制可能是 100,而“控制”lnode 的进程限制可能是 90,针对每个用户的限制设定为 0。这种设置可确保即使用户A、B和C使用总共 90 个进程(即允许的全部进程),次级管理员仍可创建 10 个进程。
但是,在这种情况下,用户仍可能互相终止对方创建进程。预防这种情况的唯一方法就是为这些用户设定单独的限制。在本例中,这些限制可分别设定为 40,这样在保证灵活性的同时,还可预防某个单一用户完全关闭其他用户的进程。
还要注意,在此例中,中央管理员可以为新用户创建额外的 lnode,作为“控制”lnode 的子节点,而无须重新平衡限制。