Docker関数はsudoを使用するときに自分自身を再帰的に呼び出しませんか?

Docker関数はsudoを使用するときに自分自身を再帰的に呼び出しませんか?

私はAWSのUbuntu EC2インスタンスを使用しており、〜/ .bashrcファイルに次のものがあります。

docker(){
   sudo docker "$@"
}

export -f docker;

私はdockerを信頼しているので、基本的にsudoを使用してすべてのdockerコマンドを実行します。しかし、なぜそれがうまくいくのかわかりません。いくつかのスタックが爆発するか、何かが起こるまでドッカー関数が再帰的に呼び出されるようです。私の考えでは、sudoはbash関数ではなくコマンドだけを呼び出すのですか?

私はこれをしようとします。たとえば、次のようになります。

docker(){
   sudo command docker "$@"
}

export -f docker;

ところで電話をすると、docker psこんな言葉を聞きます。

sudo:コマンド:コマンドが見つかりません

何が起こっているのか知っている人はいますか?

ベストアンサー1

sudo確認PATH(通常、 " secure_path"、ユーザー、またはrootのフル権限を確認しませんPATH注文するしたがって、組み込み機能と機能では機能しません。commandは、sudoがfunctionではなくコマンド内で使用する組み込みコマンドです。dockerPATH

あなたできるcommand組み込み関数(またはdocker関数に似ています)を指すラッパースクリプトを生成し、そのスクリプトをに入れてこの問題を解決しますPATHしてはいけないします。必要に応じてdocker自体を実行する必要がありますsudo

おすすめ記事