BigAdmin System Administration Portal
Web Server 7.0 U2(以降)の注意事項:root ユーザ以外での Web Server SMF サービスを起動する方法
Print-friendly VersionPrint-friendly Version

Web Server 7.0 U2 から Web Server を Solaris 10 SMF サービスに登録 できるようになりました。 SMF サービスへの登録についてはマニュアルに 記載があります。 http://docs.sun.com/app/docs/doc/820-5653/gfjcs しかし、Web Server SMF サービス後、root ユーザ以外で Web Server を 起動しようとした場合、アクセス権限エラーとなってしまい、起動する ことができません。ここでは root ユーザ以外で Web Server SMF サービス を起動するための手順を記載いたします。

  1. create-service コマンドによりインスタンスを SMF サービスに登録します。
    http://docs.sun.com/app/docs/doc/820-5653/gfjcs を参照してください。
  2. /etc/security/auth_attr に Web Server の承認属性を登録してください。
    例)
    solaris.smf.manage.webserver:::Manage Sun Java System Web Server States::
  3. Web Server のサービスマニフェストファイルに
    下記を追加してください。
       <property_group name='general' type='framework'>
          <propval name='action_authorization' type='astring' value='solaris.smf.manage.webserver' />  
          <propval name='value_authorization' type='astring' value='solaris.smf.manage.webserver' />  
       </property_group>
       

    サービスマニフェストファイルは下記 URL を参照してください。
    http://docs.sun.com/app/docs/doc/820-5653/gfjcs?l=ja&a=view

    上記にあるように マニフェストファイルは /var/svc/manifest にあり、Web Server の SMF マニフェストファイルは /var/svc/manifest/network/http.xml になります。
    上記ファイルに instance "https-instancename" の定義がありますので、 "https-instancename" に上記定義を追加してください。 定義後、下記コマンドで設定をインポートしてください。
    # svccfg import http.xml
  4. solaris.smf.manage.webserver を実行するユーザに登録してください。
    下記はユーザ webservd が例となっています。
    # usermod -A solaris.smf.manage.webserver webservd
  5. 1024 以下の特権ポートにバインドできるよう
    下記設定を/etc/security/prof_attr に追加してください。
    例)
    Web Server:::Can bind to privileged ports:privs=net_privaddr

    上記設定をユーザプロファイルに設定してください。
    下記はユーザ webservd が例となっています。
    # usermod -P 'Web Server' webservd

    Web Server を実行するユーザで下記コマンドを 実行することで net_privaddr が追加されたこと を確認できます。
    ppriv -l | grep net_privaddr

上記手順により Web Server SMF サービスを root ユーザ以外で起動 できるようになります。インスタンス起動スクリプト startserv を 実行し、起動できることを確認してください。
サービスの状態は

svcs | grep https-instancename
コマンドで確認できます。

BigAdmin