rsync
ファイル転送後、権限/所有権は保持されません。これがまさにそのシーンです。
ソースホスト(192.168.2.14
ファイルがコピーされるホスト):
ソースパス
# ls -l "/shareddata/tesz/"
total 4
drwxrwsr-x 2 root admin 4096 Sep 15 19:38 web
# ls -l /shareddata/tesz/web/
total 0
-rw-rw-r-- 1 askar admin 0 Sep 15 19:38 test1
-rw-rw-r-- 1 dey admin 0 Sep 15 19:38 test2
ターゲットパス:
# ls -ld /shareddata/
drwxrwxr-x. 4 root admin 4096 Sep 15 19:44 /shareddata/
rsync
ファイルをコピーするコマンドは次のとおりですfsync
。
$ id fsync
uid=700(fsync) gid=502(admin) groups=502(admin)
/usr/bin/rsync -rogp 192.168.2.14:/shareddata/tesz /shareddata/
/usr/bin/rsync -av 192.168.2.14:/shareddata/tesz /shareddata/
rsync
ファイルがコピーされるターゲットホストでコマンドを実行しています。ただし、ファイル転送後に権限/所有権が維持されないことがわかります。
$ ls -l /shareddata/
total 8
drwxrwsr-x 3 fsync admin 4096 Sep 15 19:44 tesz
$ ls -l /shareddata/tesz/
total 4
drwxrwsr-x 2 fsync admin 4096 Sep 15 20:29 web
$ ls -l /shareddata/tesz/web/
total 0
-rw-rw-r-- 1 fsync admin 0 Sep 15 20:29 test1
-rw-rw-r-- 1 fsync admin 0 Sep 15 20:29 test2
rsync
権限を維持するには、コマンドでどのような変更が必要ですか?
ベストアンサー1
説明で説明したように、権限を維持するには、リモートrsyncプロセスをスーパーユーザー権限で実行する必要があります。リモートサーバーにsudoアクセス権がある場合は、この--rsync-path
オプションを使用してrootとしてrsyncを実行できます。
rsync -av --rsync-path "sudo rsync" source/ server:/destination/