(Plesk para Linux) Configuración del shell de tareas programadas
resumen: Puede ofrecer a los clientes la posibilidad de crear tareas programadas que ejecuten comandos en el servidor. En Plesk para Linux, 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.
En este tema, aprenderá a establecer el shell predeterminado para las tareas programadas, a establecer un shell personalizado para una suscripción individual, así como a permitir que un cliente establezca un shell personalizado para su suscripción. También aprenderá a impedir que los clientes utilicen las tareas programadas «Ejecutar un comando».
Nota: Si no está familiarizado con el concepto de shells de Linux, 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:
- El administrador de Plesk puede seleccionar cualquier shell para cualquier suscripción del servidor.
- El administrador de Plesk puede permitir al propietario de una suscripción seleccionar otro shell.
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 todas las suscripciones presentes en el servidor, incluidas aquellas propiedad del administrador de Plesk. No afecta las tareas programadas creadas por el administrador de Plesk en Herramientas y configuración > Tareas programadas (tareas cron) (en «Herramientas y recursos») 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 «Ejecutar un comando», vaya a Herramientas y configuración > Tareas programadas (tareas cron) (en «Herramientas y recursos») > Configuración y seleccione el shell deseado en el menú.
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 para sus suscripciones seleccionando otro shell.
Establezca un shell personalizado para una determinada suscripción
Para establecer un shell personalizado para una determinada suscripción, haga lo siguiente:
- Vaya a Suscripciones, haga clic en la suscripción deseada, vaya a la pestaña «Hosting y DNS» y haga clic en Hosting.
- Seleccione el shell deseado en el menú «Acceso SSH» y haga clic en Guardar.
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:
- Vaya a Suscripciones, haga clic en la suscripción deseada y haga clic en Personalizar.
- 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 Actualizar y bloquear.
De esta forma, el cliente podrá seleccionar otro shell en Sitios web y dominios > pestaña «Hosting y DNS» > Hosting. De hacerlo, todas las tareas programadas «Ejecutar un comando» 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:
- Localice el nombre de usuario del usuario de sistema de la suscripción. Vaya a Suscripciones, haga clic en la suscripción deseada, vaya a la pestaña «Hosting y DNS», haga clic en Hosting y busque el campo «Nombre de usuario».
- Acceda al servidor Plesk mediante SSH y ejecute el siguiente comando:
crontab -u <system user name> -l | grep SHELL