SMFによるinetd管理方法
最終更新日:2006年04月17日
はじめに
概要
Solaris 10 ではサービス管理をSMF(Service Management Facility)で行うようになった為、inetd.conf を変更しただけではinetサービスの設定が変わらなくなった。
そこで、SMF配下でのinetサービスの管理方法を整理してみた。
SMF配下でのinetサービス管理コマンド
管理コマンド
inetサービスの管理コマンドを以下に示す。
コマンド |
役割 |
inetadm |
inetサービスの管理を行う。 |
inetconv |
テキストのinetd.confをリポジトリ(管理データベース)に登録する。 |
inetadmコマンドの主なオプション
inetadmコマンドを"-\?"オプションで実行すると以下のヘルプが表示される。
$ inetadm -\?
使用法:
inetadm
inetadm -?
inetadm -p
inetadm -l {FMRI | パターン}...
inetadm -e {FMRI | パターン}...
inetadm -d {FMRI | パターン}...
inetadm -m {FMRI | パターン}... {name=value}...
inetadm -M {name=value}...
オプションなしでは inetadm は inetd 管理のすべてのサービスを表示します。
オプション:
-? ヘルプを出力します。
-p デフォルトの inetd プロパティ値をすべて表示します。
-l inet サービスの inetd プロパティ値をすべて表示します。
-e inet サービスを有効にします。
-d inet サービスを無効にします。
-m inet サービスの inetd プロパティ値を変更します。
-M デフォルトの inetd プロパティ値を変更します。
inetconvコマンドの主なオプション
inetconvコマンドを"-\?"オプションで実行すると以下のヘルプが表示される。
$ inetconv -\?
使用法: inetconv [-fn] [-i <ソースファイル>] [-o <出力先ディレクトリ>]
inetconv -e [-n] [-i <ソースファイル>]
-? この使用法のメッセージを表示します
-e 入力ファイル内で有効になっている smf サービスを
有効にします
-f 既存のマニフェストを強制的に上書きします
-n 変換されたマニフェストをインポートしないか、あるいは
有効化されるサービスだけを表示します
-i <ソースファイル> 代替の入力ファイル
-o <出力先ディレクトリ> マニフェストを格納する代替の出力先ディレクトリ
サービスの確認方法
全inetサービスのリスト表示
書式
inetadm
出力例
$ inetadm
ENABLED STATE FMRI
enabled online svc:/network/rpc/mdcomm:default
enabled online svc:/network/rpc/meta:default
enabled online svc:/network/rpc/metamed:default
enabled online svc:/network/rpc/metamh:default
enabled online svc:/network/rpc/gss:default
disabled disabled svc:/network/rpc/rex:default
.
.
.
デフォルトのinetdプロパティ値表示
書式
inetadm -p
出力例
$ inetadm -p
NAME=VALUE
bind_addr=""
bind_fail_max=-1
bind_fail_interval=-1
max_con_rate=-1
max_copies=-1
con_rate_offline=-1
failrate_cnt=40
failrate_interval=60
inherit_env=TRUE
tcp_trace=FALSE
tcp_wrappers=FALSE
指定サービスのプロパティ値表示
書式
inetadm -l FMRI
出力例:ftpサービスのプロパティ値表示
$ inetadm -l ftp
SCOPE NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -a"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
default max_copies=-1
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
行頭に"default"がある項目は、inetdのデフォルト設定である事を示す。
プロパティ値の変更方法
デフォルトのinetdプロパティ値変更
書式
inetadm -M {name=value}...
実行例:デフォルトの tcp_wrappers を有効(TRUE)に変更
# inetadm -p
NAME=VALUE
bind_addr=""
bind_fail_max=-1
bind_fail_interval=-1
max_con_rate=-1
max_copies=-1
con_rate_offline=-1
failrate_cnt=40
failrate_interval=60
inherit_env=TRUE
tcp_trace=FALSE
tcp_wrappers=FALSE
#
# inetadm -M tcp_wrappers=TRUE
#
# inetadm -p
NAME=VALUE
bind_addr=""
bind_fail_max=-1
bind_fail_interval=-1
max_con_rate=-1
max_copies=-1
con_rate_offline=-1
failrate_cnt=40
failrate_interval=60
inherit_env=TRUE
tcp_trace=FALSE
tcp_wrappers=TRUE
指定サービスのプロパティ値変更−1
書式
inetadm -m FMRI name=value
実行例:telnetサービスの tcp_wrappers を有効(TRUE)に変更
# inetadm -l telnet
SCOPE NAME=VALUE
name="telnet"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.telnetd"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
default max_copies=-1
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
#
# inetadm -m telnet tcp_wrappers=TRUE
#
# inetadm -l telnet
SCOPE NAME=VALUE
name="telnet"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.telnetd"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
default max_copies=-1
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
tcp_wrappers=TRUE
tcp_wrappersの値がFALSEかたTRUEに変わっており、行頭の"default"が無くなってinetdのデフォルト設定から個別設定に変更されている事が分かる。
個別設定になったプロパティ値をデフォルト(default)に戻す場合は、"value"値を設定しないで実行する。
# inetadm -m telnet tcp_wrappers=
#
# inetadm -l telnet
SCOPE NAME=VALUE
name="telnet"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.telnetd"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
default max_copies=-1
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
tcp_wrappersの行頭に"default"が付いてinetdのデフォルト値に戻った。
指定サービスのプロパティ値変更−2
書式
inetadm -m FMRI name=value
実行例:ftpサービスの起動オプションを変更
# inetadm -l ftp
SCOPE NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -a"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
default max_copies=-1
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
#
# inetadm -m ftp exec="/usr/sbin/in.ftpd -a -l"
#
# inetadm -l ftp
SCOPE NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -a -l"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
default max_copies=-1
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
exec行の起動オプションが変更されている。
inetサービスの有効化/無効化方法
サービスの有効化
書式
inetadm -e FMRI
実行例:rexecサービスの有効化
# inetadm | grep rexec
disabled disabled svc:/network/rexec:default
#
# inetadm -e rexec
#
# inetadm | grep rexec
enabled online svc:/network/rexec:default
サービスの無効化
書式
inetadm -d FMRI
実行例:ftpサービスの無効化
# inetadm | grep ftp
enabled online svc:/network/ftp:default
#
# inetadm -d ftp
#
# inetadm | grep ftp
disabled disabled svc:/network/ftp:default
サービスの登録方法
inetd.confのインポート
inetd.confの設定をインポートしてリポジトリ(管理データベース)に登録する。
書式
inetconv [-i ファイル名]
実行例:ファイル名無指定で /etc/inet/inetd.conf のインポート
# inetconv
inetconv: 注意: 100235/1 のサービスマニフェストはすでに /var/svc/manifest/network/rpc/100235_1-rpc_ticotsord.xml として生成されています。スキップします
inetconv: 注意: 100083/1 のサービスマニフェストはすでに /var/svc/manifest/network/rpc/100083_1-rpc_tcp.xml として生成されています。スキップします
inetconv: 注意: 100068/2-5 のサービスマニフェストはすでに /var/svc/manifest/network/rpc/100068_2-5-rpc_udp.xml として生成されています。スキップします
sgi_fam/1-2 -> /var/svc/manifest/network/rpc/sgi_fam_1-2-rpc_tcp.xml
sgi_fam_1-2-rpc_tcp.xml をインポートしています ...完了
#
# inetadm | grep fam
enabled online svc:/network/sgi_fam_1-2/rpc_tcp:default
sgi_famサービスがinetdから起動可能になっている。
サービスの削除方法
サービスの削除
書式
svccfg delete -f FMRI
実行例:sgi_famサービスの削除
# inetadm | grep sgi_fam
enabled online svc:/network/sgi_fam_1-2/rpc_tcp:default
#
# svccfg delete -f sgi_fam_1-2/rpc_tcp
#
# inetadm | grep sgi_fam
#
# rm /var/svc/manifest/network/rpc/sgi_fam_1-2-rpc_tcp.xml
#
Copyright (C) 2005-2006 SY. All rights reserved.