Linuxのsudoでリダイレクトでのファイル書き込みに失敗するとき
いつもアクセスありがとうございます。匠技術研究所の谷山亮治です。
Linuxのsudo行でリダイレクトをしたい場合、リダイレクトの後ろはsudo実行ではなくなり、管理者権限の領域のファイルの更新ができません。 これを、回避するには以下の要領でコマンド実行します。
失敗例:
$ sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf
-bash: /etc/mdadm/mdadm.conf: Permission denied
成功例:
sudoでbashを実行コマンドを指定するオプション付きで起動します。
オプションは一連のものと解釈されるように括ってあります。
$ sudo bash -c "mdadm --detail --scan >> /etc/mdadm/mdadm.conf"
これはtee -aでもできます。パイプの後ろでsudoでteeを起動して標準入力から入ってきた結果を、-a追記モードで指定ファイルに書き込んでいます。
$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf