Rsync
rsync 沒有設置stickybit / GID 位
使用以下 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