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

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

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に制限される可能性がありますが、グローバルサーバー構成を入力する必要があるため、うまく拡張できません。

おすすめ記事