NGINX, FastCGI PHP с FTP-доступом, Как настроить пользователей / разрешения?

8201
farinspace

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

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

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

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

2

2 ответа на вопрос

2
BMiner

First things first, setup separate Unix accounts for each user. Associate those accounts with the FTP server. Although really, you should use Secure FTP via SSH. With newer versions of OpenSSH, you can setup "SFTP-only" accounts that are Chrooted into that user's home directory. Bam! Now you have users securely logging into their own home directories with no visibility to the entire file system. Files are written using their own user/group permissions.

Then, you can setup FastCGI to run with individual user permissions. It looks complicated, but there is a tutorial available here: How to setup FastCGI with Individual Permissions

This is probably the best approach (albeit the most complex) if you are trying to setup shared hosting for various users, especially if they are "untrusted" users. In this way, no one will be able to use PHP scripts to mess up each other's files.

If you can live with the fact that a user can maliciously access another user's files, you can continue to let FastCGI run as www-data. Then, when you setup each user's home directory, make the files owned by www-data GROUP. Then, set the switch bit in chmod (i.e. chmod 2770 instead of just 770). This will force newly created files to inherit the www-data group owner and allow FastCGI to read/write them.

Phew! That was long-winded. Let me know how it turns out by posting a comment here!

0
Ed Bloom

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

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

издание

Спасибо за информацию, что мне в данный момент не нравится в пулах, так это то, что они просто напрасно тратят память. На самом деле, единственное, что нужно, это возможность запускать php от имени другого владельца для каждого vhost farinspace 13 лет назад 0
да, согласился - на данный момент это немного неэффективно, хорошо - я уверен, что логика управления процессами пула будет развиваться в будущем и запускаться только тогда, когда это необходимо - надеюсь! Ed Bloom 13 лет назад 0

Похожие вопросы