sudoを使用しても「ファイルへのリダイレクト」がユーザーとして実行されるのはなぜですか? [コピー]

sudoを使用しても「ファイルへのリダイレクト」がユーザーとして実行されるのはなぜですか? [コピー]

私はこの問題に頻繁に遭遇しますが、なぜこれが起こるのか混乱しています。次の例を考えてみましょう。

[me@localhost:~]$ sudo command > /some/file.log

user私が知っている限り、/some/file.logコマンドがで実行されても書き込み権限がないと機能しませんsudo。このサイトでいくつかの解決策を見つけたので、問題ではありませんが、知りたいです。その理由は何ですか?コマンドはユーザーとして実行されますが、sudoリダイレクトはユーザーとして実行されるのはなぜですか?これを支持する妥当な理由はありますか?

答え1

sudoコマンドを実行すると、通常のユーザーとして実行されている現在のシェルによってcommand出力リダイレクトが実行されます。/some/file.log

出力を作成しようとすることができるタスクはroot次のとおりです。

sudo bash -c "command > /some/file.log"

関連情報