Ubuntu - "sudo iptables"コマンドはbashスクリプトではなく端末で動作します。

Ubuntu -

単純な端末コマンドを使用してiptablesにルールを追加しましたが、問題なく実行されました。

sudo iptables -A OUTPUT -p tcp -m string --string "facebook.com" --algo kmp -j REJECT

Bashスクリプトでコマンドを実行すると、次のものが返されます。sudo: ./script.sh: command not found

スクリプトは次のとおりです。

#!/bin/bash

sudo iptables -A OUTPUT -p tcp -m string --string "facebook.com" --algo kmp -j REJECT

ベストアンサー1

スクリプトを実行できない場合は、適切なシェル(/bin/shまたは)を使用して呼び出す必要があります/bin/bash。これはshebang行を無視し、呼び出しシェルを使用してスクリプトを実行します。

sudo /bin/sh ./script.sh

OPが意図したとおりにスクリプトを実行するには、スクリプトに実行権限を付与する必要があります。

chmod +x script.sh
sudo ./script.sh

この例では、スクリプトは shebang 行のシェルを使用して実行されます。

おすすめ記事