Solaris 9 12/03 发行说明

Sun ONE Application Server 安全错误

Root 允许非 root 用户进行 Root 访问时,Application Server 会启动所有实例 (4780076)

如果 Sun ONE Application Server 作为 Solaris 的一部分进行安装,则 Application Server 启动时会出现多个问题:

在安装 Sun ONE Application Server 的过程中,会安装 /etc/init.d/appserv 脚本以及 /etc/rc*.d/ 目录中 S84appservK05appserv 脚本的符号链接。 这些脚本导致所有应用服务器实例和管理服务器实例(定义为应用服务器安装的一部分)随着 Solaris 系统的启动和停机而自动启动和停止。

/etc/init.d/appserv 脚本包含以下代码段:

case "$1" in
'start')
    /usr/sbin/asadmin start-appserv
    ;;
'stop')
    /usr/sbin/asadmin stop-appserv
    ;;

执行 asadmin start-appserv 命令导致管理服务器实例和(所有管理域中定义的)所有应用服务器实例在 Solaris 系统启动过程中启动。 由于系统启动和停机脚本是作为 root 执行的,因此每个应用服务器和管理服务器实例的启动脚本也作为 root 执行。 实例级启动脚本的名称为 startserv,位于 instance-dir/bin/startserv 中。 因为非 root 用户也可以拥有实例,所以非 root 用户可以修改 startserv 脚本,作为 root 用户执行命令。

如果实例使用具有特权的网络端口,则该实例的 startserv 脚本必须作为 root 执行。 但是,实例的配置中通常会设置 run as user, 以强制实例在 root 用户第一次启动该实例后以指定的用户身份运行。

解决方法:根据您的环境,执行以下解决方法之一:

启动注意事项:要自动启动特定的应用服务器管理域或特定的应用服务器实例,在修改 Solaris 软件启动脚本时,请注意以下事项:

有关可通过 asadmin 命令行界面使用的 startupshutdown 命令的详细信息,请参见Sun ONE Application Server 7 管理员指南