ディレクトリを別のコンピュータに転送しようとしています。
$ rsync -a --delete --stats -h wget 'olive:/tmp'
Number of files: 5 (reg: 4, dir: 1)
Number of created files: 5 (reg: 4, dir: 1)
Number of deleted files: 0
Number of regular files transferred: 4
Total file size: 12.94K bytes
Total transferred file size: 12.94K bytes
Literal data: 12.94K bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 13.31K
Total bytes received: 103
sent 13.31K bytes received 103 bytes 5.36K bytes/sec
total size is 12.94K speedup is 0.96
ソースディレクトリにローカルルート権限を必要とするいくつかのファイルが含まれている場合は追加しますsudo
。これは正しいですか?
しかし、なぜ他のコンピュータのルートパスワードを尋ね続けるのですか?宛先ルートのパスワードを入力しましたが、引き続きパスワードの入力を求めます。
$ sudo rsync -a --delete --stats -h wget 'olive:/tmp'
root@olive's password:
Permission denied, please try again.
root@olive's password:
ローカルルート権限を必要とするソースファイルをコピーするにはどうすればよいですか?
提案された重複エントリを試しましたが、成功しませんでした。
$ sudo rsync -e 'ssh -i /home/t/.ssh/id_rsa' -a --delete --stats -h wget 'olive:/tmp'
root@olive's password:
Permission denied, please try again.
root@olive's password:
ありがとうございます。
ベストアンサー1
最後の例では、root以外のユーザー名はですt
。
を使用するssh
か、リモートユーザー名を指定しないと、ツールはリモートユーザー名がローカルユーザー名と同じであると見なします。したがって、最初の例のコマンドは次のようになります。scp
rsync
rsync -a --delete --stats -h wget 'olive:/tmp'
次のように明示的に作成できます。
rsync -a --delete --stats -h wget 't@olive:/tmp'
コマンドの前にプレフィックスを付けると、ユーザー名が変更され、コマンドラインの残りの部分は(使用しない限り)sudo
実行されます。root
sudo -u <username>
2番目の例は次のとおりです。
sudo rsync -a --delete --stats -h wget 'olive:/tmp'
これで、次のようになります。
sudo rsync -a --delete --stats -h wget 'root@olive:/tmp'
コマンドがrsync
rootとして実行され、リモートユーザー名が定義されていないため、リモート側でrootアカウントを使用してrsync操作を実行するとします。
回避策:rsync
withを使用するときにsudo
使用したいリモートユーザー名を明確にしてください。
sudo rsync -a --delete --stats -h wget 't@olive:/tmp'
または、これが機能しない場合(つまり、設定sudo
でそのオプションを有効にしてコマンドを実行するユーザーと一致するように実行されるコマンドの環境変数をalways_set_home
変更する)、3番目の例の次の形式を試してください。$HOME
sudo rsync -e 'ssh -i /home/t/.ssh/id_rsa' -a --delete --stats -h wget 't@olive:/tmp'
この形式では、rsync
コマンドはローカルで実行されますが、ユーザーとしてログインしますroot
。これは、最初の例に基づいてSSHキーを設定するようです。olive
t
いいえ、ユーザー名ではありません。持つaの両端が同じですrsync
(またはscp
リモートユーザー名を省略することは、ユーザー名の一般的なケースを減らして表現したものです)。はい同じ。