私はシェルプログラミングや、Bourne や Korn Shell のようなまったく新しいシェルの作成について話しているわけではありません。
ポート 21 経由で ftp にアクセスするユーザーを、シェルが使用するいくつかの基本コマンドをサポートできるこのシェルに誘導したいだけです。
私もまったく同じことを Google で検索しましたが、満足のいく結果は見つかりませんでした。
答え1
通常、KornシェルとBashシェルには「制限されたシェル」モードです。制限付きシェルにアクセスするのは、次のように入力するだけですrsh
(「リモート シェル」は避けてください。2012 年には絶対にお勧めできません) rbash
。ただし、何が必要かはわかりません。
FTP プロトコルでは、クライアントが任意のコマンド (QUOTE 付き) を送信できる可能性がありますが、FTP サーバー ( ftpd
) は、受信したコマンドをそのまま実行すべきではありません。FTP サーバーには、FTP プロトコル自体に原因がある部分と、ずさんなプログラミングや微妙なエラーに原因がある部分の両方で、セキュリティ上の問題が長く発生しています。
(クライアント プログラム)を使用すると、(サーバー プログラム) マシンftp
上のファイル一覧を表示したり、ディレクトリを変更したりできる可能性がありますが、ユーザー ID「ftp」に制限付きシェルを割り当てても、クライアントが FTP サーバー (マシン) 上で任意の操作を行うことはできません。ftpd
ftpd
ftp
制限されたシェルを持つユーザー ID を設定し、そのユーザー ID による SSH アクセスを許可することで、目的を達成できる可能性があります。質問からはわかりません。