フォースコマンド

フォースコマンド

これは私がしばらく前に調べて、役立つ情報を見つけたものです...しかし、実際にそれを実行する必要があるとき、もちろん、私が見たそのガイドはもう見つかりません。

とにかく、状況はこうです。SSH 経由で ncurses メニューを使用して実行するプログラムがあります。ユーザーが SSH 経由でそのプログラムにログインできるようにしたいのですが、そのプログラムにのみログインできるようにしたいのです。

このシナリオを実現するには何をすればよいでしょうか?

  • ユーザーがPuttyを開く
  • ユーザーはユーザー名とパスワードでLinuxサーバーにサインインします。
  • ログインすると、そのプログラムに直接アクセスします
  • プログラムが終了、クラッシュ、キャンセルなどした場合、ユーザーはシステムから強制的にログオフされます。

私の目標は、コマンド ラインをまったく表示しないように制限し、そのプログラムだけに制限することです。これは可能ですか? どうすればいいですか?

答え1

これはキャプティブ ログインとも呼ばれます。

ユーザーの ~/.profile にプログラムの実行と終了を追加します。

exec /usr/local/bin/program
exit

賢いユーザーは、ssh クライアントで、期待するシェルではないコマンドを指定できることを知っています。sshd 構成で ForceCommand を使用して、これを防ぎます。

フォースコマンド

ForceCommand で指定されたコマンドを強制的に実行します。クライアントによって提供されたコマンドと ~/.ssh/rc (存在する場合) は無視されます。コマンドは、-c オプションを指定したユーザーのログイン シェルを使用して呼び出されます。これは、シェル、コマンド、またはサブシステムの実行に適用されます。Match ブロック内で最も役立ちます。

Match Group programusers
    ForceCommand /usr/local/bin/program

関連情報