2

Я недавно играл с Ubuntu, NGINX, PHP и т.д.

Я хочу иметь возможность настроить FTP и пользователя (ей) ... проблема, с которой я сталкиваюсь, заключается в том, что FastCGI PHP работает под www-данными (пользователь), но при входе через FTP через общую учетную запись пользователя (farinspace). написанный с использованием farinspace как владелец / группа ...

в настоящее время я использую vsftpd, но думаю, что pureftp лучше подходит для автоматической настройки прав доступа к файлам при загрузке.

Каков наилучший способ правильно настроить FTP, иметь возможность иметь несколько учетных записей пользователей FTP и правильно / надежно устанавливать права доступа к файлам для пользователей, при этом предоставляя PHP полный доступ на чтение / запись к файлам / каталогам, созданным пользователем FTP?

2 ответа2

2

Перво-наперво, настройте отдельные учетные записи Unix для каждого пользователя. Свяжите эти учетные записи с FTP-сервером. Хотя на самом деле вы должны использовать безопасный FTP через SSH. В новых версиях OpenSSH вы можете настроить учетные записи «только SFTP», которые привязаны к домашнему каталогу этого пользователя. Бам! Теперь у вас есть пользователи, которые безопасно заходят в свои домашние каталоги и не видят всю файловую систему. Файлы пишутся с использованием собственных прав доступа пользователя / группы.

Затем вы можете настроить FastCGI для работы с разрешениями отдельных пользователей. Это выглядит сложно, но здесь есть учебник: Как настроить FastCGI с индивидуальными разрешениями

Это, вероятно, лучший подход (хотя и самый сложный), если вы пытаетесь настроить общий хостинг для различных пользователей, особенно если они "ненадежные" пользователи. Таким образом, никто не сможет использовать скрипты PHP, чтобы испортить файлы друг друга.

Если вы можете согласиться с тем, что пользователь может злонамеренно получить доступ к файлам другого пользователя, вы можете продолжить запускать FastCGI в качестве www-данных. Затем, когда вы настраиваете домашний каталог каждого пользователя, создайте файлы, принадлежащие www-data GROUP. Затем установите бит переключения в chmod (т.е. chmod 2770 вместо 770). Это заставит вновь созданные файлы наследовать владельца группы www-данных и позволит FastCGI их читать / записывать.

Уф! Это было многословно. Дайте мне знать, как это получается, разместив комментарий здесь!

0

Я написал учебник, который объясняет, как я настраиваю отдельные учетные записи пользователей, которые запускают отдельные пулы процессов php с помощью nginx и php-fpm:

http://themesforge.com/performance/configuring-nginx-php5-fpm-and-user-permissions/

издание

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .