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

Загрузки с веб-сервера не могут быть прочитаны пользователем FTP

у меня есть www пользователь, под которым работает веб-сервер.

У меня также есть ftp пользователь, который также принадлежит wheel группа.

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

Какие изменения мне нужно сделать, чтобы преодолеть это?

Если вы используете систему, которая поддерживает ACL, вы можете использовать следующие команды, чтобы разрешить пользователю доступ ко всем файлам в их домашнем каталоге по умолчанию. Думаю, это было бы лучше, чем перемещать группы:
setfacl -d -R -m user:ftpuser:rwx /home/ftpusers_home
setfacl -R -m user:ftpuser:rwx /home/ftpusers_home

После этого они должны иметь возможность читать, писать или выполнять любой файл в своем домашнем каталоге. Если первая команда завершилась неудачно из-за «неправильного использования» или аналогичной команды, вам может потребоваться сначала выполнить следующую команду:
mount -o remount,acl /mount_point где точка_монтирования - это тот раздел, в котором находится домашний каталог пользователя FTP. Если вам нужно это сделать, вам также придется отредактировать файл / etc / fstab, чтобы изменения сохранились после перезагрузки, дайте нам знать, если вам понадобится помощь с этим.

Мне нравится идея acl, но если вы не можете этого сделать, всегда есть метод грубой силы для настройки задания cron (возможно, запускаемого root), который запускается каждые несколько минут и устанавливает соответствующие разрешения для файлов в каталоге. Уродливо, но работает.

Просто принадлежать к одной и той же группе (что я буду великодушным и предположить, что это не колесо, потому что это было бы плохо) недостаточно.

Например, если файлы, созданные веб-сервером, имеют права доступа, установленные на «600», ftp-пользователь, находящийся в правой группе, не поможет, поскольку у группы нет прав на чтение файла.

Даже если разрешений достаточно, чтобы позволить членам группы читать файл, вам также необходимо убедиться, что устанавливается правильная группа. Если первичной группой www-data является www-data, файл будет изначально создан с группой, установленной на www-data. Вам нужно будет убедиться, что он передан chrgrped в общую группу, прежде чем пользователь ftp сможет читать файлы.

Один из способов сделать это - установить группу папки, в которой веб-сервер сохраняет свои файлы в общую группу. Файлы, созданные внутри папки, должны затем получить свою группу, установленную в общую группу, а не в группу по умолчанию www-data.