背景

背景

我有一个用户 myuser,该用户仅允许通过 sftp 连接到 ssh。我希望此用户始终使用 rwx-rwx-rx 创建文件,并且始终由组 apache 拥有。我尝试使用 umask 完成文件权限部分,但在 umask 中,文件和目录对于相同的 umask 获得不同的权限。非常感谢您的帮助。

答案1

背景

这是文件共享中一个永恒的问题sftp。这是因为最终的权限是基于用户端文件的原始权限,而 umask( -u) 参数不会强制授予此类权限,而只会剥离不需要的权限。这意味着,只有当用户尝试上传具有权限的文件时0777,才会应用权限并将其剥离为0775。否则,它就保持原样。例如,如果用户在其文件系统上存储了具有权限的文件0700,则在上传后也会显示为0700

解决方案

-m最近,我们通过应用补丁解决了 Fedora 中的这个问题,该补丁使用切换到强制新上传文件的精确权限sftp-server。它基于这个上游错误:

https://bugzilla.mindrot.org/show_bug.cgi?id=1844

目前可用CentOS 7.2. 来自更新日志:

 - Add sftp option to force mode of created files (#1197989)

解决方法

除了定期运行一些脚本(来自),没有其他优雅的解决方案cron,这些脚本正在修复错误的权限。这将是 bash 中的一些单行代码,但我想你可以想到一些。如果你有兴趣,我可以更详细地说明这一点。

或者您可以使用inotify来尽早“捕捉”变化。


组应该从父目录继承,不是吗?

相关内容