そういった際には、sudo の -A オプションと rsync の --rsync-path オプションを使うと良いようです。
まず、リモートサーバに、パスワードを標準出力に出力するスクリプトファイルを配置します(ファイルのパーミッションを厳しくするのを忘れずに)。
% cat > bin/askpass #! /bin/sh echo "{{my_password}}" % chmod 700 bin/askpass %そして、rsync を実行する際には --rsync-path オプションを使い、リモートサーバの rsync を sudo -A 経由で起動するようにすれば良いのです。
% sudo rsync -avz -e ssh \ --rsync-path='SUDO_ASKPASS=/home/remote-user/bin/askpass sudo -A rsync' \ remote-user@remote-host:remote-dir local-dir
これは簡単!
sudo -Aオプションはパスワードを記述したファイルを設置する必要があるという点でNOPASSWD同様セキュリティの懸念はありますが、使いどころを誤らなければ便利だなと思いました。
No comments:
Post a Comment