NGINX, FastCGI PHP con acceso a FTP, ¿Cómo configurar usuarios / permisos?

2

he estado jugando alrededor con Ubuntu, NGINX, PHP, etc. recientemente.

Quiero poder configurar FTP y usuarios (s) ... el problema que tengo es que FastCGI PHP se ejecuta en www-data (usuario) pero cuando se inicia sesión a través de FTP a través de una cuenta de usuario general (espacio lejano) Los archivos son escrito usando el espacio lejano como propietario / grupo ...

Actualmente estoy usando vsftpd, pero creo que pureftp se ajustará mejor a la cuenta para la configuración automática de permisos de archivos al cargar.

¿Cuál es la mejor manera de configurar FTP correctamente, poder tener múltiples cuentas de usuario de FTP y configurar de manera adecuada / segura el permiso de archivos para los usuarios, mientras que permite que PHP tenga acceso completo de lectura / escritura a los archivos / directorios creados por un usuario de FTP?

farinspace
fuente

Respuestas:

2

Lo primero es lo primero, configurar cuentas Unix separadas para cada usuario. Asocie esas cuentas con el servidor FTP. Aunque en realidad, debería usar FTP seguro a través de SSH. Con las versiones más recientes de OpenSSH, puede configurar las cuentas "solo para SFTP" que están en Chroot en el directorio principal de ese usuario. Bam! Ahora tiene usuarios que inician sesión de forma segura en sus propios directorios personales sin visibilidad de todo el sistema de archivos. Los archivos se escriben con sus propios permisos de usuario / grupo.

Luego, puede configurar FastCGI para que se ejecute con permisos de usuario individuales. Parece complicado, pero hay un tutorial disponible aquí: Cómo configurar FastCGI con permisos individuales

Este es probablemente el mejor enfoque (aunque sea el más complejo) si está intentando configurar un alojamiento compartido para varios usuarios, especialmente si son usuarios "no confiables". De esta manera, nadie podrá usar scripts PHP para desordenar los archivos de los demás.

Si puede vivir con el hecho de que un usuario puede acceder maliciosamente a los archivos de otro usuario, puede continuar permitiendo que FastCGI se ejecute como www-data. Luego, cuando configure el directorio de inicio de cada usuario, cree los archivos propiedad de www-data GROUP. Luego, establezca el bit de cambio en chmod (es decir, chmod 2770 en lugar de solo 770). Esto forzará a los archivos recién creados a heredar el propietario del grupo www-data y permitirá que FastCGI los lea / escriba.

¡Uf! Eso fue largo aliento. ¡Déjame saber cómo resulta publicar un comentario aquí!

BMiner
fuente
0

He escrito un tutorial que explica cómo configuro cuentas de usuario individuales que ejecutan grupos de procesos php separados con nginx y php-fpm aquí:

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

Ed

Ed Bloom
fuente
Gracias a la información, lo que actualmente no me gusta de las piscinas es que simplemente se mantiene desperdiciando memoria. Realmente lo único que se necesita es la capacidad de ejecutar php como un propietario diferente por vhost
farinspace
Sí, estoy de acuerdo, en este momento es un poco ineficiente, está bien, estoy seguro de que la lógica de gestión de procesos de la agrupación evolucionará en el futuro para comenzar solo cuando sea necesario.
Ed Bloom