msgbartop
だめでつれづれな日記
msgbarbottom

05 9月 09 sudo + rsync

rsyncでサーバのデータバックアップを取得したい。

ssh経由でアクセスしてrsyncすればすむ話といえばそうなのだが、一般ユーザでsshした場合は権限が不足してバックアップ漏れが発生する。かといって、root権限でsshすることはセキュリティ上も、便宜上も不可!としている。

やっぱroot権限でsshできちゃうと負けた気がするし、万が一、rootアカウントのパスワードが推測されてしまうと、目も当てられないし(毎日のようにsshの接続失敗ログにrootアカウントでパスワードハックしようとしているログを見てしまうとどきどきしちゃいます)。

じゃぁバックアップはどうするの?という話になりますが、rsync先のサーバでsudoコマンド + rsyncコマンドを実行するように設定&指定すればよい。

まず、rsync先サーバに対してssh接続するアカウントにsudoの設定を加えよう。具体的なsudoの設定は以下のようにしよう。hogehogeユーザがsudo実行する場合はパスワードなしでsudo可能としている。

hogehoge  ALL=(ALL) NOPASSWD: ALL

次に、rsync呼び出し時は、--rsync-pathオプションに"sudo rsync"を指定すればよい。

# rsync -v --rsync-path="sudo rsync" -a hogehoge@www.example.com:/usr/local/etc /var/backup/www.example.com/usr-local

これでばっちりだ!