kermit-5A(190) 設定概論第1

Copyright(c) 1997 George(小浜 純). All rights reserved.
Last Update 97/07/24 07:04:13

[ホームページ] [日記] [読んでいる日記] [FreeBSD]

kermit-5A(190) のインストール

FreeBSDを使ってパソコン通信するための環境を整えるため、kermitをインストールする。 また、FreeBSD 2.1.5R〜2.1.7Rにはportsが用意されている。 コンパイル方法や、インストール方法は C-Kermitのドキュメント(英語)を参照して欲しい。

以下では、C-Kermit ver 5A(190) を利用した場合の設定方法を述べる。 FreeBSD 2.2.1Rにportsが用意されている C-Kermit 6.0.192 の場合は設定方法が若干異なる。
kermitをportsからコンパイルした場合は4.から、自分でコンパイルしてインストールした場合は1.からの操作を行う。

  1. suコマンドでrootになる。
  2. chmod 2755 /usr/local/bin/kermit として、setuidビットを立てる。
  3. chgrp dialer /usr/local/bin/kermit として、kermitのグループをdialerにする。
  4. /etc/group を編集して、自分を dialer グループに所属させる。
    編集後の/etc/groupのdialerグループの行だけ以下に示す。 私のログイン名はgeorgeなので、georgeを追加しているが、各自のログイン名を記入して欲しい。 (FreeBSD 2.1.0Rの場合)
    dialer:*:117:root,george
    	
    (FreeBSD 2.1.5Rの場合)
    dialer:*:68:root,george
    	
  5. 追加したグループ名を有効にするため、shutdown -r now として、一度 OS をリブートしよう。 (ひょっとしたら、この操作は必要無いかも。知っている人がいたら教えてください。)
以上の操作をしないと、kermitから/dev/cuaa0にアクセスできる権限が無いというエラーが出ることがある。 上記の作業の後で、ls -laF kermitした結果を下に示す。
-r-xr-sr-x  1 bin  dialer  446464 Sep 20 08:15 /usr/local/bin/kermit*
続いて ls -laF /dev/cuaa0 した結果を以下に示す。
crw-rw----  1 uucp  dialer   28, 128 Jul 24 10:02 /dev/cuaa0
lsの結果からもわかるように、/dev/cuaa0は、uucpという名前の人か、dialerグループに属している人か、スーパーユーザー(root)の人しかアクセスできないので、このようなエラーが出るのである。 setuidビットを立てた(chmod 2755の2の部分がsetuidビット)実行ファイルは、実行時にファイルのグループの人が実行していることになる。 (余談だが、chmod 4755とされた実行ファイルは、実行時にファイルのオーナーの人が実行していることになる。) 上のように設定したkermitは、誰が実行しても(例えばgeorgeというユーザーが実行しても)実行される時にdialerグループの人が実行したことになるのだ。 (もちろん、georgeというユーザーはdialerグループに属している必要があるので、/etc/groupを編集したのだ。) このように設定することで、/dev/cuaa0にアクセスできるのである。 /etc/groupを編集した場合は、一度リブートしてgroupの変更をシステムに反映させる必要がある。

FreeBSDページの目次に戻る


kermitの使い方

ここでは、インストールしたkermitの使い方を簡単に説明する。 kermitは、指定された通信ポートを通して通信するソフトである。
kermit
とコマンドラインから入力すると起動する。 うまくインストールされていると、以下のようなメッセージを出力してkermitのコマンドモードになる。
Executing /home/george/.kermrc for UNIX...
 Dial directory is /home/george/.kdd 
 Services directory is /home/george/.ksd
Executing /home/george/.mykermrc...
Removing stale lock /var/spool/lock/LCK..cuaa0 (pid 2433 terminated)
Good Morning!
C-Kermit 5A(190), 4 Oct 94, for FreeBSD
 Copyright (C) 1985, 1994,
  Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
[/home/george] C-Kermit>
kermitのコマンドモードは、?を入力すると、ヘルプを表示してくれるので参考にすると良い。 この状態から、c [return]と入力すると、接続モードに入る。
[/home/george] C-Kermit>c
Connecting to /dev/cuaa0, speed 38400.
The escape character is Ctrl-? (ASCII 127, DEL)
Type the escape character followed by C to get back,
or followed by ? to see other options.
接続モードでは、キーボードから入力した文字は、通信ポートへ送られ、通信ポートから入って来た文字は画面に表示される。

モデムへ文字を出力できているかどうか、試してみよう。 接続モードから AT [return] と入力してみよう。

AT
OK
うまく設定できている場合は、モデムからOKが帰って来るはずである。 接続モードからkermitのコマンドモードへ戻るには、通常は CTRL+\ c と入力する。 後で示す .mykermrc を利用している場合は、 DEL c と入力する。

kermitを終了するには、kermitのコマンドモードからexitと入力する。

FreeBSDページの目次に戻る


kermitの設定 - .kermrc .mykermrc -

ここでは、インストールされたkermitの設定方法を紹介する。 .kermrcは、kermit標準のマクロや変数を定義しているマクロファイルで、各自で変更するのは最小限度にとどめたい。 .mykermrcは各自の環境にあわせて設定するマクロファイルであり、通常はこちらの設定を変更する。 以下に、私の.mykermrcを示す。
;
;	my C-Kermit macros
;
set line /dev/cuaa0
set speed 38400
set terminal bytesize 8
set file character-set dec-multinational
set flow-control rts/cts
set transfer character-set transparent
set command bytesize 8
set modem-dialer hayes
set carrier auto
set delay 1
set dial dial-command ATDT%s\13
set dial init-string 
set dial display on
set dial timeout 60
set dial mnp-enable on
set transmit linefeed
;
;	set escape char(for super taiki kun)
;
set escape 127
;
;	set log file name
;
;assign _logfilename \v(ndate)\Fsubstr(\v(time),1,2)\Fsubstr(\v(time),4,2)\Fsubstr(\v(time),7,2).log
;log session \m(_logfilename)
これくらい指定しておけば、漢字を表示するほとんどのネットに接続する時でも大丈夫だろう。
set escape 127
という指定で、kermitの接続モードから抜ける時のエスケープキーを DEL キーに割り当てている。 標準の設定では CTRL-\ になっているので、上記の.mykermrcを利用する際には注意が必要である。
;	set log file name
というコメントの下には、通信した時のログファイルを記録する設定が ; でコメントにされている。 色々難しく書いてあるが、この部分では、日付(19960516)、時間(064230)を組み合わせてログファイル名(19960516064230)を作成している。

FreeBSDページの目次に戻る


kermitの設定 - kdd -

ここでは、インストールされたkermitの.kddファイルの設定方法を紹介する。 .kddファイルは、ダイヤルディレクトリと呼ばれるファイルで、電話番号とネット名の対応付けをするものだ。 1行の中に、下記の順番で記述する。
  1. ネットの登録名
  2. 電話番号
  3. 接続ボーレート
  4. パリティの設定 none/even/odd
  5. コメント
以下に、私の.kddファイルを示す。
nifty2	99-4911		2400	none	Niftyserve Road 2 in Machida
netsx	03-3372-6494	19200	none	Network-SX HG
inside  03-5966-1054	19200	none	inside-BBS
ここまで設定した後、kermitの内部からdialコマンドを用いて名前で電話することができる。
C-Kermit> dial netsx
上の操作で、netsx(03-3372-6494)にダイアルしてくれる。 モデムが「ぴーひゃららら」という音を出して、接続したら
C-Kermit> c
と入力して、kermitの接続モードに入ろう。 普通にパソコン通信できるだろう。 パソコン通信を終了する場合は、DEL cと入力すると、kermitのコマンドモードに戻る。

FreeBSDページの目次に戻る


kermitの設定 - ksd -

ここでは、インストールされたkermitの設定方法を紹介する。 .ksdファイルには、以下のような記述を順番に行う。
  1. 呼ばれる名前。とりあえずAUTONIFにする。
  2. 実行するマクロ名。.mykermrc内部で定義したマクロ名を書く。とりあえずnifloginというマクロにしてみる。
  3. そのネットのID。私のniftyのIDはGHD00157である。
  4. 接続方法を示すマクロ名。 ここでは、モデム経由での接続になるので、callマクロを使う。 callマクロ以外にも、.kermrcにはシリアル直結接続用のserialとかネットワーク経由接続用のnetとかの接続用マクロが最初から定義されている。
  5. callマクロへの引数でモデムタイプ。とりあえずhayesにする。
  6. callマクロへの引数で、接続するRS-232C回線の指定。FreeBSDでのCOM1は/dev/cuaa0とする。
  7. callマクロへの引数で、電話番号。町田のRoad2の電話番号を記述する。
以下に、私の.ksdファイルを示す。
AUTONIF    niflogin    GHD00157 call hayes /dev/cuaa0 2400 99-4911
次に、niftyへオートログインするためのマクロを準備する。 以下のマクロ定義コードを.mykermrcに追加する。
COMMENT - NIFLOGIN macro for Niftyserve Road2.  Arguments:
; \%1 = NiftyServe User ID
; \%2 = Password
;
def NIFLOGIN -
    if < \v(argc) 2 end 1 Usage: \%0 userid password,-
    if eq \fcode(\%2) 32 asg \%2 \fsubst(\%2,2), -
    while not def \%2 { - 
        askq \%2 { \%1's password: } -
    },-
    set input timeout quit,-
    output @P\13,-
    input 5 Host Name,-
    output C NIF\13,-
    input 5 Connection-ID,-
    output SVC\13,-
    input 5 User-ID,-
    output \%1\13,-
    input 5 Password,-
    output \%2\13,-
    def \%2,-
    if not def \%3 asg \%3 by NIFTY Corporation,-
    input 30 \%3,-
    echo, echo Login successful.
ここで下準備は終了である。 .ksdに定義されているホストのリストを表示させるには、listマクロ(.kermrcでデフォルトで定義されている)を使う。
C-Kermit> list
1 items in services directory:
AUTONIF    niflogin    GHD00157 call hayes /dev/cuaa0 2400 99-4911
実際にアクセスするには、kermitを起動した後、accessマクロ(.kermrcでデフォルトで定義されている)を実行する。
C-Kermit> access autonif
「ぴーひょろろろ」とモデムから音がして、接続した後に
 GHD00157's password: 
に答えてパスワードを入力してやると、SJISモードで自動ログインするようにマクロを組んでいる。 オートログインの動作の詳細を知るには、やはり、.kermrcのaccessマクロを追いかける必要があるだろう。

FreeBSDページの目次に戻る


[ホームページ] [日記] [読んでいる日記] [FreeBSD]
home: <george@yk.rim.or.jp>