我们需要设置一个 SFTP 目录(在 Linux 服务器上),以便我们可以从多个来源接收文件。这些来源将共享同一个帐户来上传文件。连接时,用户被限制在一个acount_name
目录中,他们将文件上传到account_name/upload
。
但是,我们不希望最终用户能够与其他用户上传的文件进行交互。显然,系统无法区分,因为每个人都使用同一个帐户。因此,我们需要的行为是,用户可以将新文件写入文件夹,但无权访问该文件夹中的任何文件。
我两次都差点成功,但还是没成功。第一次尝试非常简单,我授予用户文件夹的只写权限。使用 WinSCP,用户实际上可以将文件上传到该文件夹。但由于它没有执行权限,因此在上传完成后会显示“权限被拒绝”,因为它无法列出目录的内容。目录仍然看起来是空的,看起来好像上传没有成功。
第二次尝试时,我允许用户完全访问目录,这样用户才能真正看到目录中的文件,但我依靠默认 ACL 来实现这一点,即对于每个新文件,文件所有者和特定用户帐户都无权访问该文件。这几乎成功了,因为用户无法读取或修改他上传的任何文件。但是,它仍然可以删除文件,这显然也是我不希望看到的。
我想要做的事情真的可行吗?我没想到 ChatGPT 在这方面如此无用。