Estoy trabajando a través de Cómo Servir Aplicaciones Django con uWSGI y Nginx en Ubuntu 16.04 . Al final de "Crear un archivo de unidad systemd para uWSGI" en el artículo, hablan sobre el www-data
usuario. ¿Qué es esto y por qué es importante?
Estoy trabajando a través de Cómo Servir Aplicaciones Django con uWSGI y Nginx en Ubuntu 16.04 . Al final de "Crear un archivo de unidad systemd para uWSGI" en el artículo, hablan sobre el www-data
usuario. ¿Qué es esto y por qué es importante?
Respuestas:
Por seguridad.
Los archivos no se pueden escribir en el mundo. Están restringidos al propietario de los archivos para escribir.
El servidor web debe ejecutarse con un usuario específico. Ese usuario debe existir.
Si se ejecutara bajo root, entonces todos los archivos tendrían que ser accesibles por root y el usuario debería ser root para acceder a los archivos. Siendo root el propietario, un servidor web comprometido tendría acceso a todo su sistema. Al especificar una ID específica, un servidor web comprometido solo tendría acceso completo a sus archivos y no a todo el servidor.
Si decide ejecutarlo con una ID de usuario diferente, entonces ese usuario deberá ser el propietario efectivo de los archivos para obtener los privilegios adecuados. Podría ser confuso tener la propiedad personal de los archivos de todo el sistema en su cuenta personal.
La creación de un usuario específico facilitaría el reconocimiento de los archivos y la coherencia para reconocer qué ID chown
para los nuevos archivos y carpetas agregados al sitio.
El nombre de usuario o nombre del propietario no importa. Lo que se elija o decida tendrá que configurarse en los archivos de configuración del servidor web.
Por defecto, la configuración del propietario está www-data
en la configuración de Ubuntu de Apache2. Como esa es la configuración predeterminada, usted sabe cómodamente la propiedad necesaria para sus archivos web. Si lo cambia, tendría que cambiar los archivos en su sitio para que coincidan.
No ejecuto Nginx , pero como está en el repositorio de Ubuntu, estoy seguro de que se ha probado con la www-data
configuración predeterminada.
www-data
. Es por eso que, como en su pregunta, le pidieron que creara la ID de usuario y la ID de grupo si no existe. La instalación de Apache2 crea automáticamente el usuario. No estoy seguro acerca de Nqinx . Usted puede comprobar para ver si existe con: iid -u www-data&&id -g www-data
. Si existe, le mostrará el número de identificación del usuario y grupo. Por defecto en Ubuntu los números de usuario y grupo son 33
.
www-data
como propietario también puede ser un riesgo de seguridad como se menciona en la base-passwd
documentación (consulte la respuesta de @ muru), ya que los propietarios generalmente tienen acceso de lectura / escritura a todo el contenido de publicación en la web. Puede eliminar el acceso de escritura al www-data
propietario o utilizar un propietario diferente. www-data
definitivamente necesita acceso de lectura a todos los datos para ser servidos, pero si solo otorga los permisos necesarios para cada archivo y directorio, y no más, estará más seguro.
www-data
es el usuario que los servidores web en Ubuntu (Apache, nginx, por ejemplo) usan de manera predeterminada para el funcionamiento normal. El proceso del servidor web puede acceder a cualquier archivo que www-data
pueda acceder. No tiene otra importancia.
De la base-passwd
documentación ( /usr/share/doc/base-passwd/users-and-groups.txt.gz
):
Algunos servidores web se ejecutan como www-data. El contenido web no debe ser propiedad de este usuario, o un servidor web comprometido podría reescribir un sitio web. Los datos escritos por los servidores web serán propiedad de www-data.
base-passwd
documentos para eso
www-data
es el usuario (y también el grupo) con el que actúa el servicio httpd (apache) en su sistema.