私はforループで問題があります。あなたのためにそれを簡単に説明します。ファイルの作成中にエラーが発生するループ
$ for i in `cat serverss`;do ssh -q $i sudo echo "a b c" > /tcb/files/auth/x/xyz;done
ksh: /tcb/files/auth/x/xyz: cannot create
ファイルを作成または変更しようとすると、上記のエラーが発生します。 serverssはサーバのリストを持つファイルです。私たちはそれらのシステム上でrootにsudoを持っています。
問題は、私がecho "a b c" > /tcb/files/auth/x/xyz
を実行して、完全に動作する個々のサーバーに問題がある場合です。上記のエラーを投げる私のforループの問題は何ですか?
'for'ループ自体はまったく問題ありません。それはsshの引数がどのように与えられるかという問題です。 'ssh -q $ i sudo echo" a bc ">/tcb/files/auth/x/xyz'と' for'ループの中に全く同じ問題があります。 –
もう1つのことは 'sudo echo'は役に立たないということです。シェルは'/tcb/files/auth/x/'をオープンしている特権ではなく' echo'の特権をエスカレートします(stdoutに書いているだけです) xyz'。 –