我需要在 Linux 服务器上创建一个目录,用户可以在其中“提交”文件,类似于 ftp 服务器上的传入目录。(提交后将无法查看。)
具体来说,这是 Fedora 20,但我希望有一个总体上可行的解决方案。
显然,我可以在本地设置 vsftp 并实际通过 ftp 连接到 localhost,但这似乎没有必要。
基本上,我希望用户能够将文件复制到此目录中,但之后不能查看它。(不过,如果他们可以用 >> 附加到它,那就太好了)
是否有任何组、chmod、umask 和 setfacl 的组合可以实现这一点?
谢谢。
答案1
是的。
- 使用 -wx 权限创建提交目录。这样用户将能够进入该目录并在其中创建/删除文件,但无法获取目录列表。
- 给他 +t 标志,以确保他们能够删除/覆盖他们的 自己的文件。
- 为提交目录提供 g+s 标志,以确保它们的文件将由提交目录的 gid 创建,而不是由它们创建。
- 删除 ftp 服务器配置中所有额外的 chmod/chown/等权限。除了上传之外,它们不应该能够执行任何操作。
- 在 sftp 服务器中为它们设置 umask 027。它将使用 750 创建它们的文件。
在此设置中不需要 Acl,但如果您遇到无法预料的问题,则可能需要它们。在这种情况下,我建议再次询问,这次要提供更详细的确切问题。祝你好运!