CPanel: ¿Cómo evitar que Apache se ejecute como usuario root?

CPanel: ¿Cómo evitar que Apache se ejecute como usuario root?
<?php echo `whoami`; ?>

Entonces esto está devolviendo 'root' y no sé cómo evitarlo. Estoy usando WebHost Manager/CPanel, que se supone que crea múltiples usuarios/vhosts y hace que Apache genere su proceso como ese usuario/grupo. Esto no está sucediendo.

Si inicio sesión en WHM y abro la sección Configuración de PHP y SuExec, mis configuraciones son:

Default PHP Version (.php files)    5
PHP 5 Handler                       cgi
PHP 4 Handler                       none

Apache suEXEC                       on

¿Qué ocurre? ¿Cómo puedo hacer que Apache se ejecute como el usuario correcto en lugar de como root?

Respuesta1

Si desea que cada sitio se ejecute como su propio usuario, la configuración correcta del controlador PHP 5 es 'suPHP' en lugar de 'CGI'. Una vez que cambie esto, debería ver que sus whoamiinformes son de usuarios individuales.

Tenga en cuenta que es posible que deba ejecutar EasyApache y seleccionar "Mod SuPHP" durante ese proceso para recompilar Apache/PHP para que esta opción esté disponible primero. Esto se hace bajo:

Principal >> Software >> EasyApache (Actualización de Apache) o en la línea de comando/scripts/easyapache

Respuesta2

Lo más probable es que Apache se esté ejecutando como usuario de Apache, pero gracias a SuExec, los scripts PHP que son propiedad de root se ejecutarán como root. Es por eso que su whoamicomando devuelve el usuario root.

Si cambia el propietario de los archivos en la raíz de su documento para que sea "apache" o "www-data" (el que utilice su servidor), ese mismo comando devolverá el nuevo propietario del archivo.

Probablemente también valga la pena asegurarse de que todos sus scripts PHP chmod 555y directorios no sean propiedad del mismo usuario que los archivos. Esto permitirá que CGI ejecute los scripts, pero significará que si alguna vez se encuentra una falla en uno de los scripts PHP, no podrá modificarse a sí mismo ni a ninguno de los otros scripts y no podrá crear uno nuevo. script en cualquiera de los directorios. Todavía hay muchas cosas que un atacante podría hacer si encontrara una falla en un script PHP, pero cualquier cosa que pueda hacer para ponérselo más difícil vale la pena.

información relacionada