Solaris 9 12/03 版次注意事項

Sun ONE Application Server 安全性錯誤

Application Server 以 Root 使用者的身份啟動所有實例時,非 Root 使用者會擁有 Root 使用者存取權 (4780076)

將 Sun ONE Application Server 作為 Solaris 安裝的一部分來進行安裝時,會有數個問題與 Application Server 啟動相關聯:

在安裝 Sun ONE Application Server 時,已安裝 /etc/init.d/appserv 程序檔以及至 /etc/rc*.d/ 目錄中的 S84appserv 程序檔與 K05appserv 程序檔的符號連結。 這些程序檔會導致所有應用程序伺服器實例與管理伺服器實例 (作為應用程式伺服器安裝的一部分定義) 在 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 使用者的身份執行指令。

如果某個實例使用的是特權網路連接埠,則必須以 root 使用者的身份來執行此實例的 startserv 程序檔。 然而,通常會在實例配置中設定 run as user, 以迫使實例在由 root使用者進行初始啟動後以特定使用者的身份來執行。

解決方法:依據您的環境,執行以下其中一種解決方法:

啟動考量內容:當修改 Solaris 軟體啟動程序檔以自動啟動特定應用程式伺服器管理網域或特定應用程式伺服器實例時,請考量以下內容:

請參閱Sun ONE Application Server 7 Administrator's Guide,以取得有關 startupshutdown 指令 (可透過 asadmin 指令行介面使用) 的更多資訊。