rsync コマンドは権限を保持しません

rsync コマンドは権限を保持しません

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/

おすすめ記事