Solaris のシステム管理 (基本編)

SMF サービスの設定

Procedureサービスを変更する方法

次の手順は、inetd サービスによって管理されていないサービスの設定を変更する方法を示します。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 必要に応じて設定ファイルを変更します。

    多くのサービスは、起動方法などの設定情報を定義するための設定ファイルを 1 つ以上持っています。それらのファイルはサービス実行中でも変更可能です。ファイルの内容がチェックされるのはサービス起動時です。

  3. サービスを再起動します。


    # svcadm restart FMRI
    

例 19–11 NFS ファイルシステムを共有する

NFS サービスを使って特定のファイルシステムを共有するには、そのファイルシステムを /etc/dfs/dfstab ファイル内に定義したあと、NFS サービスを再起動する必要があります。この例は、dfstab ファイルの内容とサービスの起動方法を示しています。


# cat /etc/dfs/dfstab
 .
 .
share -F nfs -o rw /export/home
# svcadm restart svc:/network/nfs/server

Procedureサービスの環境変数を変更する方法

この手順は、デバッグに役立つよう cron 環境変数を変更する方法を示します。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. サービスが実行されていることを確認します。


    # svcs system/cron
    STATE          STIME    FMRI
    online         Dec_04   svc:/system/cron:default
  3. 環境変数を設定します。

    次の例では、環境変数 UMEM_DEBUG および LD_PRELOAD を設定しています。setenv サブコマンドについては、svccfg(1M) のマニュアルページを参照してください。


    # svccfg -s system/cron:default setenv UMEM_DEBUG default
    # svccfg -s system/cron:default setenv LD_PRELOAD libumem.so
    
  4. サービスの再表示と再起動を行います。


    # svcadm refresh system/cron
    # svcadm restart system/cron
    
  5. 正しく変更されたことを確認します。


    # pargs -e `pgrep -f /usr/sbin/cron`
    100657: /usr/sbin/cron
    envp[0]: LOGNAME=root
    envp[1]: LD_PRELOAD=libumem.so
    envp[2]: PATH=/usr/sbin:/usr/bin
    envp[3]: SMF_FMRI=svc:/system/cron:default
    envp[4]: SMF_METHOD=/lib/svc/method/svc-cron
    envp[5]: SMF_RESTARTER=svc:/system/svc/restarter:default
    envp[6]: TZ=GB
    envp[7]: UMEM_DEBUG=default
    #

Procedureinetd 制御サービスのプロパティーを変更する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 特定のサービスのプロパティーを一覧表示します。

    このコマンドを実行すると、FMRI で指定されたサービスのすべてのプロパティーが表示されます。


    # inetadm -l FMRI
    
  3. サービスのプロパティーを変更します。

    inetd 制御サービスの各プロパティーは、プロパティー名とその値によって定義されます。値を指定せずにプロパティー名を指定した場合、そのプロパティーはデフォルト値にリセットされます。特定のサービスのプロパティーの詳細については、そのサービスのマニュアルページを参照してください。


    # inetadm -m FMRI property-name=value
    
  4. プロパティーが変更されたことを確認します。

    プロパティーを再度一覧表示し、適切に変更されていることを確認します。


    # inetadm -l FMRI
    
  5. 変更が適用されていることを確認します。

    プロパティーに対する変更が期待どおりに適用されていることを確認します。


例 19–12 telnettcp_trace プロパティーを変更する

次の例は、telnettcp_trace プロパティーを true に設定する方法を示しています。telnet コマンドの実行後の syslog 出力の結果から、変更が適用されていることがわかります。


# inetadm -l svc:/network/telnet:default
SCOPE    NAME=VALUE
         name="telnet"
 .
 .
default  inherit_env=TRUE
default  tcp_trace=FALSE
default  tcp_wrappers=FALSE
# inetadm -m svc:/network/telnet:default tcp_trace=TRUE
# inetadm -l svc:/network/telnet:default
SCOPE    NAME=VALUE
         name="telnet"
 .
 .
default  inherit_env=TRUE
         tcp_trace=TRUE
default  tcp_wrappers=FALSE
# telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
login: root
Password: 
Last login: Mon Jun 21 05:55:45 on console
Sun Microsystems Inc.   SunOS 5.10      s10_57  May 2004
# ^D
Connection to localhost closed by foreign host.
# tail -1 /var/adm/messages
Jun 21 06:04:57 yellow-19 inetd[100308]: [ID 317013 daemon.notice] telnet[100625]
    from 127.0.0.1 32802

Procedureinetd 制御サービスのコマンド行引数を変更する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 特定のサービスの exec プロパティーを表示します。

    このコマンドを実行すると、FMRI で指定されたサービスのすべてのプロパティーが表示されます。grep コマンドを追加することで、サービスの exec プロパティーに出力を制限しています。


    # inetadm -l FMRI|grep exec
    
  3. サービスの exec プロパティーを変更します。

    exec プロパティーに設定される command-syntax は、サービス起動時に実行されるコマンド文字列を定義します。


    # inetadm -m FMRI exec="command-syntax
    "
    
  4. プロパティーが変更されたことを確認します。

    プロパティーを再度一覧表示し、適切に変更されていることを確認します。


    # inetadm -l FMRI
    

例 19–13 ftp コマンドに接続ロギング (-l) オプションを追加する

この例では、ftp デーモンの起動オプションに -l オプションを追加しています。この変更が適用されたことを確かめるには、ftp ログインセッション完了後に syslog 出力を調べます。


# inetadm -l svc:/network/ftp:default | grep exec
        exec="/usr/sbin/in.ftpd -a"
# inetadm -m svc:/network/ftp:default exec="/usr/sbin/in.ftpd -a -l"
# inetadm -l svc:/network/ftp:default
SCOPE    NAME=VALUE
         name="ftp"
         endpoint_type="stream"
         proto="tcp6"
         isrpc=FALSE
         wait=FALSE
         exec="/usr/sbin/in.ftpd -a -l"
 .
 .
# ftp localhost
Connected to localhost.
220 yellow-19 FTP server ready.
Name (localhost:root): mylogin
331 Password required for mylogin.
Password:
230 User mylogin logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221-You have transferred 0 bytes in 0 files.
221-Total traffic for this session was 236 bytes in 0 transfers.
221-Thank you for using the FTP service on yellow-19.
221 Goodbye.
# tail -2 /var/adm/messages
Jun 21 06:54:33 yellow-19 ftpd[100773]: [ID 124999 daemon.info] FTP LOGIN FROM localhost 
     [127.0.0.1], mylogin
Jun 21 06:54:38 yellow-19 ftpd[100773]: [ID 528697 daemon.info] FTP session closed

Procedureinetd.conf エントリを変換する方法

次の手順では、inetd.conf エントリを SMF サービス目録に変換します。inetd に依存する Sun 以外のアプリケーションをシステムに追加するたびに、この手順を実行する必要があります。また、/etc/inetd.conf 内のエントリに設定変更を行う必要がある場合にも、この手順を実行してください。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. inetd.conf エントリを変換します。

    inetconv コマンドは、選択されたファイル内の各エントリをサービス目録に変換します。


    # inetconv -i filename
    

例 19–14 /etc/inet/inetd.conf エントリを SMF サービス目録に変換する


# inetconv -i /etc/inet/inetd.conf