Назад | Перейти на главную страницу

Владелец каталога загрузок - www-data, но это предотвращает доступ к FTP через скрипты PHP.

Чтобы разрешить доступ для записи в Apache, мне нужно было chown www-data:www-data /var/www/mysite/uploads в папку загрузки моего сайта. Это позволяет мне удалять файлы из папки через unlink() в сценарии PHP.

К сожалению, это мешает работе другого сценария PHP, использующего функции FTP. Я думаю, это потому, что пользователь FTP mike и теперь, когда каталог загрузок принадлежит www-data, mike не может получить к нему доступ.

я добавил mike к группе www-data, но это не решает проблему.

Может ли кто-нибудь посоветовать мне, как разрешить PHP FTP-функции работать в дополнение к удалению файлов с помощью PHP unlink() функция?

Вот почему вам нужно разрешение на «запись» для удаления файлов. У вас есть несколько вариантов.

  1. chwon / var / www / mysite / uploads в www-data: mike и chmod на 775 (rwxrwxr-x)
  2. Создайте группу ftp-write и chown / var / www / mysite / uploads в www-data: ftp-write и chmod до 775
  3. просто выполните команду chmod до 775 (rwxrwxr-x) и оставьте mike частью группы www-data
  4. установите acl на папку для майка с помощью setfacl -m user:mike:rwx
  5. Создайте группу ftp-write, добавьте микрофон и группу (а также любых других пользователей, которым нужны эти разрешения с setfacl -m group:<ftp_group>:rwx

Разрешения файловой системы должно быть достаточно, чтобы решить вашу проблему. Попробуйте что-нибудь вроде chmod o + rw ТОЛЬКО в каталоге загрузок. Команда chmod фактически говорит: «Дайте всем, кто не входит в группу www-data, права на чтение и запись».

Однако долгосрочным решением будет использование учетной записи службы для вашего сценария, который вызывает FTP, и связывание этой конкретной учетной записи службы с www-данными.