Muszę wykonać kopię zapasową niektórych danych za pomocą opcji „p” w poleceniu tar. Problemem jest to, że miejsce, w którym przywrócę te dane, będzie miało tych samych użytkowników, ale ci użytkownicy mogą mieć różne identyfikatory. Czy ma to jakikolwiek wpływ na tar, czy będzie poprawnie przywracać uprawnienia według nazwy użytkownika?
20
tar
robi rekordowe nazwiska właściciela.Podsumowując poprzednie odpowiedzi i dodając kilka ważnych informacji:
Podczas tworzenia archiwów,
tar
zawsze będzie chronić użytkownika i identyfikator grupy Files', chyba, że powiedziano inaczej z--owner=NAME
,--group=NAME
. Ale nadal będzie zawsze użytkownik i grupa skojarzona z każdym plikiem.GNU tar, a może inne wersje
tar
, także przechowywać użytkowników i grup nazw , chyba że--numeric-owner
jest używany. bsdtar domyślnie przechowuje również nazwy użytkowników i grup, ale obsługa--numeric-owner
opcji podczas tworzenia pojawiła się dopiero w bsdtar 3.0 (zauważ, że bsdtar wspierał opcję podczas wypakowywania znacznie dłużej).Podczas rozpakowywania jako zwykły użytkownik , wszystkie pliki będą zawsze własnością użytkownika. I nie może być inaczej, ponieważ wypakowanie pliku powoduje utworzenie nowego pliku w systemie plików, a zwykły użytkownik nie może utworzyć pliku i przekazać własności innej osobie.
Podczas rozpakowywania jako root ,
tar
domyślnie przywróci własność wyodrębnionych plików, chyba że--no-same-owner
zostanie użyte, co da prawo do rootowania samego siebie.W GNU tar, bsdtar i być może w innych wersjach
tar
przywrócona własność jest wykonywana przez nazwę użytkownika (i grupy) , jeśli ta informacja znajduje się w archiwum, a w systemie docelowym znajduje się pasujący użytkownik. W przeciwnym razie przywraca według ID. Jeśli--numeric-owner
opcja jest podana, nazwy użytkowników i grup są ignorowane.Uprawnienia i znaczniki czasu są również zapisywane w archiwum i domyślnie przywracane, chyba że zostaną użyte opcje
--no-same-permissions
i / lub--touch
. Po wyodrębnieniu przez użytkownika użytkownikumask
jest odejmowany od uprawnień, chyba że--same-permissions
zostanie użyty.--preserve-permissions
i--same-permissions
są aliasami i mają taką samą funkcjonalność jak-p
Mam nadzieję, że pomoże to wyjaśnić problem! :)
źródło
tar
pozwalają na określenie dowolnych nazw w--owner
lub--group
, w przeszłości,tar
za darmo wyszukiwały bieżącą maszynę/etc/passwd
i odmawiały uruchomienia, jeśli nie było dopasowania.--owner
ale również dodane do--numeric-owner
flagi? Jak tar radzi sobie z tymi konkurencyjnymi wymaganiami?--owner
i--numeric-owner
nie wykluczają się wzajemnie, i służą bardzo odrębnym celom:--owner=USERNAME
nadpisują pliki i właścicieli katalogów podczas archiwizacji plików, a--numeric-owner
po prostu nie przechowują nazwy użytkownika, tylko jego numeryczny identyfikator.Użyj opcji --same-owner dla GNU tar. Zobacz http://www.gnu.org/software/tar/manual/html_section/Attributes.html
źródło
Jeśli próbujesz przesłać pliki między dwoma systemami, rsync domyślnie ustawi uprawnienia według nazwy użytkownika zamiast identyfikatora użytkownika, patrząc na nazwy użytkowników na obu końcach. Tylko jeśli użytkownik nie istnieje w jednym z systemów, skopiuje go z identyfikatorem użytkownika, chyba że powiesz inaczej.
źródło