GNU/Linux >> Linux の 問題 >  >> Linux

Ssh –スクリプトをリモートでしか実行できないユーザーを追加しますか?

1つのことしかできないユーザーを作成したいと思います。sshを使用して、特定の1つのフォルダーにあるスクリプト(およびスクリプトへのコマンドライン引数)を指定します
(この質問では、 / local / remote_only_scripts / foo )そして、そのスクリプトを実行して、その出力を返します。

ユーザーに実行させたくないことのいくつかの例を明確にするために:

  • アカウントにローカルでログインします。
    ログインアプリケーションは/bin / loginです。 。 / local / remote_only_scripts / fooのスクリプトではありません フォルダなので、ユーザーが呼び出さないでください。
  • アカウントにリモートログインします。繰り返しますが、ログイン(sshと呼ばれるものですか?)は、関連するフォルダー内のスクリプトではありません。
  • ディレクトリの内容を一覧表示します。 lsは/bin / lsにあります 。適切なディレクトリにあるスクリプトではありません。
  • そのディレクトリ内のファイルを編集します。 emacs、vi、gedit他のほとんどのエディターは、そのディレクトリのスクリプトではありません。
  • そのディレクトリ内のファイルの内容を表示します。
  • そのディレクトリで、実行する権限がないファイルを実行します。

これらはであることに注意してください ユーザーに実行させたくないアクションは他にもたくさんあります。アクションを検討する際には、「これは / local / remote_only_scripts / foo のスクリプトによって実行されていますか? ?」答えが「いいえ」の場合、ユーザーはそれを行うことができないはずです。答えが「はい」の場合、ユーザーはそれを実行できるはずです。

PS:「ユーザーを追加する」とはどういう意味かを明確にしましょう。 sshサブシステムにユーザーを追加するという意味ではありません。むしろ、コンピュータシステムにユーザーを追加することを意味します。たとえば、私はdebian安定版を実行しているシステムを持っており、そのアドレスwww.hg.bar.comで呼んでいます。ユーザーを追加したい(kuser、users-admin、useradd、または同様の方法で)彼をhg_guestと呼びます。 hg_guestは、ローカルにログインしたり、上記のリストにあることを実行したりすることはできません。 hg_guestが実行できるのは、スクリプトを「リモートで」実行することだけです。彼はssh経由でできるはずだと言いましたが、今考えてみると、sshの使用を許可すると、ローカルでログインできる可能性があるため、他のメカニズムが必要になる可能性があります。

承認された回答:

コマンドがあります authorized_keysファイルのオプション。このオプションは、あなたが望むことを正確に実行しているようです。

関連:Linux – ext4パーティションでの偶発的なフォーマットからのデータ回復?

chrootや制限付きシェルではないことに注意してください。 ssh経由でこれらのコマンドのみを実行できます。あなたの例では、次のようになります:

ssh somehost /local/remote_only_scripts/foo

このauthorized_keysファイルの場合:

command="/local/remote_only_scripts/foo",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ...public key... 

ユーザーがローカルでログインできないようにする方法はたくさんあります。次のいずれかを行うことができます:

  • シェルを/bin / falseに設定するだけです。 (多分あなたは / bin / trueが必要になるでしょう sshには有効なログインが必要なため)
  • パスワードをロックします。passwd-lを参照してください

編集 :制限オプションを追加し、ローカルアクセスを削除する方法を明確にしました。


Linux
  1. ディレクトリに入るときにBashスクリプトを実行しますか?

  2. Ssh – Ssh / scp / sftpユーザーをディレクトリに制限しますか?

  3. MySQLデータベースにリモートで接続する

  1. Debian で SSH キーを設定する方法

  2. バッチ モードで SSH および SCP を実行する方法 (パスワードレス ログインが有効な場合のみ)

  3. Linuxはコマンドをリモートで実行します

  1. Jenkins をインストールした後、ユーザー jenkins に su できません

  2. 非ログイン ユーザーを作成するにはどうすればよいですか?

  3. .bash_profile をリモートで台無しにして、ssh に戻れません