Permissions

將權限複製到 linux / unix 上的相同樹

  • August 4, 2017

我有一個具有正確權限的文件樹。然後我有一個(文件方面)相同的樹(具有不同的文件內容很難)具有錯誤的權限。

如何將權限佈局從一棵樹轉移到另一棵樹?

可以使用以下 shell 行來完成:

D1=foo; D2=foo2; for entry in $(find $D1  -exec stat -f "%N:%Mp%Lp" {} \;); do $(echo $entry | sed 's#'$D1'#'$D2'#' | awk -F: '{printf ("chmod %s %s\n", $2, $1)}') ; done

只需為 D1 和 D2 變數設置正確的值,將它們指向源目錄和目標目錄,執行並且目錄將具有同步的權限。

我剛剛學會了一種新的簡單的方法來實現這一點:

getfacl -R /path/to/source > /root/perms.acl

這將生成一個包含所有權限和所有權的列表。

然後轉到目的地上方的一級並使用以下命令恢復權限

setfacl --restore=/root/perms.acl

您必須高於一級的原因是 perms.acl 中的所有路徑都是相對的。

應該以root身份完成。

引用自:https://serverfault.com/questions/58277