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/

相关内容