私がセットアップしたMac OS X Serverでは、GUIからの設定だけではtelnetでリモートログインできませんでした。今回はその時行った対応を紹介します。セットアップしたマシンはPowerMacintoshG3DT266改(466)+AdaptecPowerDomain2940U2W+Quantum AL5-18300LWになります。他の組み合わせでは同様の現象は出ないかもしれません。
以下はそのときの現象です。
- 通常にインストール終了後、【システム環境設定】の【共有】パネルで【リモートログインを許可する】をオンにしました。
- 次にServerAdminを起動して【U & G】の中の【ユーザとグループのリストを表示】から新しくユーザを作成し、そのユーザに【ユーザにログインを許可する】をオンにしました。
- この状態で、他のマシンからtelnetでログインを試みても受け付けてくれませんでした。
Trying 210.xxx.xxx.xxx...
telnet: Unable to connect to remote host: Connection refused
- OSの再インストールをしても状況は変わらなかったので、原因を探ると/etc/inetd.confの設定に問題が有ったようです。
『ここで今回のコマンドの説明』
ここで登場するコマンドは【cd】と【cp】です。
【cd】はディレクトリの移動を行います。たとえば、プロンプトが[localhost:~] root#の場合最上位の階層にいます。ここで下記のように入力し、リターンキーを押すと/Users/david/Documentsに移動できます。
[localhost:~] root#cd /Users/david/Documents
[localhost:/Users/david/Documents] root#
最上位に戻るには
[localhost:/Users/david/Documents] root#cd
[localhost:~] root#cd
【cp】はコピーするときに使うコマンドです。/Users/david/Documentsにあるtest.txtを/Users/Sharedにコピーする場合以下のように入力しリターンキーを押します。
[localhost:/Users/david/Documents] root#cp test.txt /Users/Shared/test.txt
また同じ階層に違う名前でバックアップを取る場合は、以下のように入力しリターンキーを押します。
[localhost:/Users/david/Documents] root#cp test.txt test.txt.org
これで同じ階層にtest.txt.orgと言うファイルが作られます。
今回はこんな風に対処しました。
- まずTerminalを起動してsuになり、ディレクトリ/etcに移動します。
[localhost:~] david% su
Password:
[localhost:/Users/david] root# cd /etc
- そこで【inetd.conf】オリジナルをバックアップしました。
[localhost:/etc] root# cp inetd.conf inetd.conf.org
【cp】はコピーコマンドです。上記では【inetd.conf】を同じディレクトリ内に【inetd.conf.org】という名前でコピー(バックアップ)しています。
- ここでちゃんとバックアップがとれたか【ls -a】で確認しています。
[localhost:/etc] root# ls -a |
|
|
. |
hostconfig~ |
monthly |
ssh_host_dsa_key |
.. |
hosts |
motd |
ssh_host_dsa_key.pub |
csh.login |
inetd.conf |
protocols |
ssh_prng_cmds |
csh.logout |
inetd.conf.org |
rc |
sshd_config |
daily |
kern_loader.conf |
rc.boot |
sudoers |
find.codes |
krb.conf |
rc.common |
syslog.conf |
[localhost:/etc] root# |
|
|
赤い文字のファイルがバックアップされた物です(ファイルの数は本来もっとたくさんありますが、省略しています)。configに失敗した場合これを元に復旧します。
- ftpの所にも書きましたが、私はバリバリのUNIXユーザではありません。またUNIXのテキストエディタ【vi】のインターフェイスもいまいちよく分かりませんので、ここでは一旦ファイルを自分のDocumentsフォルダにコピーして作業しています。私が通常使っているテキストエディタは【Jedit4】です。他のエディタでもかまいませんが、改行コード(UNIXはLFで、MacはCRです)の変換ができる物が必要です。また、行番号がだせる物が見やすく便利です。というわけで、自分のホームディレクトリ内のDocumentsフォルダにファイルをコピーします。
[localhost:/etc] root# cp inetd.conf /Users/david/Documents/inetd.conf
[localhost:/etc] root# cd /Users/david/Documents
[localhost:/Users/david/Documents] root# ls -a
. .. inetd.conf
[localhost:/Users/david/Documents] root#
【ls -a】コマンドで確認すると、上記のようにうまくコピーされました。赤い文字のファイルがコピーされたファイルです。
- コピーされた【inetd.conf】を【Jedit4】で開きます。ファイルを【Jedit4】のアイコンにドロップすれば開けます。この時改行コードをどうするかきかれますので、変換して開くを選択します。変換して開くを選ばないと、まったく改行してくれないので、作業がやりにくくなります。またこの時表示するフォントをOSAKA等幅など、等幅フォントを選んでおくとさらに見やすくなります。
- 14行目の#telnetで始まる行の#をはずして保存します。
- 書き換えたファイルを元の場所に戻します。
[localhost:/Users/david/Documents] root# cd
[localhost:~] root# cp /Users/david/Documents/inetd.conf /etc/inetd.conf
[localhost:~] root#
- Terminalのログアウトをします。
[localhost:~] root# exit
exit
[localhost:~] david% exit
logout
[Process completed]
- Terminalを終了させて、マシンを再起動させます。
以上の操作でtelnetを使い、リモートログインできるようになっているはずです。