Błąd „rsync: nie można ustawić uprawnień do…” z opcją rsync -a lub -p

37

Kiedy korzystam z opcji -a zgodnie z pytaniem i odpowiedzią w sekcji Zachowaj uprawnienia za pomocą rsync , otrzymałem wiele błędów „rsync: nie ustawiłem uprawnień do”.

rsync: failed to set permissions on "/ata/text/RCS/jvlc,v": Operation not permitted (1)
rsync: failed to set permissions on "/ata/text/RCS/jvm,v": Operation not permitted (1)
rsync: failed to set permissions on ...

Dlaczego to? Pliki są normalnymi plikami z uprawnieniami 0664.

prosseek
źródło
Czy możesz podać nam wyjście ls -al dla niektórych plików, których dotyczy problem?
pdo

Odpowiedzi:

28

Najprawdopodobniej rsync na docelowym końcu nie działa jako użytkownik z uprawnieniami do chmodtych plików (które musiałby być albo właścicielem pliku, albo rootem).

cjm
źródło
Tak się złożyło, że pliki są własnością _www. Zmiana właściciela rozwiązała ten problem. Dzięki za pomoc.
prosseek
2
Należy zauważyć, że pojawi się ten błąd, nawet jeśli użytkownik rsync znajduje się w tej samej grupie plików. Aby naprawić ten błąd, pliki muszą należeć do tego samego użytkownika co rsync, a nie tylko do grupy.
Cerin,
34

Ten błąd występuje, ponieważ operacja zmiany uprawnień jest niedozwolona. Sprawdź więc, czy użytkownik wykonujący polecenia ma odpowiednie uprawnienia (np. Nie jest właścicielem), czy system plików go nie obsługuje.

Możesz zignorować ostrzeżenia, podając dodatkowe argumenty rsync do --no-permsi -O( --omit-dir-times), aby uniknąć próby ustawienia uprawnień i czasów modyfikacji plików / katalogów. To powinno rozwiązać błędy. Alternatywnie unikaj używania -a.

kenorb
źródło
6

Jak już powiedziano, problem występuje, gdy nie masz uprawnień do zmiany uprawnień do plików w miejscu docelowym rsync. Można jednak uniknąć tego komunikatu o błędzie, używając dwóch dodatkowych argumentów --no-oi --no-g.

Przykład:

rsync -ahv --no-o --no-g target/ destination/
KittMedia
źródło
4
--no-owneri --no-groupnie kontroluj uprawnień. Ty byś tego chciał --no-perms. Jeśli chcesz uniknąć próby zmiany właściciela, prawdopodobnie potrzebujesz wszystkich trzech flag.
roaima
1

tło

Zazwyczaj rsyncwyświetla się ostrzeżenia, jeśli:

  • rsyncserwer na drugim końcu nie posiada uprawnienia do wykonywania działania związanego z poniższych sytuacji:
    • właściciel
    • Grupa
    • uprawnienia
    • czasy dostępu
  • lub system plików po stronie zdalnej nie obsługuje tych samych typów metadanych co nadawca (uprawnienia, własność itp.)

Problemy te pojawią się w rsynckliencie, który próbuje komunikować się z rsyncserwerem i wyświetla się jako taki komunikat podczas próby skopiowania plików / katalogów do odbiornika:

właściciel

rsync: chown "/ mnt / music / The Fleetwood Mac / Trilogy - 2006 / Trilogy - 2006 - CD 3 / 311_fleetwood_mac _-_ eyes_of_the_world.mp3" nie powiodło się: Operacja niedozwolona (1)

Grupa

rsync: chgrp "/ mnt / music / The Fleetwood Mac Discography autor Sketch / Trilogy - 2006 / Trilogy - 2006 - CD 3 / 311_fleetwood_mac _-_ eyes_of_the_world.mp3" nie powiodło się: Operacja niedozwolona (1)

uprawnienia

rsync: nie można ustawić uprawnień do „/ mnt / music / The Fleetwood Mac Discography od Sketch / Trilogy - 2006 / Trilogy - 2006 - CD 3”: Operacja niedozwolona (1)

W przypadkach, gdy strona odbierająca nie może wykonać tych operacji, możesz rsyncpo prostu pominąć próbę ich wykonania, wiedząc, że miejsce docelowe nie będzie ściśle identyczne z metadanymi nadawcy wokół plików. Nadal będą tworzone identyczne kopie binarnych części plików i katalogów.

Aby rsyncnie martwić się o metadane, możesz użyć przycisku, --no-OPTIONaby wyłączyć dowolną z tych domyślnych opcji.

strona podręcznika rsync
--no-OPTION
      You  may  turn off one or more implied options by prefixing the option name
      with “no-”.  Not all options may be prefixed with a “no-”: only options that
      are  implied  by  other  options (e.g.  --no-D,  --no-perms)  or  have
      different  defaults  in  various  circumstances (e.g.  --no-whole-file,
      --no-blocking-io, --no-dirs).  You may specify either the short or the long
      option name after the “no-” prefix (e.g. --no-R is the same as --no-relative).

      For  example: if you want to use -a (--archive) but don’t want -o (--owner),
      instead of converting -a into -rlptgD, you could specify -a --no-o (or -a
      --no-owner).

      The order of the options is important:  if you specify --no-r -a, the -r
      option would end up being  turned  on,  the  opposite  of  -a  --no-r.
      Note  also that the side-effects of the --files-from option are NOT positional,
      as it affects the default state of  several  options and slightly changes the
      meaning of -a (see the --files-from option for more details).

W naszym przypadku chcemy użyć czegoś takiego do wyłączenia rzeczy:

$ rsync -avz --no-o --no-g --no-perms <src> <dst>

Przykład

$ rsync -avz --delete --no-o --no-g --no-perms The\ Fleetwood\ Mac/ /mnt/music/The\ Fleetwood\ Mac/.
sending incremental file list
Trilogy - 2006/
Trilogy - 2006/Trilogy - 2006 - CD 3/
Trilogy - 2006/Trilogy - 2006 - CD 3/301_fleetwood_mac_-_love_in_store.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/302_fleetwood_mac_-_cant_go_back.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/303_fleetwood_mac_-_thats_alright.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/304_fleetwood_mac_-_book_of_love.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/305_fleetwood_mac_-_gypsy.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/306_fleetwood_mac_-_only_over_you.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/307_fleetwood_mac_-_empire_state.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/308_fleetwood_mac_-_straight_back.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/309_fleetwood_mac_-_hold_me.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/310_fleetwood_mac_-_oh_diane.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/311_fleetwood_mac_-_eyes_of_the_world.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/312_fleetwood_mac_-_wish_you_were_here.mp3

sent 61993245 bytes  received 289 bytes  17712438.29 bytes/sec
total size is 2596551439  speedup is 41.88

Alternatywny

Innym powodem takiego stanu rzeczy jest użycie -aprzełącznika. -aobejmuje rodzinę przełączników:

    -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

Zamiast używać -amożesz użyć poszczególnych przełączników i zrezygnować z korzystania z nich --no-OPTION.

Są to poszczególne opcje zawarte w -a
    -r, --recursive             recurse into directories
    -l, --links                 copy symlinks as symlinks
    -p, --perms                 preserve permissions
    -t, --times                 preserve modification times
    -o, --owner                 preserve owner (super-user only)
    -g, --group                 preserve group
    -D                          same as --devices --specials
        --devices               preserve device files (super-user only)
        --specials              preserve special files

Robiąc rzeczy w ten sposób powyższy przykład stałby się zamiast tego:

$ rsync -rltDvz --delete The\ Fleetwood\ Mac/ /mnt/music/The\ Fleetwood\ Mac/.
sending incremental file list
Trilogy - 2006/
Trilogy - 2006/Trilogy - 2006 - CD 3/
Trilogy - 2006/Trilogy - 2006 - CD 3/301_fleetwood_mac_-_love_in_store.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/302_fleetwood_mac_-_cant_go_back.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/303_fleetwood_mac_-_thats_alright.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/304_fleetwood_mac_-_book_of_love.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/305_fleetwood_mac_-_gypsy.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/306_fleetwood_mac_-_only_over_you.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/307_fleetwood_mac_-_empire_state.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/308_fleetwood_mac_-_straight_back.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/309_fleetwood_mac_-_hold_me.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/310_fleetwood_mac_-_oh_diane.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/311_fleetwood_mac_-_eyes_of_the_world.mp3
Trilogy - 2006/Trilogy - 2006 - CD 3/312_fleetwood_mac_-_wish_you_were_here.mp3

sent 61993245 bytes  received 289 bytes  17712438.29 bytes/sec
total size is 2596551439  speedup is 41.88
slm
źródło