Mam drzewo plików z prawidłowymi uprawnieniami. potem mam (identyczne) drzewo (z trudną inną zawartością pliku) z niewłaściwymi uprawnieniami.
jak mogę przenieść układ uprawnień z jednego drzewa do drugiego?
permissions
filesystems
copy
file-permissions
ziewanie
źródło
źródło
Właśnie nauczyłem się nowego i prostego sposobu na osiągnięcie tego:
Spowoduje to wygenerowanie listy ze wszystkimi uprawnieniami i prawami własności.
Następnie przejdź do jednego poziomu powyżej miejsca docelowego i przywróć uprawnienia za pomocą
Powodem, dla którego musisz znajdować się o jeden poziom wyżej, jest to, że wszystkie ścieżki w pliku perms.acl są względne.
Powinny być wykonane jako root.
źródło
getfacl
isetfacl
niekoniecznie są one obecne we wszystkich systemach..ac
w pierwszym poleceniu i.acl
w drugim?Jeśli masz źródło i miejsce docelowe, możesz zsynchronizować swoje uprawnienia z
rsync -ar --perms source/ dest
Nie przeniesie danych, tylko uprawnienia ...
źródło
-r
i--perms
są zbędne, ale nadal synchronizują perms, jeśli są jedyną rzeczą, która jest inna (co powiedziałeś w pytaniu; jeśli drzewa nie są w rzeczywistości identyczne, nie powinieneś był powiedzieć, że były).Jedną rzeczą, którą możesz zrobić, to użyć polecenia find do zbudowania skryptu z poleceniami potrzebnymi do skopiowania uprawnień. Oto szybki przykład, możesz zrobić o wiele więcej z różnymi opcjami printf, w tym uzyskać właściciela, identyfikator grupy i tak dalej.
źródło
Dwie drogi:
(w tym ostatnim przypadku musi istnieć / dst)
Edycja: przepraszam, źle odczytałem. Nie to o co prosiłeś.
źródło
Myślę, że napisałbym do tego skrypt perla. Coś jak:
Następnie zrób coś takiego:
Zapisałem to sobie z głowy i nie zostało to przetestowane; więc sprawdź to, zanim zacznie szaleć. To naprawia tylko uprawnienia do istniejących katalogów; nie zmieni uprawnień do plików ani nie utworzy brakujących katalogów.
źródło
Wymyśliłem to:
Nie jest w pełni kuloodporny, ale robi to, czego potrzebuję.
źródło