我有一个特定的 linux-server,它在晚上运行多个批处理作业,创建文件并将它们复制到 NAS 上的各个位置,以前使用 NFS 安装,但最近使用 CIFS。
这是因为我们的新 NAS 不支持以适合我们的方式同时将文件系统共享为 nfs 和 cifs(多协议共享)。因此,我将共享安装为 cifs 共享,并在 .smbcredentials 文件中使用 Windows 凭据。
此共享与它自己的时间一样古老,并且可以被许多系统(Linux 服务器和 Windows 服务器)访问。但是他们都有自己的服务器,所以当我将共享作为 cifs 安装在其中一个 Linux 服务器上时,我可以将 fstab 中的 uid 和 gid 设置/屏蔽给他们各自的服务用户,一切都很好。
然而,在我第一次提到的服务器上,有几个系统与他们自己的个人用户在同一台服务器上运行。所以我需要掩盖 fstab 中的 uid/gid 看起来像一个用户,但仍然允许其他人做事。
这主要工作但不是 cp -p,保留文件的时间戳。这我似乎无法正常工作。
我可以尝试任何提示吗?我当然已经用谷歌搜索了我的 *ss,尝试了从这里到月球的任何东西......
当然,我也在尝试让开发团队转移到他们自己的服务器上,但这不会很快发生。
有时,我们需要使用 posix 扩展属性 (ACL) 来让多个用户通过 CIFS 服务器访问一组文件,该 CIFS 服务器不对我们的中央目录服务进行身份验证。因此,例如,您可以尝试在 SMB 服务器上使用 setfacl,将权限映射到文件/文件夹,这将为 Linux 客户端上的用户提供正确的访问权限。如果您尝试这样做,也不要忘记设置默认 ACL(这模仿了 CIFS 上的继承概念,尽管并不完美)。
如果用户开始自己摆弄权限,它可能会很快变得混乱。但我认为您的问题可能可以通过这种方式解决。