Linuxボックスへの匿名sshログインを許可し、1つのプログラムのみを実行するにはどうすればよいですか?


3

Linuxサーバーにテキストベースのゲームがインストールされており、SSH経由でそのサーバーへのログインを許可したいのですが、制限があります。

ログインは、stdinからキーボード入力を読み取るゲームに直接移動する必要があります。ゲームが終了すると、ユーザーはすぐにサーバーから切断されます。または、ユーザーがログインする場合、ユーザーが使用できるコマンドは1つだけである必要があります。

私はゲームにウェブベースのインターフェースを使用することを考えましたが、ちょうどいい感じの端末でゲームをプレイすることについて何かがあります。「これは悪い考えです...」またはその変種で返信しないでください。誰かが解決策を知っているかどうかを知りたいだけです。

回答:


3

従来のアプローチでは、ユーザーのログインスクリプトを編集して、割り込みをトラップし、プログラムを実行してからログアウトします。

ユーザーのログインシェルを制限付きシェル(man rksh)に設定できます。「rkshはコマンドインタープリターkshの制限付きバージョンです。これは、標準シェルよりも機能が制御されているログイン名と実行環境を設定するために使用されます。 」または、制限モードでbashを使用します。

ログインスクリプトへのユーザーの書き込みアクセス権(およびプログラムが書き込む必要のないその他のアクセス権)を削除します。

セキュリティを強化するには、ユーザーをchrootします。


2

おそらく、/ etc / passwdでログインシェルとしてゲームバイナリを設定できます。

しかし、私は自分で試したことはありません。


これも私の最初の考えです。理論的には、/ etc / passwd内のユーザーのログインシェルは、ユーザーがログインしたときに実行される単なるバイナリです。ゲームバイナリをポイントするだけで機能すると考えられます。
-Dウィリアムズ

あなたがそれをするとき、STTY設定とTERMのような環境変数について何が起こるのか分かりません。知ってる?
RedGrittyBrick

OPには関係ないかもしれませんが、プログラムに引数を渡す必要があるため、これはうまくいきません。
デビッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.