如何从需要特定 UNIX 组的远程计算机复制目录?

如何从需要特定 UNIX 组的远程计算机复制目录?

我需要自动将目录列表从远程计算机复制到本地计算机。到目前为止,我正在使用rsyncor scp

> rsync -a $USER@$HOST:/remote/a/b/c /a/b/c

现在的问题是,有时您需要进入特殊设置才能启用所需的组,以便能够访问该目录。例如,在远程计算机上:

> ls -la /a/b | grep c
drwxr-s---   3 some_user some_group 4096 Feb  9  2021 c

所以我需要some_group“活跃”才能访问这个组。否则,上述rsync命令将返回:

rsync: opendir "/a/b/c" failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1674) [generator=3.1.3]

我有一个设置wash_groups some_group,它进入一个some_group处于活动状态的设置。那么问题来了——如何自动复制目录呢/a/b/c?我需要先激活所需的组,然后复制它们。我尝试使用-e选项rsync,但据我了解,它在本地计算机上运行,​​而不是在远程计算机上运行。

是否有一些解决方法可以使用scprsyncssh任何其他默认命令从远程计算机复制目录,同时使所需的组处于活动状态?也许使用一些“黑客” tar

答案1

根据我的经验,只要相关用户是拥有您要访问的文件的组的成员,就应该没有问题即使帐户被锁定或配置为 nologin。我认为问题可能是您正在复制的文件没有向该组授予完整的 RW 权限。

如果可以这样做,您可以使用运行类似的命令chmod g+=rwx file(s)

相关内容