好的,我的所有文件和文件夹都设置为 vsftpd:nogroup 的所有者。FTP 程序可以上传和创建并执行所有操作。但是当我使用 PHP 命令 mkdir 时,即使创建它的文件夹设置为 chmod 777,我也收到“权限被拒绝”的提示。如果我将基本文件夹设置为用户 www-data 和组 www-data,PHP mkdir 就可以正常工作。但是,我无法使用 FTP 删除或上传到该文件夹。
/uploads 是基本文件夹。
我使用 PHP mkdir 在那里创建一个目录:
if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/uploads/" . $_REQUEST['clientID'] . '/video/')) {
@mkdir($_SERVER['DOCUMENT_ROOT'] . "/uploads/" . $_REQUEST['clientID'] . '/video/', 0777);
}
如果/上传是 vsftpd:nogroup 那么 PHP mkdir 将给出权限被拒绝错误。
如果/上传是 www-data:www-data 那么 PHP mkdir 将会起作用,但我无法继续通过 FTP 传输刚刚创建的文件夹中的任何内容。
如果/上传是 vsftpd:www-data 那么 PHP mkdir 将给出权限被拒绝错误。
如何使用 PHP 创建目录并仍然能够通过 FTP 访问它?
答案1
这应该会将您的用户添加到 www-data 组。只要 www-data 创建的文件是使用组写入的,您就应该能够修改或删除它们
sudo adduser vsftpd www 数据