我知道这个问题已经被问过很多次了,但我找不到解决方案。
所以我使用vsftpd
andFileZilla
作为客户端
在/var/www/
drwxrwsr-x+ 8 myuser ftpusers 4.0K Sep 2 10:37 html
在/var/www/html/
drwxrwxrwx 3 myuser ftpusers 4.0K Sep 2 10:38 directory
尽管我拥有该目录,但我无法删除该目录
FileZilla 日志说
rmdir /www/html/directory: failure
我已经在 HTML 文件夹上尝试过 777 但没有成功。尽管它只是在命令行上运行。
将 python 脚本从 更改为 后os.mkdir
,os.system("mkdir")
问题似乎消失了,但我很感兴趣是否有人能给我线索。
/var/www$ getfacl html
# file: html
# owner: myuser
# group: ftpusers
user::rwx
group::rwx
group:admin:rwx
group:synchronizer:rwx
mask::rwx
other::--x
答案1
在您的目录列表中
drwxrwsr-x+ 8 myuser ftpusers 4.0K Sep 2 10:37 html
“+”表示有扩展权限在html
目录上。当您使用运行时调用(例如,os.mkdir
而不是 shell 命令)时os.system
,两者可能首先使用进行检查access
如果您被允许删除此目录 - 或者他们可能不会(取决于操作系统来决定)。
Debian 维基权限提到了这种可能性:
最后一列是
+
符号。现在列出目录时您不太可能看到它(它将显示为空),但这意味着扩展访问规则已生效,因此文件的真正权限不仅仅是文件访问模式所说的- 您可以在本指南中阅读下面有关 ACL 的信息。
您的问题可能是(例如)ACL 禁止删除使用给定组 ID 运行的某些内容(其中 ftp 进程使用其自己的组运行),或者访问检查可能会注意到 ftp 守护进程是否使用不同的组运行真实用户。
进一步阅读: