私はNet::OpenSSH
モジュールを使用してrsync_get
メソッドを使用してディレクトリをダウンロードしています。ディレクトリ内のファイルの中には、ログインしているユーザーが一部のファイルを読み取ることができないため、ダウンロードできないものがあります。誰かがこれに対する回避策を提案できますか? sudo
コマンドでこの方法を実行する方法はありますか?sudoとしてNet :: OpenSSH :: rsync_get()メソッドを使用
2
A
答えて
2
このページのオプション1は、私の仕事:https://crashingdaily.wordpress.com/2007/06/29/rsync-and-sudo-over-ssh/
概要:の/ etc/sudoersファイル内
オプション設定1. NOPASSWDを。
crashingdaily ALL = NOPASSWD:/ usr/bin/rsync 次に、--rsync-pathオプションを使用してsudoラッパーを指定します。
のrsync -a -e "SSH" --rsyncパス= "sudoをrsyncを" [email protected]:/ U02/DATA_PUMP_DIR//アーカイブ
0
ごsudo
がために質問しないためにconfigurredされた場合パスワードは、あなたがあなたのポストのように行うことができます。一方
$ssh->rsync_get({rsync_path => 'sudo rsync'}, ...);
、sudo
は、rootとしてコマンドを実行するためのパスワードが必要な場合は、私が最も簡単な方法は、次のようラッパースクリプトを使用することだと思いますパスワードをsudo
に送信する:
#!/usr/bin/perl
# save me as ~/bin/sudo_rsync on the target machine
use strict;
use warnings;
use IO::Pty;
my $passwd = 's3cr3t';
my $pty = IO::Pty->new;
my $pid = fork;
unless ($pid) {
defined $pid or die "unable to fork";
$pty->make_slave_controlling_terminal;
do { exec 'sudo', 'rsync', @ARGV };
exit -1;
}
print {$pty} "$passwd\n";
waitpid($pid, 0);
次に、ローカルマシンから...
$ssh->rsync_get({rsync_path => '~/bin/sudo_rsync'},
'/etc/shadow', '/tmp/shadow');
もちろん、スクリプトにハードコーディングされたパスワードを持つことは非常に悪い考えです...が、それはまたにそれを渡すために悪い考えですコマンドラインまたは環境変数で指定します。私はあなたが最初に自動化したいもののパスワードを尋ねることを避ける以外のこの問題のための素晴らしい解決策があるとは思わない!sudo
!
sudoのはしばらくの資格情報をキャッシュするように構成されている場合に動作します別の醜いソリューション(コマンドラインでパスワードを渡す):
$ssh->rsync_get({ rsync_path =>
'sudo -k && ' .
'echo s3cr3t|sudo -Sp "" cat /dev/null && ' .
'sudo -Sp "" rsync' },
"/etc/shadow", "/tmp/shadow");
関連する問題
- 1. NET :: SSH2 with sudo
- 2. CGIとPerlのNet :: OpenSSHモジュールを使用してリモートLinuxサーバーでシステムコマンドを実行する方法は?
- 3. Net :: OpenSSHでシンプルにコードを変更
- 4. ctl_dirの/root/.libnet-openssh-perl/は、私がネット:: OpenSSHのインストール/usr/local/share/perl/5.18.2/Net/OpenSSH/Compat/Perl.pmライン123
- 5. WindowsでOpenSSHを使用している企業で
- 6. ruby Net :: SSHを使ってsudo経由でリモートファイルを読む
- 7. openSSHとLDAP for Windows
- 8. Net :: OpenSSHを使用してSSHを実行することはできません。コマンドラインを使用することができます
- 9. sudoとしてファイルをタッチ
- 10. POSTメソッドを使用して.netサーバーに画像をアップロード
- 11. HTMLボタンを使用してメソッドを呼び出すASP .NET
- 12. sudoとしてのRVMソース?
- 13. sudoを使用したBASHスクリプト
- 14. XMLは、.NET 4.6を使用して.NET
- 15. のopenssh - OpenSSHのコードでは、ファイル
- 16. openSSHとAnsibleを使ってWIndowsノードに接続するには?
- 17. .Net 4.0と.Net 4.5のタスクを使用していますか?
- 18. sudo -sとsudoの違い
- 19. "sudo"の使用は私のCordovaを壊してしまった
- 20. パスワードなしsudoを使用してサーバにログインする
- 21. 別のユーザーとしてのファブリックとSudo
- 22. SSHToolを使用してパテのプライベートキーをOpenSSHプライベートキーに変換する
- 23. pycryptoを使用して秘密鍵からopenssh公開鍵を作成する
- 24. .netコアefマイグレーションテスト - C#メソッドを使用してマイグレーションを適用する
- 25. openssh用のpam_execを使用するアカウントの外部スクリプト
- 26. sudoを使用してダイアログウィンドウでパスワードを入力する
- 27. macruby:AXObserverCallbackとしてrubyメソッドを使用
- 28. Windowsバッチを使用してOpenSSH経由でLinuxにリモート接続する
- 29. crontabジョブでsudoを使用して認証
- 30. Capistranoは、sudoを使用していません:use_sudo、true