sshとtarとsudoを組み合わせてバックアップする方法
提供: セキュリティ
スポンサーリンク
sshとtarとsudoを組み合わせて、ファイルのバックアップをするときの例です。
概要
この例は、良いやり方ではありません。
ssh+tarでのデータ転送
tarコマンドとsshコマンドを組み合わせて、データ転送ができます。
% tar jcf - foo | ssh -l user bsd "tar jxf - -C /home/user/foo/backup"
sudo: no tty present and no askpass program specified
tarコマンドとsshコマンドとさらにsudoコマンドを組み合わせて、データ転送しようとしたときに、問題がおきました。
ssh越しにtarコマンドを実行しようとするとttyないか、askpassが指定されていないというエラーが出ました。
% tar jcf - foo | ssh -l user bsd "sudo tar jxf - -C /home" sudo: no tty present and no askpass program specified
sshの-tオプションだけでは、解決できませんでした。
% tar jcf - foo | ssh -t -l user bsd "sudo tar jxf - -C /home" Pseudo-terminal will not be allocated because stdin is not a terminal. Password for user@bsd: sudo: no tty present and no askpass program specified
sudo visudo
以下のオプションを追加しました。
Defaults visiblepw
tar出力がsshのstdinに入るので、sudo対するパスワードが入力できません。
% tar jcf - foo | ssh -t -l user bsd "sudo tar jxf - -C /home" Pseudo-terminal will not be allocated because stdin is not a terminal. Password for user@bsd: Password:Sorry, try again. Password:Sorry, try again. Password:Sorry, try again. sudo: 3 incorrect password attempts
仕方がなく、一時的にパスワードを無効化しました(非推奨)。
user ALL=(ALL) NOPASSWD: ALL
最後に
sudoersで開けた穴は、塞ぎましょう。
関連項目
ツイート
スポンサーリンク