2013/06/08

エディタを使わずにCUIでファイルに管理者権限で書き込む

このブログなどで「あるファイルに追記する」というような操作をすることが多いのですが,
実際にはviで作業などをおこなっても,このようなブログに記すときは次のように
echo "sample" >> /etc/sample

のように書いたほうが,書きやすいし,そのままコピペすればいいようになるので良いと思っています.
(わざわざエディタでやりたい人はこれくらいは読み替えられると思うので...)

しかし,この方法で管理者権限が必要なファイルに追記しようとするとこのままではいきません.
つまり,
sudo echo "sample" >> /etc/sample

とはいかないわけです.
(このままだとリダイレクトまで管理者権限でおこなってくれないわけですね)

よって,管理者権限が必要なファイルでも書き換えられるようにするにはどうすればいいかを探しました.

コマンドなんで,何種類かあるわけですね.

まずは,
sudo sh -c "echo 'sample' >> /etc/sample"

直接シェルを使うんですね.

あと,
echo 'sample' | sudo tee -a /etc/sample

teeはaオプションで追記になるんですね

加えて,
echo "sample" | sudo tee sample.txt > /dev/null

aのオプションを使わないとこんな感じになるそうです.

なんこかありましたが,
どれを使っていこうか悩みますね.

1個目だと
普通にやって
「あ,管理者権限じゃないとダメだ」
と思ったあとに全部管理者権限でしようと思った時にイメージしやすいし,

2個目は1個目よりもコマンドが簡単でみんな分かりやすそう.

一応2個目を使っていきますかね.

参考になったサイト
sudoでリダイレクトをしたいとき - Yuta.Kikuchiの日記
http://d.hatena.ne.jp/yutakikuchi/20111013/1318436872
sudoコマンドに関する追加メモ - 試験運用中なLinux備忘録
http://d.hatena.ne.jp/kakurasan/20100512/p1




0 件のコメント:

コメントを投稿