sudo を多用しているTakuyaです。こんばんは。Sudoは便利なので活用しますが,リダイレクトでファイルに書込もうと思ってもパーミッションErrorになるので困っています.
sudo は出来てもファイルに書き込めない例
sudo do_something > /etc/apt/apt.conf.d/hoge
にようにsudoして結果を書き込もうとしてもパーミッション・エラーになる。
たぶんEchoとパイプもSudoすれば行けると思うとおもって試したが・・・
sudo do_something | sudo echo - > /etc/hogehoge #これは出来ない。
MANに書いてある.
困って、Manを読んだらManに書いてあった.SudoのMan最高
/home パーティションにあるディレクトリのディスク使用量リストを作成する。 cd とファイルリダイレクションが動作するように、サブシェルでコマンドを実行している点に注意すること。
% sudo sh -c "cd /home ; du -s * │ sort -rn > USAGE"
つまりsudoでsh を起動してねってことらしい
sudo sh -c "do_something > /etc/fstab.d/foo"
出来た.
解決策2 tee を使う
もっと、確実な解決策は teeを使うこと
sudo d_something | sudo tee /etc/hogehoge
2023-07-05
追記