GNU/Linux >> Tutoriales Linux >  >> Linux

¿Con qué usuario deberían ejecutarse NGinx y PHP?

Solución 1:

Así es como funciona esto:cuando inicia sesión a través de FTP/SSH y carga archivos, estos se crean con sus permisos. Probablemente su webroot sea de escritura mundial (0777), eso es inseguro:todos los usuarios en el sistema pueden escribir algo allí. PHP se ejecuta con diferentes privilegios de usuario (se especifican en la configuración de PHP-FPM, no en la configuración de nginx), y como el directorio es de escritura mundial, el usuario de PHP (www-data) también puede escribir allí. Pero el propietario de este archivo es www-data, no su cuenta. Son 2 cuentas distintas en el nivel de permiso del sistema de archivos.

Le sugiero que cree un usuario dedicado con los mínimos privilegios posibles, que poseería el directorio webroot y se usaría para cargar FTP/SSH Y ejecutaría php. Debe cambiar la configuración de PHP-FPM, en la sección de trabajadores hay una entrada de usuario y una configuración de NGINX, para que pueda hacer que los archivos de su sitio web no sean legibles en todo el mundo y sean más seguros.

No ejecute PHP con un usuario privilegiado (capacidades sudo, privilegios de escritura fuera del sitio docroot), eso podría comprometer la seguridad del servidor.

Solución 2:

El www-data usuario y grupo son bastante estándar. Puede ser www o web en otros sistemas, pero la idea es la misma:ejecutar los servicios web con una cuenta dedicada. Por lo tanto, cuando su servidor web se ve comprometido, el atacante solo podrá acceder a los archivos que se le han otorgado a esta cuenta. .

Si un usuario tiene que administrar los servicios web, debe agregar al usuario al grupo relevante (www-data) o permitirle su (o sudo) al usuario relevante (todavía www-data).


Linux
  1. ERROR 403 al cargar recursos como CSS y JS en mi index.php

  2. ¿Comprobando qué versión de PHP estoy ejecutando en Linux?

  3. ¿Qué es diferente entre root y sudo?

  4. Ejecutando phpmyadmin y suphp

  5. ¿Qué es el usuario MySQL de debian-sys-maint (y más)?

¿Qué es UID en Linux, cómo encontrarlo y cambiarlo?

Instalación y configuración de Php y Nginx en Ubuntu 20.04

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

Cómo instalar Nginx, MySQL y PHP (LEMP) en un servidor Ubuntu 15.04

¿Cuál es la diferencia entre el espacio de usuario y el espacio del kernel?

Ubicar y actualizarb no funciona. ¿Qué tengo que hacer?