デフォルトでは、スクリプトを実行しているサーバーのIPが別のサーバー上のプライベートWhitelist.txtファイルにある場合にのみ実行できるshスクリプトを作成したいと思います。
誰でもコード例を手伝うことができますか?
時間をいただきありがとうございます;)
スクリプトが実行されているIPとホワイトリストで許可されているIPの間でgrepの比較/確認を実行する方法がわかりません。これが私を混乱させる部分です。
答え1
このサイトはスクリプトサービスではありませんが、ここにいくつかのアイデアがあります。実際のスクリプトの作成はあなた次第です。
- 現在のIPアドレスを取得します
ip addr | grep inet
。
これにより、通常はIPv4およびIPv6アドレスを含む複数のアドレスが提供されるため、より具体的に必要に応じて変更する必要があります。
他のサーバーからホワイトリストを取得します。たとえば、HTTPサーバーを実行し、または経由
curl
でインポートしますwget
。または、共有ネットワークドライブに保存してください。または、scp
資格情報が正しく設定されており、誰もその資格情報を使用して害を及ぼすことができないと仮定してそれをコピーします。ホワイトリストでIPを探す:もう一度使用してください
grep
。編集する:使用してもよいgrep 終了コード一致が発生したことを確認します。詳細man grep
とman bash
使用方法を確認してください。例:$ echo 'example' > whitelist.txt $ grep example whitelist.txt ; echo $? example 0 $ grep wrong whitelist.txt ; echo $? 1
このアプローチは完全に安全ではありません。ホワイトリストは公開されており、誰でも簡単にスクリプトを変更できます。
この方法は、信頼できる人だけがこのスクリプトを実行する場合にのみ機能します。あなたがしなければならないことは、スクリプトが誤って実行されるべきではない場所で実行されるのを防ぐことです。
IPアドレスよりも現在のホストを識別するホスト名などの高度な方法があります(スクリプトを実行する必要があるホストを管理している場合は、ホスト名を設定できる必要があります)。他の場合は、上記の方法を使用しないでください。)