sftpがgrepコマンドを受け入れないのはなぜですか?

sftpがgrepコマンドを受け入れないのはなぜですか?
sftp> grep "hello" login.php
Invalid command.

私はlogin.phpを含むディレクトリにいます。

答え1

sftp単純なファイル転送ツール:次のリストにリストされている特定のコマンドセットをサポートします。マンページman sftp特定のsftpバージョンのsftpコマンドの正確なリストを表示するには、自分のシステムで実行してください。

grepリモートファイルで実行するには、次の2つのいずれかが必要です。

  • ファイル転送ツールは、リモートファイルをローカルファイルシステムにレンダリングし、必要に応じてアクセスした各ファイルの内容をコンピュータに転送できます。その後、システムの汎用grepユーティリティを使用してコンテンツを検索できます。このsshfsツールはまさにそうすることができます。明らかに、ファイルシステムはsshfs実際のローカルファイルシステムよりも応答速度が遅くなります。

  • あるいは、ファイル転送ツールがgrepリモートシステムでコマンドを実行し、結果をユーザーに返すこともできます。ただし、ファイル転送ツールはリモートgrep操作を具体的にサポートする必要があり、リモートサーバーもその特定のタスクをサポートしたり、ログインしたユーザーとして任意のコマンドを実行できるようにする必要があります。ただし、後者はコマンドがすでに実行している操作なので、sshコマンドがその機能をコピーすることは意味がありません。sftp

さらに、サポートされているワークセットは、sftpファイル転送に関連するタスクにのみタスクを制限するように特別に選択されています。これの価値は、リモートシステム管理者がユーザーのsftpアクセスを許可しますが、ログインとランダムコマンドの実行を許可しないことを選択できることです。

ユーザーがよく知られており、限られたタスクしか実行できない場合、システム管理者(またはセキュリティ環境を設計するシステム設計者)は、ユーザーができることとできないタスク(発見した場合)が悪意のあるかどうかを効果的に推論することができます。 。ユーザーが完全な公開コマンドラインツールセットにアクセスできる場合、操作ははるかに困難になります。

答え2

すべてのコマンドを実行する権限を持つホストにsftpフォルダをマウントできます。ここで必要に応じてフォルダを操作できます。

関連情報