Command line 为什么此rsync命令可以正确地更改用户,但不能更改组?
我在本地机器上有一个名为Command line 为什么此rsync命令可以正确地更改用户,但不能更改组?,command-line,rsync,chown,Command Line,Rsync,Chown,我在本地机器上有一个名为foo的目录,其中包含一个名为document的文件。foo和document的用户和组是A:B 我想使用rsync将这些文件移动到远程目录remotedirremotedir包含其他目录,但不包含/foo,因此rsync将首次将/foo和/foo/document引入远程目录。remote dir中的文件都应该有一个user:group ofJ:L。下面是它的样子: 之前 /foo/ (A:B) /remote-dir/ (J:K
foo
的目录,其中包含一个名为document
的文件。foo
和document
的用户和组是A:B
我想使用rsync将这些文件移动到远程目录remotedir
remotedir
包含其他目录,但不包含/foo
,因此rsync将首次将/foo
和/foo/document
引入远程目录。remote dir
中的文件都应该有一个user:group ofJ:L
。下面是它的样子:
之前
/foo/ (A:B) /remote-dir/ (J:K)
`- document (A:B) `- other/ (J:L)
`- directories/ (J:L)
我使用以下rsync命令执行传输*:
rsync -rv --super --owner --chown=J:L ./foo/ root@remote:/remote-dir/foo
预期的
/foo/ (A:B) /remote-dir/ (J:K)
`- document (A:B) `- other/ (J:L)
`- directories/ (J:L)
`- foo/ (J:L)
`- document (J:L)
我希望/foo
和/foo/document
与一组J:L
用户一起出现在remotedir
中
实际值
/foo/ (A:B) /remote-dir/ (J:K)
`- document (A:B) `- other/ (J:L)
`- directories/ (J:L)
`- foo/ (J:root)
`- document (J:root)
实际上,/foo
和/foo/document
出现在remote dir
中,用户组为J:root
,root
是我在rsync命令中指定的根用户组(root@remote:[…]
)
根据手册页,--chown=J:L
相当于--usermap=*:J--groupmap=*:L
,我们可以看到,usermap工作正常,但groupmap工作不正常
我做错什么了吗?有没有不正确的假设我的理智清单上应该有什么?
*rsync选项说明:
用于递归-r
因为“接收者尝试超级用户活动”(chown)--super
因为chown在内部使用--owner
和--usermap
,这些选项需要--groupmap
才能运行(编辑:实际上,这是不正确的。--owner
需要--usermap
,但是--owner
需要一个单独的选项--groupmap
)--group
- rsync手册页有答案
我知道第一部分:
要使--usermap选项产生任何效果,必须使用(或暗示)-o(--owner)选项,并且接收方需要作为超级用户运行(另请参见--false超级选项)
但我没有意识到我还需要-g(--groupmaps):
要使--groupmap选项产生任何效果,必须使用-g(--groups)选项(或隐含),并且接收者需要具有设置该组的权限
rsync手册页提供了答案 我知道第一部分: 要使--usermap选项产生任何效果,必须使用(或暗示)-o(--owner)选项,并且接收方需要作为超级用户运行(另请参见--false超级选项) 但我没有意识到我还需要-g(--groupmaps): 要使--groupmap选项产生任何效果,必须使用-g(--groups)选项(或隐含),并且接收者需要具有设置该组的权限
投票是为了关闭主题(属于ON),而+1是一个明确的问题,显示了研究的努力。哦,天哪,在我对这个问题困惑的困惑中,我忘了考虑我应该发布哪个SE社区。投票关闭作为话题(属于ON),但1是一个明确的问题,显示研究的努力。在我对这个问题困惑的困惑中,我忘了考虑我应该向哪个社区发表这个帖子。