名前 | 形式 | 機能説明 | セキュリティ | オプション | 使用例 | 環境 | ファイル | 属性 | 関連項目 | 注意事項
/usr/lib/saf/ttymon
/usr/lib/saf/ttymon -g [-d device] [-h] [-t timeout] [-l ttylabel] [-p prompt] [-m modules] [-T termtype]
ttymon は STREAMS ベースの TTY ポートモニターです。その機能には、ポートの監視、ポートの端末モード、ボーレートおよび回線規約の設定、そしてポートに関連したサービスへの ユーザーまたはアプリケーションの接続があります。通常、ttymon は、サービス・アクセス・ファシリティ (SAF) の一部として、サービス・アクセス・コントローラ、sac(1M) の制御下で実行するように構成されています。ttymon は sacadm(1M) コマンドを実行して構成されます。ttymon の各インスタンスは複数のポートを監視できます。ttymon のインスタンスによって監視されるポートは、ポートモニターの管理ファイルに指定されています。管理ファイルは pmadm(1M) コマンドおよび ttyadm(1M) コマンドを実行して構成されます。ttymon のインスタンスは、sac コマンドによって呼び出されると、ポートの監視を始めます。各ポートについて、ttymon は回線規約が指定されていれば、最初に回線規約を初期化してから、速度と端末設定を初期化します。/etc/logindevperm 中のエントリに指定されているポートには、デバイスのオーナー、グループ、アクセス権が設定されます (logindevperm(4) 参照)。初期化に使用される値は、TTY 設定ファイルの適切なエントリから取り込まれます。このファイルは sttydefs(1M) コマンドによって管理されています。通常、ポート上のデフォルトの回線規約は、オートプッシュファシリティの autopush(1M) コマンドによって設定されます。
次に ttymon はプロンプトを書き込んでユーザーの入力を待ちます。ユーザーが BREAK キーを押して速度が適切でないことを知らせると、ttymon は次の速度を試行してプロンプトを再び書き込みます。正しい入力を受信すると、ttymon は、(もしあれば) ポートのサービスごとの構成ファイルを解釈し、必要に応じて utmpx エントリを作成します (utmpx(4) 参照)。そして、サービス環境を確立し、ポートに関連するサービスを呼び出します。有効な入力は、キャリッジリターンで終わり、少なくとも 1 つの復帰改行以外の文字が入った文字列からなります。サービスが終了すると、ttymon は utmpx エントリが存在していればそのエントリを消去して、ポートを初期状態に戻します。
autobaud がポートで動作可能であれば、ttymon は自動的にポートのボーレートを判別しようとします。ユーザーがキャリッジリターンを入力してからでないと、ttymon はボーレートを認識してプロンプトをプリントできません。現在のところ、autobaud が判別できるボーレートは 110、1200、2400、4800、および 9600 です。
ポートが双方向性ポートとして構成されている場合、ttymon によって、ユーザーはサービスに接続できるようになり、またポートが使用されていなければ、uucico(1M)、cu(1C)、または ct(1C) はダイアルアウト用にポートを使用できるようになります。ポートが双方向性であれば、ttymon は文字の読み込みが終わるのを待ってからプロンプトをプリントします。
ポート用に connect-on-carrier フラグをセットしている場合、ttymon は、接続要求を受け取るとただちに ポートに関連付けられたサービスを呼び出します。プロンプトメッセージは送信されません。
ポートが動作禁止になっていると、ttymon はこのポートにおいてサービスを呼び出しません。動作禁止メッセージが指定されている場合には、ttymon は接続要求を受け取ると動作禁止メッセージを送信します。ttymon が動作禁止になっている場合、ttymon のインスタンスの制御下にあるすべてのポートが動作禁止になります。
ポートに ttymon が呼び出すサービスは、ttymon 管理ファイルに指定されています。ttymon は、このポートに呼び出されるサービスを指示する文字列を走査して、%d または %% の 2 文字のシーケンスを捜します。%d を見つけると、ttymon は、これらの 2 文字をこのポートの完全パス名 (デバイス名) に置き換えることによって、実行されるサービスコマンドを変更します。%% を見つけると、これらは単一の % に置き換えられます。サービスを呼び出すと、読み書きするためにポートデバイスに対して 0、1、および 2 の各ファイル記述子がオープンされます。サービスは、ttymon に登録したときに用いたユーザー名についてのユーザー ID 、グループ ID、および現在のホームディレクトリを使用して呼び出されます。2 つの環境変数、HOME および TTYPROMPT は、ttymon によってサービスの環境に追加されます。HOME はサービスを呼び出すときに用いるユーザー名のホームディレクトリに設定されています。TTYPROMPT はこのポートのサービスに構成されたプロンプト文字列に設定されています。ttymon が呼び出すサービスが、プロンプトが実際に ttymon によって出されていたかを判別し、出されている場合にはそのプロンプトが実際には何であったかを判断する機能を持つように、設定されています。
サービスアクセスコントローラの制御下にある ttymon により監視されるポートに設定できるオプションについては、ttyadm(1M) を参照してください。
システムコンソール上での ttymon の呼び出しは、サービス svc:/system/console-login によって smf(5) の元で管理されます。次に示すように、呼び出しを制御するためにプロパティグループ ttymon 内の多くのプロパティを提供します。
NAME TYPE TTYMON OPTION ---------------------------------------------------------- device astring [-d device] nohangup boolean [-h] label astring [-l label] modules astring [-m module1,module2] prompt astring [-p prompt] timeout count [-t timeout] terminal_type astring [-T termtype] |
いずれかの値が空の文字列であるかゼロに設定された整数である場合、オプションは ttymon 呼び出しに渡されません。-g オプションはつねにこの呼び出しに指定されます。-d オプションは、設定されていない場合、つねにデフォルトの /dev/console になります。
「使用例」を参照してください。
ttymon は pam(3PAM) を使って、セッション管理を行います。PAM 構成ポリシーは ttymon で使用するモジュールを明記しています。このポリシーは /etc/pam.conf で見ることができます。以下に UNIX セッション管理モジュールを使用する ttymon コマンドのエントリの入った pam.conf ファイルの抜粋を示します。
ttymon session required /usr/lib/security/pam_unix_session.so.1
ttymon サービスのエントリがない場合には other のサービスのエントリを使用します。
次のオプションを指定できます。
ttymon の特殊な呼び出しは -g オプションを指定して行います。コマンドのこの書式を呼び出せるのは、ポートに正しいボーレートおよび端末設定を設定してから login サービスに接続する必要があるアプリケーションだけにする必要があります。SAC の制御下では前もって構成することはできません。-g は、以下のようなオプションの組み合わせとともに使用できます。
device は ttymon の接続先とすべきポートの完全パス名です。このオプションが指定されていなければ、ファイル記述子 0 は TTY ポートに対する呼び出しプロセスによって設定される必要があります。
-h フラグが指定されていないと、ttymon は、速度をデフォルト速度または指定速度に設定する前に、速度を 0 に設定することによって回線のハングアップを強制的に行います。
ttylabel は ttydefs ファイルの速度および TTY 定義に対するリンクです。この定義によって、初期の実行速度、初期の TTY 設定の内容およびユーザーが BREAK キーを押して速度が適切でないことを指示する場合に、次に試行する速度が ttymon に通知されます。デフォルト速度は 9600 ボーです。
ポートを初期化すると、ttymon はポートのモジュールすべてをポップして、指定した順序で modules をプッシュします。modules はコンマで区切ったプッシュ可能なモジュールのリストです。通常、ポートのデフォルトのモジュールは、オートプッシュファシリティによって設定されます。
ユーザーはこれを用いるとプロンプト文字列を指定できます。デフォルトのプロンプトは Login: です。
プロンプトの送信後、timeout 秒内に何も入力がない場合には ttymon を終了します。
termtype に TERM 環境変数を設定します。
次の例では、システムコンソール ttymon 呼び出しのための端末タイプ (-T) オプションの値を設定します。
svccfg -s svc:/system/console-login setprop \ ttymon/terminal_type = "xterm" svcadm refresh svc:/system/console-login:default |
LC_* 変数 (LC_CTYPE、LC_MESSAGES、LC_TIME、LC_COLLATE、LC_NUMERIC、LC_MONETARY) (environ(5) 参照) のいずれも環境に設定されていなければ、それぞれ対応する ロケール のカテゴリにおける ttymon の動作は、環境変数 LANG によって決定されます。もし、LC_ALL が設定されていれば、その内容が LANG 変数やその他の LC_* 変数より優先されます。上記の変数が環境にまったく設定されていなければ、C ロケール (米国スタイル) が ttymon の動作を決定します。
ttymon の文字の処理方法を決定します。LC_CTYPE に有効な値が設定されていると、ttymon は、そのロケールにあった文字を含むテキストやファイル名を表示および処理できます。ttymon は拡張 UNIX コード(EUC)も表示および処理できます。この場合、文字は 1 バイト幅、 2 バイト幅、3 バイト幅のいずれも使用できます。また、ttymon は 1、 2、またはそれ以上のカラム幅の EUC 文字も処理することができます。C ロケールにおいては、ISO 8859-1 の文字だけが有効です。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ |
属性値 |
---|---|
使用条件 |
SUNWcsu |
安定性 |
下記を参照 |
コマンド行の形式は変更ありません。SMF プロパティは開発中です。
ct(1C), cu(1C), autopush(1M), pmadm(1M), sac(1M), sacadm(1M), sttydefs(1M), ttyadm(1M), uucico(1M), pam(3PAM), logindevperm(4), pam.conf(4), utmpx(4), attributes(5), environ(5), pam_authtok_check(5), pam_authtok_get(5), pam_authtok_store(5), pam_dhkeys(5), pam_passwd_auth(5), pam_unix_account(5), pam_unix_auth(5), pam_unix_session(5), smf(5)
ポートが複数の ttymon によって監視されている場合は、ttymon は入力を争うような方法でプロンプトメッセージを送信できます。
pam_unix(5) モジュールはサポートされません。同様の機能は、pam_authtok_check(5), pam_authtok_get(5), pam_authtok_store(5), pam_dhkeys(5), pam_passwd_auth(5), pam_unix_account(5), pam_unix_auth(5), および pam_unix_session(5) で提供されています。
名前 | 形式 | 機能説明 | セキュリティ | オプション | 使用例 | 環境 | ファイル | 属性 | 関連項目 | 注意事項