Configuración de permisos VSFTPD con el servidor Apache

8

Tengo una VM que ejecuta Ubuntu 10.10. Estoy usando Netbeans y cargando archivos a un ftp en la máquina virtual. Estoy usando vsftpd.

El problema que tengo es que el propietario de la carpeta /var/wwwes el usuario apachepara que el servidor apache pueda leer los archivos. Hasta aquí todo bien.

Pero cuando intento cargar un archivo del usuario ftp user1no puedo. Yo sé cuál es el problema. Mi pregunta es, ¿cómo configuro los permisos correctamente para el usuario apachey user1para poder escribir / leer todos los archivos en el directorio / var / www?

Tek
fuente

Respuestas:

17

Cree un grupo www-usersy conviértalo en el propietario del grupo /var/www. Luego asigne los usuarios apachey user1al grupo y establezca los permisos en el /var/wwwdirectorio a 775. Esto permitirá que user1cualquier otro usuario del www-usersgrupo lea y escriba /var/www; también facilitará la autorización de otros usuarios para escribir /var/www, simplemente asigne el usuario al www-usersgrupo.

Editar: los permisos correctos /var/wwwson 2775, que incluye setgid para que los archivos y directorios que se encuentran dentro /var/wwwhereden la propiedad del grupo /var/www.

bwDraco
fuente
Gran respuesta. Excepto Apache no es capaz de leer los archivos después subo algo con user1me encontré con los siguientes comandos: chown -R apache:www-users /var/www, usermod -g www-users apache, usermod -g www-users user1, chmod 775 /var/www. ¿Me estoy perdiendo de algo?
Tek
El umask puede configurarse para denegar permisos de lectura de otros; mira si cambiar el umask ayuda.
bwDraco
Sí. Fue parte de eso.
Tek
10
Estos son los pasos en caso de que algún googlers necesite una pista. 1) set up vsftpd for umask 0027 (/etc/vsftpd.conf) [local_umask=0027] 2) create www-users group (groupadd www-users) 3) add user to group (usermod -a -G group user) 4) Set apache to run as www-users group (httpd.conf) 5) chgrp www-users /var/www 6) chmod 2775 /var/www
Tek
2
Además, trate de añadir el permiso setgid en el directorio: chmod g+s /var/www. Esto asegurará que los archivos y directorios creados dentro del directorio sean propiedad del grupo propietario del directorio.
bwDraco