Używam tego wywołania rsync do utworzenia kopii zapasowej mojego katalogu domowego:
rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"
Strona man rsync mówi, że -a oznacza -g i -o (między innymi przełącznikami), co powinno zachować własność. Zauważyłem jednak, że jeśli katalog nie istnieje $BACKUP_MNTPOINT/$USER_HOME
, jest on tworzony z własnością root: root zamiast z poprawnej. (Dzieje się tak tylko w przypadku katalogów bezpośrednio pod $BACKUP_MNTPOINT/$USER_HOME
). Dlaczego?
$BACKUP_MNTPOINT
jest dyskiem montowanym lokalnie. $BACKUP_MNTPOINT/$USER_HOME
ma odpowiednią własność i uprawnienia. Ani się $USER_HOME
nie $BACKUP_MNTPOINT
kończy ukośnikiem.
Zarówno źródłowy, jak i docelowy system plików to XFS, a uruchomienie mkdir $BACKUP_MNTPOINT/$USER_HOME
tworzy katalog z oczekiwaną własnością.
files
permissions
users
rsync
kralyk
źródło
źródło
$BACKUP_MNTPOINT
i przy jakich opcjach jest montowany? Czy dzieje się tak tylko w przypadku katalogu macierzystego ($BACKUP_MNTPOINT/$USER_HOME
) lub wszystkich utworzonych katalogów? Zrób$BACKUP_MNTPOINT
i$USER_HOME
zakończ z/
?/home
dysku zapasowego, jak i dla niego. Jak dotąd myślę, że stało się to tylko w przypadku katalogów nadrzędnych. Ani się$BACKUP_MNTPOINT
nie$USER_HOME
kończy ukośnikiem. EDYCJA: Mogę potwierdzić, że teraz dzieje się to tylko z katalogami poniżej$BACKUP_MNTPOINT/$USER_HOME
$BACKUP_MNTPOINT/$USER_HOME
ma odpowiednie uprawnienia, ale nie ma w nim żadnych podkatalogów? Proszę edytować swoje pytanie i dodać te szczegóły. Wyjaśnij również, czymkdir $BACKUP_MNTPOINT/$USER_HOME/foo
tworzy katalog należący do użytkownika, jeśli robisz to ręcznie.mkdir $BACKUP_MNTPOINT/$USER_HOME/foo
tworzy katalog z własnością użytkownika.strace
(jak podano w pseudo-odpowiedzi).Odpowiedzi:
Miałem podobny problem podczas
rsync
tworzenia kopii zapasowej systemu na serwerze. Użyłem:Rozwiązaniem jest to, że tak naprawdę nie ma problemu. Podejrzewam, że przerwałeś
rsync
proces, gdy zobaczyłeś, że tworzy foldery z nieprawidłowymi ustawieniami uprawnień. Najważniejsze jest to, żersync
ustawia uprawnienia do folderu nadrzędnego dopiero po zakończeniu synchronizacji wszystkich jego podfolderów i plików.źródło
Być może uruchom rsync przez strace / truss i sprawdź, czy otrzymasz błąd z syscall chown (), a także, aby potwierdzić, że chown () ma poprawną ścieżkę i identyfikator UID / GID.
źródło