sudoによるリダイレクトでの書き込み
Pocket

一般ユーザを利用していて、sudoでリダイレクトをして権限の無いファイルに追記をさせたい事があるだろう。
そんな時、以下のように普通にコマンドを実行した場合、権限が無いと言われ書き込みに失敗してしまう。

sudo echo "test line 2" >> /work/test

20150531_000004

test@ubuntu-server:~$ sudo echo "test line 2" >> /work/test
-bash: /work/test: 許可がありません
Sponsored Links

sudoでリダイレクトして、root権限のファイルに書き込む場合は、以下のように「sh -c」を付与してコマンドを実行する必要がある。

sudo sh -c 'echo "test line 2" >> /work/test'

20150531_000005

 

これで、sudoを利用してのリダイレクトが行えるようになる。

 

2016/10/6 追記

もしくは、sudoで実行したteeにパイプで渡すことで対応可能だ。

コマンド | sudo tee -a /ファイルPath

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。