Permissions
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
命令中進行哪些修改才能保留權限。
正如評論中提到的,遠端 rsync 程序需要以超級使用者權限執行才能保留權限。如果您在遠端伺服器上具有 sudo 訪問權限,則可以使用該
--rsync-path
選項以 root 身份執行 rsync:rsync -av --rsync-path "sudo rsync" source/ server:/destination/