编辑:添加了附加信息

编辑:添加了附加信息

我遇到了一个奇怪的问题,我试图研究该问题,但可以找到可行的解决方案。

我正在/var我的 RHEL 卫星服务器上归档一些目录,因为它有足够的空间来执行此操作,直到我的备份服务器完成为止。我有 root 权限并用于sudo -r unconfined_r -i获取root.

我使用来自卫星服务器 RHEL8 VM 的 rsync/var/monthly_staging (700 admin:admin)并从另一个 RHEL8 工作站/home/admin/monthly_staging (700 admin:admin)目录中提取:

rsync -avh --progress [email protected]:/home/admin/monthly_staging/ ./

我已经修改了644 admin:admin工作站目录的权限 ( ),以允许与卫星服务器存档位置进行适当的交换,并且 99% 的文件和目录正在按预期同步。然而,有一个文件一直给我带来问题。在其中一个目录中,fix_publications.rake如果增量导入出现问题,一个名为 的文件允许我验证并重建卫星服务器上的元数据。我已验证该文件具有适当的权限:

-rw-r--r--. 1 admin admin 1445 Apr 13 16:37 fix_publications.rake

当我执行 rsync 时,这是我收到的错误:

rsync: send_files failed to open "/home/admin/monthly_staging/may2023/misc_sat_items/fix_publications.rake": Operation not permitted (1)
  • 我将权限更改为777- 没有更改
  • 我尝试通过 SCP 将文件从卫星工作目录拉到存档目录 -Operation not permitted
  • 我将原始文件 ( 644 admin:admin) 从我的 Jumpbox 移至卫星存档目标,并且传输得很好
  • 我可以将有问题的文件从工作站 SCP 到我的 Jumpbox,但不能直接从工作站到卫星/var目录。
  • 我可以通过中间设备将该文件移入或移出工作站或卫星服务器,但不能直接相互移动。

我似乎无法将此特定文件从工作站移动到卫星服务器上的备份位置。有任何想法吗?

据我所知,我创建了一个解决方法来使文件就位。但是,我现在很好奇为什么我无法将此文件从工作站传输到我的卫星服务器存档位置。卫星目录方面似乎可能存在问题,但我不完全确定原因。

编辑:添加了附加信息

[root@hernn-fsrw-001 misc_sat_items]# df -T fix_publications.rake 

Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/luks-5779ef65-791b-45ef-bba1-bd0835b1a6dd xfs   72263196 43541412  28721784  61% /home

[root@hernn-fsrw-001 misc_sat_items]# ls -ldZ fix_publications.rake 

-rw-r--r--. 1 admin admin staff_u:object_r:user_home_t:s0 1445 Apr 13 16:37 fix_publications.rake

[root@hernn-fsrw-001 may2023]# ls -ldZ misc_sat_items/

drwxr-xr-x. 2 admin admin staff_u:object_r:user_home_t:s0 116 Jun  9 13:14 misc_sat_items/

问题已解决 - Hauke Laging 在安全方面走在正确的轨道上,所以我将 selinux 设置为宽容 - 传输失败,检查了扩展属性 - 没有附加任何内容,并停止了 fapolicyd - 是罪魁祸首

答案1

我承认这只是答案的一半。我想我发现了这个问题,但不熟悉该技术,我无法告诉你如何解决它。

这似乎与 SELinux 相关:

  • 父目录的权限是OK的。
  • 鉴于父目录和文件由访问用户拥有,ACL 是否到位并不重要。

您确实解决了 SELinux 问题,但仅限于卫星服务器,而且它也在工作站上使用。

或不

抱歉,我刚刚意识到我的 SELinux 猜测似乎是错误的。无论如何我都会发布这篇文章,因为它包含一些有用的想法。

我只是注意到文件和父目录的 SELinux 设置是相同的。因此 SELinux 要么阻止两者,要么允许两者。如果对父目录 x 的访问被阻止,那么甚至文件名也无法准备好rsync

相关内容