GNU/Linux >> Tutoriales Linux >  >> Linux

¿Con qué usuario deberían ejecutarse apache y PHP? ¿Qué permisos deben tener los archivos /var/www?

  1. no rootear
  2. no rootear
  3. SuEXEC
  4. Depende. 644 para archivos y 755 para carpetas son valores predeterminados seguros.

No cambie la propiedad de nada a www-data a menos que desee que php pueda editar el contenido de ese archivo/carpeta

Independientemente de cualquier otra cosa que haga:las carpetas necesitan permisos de lectura y ejecución para que el usuario encuentre archivos; los archivos necesitan permisos de lectura para que el usuario los lea. Si obtiene algún error de permisos al cambiar las cosas, ha logrado eliminar estos permisos fundamentalmente necesarios.

Si no está escribiendo ningún archivo a través de su aplicación php, puede dejar archivos de su propiedad:usted. En esta circunstancia el permiso mundial (xx4/5) es el que se aplica.

Si deja los archivos como de su propiedad:usted con permisos de archivo de 644 (archivos), lo que eso significaría es que solo puede editar los archivos del sitio web (www-data no es usted), por lo que no puede editar los archivos.

Si desea restringir el acceso a apache + usted y bloquear todos los demás accesos chown -R you:www-data * . Con permisos de archivo de 640 y permisos de carpeta de 750, puede editar, www-data puede leer, porque apache lee el permiso de grupo (x4/5x).

Restrinja al mínimo las rutas en las que permite que apache/php escriba; si hay un directorio tmp en el que la aplicación debe escribir, permita que escriba en solo esa carpeta - y para cualquier ubicación en la que se pueda escribir, si es posible, asegúrese de que sea afuera la raíz del documento o tome medidas para asegurarse de que esta ruta de escritura no sea accesible a través de la web.

Tenga en cuenta que "usted" debe no ser root. Permitir el acceso ssh directo como root es un indicador de otros fallos de seguridad (como no no permitir el inicio de sesión con contraseña), pero eso es un montón de preguntas en sí mismo.


Entonces, si entiendo las cosas correctamente, si apache se ejecuta como www-data y quiero que apache pueda leer un directorio, el bit x debe configurarse para el grupo mundial (otro) (o + x), y eso también debe acosado en todos los directorios principales hasta el final de la cadena (www, var). Y si quiero que apache pueda leer desde un archivo, entonces se debe configurar el bit o+r.

Esto no es cierto, no tienes que configurar rwx por otro'. Debe cambiar el propietario y/o el grupo de la carpeta/archivo en particular que está tratando de proteger. Por ejemplo:

chown -R cwd:www-data /var/www/cwd.com
chmod 750 /var/www/cwd.com

Ahora solo miembros del grupo www-data puede leer /var/www/cwd.com . Y solo usted (cwd) puede escribir en él. Si desea permitir que sus aplicaciones (a través de Apache) escriban/modifiquen archivos en ese directorio también, cámbielo a 770.

Creo que esto cubre todos sus problemas, no veo ninguna razón para cambiar el usuario con el que se ejecuta Apache.


Linux
  1. Cómo encontrar archivos de configuración de MySQL, PHP y Apache

  2. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  3. ¿Agregué un usuario a un grupo, pero los permisos de grupo en los archivos siguen sin tener efecto?

  4. ¿Qué va en /var?

  5. Diferenciar cada usuario de apache y dar permisos

¿Qué es un Homelab y por qué debería tener uno?

UNIX/Linux:¿Cuál es el permiso correcto de los directorios /tmp y /var/tmp?

¿Qué es diferente entre /bin/false y /sbin/nologin como shell del usuario nologin?

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions

¿Deberían vivir los sitios web en /var/ o /usr/ según el uso recomendado?

¿Qué permisos deben tener los archivos/carpetas de mi sitio web en un servidor web Linux?