![使用 FTP 删除文件夹](https://linux22.com/image/503565/%E4%BD%BF%E7%94%A8%20FTP%20%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E5%A4%B9.png)
我有一个客户,他是一家印刷店的老板。我为他配置了一个 FTP 服务器,客户可以将他们想要打印的大文件发送到这个服务器。
我创建了几个 FTP 用户。他有一些高级客户和一些普通客户。普通客户被告知使用 FTP 用户客户。所有者有一个名为客户端的文件夹,具有以下权限。
printshopowner# ls -la
drwx-----x 9 printshopowner printshopowner 4096 Aug 17 08:07 .
drwx-wx-wx 9 printshopowner clients 4096 Jan 19 10:24 clients
drwxrwx--- 2 premiumuser printshopowner 4096 Jan 19 08:13 premiumuser
一切正常。客户端可以上传文件,而看不到其他客户端的文件。问题是当客户端上传文件夹时。FTP 用户印刷店老板 无法删除这些文件夹。
[printshopowner/clients]# ls -la
drwx-wx-wx 9 printshopowner clientes 4096 Jan 19 10:24 .
drwx-----x 9 printshopowner printshopowner 4096 Aug 17 08:07 ..
drwxr-xr-x 3 clients clients 4096 Dec 3 11:57 folderA
您知道我应该如何配置 FTP dropbox 来实现所需的功能吗?
答案1
您可以尝试在 vsftpd.conf 中设置 local_umask
local_umask = 0002
还可以考虑查看 file_open_mode。它控制上传文件的创建权限,umask 将应用在此值之上。
答案2
要删除(或者正确地说是“取消链接”)文件/目录 X,用户不需要拥有 X 的所有权,也不需要对 X 有写权限,但他们必须对X 的父母目录。
在您的例子中,printshopowner 可以删除 (rmdir) 文件夹 A,但前提是文件夹 A 为空。用户 printshopowner 无法删除文件夹 A 中的任何内容(他没有写入权限)。如果您将客户端的 umask 更改为 002,他将使文件夹 A 成为“drwxrwxr-x”,printshopowner 将能够删除它(我假设 printshopowner 被分配到 printshopowner 和客户端两个组)。不知道如何在 FTP 服务器中更改 umask。