2010.03.17
 

プロファイル名長の制限

Question

8 文字を超える IBM i プロファイル名で SFTP にログインしようとするとエラー・メッセージが表示されます。SFTP はそのようなプロファイルにはエラー「You don't exist, go away!」を戻します。この問題を回避するための PTF が足りないのでしょうか。IBM i 6.1 を使用しています。

Answer

tinyurl.com/sftp8charuser1 に記載されているように、これは IBM i における SSH の既知の制限です。残念ながら、この参考資料には、プロファイル名がなぜ 8 文字以下でなければならない理由はほとんど記載されていません。それよりも多少参考になる資料は、tinyurl.com/sftp8charuser2のPASE_USRGRP_LIMITED 変数の説明中にあります。

私の理解 (前述の情報に基づいてかなり憶測の面がありますが) は、その問題の根本原因は IBM の AIX オペレーティング・システムにあると思います。この OS ではユーザー ID は 8 文字長のみ許可されています。単純に IBM は、AIX 向きに作成されたソフトウェアで、ユーザー ID が 8 文字を超えることはなく、それより長いユーザー ID が指定されるとバッファー・オーバーフローを起こし、メモリーにある以降のスペースが上書きされるおそれがあるのではないかと心配しています。したがって、8 文字を超えるユーザー・プロファイル名で標準 Unix getpwuid() API または getgrgid() API の PASE バージョンを呼び出そうとすると、メモリー破壊の危険性があります。したがって IBM はそれらの API に 8 文字長以下のユーザー ID を戻すようあえて制限しています。

個人的には、IBM は用心し過ぎていると思っています。AIX 向けに明示的に作成されているソフトウェアを IBM i ショップはどれだけ頻繁に実行しているでしょうか。PASE で実行しているのを見たことがありますが、そのソフトウェアのほとんどが、もともとは Linux 向けに作成され、PASE 向けにコンパイルされたオープン・ソース・ソフトウェアです。SSH がその一例です。PHP もそうです。

Linux (および Unix のほとんど) では 8 文字より長いユーザー ID を許可しているため、長いユーザー名を許可しても問題になるとは思えません。さらに、AIX 向けのソフトウェアを作成するユーザーは自分を AIX 開発者とは考えておらず、Unix 開発者と考えています。Unix コミュニティーには、(再コンパイルにより) どの Unix システムでも実行できるようなソフトウェアを作成するというプライドのようなものがあります。したがって、彼らがユーザー ID が常に 8 文字以下であることを前提に考えているとは非常に考えにくいです。あるいは、彼らがそのように想定しているとしたら、バッファー・オーバーフローが発生しないだろうと想定するよりは、強制的にコードを書き入れるでしょう。したがって、私なら IBM i 6.1 を使用している場合、SSHD を実行するジョブにその変数を設定します。8 文字を超えるユーザー ID を指定できるか確認してみてください。

PASE_USRGRP_LIMITED 変数をサポートしていない IBM i の旧版を使用している場合、8 文字以下のユーザー・プロファイル名を使用するしか望みはありません。

ページトップ

ボタン