Я играл вокруг с Ubuntu, NGINX, PHP, и т.д. недавно.
Я хочу смочь установить FTP и пользователя (пользователей)... проблема, которую я имею, то, что FastCGI PHP работает под www-данными (пользователь), но при входе на пути FTP с помощью учетной записи обычного пользователя (farinspace) файлы записан с помощью farinspace как владелец/группа...
в настоящее время я использую vsftpd, но думаю, что pureftp будет отвечать всем требованиям лучше для автоматических полномочий файла установки на загрузке.
Что лучший способ состоит в том, чтобы правильно установить FTP, смочь иметь несколько учетных записей пользователя FTP и правильно/надежно установить разрешение файла для пользователей, позволяя PHP иметь полный доступ для чтения-записи к файлам/каталогам, созданным пользователем FTP?
Первые вещи сначала, установите отдельные счета Unix на каждого пользователя. Свяжите те учетные записи с FTP-сервером. Хотя действительно, необходимо использовать Безопасный FTP через SSH. С более новыми версиями OpenSSH можно установить учетные записи "только для SFTP", которые являются Chrooted в корневой каталог того пользователя. Обман! Теперь у Вас есть пользователи, надежно входящие в их собственные корневые каталоги без видимости к целой файловой системе. Файлы записаны с помощью их собственных полномочий пользователя/группы.
Затем можно установить FastCGI для выполнения с полномочиями отдельного пользователя. Это выглядит сложным, но существует учебное руководство, доступное здесь: Как установить FastCGI с Отдельными Полномочиями
Это - вероятно, лучший подход (хотя самое сложное), при попытке установить совместно использованный хостинг для различных пользователей, особенно если они - "недоверяемые" пользователи. Таким образом никто не сможет использовать Сценарии PHP, чтобы испортить файлы друг друга.
Если можно жить с тем, что пользователь может злонамеренно получить доступ к файлам другого пользователя, можно продолжить позволять FastCGI, выполненному как www-данные. Затем при установке корневого каталога каждого пользователя сделайте файлы принадлежавшими ГРУППЕ www-данных. Затем установите бит переключателя в chmod (т.е. chmod 2770 вместо всего 770). Это вынудит недавно созданные файлы наследовать владельца группы www-данных и разрешить FastCGI чтению-записи их.
Уф! Это было многоречиво. Сообщите мне, как это складывается путем добавления комментария здесь!