シェルスクリプトのみを実行できる制限付きユーザーを設定するには?

シェルスクリプトのみを実行できる制限付きユーザーを設定するには?

SLES12などのSSHを介してLinuxシステムにログインでき、SSHログイン後に表示されるシェルスクリプトのみを実行できるローカルユーザーを作成する方法は?

したがって、他のユーザーをだまして777ファイルを読み取ったり、別のコマンドを実行したりすることはできません。

シェルスクリプトは、私が処理できるsudoを介してコマンドを実行する小さなメニューベースのエントリです。唯一の問題はユーザーの制限です。実際には、ログイン時にメニューベースのスクリプトが自動的に表示されるはずですが、そうすることはできません。たとえば、"ssh user@linuxmachine "somecmd""を介してコマンドを実行します。

答え1

command=サーバー側ファイルのフラグを使用してこれを強制できます。authorized_keysからman sshd

command="command"

このキーが認証に使用されるたびにコマンドが実行されることを指定します。ユーザーが提供したコマンドがある場合は無視されます。クライアントがptyを要求すると、コマンドはptyで実行され、そうでない場合はttyなしで実行されます。 8ビットクリーンチャンネルが必要な場合は、ptyを要求しないか、no-ptyを指定する必要があります。バックスラッシュを使用して、コマンド内に引用符を含めることができます。

このオプションは、特定の公開鍵が特定の操作のみを実行するように制限するのに役立ちます。たとえば、リモートバックアップを許可しますが、他には許可しないキーがある可能性があります。制限付きキーオプションの使用など、明示的に禁止されていない限り、クライアントはTCPおよび/またはX11転送を指定できます。

クライアントが最初に提供したコマンドは、SSH_ORIGINAL_COMMAND環境変数にあります。このオプションは、シェル、コマンド、またはサブシステムの実行に適用されます。また、このコマンドは sshd_config(5) ForceCommand ディレクティブに置き換えることができます。

コマンドが指定され、そのコマンドが認証に使用される証明書に強制的に含まれる場合、両方のコマンドが同じ場合にのみ証明書が許可されます。

バージョン管理にのみアクセスしたいgit、bzr、および友達へのSSHアクセス設定に関するチュートリアルで、これの多くの例を見つけることができます。

sshd_config本質的に同じ操作を実行するディレクティブもありますForceCommand(「クライアントと〜/ .ssh / rc(存在する場合)によって提供されるすべてのコマンドを無視し、ForceCommandによって指定されたコマンドを強制します。このコマンドはユーザーの "-cオプションを使用してシェルを呼び出すためのログイン名)、パスワードベースのログインを使用している場合でも使用でき、特定のソースIPに制限される可能性がありますが、グローバルサーバー構成を入力する必要があるため、うまく拡張できません。

答え2

あなたが探しているのは限られたシェルです。 rbashとそれに伴うセキュリティ問題を調査してください。正しく設定すると、これがうまくいく可能性があります。より良いオプションは、仮想環境または刑務所(オペレーティングシステムがサポートしている場合)を使用することです。

答え3

予想される脅威レベルは何ですか?メニューシステムは偶発的な誤用と無計画な実験に耐えるのに十分ですか、それとも深刻な攻撃を受ける可能性がある実際の価値を保護していますか?

よりカジュアルなスペクトルには、次の古いUnixトリックで十分です。

メニュースクリプトが引数なしで実行できることを確認し、それを追加してから、/etc/shellsそのchshユーザーのシェルにメニュースクリプトを設定します。

ユーザーがメニュースクリプトからコマンドモードに切り替えることはできないようにする必要がありますが、ユーザーがメニュースクリプトを単に停止すると、限られたセッションが終了します。

ユーザーが別のコマンド(構文を使用するなどssh <host> <command>)を実行しようとすると、メニュースクリプトは通常のシェルの代わりにそのコマンドを実行しようとします。いずれの状況でも、メニュースクリプトがパラメータを使用しないと、試行は失敗し、ユーザーはとにかくメニューに入ります。

これは、既存のパスワードベースのログインに適用されます。専用のSSH鍵認証を強制できる場合は、提案されているようにファイルcommand=にフラグを立てます。authorized_keysウリヒ・シュワルツほぼ同じレベルです。

関連情報