Configuración de permisos para FTP y Apache

10

Tengo un servidor web (Apache2) al que accedo con FileZilla.

En mi servidor web tengo un directorio / home / admin / www que enlacé a / var / www. Entonces puedo acceder a él con FTP. Esto funciona perfecto!

Pero cada vez que reinicio mi servidor web tengo que hacer el enlace una y otra vez. ¿No puedo decirle a mi servidor web que esos mapas deben estar vinculados para siempre? También necesito restablecer todos mis permisos cada vez más, ¿qué estoy haciendo mal?

Ontwikkelaar Bij depurado
fuente

Respuestas:

13

Una solución mejor y más segura (me inquieta que Internet tenga acceso a la carpeta de inicio de un administrador) es crear una carpeta webroot en /

Hora del terminal!

cd /
sudo mkdir /webroot
sudo groupadd webdev
sudo usermod -a -G webdev yourusername 
sudo chown www-data:webdev /webroot/

Ahora apunte apache a su nuevo documento raíz / raíz web en la parte inferior de su configuración de apache. Esto se puede encontrar aquí: /etc/apache2/apache2.conf

sudo nano /etc/apache2/apache2.conf

CTRL-O para guardar, CTRL-X para salir en nano si no está familiarizado con él.

Simplemente reemplace DocumentRoot /var/www/con/webroot/

Copie sus archivos web ahora a webroot.

sudo /etc/init.d/apache2 reload

Apache ahora debería haberse reiniciado con todas las configuraciones cargadas.

Esto ha creado un directorio en la raíz llamado webroot, propiedad de apache2, y el propietario del grupo es el nuevo grupo webdev, al cual su usuario ahora se agrega como miembro (¡esto no reemplaza a ningún grupo!). ¡Esto le permitirá editar los archivos en el FTP!

Esta es una solución muy simple para un servidor apache de un sitio web. Se requiere más trabajo si planea ejecutar múltiples sitios (creando carpetas separadas para ellos en webroot, por ejemplo)

¡Las ventajas de esto son que si alguien encuentra una vulnerabilidad, está bloqueado en la carpeta webroot, y no en su carpeta de inicio! Además, si alguna vez ha necesitado permitir que más usuarios modifiquen el sitio, puede agregar su usuario al grupo webdev consudo usermod -a -G theirusername webdev

¡Espero que esto ayude!

Saludos cordiales

Laice
fuente
No es un problema :) ¿te importa si cambio el nombre del título para reflejar mejor la respuesta que he dado?
Laice
ciertamente no :-)
Ontwikkelaar Bij depurado el
por alguna razón no estaba obteniendo ese usuario webdev cuando usé su comando> sudo groupadd webdev Probé esto y parecía funcionar. Bien agregado el usuario en el archivo / etc / group de todos modos. sudo usermod -G -a wwwlogin WebDev
Benaía
Esto fue mi culpa, en mi respuesta cambié el usuario y el grupo sin querer, esto fue corregido por Damon, ¡lección aprendida!
Laice
@Damon, creo que debe establecer los permisos apropiados de modo que el propietario (www-data) y el grupo (webdev) tengan los mismos permisos que para un directorio: debe ser 775 (en lugar del predeterminado 755) y 664 (en lugar de 644 ) para archivos.
Eduardo B.