![sudoを使用しても「ファイルへのリダイレクト」がユーザーとして実行されるのはなぜですか? [コピー]](https://linux33.com/image/58391/sudo%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%82%E3%80%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%B8%E3%81%AE%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88%E3%80%8D%E3%81%8C%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%A8%E3%81%97%E3%81%A6%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
私はこの問題に頻繁に遭遇しますが、なぜこれが起こるのか混乱しています。次の例を考えてみましょう。
[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"