そういった際には、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