ぱせらんメモ このページをアンテナに追加 RSSフィード

とあるWeb系ソフトウェアエンジニアのブログ。
いちおう技術系ネタ帳ということで、日記はあまり書かない。

2009-02-04

sudoでリダイレクトするときにハマること

| sudoでリダイレクトするときにハマることを含むブックマーク sudoでリダイレクトするときにハマることのブックマークコメント

sudoで何か実行するとき、普通にリダイレクトするとリダイレクト処理自体は自分の権限になっててハマることがある。

sudo svnadmin dump hoge >hoge.dump

ついつい上のようにやってしまいがちだけど、これをやるとhoge.dumpは自分の権限で書き込まれる。書き込み先に権限が無ければ当然エラーになる。

「sudo svnadmin dump hoge」の実行結果をリダイレクトって感じだろうか。


じゃあどうすればいいのかというと、方法は二種類。

sudo sh -c 'svnadmin dump hoge >hoge.dump'

ひとつのシェルの実行として括ったものをsudoする方法。

やりたいことの中にクォートがあるとややこしそうだという欠点がある。

ちなみにこの方法はsudo(8)に書かれているやりかた。


もうひとつ。

sudo svnadmin dump hoge | sudo tee hoge.dump

パイプでsudo teeに繋いで保存する方法。

標準出力にも出てしまう欠点がある。ここで>/dev/nullとかやるとまた同じ問題にハマる罠。

トラックバック - http://d.hatena.ne.jp/pasela/20090204/sudo_redirect
リンク元