“rsync:无法在...上设置权限”错误与 rsync -a 或 -p 选项

pro*_*eek 51 permissions rsync

当我按照Preserve the permissions with rsync 中的要求和回答使用 -a 选项时,我收到了很多“rsync:无法设置权限”错误。

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 ...
Run Code Online (Sandbox Code Playgroud)

为什么是这样?文件是权限为0664的普通文件。

ken*_*orb 50

发生此错误是因为不允许更改权限的操作。因此,要么检查您执行命令的用户是否具有正确的权限(例如,他不是所有者),要么您的文件系统不支持它。

您可以通过指定 rsync to--no-perms-O( --omit-dir-times)的附加参数来忽略警告,以避免尝试对文件/目录设置权限和修改时间。这应该可以解决错误。或者避免使用-a.

  • `--no-perms` 没有消除错误,为什么??? (2认同)

cjm*_*cjm 33

最有可能的是,目标端的 rsync 没有以具有chmod这些文件权限的用户身份运行(必须是文件的所有者或 root)。

  • 应该注意的是,即使 rsync 的用户与文件在同一组中,您也会收到此错误。要修复此错误,文件必须与 rsync 属于同一用户,而不仅仅是组。 (2认同)

小智 10

如前所述,只要您无权更改rsync. 但是,您可以通过使用两个附加参数--no-o和来避免此错误消息--no-g

例子:

rsync -ahv --no-o --no-g target/ destination/
Run Code Online (Sandbox Code Playgroud)

  • `--no-owner` 和 `--no-group` 不控制权限。你会想要`--no-perms`。如果您想避免尝试更改所有权,您可能需要所有三个标志。 (4认同)

slm*_*slm 8

背景

通常在以下情况下rsync您会看到警告:

  • rsync另一端的服务器无权执行与以下相关的操作:
    • 所有者
    • 团体
    • 权限
    • 访问次数
  • 或者远程端的文件系统不支持与发送方相同类型的元数据(权限、所有权等)

这些问题将通过rsync尝试与rsync服务器通信的客户端表现出来,当尝试将文件/目录复制到接收器时显示为这样的消息:

所有者

rsync: chown "/mnt/music/The Fleetwood Mac/Trilogy - 2006/Trilogy - 2006 - CD 3/311_fleetwood_mac_-_eyes_of_the_world.mp3" 失败:不允许操作 (1)

团体

rsync: chgrp "/mnt/music/The Fleetwood Mac Discography by Sketch/Trilogy - 2006/Trilogy - 2006 - CD 3/311_fleetwood_mac_-_eyes_of_the_world.mp3" 失败:不允许操作 (1)

权限

rsync:未能设置“/mnt/music/The Fleetwood Mac Discography by Sketch/Trilogy - 2006/Trilogy - 2006 - CD 3”的权限:不允许操作 (1)

在接收方无法执行这些操作的情况下,您可以指示rsync跳过尝试执行这些操作,意识到目的地与发送方围绕文件的元数据不会严格相同。这仍将创建文件和目录的二进制部分的相同副本。

要告诉rsync不要担心元数据,您可以使用--no-OPTION禁用这些隐含选项中的任何一个。

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).
Run Code Online (Sandbox Code Playgroud)

所以在我们的例子中,我们想使用这样的东西来禁用一些东西:

$ rsync -avz --no-o --no-g --no-perms <src> <dst>
Run Code Online (Sandbox Code Playgroud)

例子

$ 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
Run Code Online (Sandbox Code Playgroud)

选择

发生这种情况的另一个原因是使用了-a开关。-a包括一系列开关:

    -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
Run Code Online (Sandbox Code Playgroud)

-a您可以使用单独的开关代替使用,而不必使用--no-OPTION's。

这些是随附的单个选项 -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
Run Code Online (Sandbox Code Playgroud)

这样做的话,上面的例子会变成这样:

$ 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
Run Code Online (Sandbox Code Playgroud)