NGINX, FastCGI PHP com acesso FTP, como configurar usuários / permissões?

2

Eu tenho brincando com o Ubuntu, NGINX, PHP, etc. recentemente.

Eu quero ser capaz de configurar o FTP e usuário (s) ... o problema que estou tendo é que o FastCGI PHP roda sob www-data (usuário), mas quando logado via FTP através de uma conta de usuário geral (farinspace) Os arquivos são escritos usando o farinspace como dono / grupo ...

Atualmente, estou usando o vsftpd, mas acho que o pureftp caberá melhor na conta de permissões de arquivos de configuração automática no envio.

What is the best way to properly setup FTP, be able to have multiple FTP user accounts and properly/securely set file permission for the users, while allowing PHP to have full read/write access to the files/directories created by an FTP user?

    
por farinspace 03.08.2010 / 01:37

2 respostas

2

Primeiro, configure contas Unix separadas para cada usuário. Associe essas contas ao servidor FTP. Embora realmente, você deve usar FTP Seguro via SSH. Com as versões mais recentes do OpenSSH, você pode configurar contas "somente SFTP" que são Chrooted no diretório inicial desse usuário. Bam! Agora você tem usuários que efetuam login com segurança em seus próprios diretórios base sem visibilidade para todo o sistema de arquivos. Os arquivos são escritos usando suas próprias permissões de usuário / grupo.

Em seguida, você pode configurar o FastCGI para executar com permissões de usuário individuais. Parece complicado, mas há um tutorial disponível aqui: Como configurar o FastCGI com Permissões Individuais

Esta é provavelmente a melhor abordagem (embora seja a mais complexa) se você estiver tentando configurar hospedagem compartilhada para vários usuários, especialmente se eles forem usuários "não confiáveis". Desta forma, ninguém será capaz de usar scripts PHP para atrapalhar os arquivos uns dos outros.

Se você pode viver com o fato de que um usuário pode acessar maliciosamente arquivos de outro usuário, você pode continuar permitindo que o FastCGI seja executado como www-data. Em seguida, quando você configurar o diretório inicial de cada usuário, crie os arquivos de propriedade do grupo www-data GROUP. Em seguida, defina o bit do comutador em chmod (por exemplo, chmod 2770 em vez de apenas 770). Isso forçará os arquivos recém-criados a herdarem o proprietário do grupo de dados www e permitirá que o FastCGI os leia / grave.

Ufa! Isso foi prolixo. Deixe-me saber como acaba por postar um comentário aqui!

    
por 14.04.2011 / 20:46
0

Eu escrevi um tutorial que explica como eu configuro contas de usuários individuais que executam pools de processos php separados com nginx e php-fpm aqui:

link

Ed

    
por 16.05.2011 / 00:54