Rsync

rsync 沒有設置stickybit / GID 位

  • November 11, 2020

使用以下 rsync 命令,為文件和目錄正確設置了 RWX 權限,但粘性位選項沒有。

rsync -rtvz --partial-dir=.rsync-partial --chmod=Da+t,Dg+s,D770,F0740 --progress --stats -e 'ssh -p 19419' "/home/me/test_dir" me@REMOTE_HOST:~

我了解這些選項應如下所示:

是 + t

  • 所有目錄都應該設置粘性位(只有 root 使用者、目錄所有者和文件所有者可以刪除所述目錄中的文件。)

Dg+s

  • 所有目錄都應該有 setGID(在所述目錄中創建的所有文件都繼承該目錄的組所有權)

但是使用上述命令未在 REMOTE_HOST 目錄上設置粘性位和 setGID 位。

如果我 ssh 到 REMOTE_HOST 並執行類似的東西,chmod -R a+t test_dir那麼粘性位將按預期設置。

我哪裡錯了?

編輯:我也分別嘗試了 “–chmod=Da+t,Dg+s”、"–chmod=Da+t" “–chmod=Dg+s” “–chmod=a+t” 並且沒有使用這些選項中的任何一個設置粘性位。

(Ubuntu 16.04,rsync 3.1.1 - 我直接從手冊頁中獲取了 chmod 選項)

您需要為 rysnc 使用 -p 標誌。

這些模式按給定的順序應用。這意味著後一個D770選項會覆蓋任何早期模式以將目錄設置為正好 770。將順序更改為:

--chmod=D770,F0740,Da+t,Dg+s

引用自:https://unix.stackexchange.com/questions/618940