系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones

全局区域可见性和访问权限

全局区域既可作为系统的缺省区域,也可作为在系统范围内实施管理控制的区域。这种双重角色会引起管理问题。由于全局区域内的应用程序有权访问其他区域中的进程和其他系统对象,因此,管理操作的影响范围会比预期的范围更广。例如,服务关闭脚本通常使用 pkill 来通知退出具有给定名称的进程。在全局区域中运行此脚本时,将通知退出系统中所有区域内的所有此类进程。

通常需要将整个系统作为考虑范围。例如,要监视系统范围内的资源使用情况,必须查看整个系统中的进程统计信息。如果仅查看全局区域活动,则会遗漏系统中可能正在共享部分或全部系统资源的其他区域的相关信息。在没有使用资源管理功能对系统资源(如 CPU)进行严格分区的情况下,此类查看尤为重要。

因此,全局区域中的进程可以查看非全局区域中的进程和其他对象。这样,此类进程便可查看整个系统范围的内容。控制信号或将信号发送到其他区域中进程的功能由权限 PRIV_PROC_ZONE 加以限制。此权限类似于 PRIV_PROC_OWNER,因为它允许进程覆盖对非特权进程设定的限制。在这种情况下,所谓的限制是指全局区域中的非特权进程无法向其他区域中的进程发送信号或控制这些进程。即使进程的用户 ID 相匹配或者正在运行的进程拥有 PRIV_PROC_OWNER 权限,也会存在上述限制。可以删除其他特权进程的 PRIV_PROC_ZONE 权限,以将操作限制为仅对全局区域有效。

有关使用 zoneidlist 匹配进程的信息,请参见 pgrep(1)pkill(1) 手册页。