私は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ではなくコマンド内で使用する組み込みコマンドです。docker
PATH
あなたできるcommand
組み込み関数(またはdocker関数に似ています)を指すラッパースクリプトを生成し、そのスクリプトをに入れてこの問題を解決しますPATH
。してはいけないします。必要に応じてdocker自体を実行する必要がありますsudo
。