Plesk para Linux permite a los clientes crear tareas programadas que ejecuten comandos en el servidor. El shell usado determina las áreas del sistema de archivos a las que tienen acceso las tareas programadas. Por omisión, el acceso está limitado al espacio web del cliente. De todos modos, el administrador de Plesk puede cambiarlo.

Nota: si no está familiarizado con el concepto de shells, le recomendamos documentarse al respecto antes de cambiar la configuración aquí descrita.

¿Qué shell se usa para la ejecución de tareas programadas?

El shell usado para las tareas programadas «Run a Command» está vinculado al usuario de sistema de la suscripción. Es decir, todas las tareas programadas creadas bajo una suscripción comparten el mismo shell. Por omisión, se trata del shell predeterminado configurado en las opciones del servidor y usado para todas las suscripciones presentes en el servidor. De todos modos, existen dos excepciones para esta regla:

En ambos casos, las tareas programadas «Run a Command» creadas bajo la suscripción usarán el shell personalizado y no el predeterminado.

¿Por qué usar otro shell?

Por defecto, el shell «/bin/bash (chrooted)» se configura como el shell predeterminado para las tareas programadas. Es por este motivo que los comandos ejecutados por tareas programadas sólo tienen acceso a los archivos presentes en el espacio web asociado con la suscripción. Gracias a esta medida de seguridad, se garantiza que los clientes no puedan usar las tareas programadas para interrumpir el funcionamiento del servidor o para acceder a los archivos del administrador de Plesk o de otros clientes.

Nota: esta opción afecta a todas las suscripciones presentes en el servidor, incluyendo a aquellas propiedad del administrador de Plesk. Esta no afecta a las tareas programadas creadas por el administrador de Plesk en Herramientas y configuración > Tareas programadas configuradas para ejecutarse bajo el usuario root.

El motivo principal por el que puede desear cambiar el shell predeterminado para las tareas programadas es permitir a todos los usuarios ejecutar comandos mediante tareas programadas que tengan acceso a todo el sistema de archivos del servidor.

Si no comparte el servidor con nadie o si confía en las demás personas con las que lo comparte, puede seleccionar un shell no chrooted para las tareas programadas. Si desea usar un shell no chrooted para las tareas programadas pero no está seguro del shell a escoger, seleccione «/bin/bash».

En un servidor de hosting compartido, le recomendamos establecer el shell predeterminado para tareas programadas a «/bin/bash (chrooted)». Si uno de sus clientes requiere un shell no chrooted para sus tareas programadas, puede concederlo en una suscripción de forma individualizada para la suscripción.

Advertencia: si se concede acceso a un cliente a otro shell que no sea «/bin/bash (chrooted)», el cliente podrá ejecutar binarios y acceder a los archivos y datos que no sean suyos. Esto supone un riesgo de seguridad para el servidor.

Establezca el shell predeterminado para las tareas programadas

Para establecer el shell que se usará por omisión para ejecutar todas las tares programadas «Run a Command», vaya a Herramientas y configuración > Tareas programadas > Configuración y seleccione el shell deseado en el menú.

image 78099

Asimismo, también puede acceder al servidor mediante SSH y ejecutar el siguiente comando:

plesk bin server_pref -u -crontab-secure-shell "<shell>"

Aquí, <shell> es el shell deseado. Por ejemplo:

plesk bin server_pref -u -crontab-secure-shell "/bin/bash"

Impida el uso de tareas programadas «Run a Command»

Si cree que uno de sus clientes ha creado una tarea programada que efectúa una actividad malintencionada en el servidor, como por ejemplo el envío de spam, puede desactivar todas las tareas programadas «Run a command» mientras realiza las investigaciones pertinentes.

Acceda al servidor Plesk mediante SSH y ejecute el siguiente comando:

plesk bin server_pref -u -crontab-secure-shell "/bin/false"

para establecer el shell predeterminado a «/bin/false» para las tareas programadas. De esta forma, las tareas programadas «Run a command» creadas por los clientes no podrán realizarse correctamente.

Nota: aquellos clientes a quienes se les haya otorgado el permiso necesario para seleccionar otro shell, pueden invalidarlo seleccionando otro shell en Sitios web y dominios > Acceso a hosting web.

Establezca un shell personalizado para una determinada suscripción

Para establecer un shell personalizado para una determinada suscripción, haga lo siguiente:

  1. Vaya a Suscripciones, haga clic en la suscripción deseada y haga clic en Acceso a hosting web.
  2. Seleccione el shell deseado en el menú «Acceder al servidor vía SSH» y haga clic en ACEPTAR.

Todas las tareas programadas «Run a Command» para esta suscripción usarán el shell seleccionado.

Permita a un cliente establecer un shell personalizado para su suscripción

Para que un cliente pueda establecer un shell personalizado para una de sus suscripciones, haga lo siguiente:

  1. Vaya a Suscripciones, haga clic en la suscripción deseada y haga clic en Personalizar.
  2. En la pestaña «Permisos», seleccione las casillas «Administración de la configuración de hosting» y «Establecimiento de opciones de script web de hosting potencialmente inseguras que invaliden la directiva del proveedor» y haga clic en ACEPTAR.

De esta forma, el cliente podrá seleccionar otro shell en Sitios web y dominios > Acceso a hosting web. De hacerlo, todas las tareas programadas «Run a Command» para su suscripción usarán el shell seleccionado.

Averigüe el shell usado por una suscripción

Para averiguar el shell usado para las tareas programadas «Run a Command» de una suscripción, haga lo siguiente:

  1. Localice el nombre de usuario del usuario de sistema de la suscripción. Vaya a Suscripciones, haga clic en la suscripción deseada, haga clic en Acceso a hosting web y examine el campo «Nombre de usuario».
  2. Acceda al servidor Plesk mediante SSH y ejecute el siguiente comando:
crontab -u <system user name> -l | grep SHELL