Plesk pour Linux permet aux clients de créer des tâches planifiées qui exécutent des commandes sur le serveur. Le shell utilisé détermine les zones du système de fichiers auxquelles les tâches planifiées ont accès. Par défaut, l’accès est limité à l’espace Web du client. Toutefois, l’administrateur de Plesk peut modifier cet accès.

Note: si vous n’êtes par familier avec les shells, nous vous recommandons d’étudier cette notion avant de modifier les paramètres décrits dans ce chapitre.

Quel shell est utilisé pour exécuter les tâches planifiées ?

Le shell utilisé pour les tâches planifiées « Exécuter une commande » est lié à l’utilisateur système de l’abonnement (c’est-à-dire que toutes les tâches planifiées créées sous un abonnement partagent le même shell). Par défaut, il correspond au shell par défaut configuré dans les paramètres de serveur et utilisé pour tous les abonnements sur le serveur. Toutefois, il existe deux exceptions à cette règle :

Dans les deux cas, les tâches planifiées « Exécuter une commande » créées sous l’abonnement utiliseront le shell personnalisé à la place du shell par défaut.

Pour quelle raison utiliser un shell différent ?

Par défaut, le shell « /bin/bash (chrooted) » est configuré comme le shell par défaut pour les tâches planifiées. Il fait en sorte que les commandes exécutées par les tâches planifiées aient uniquement accès aux fichiers contenus dans l’espace Web associé à l’abonnement. C’est une mesure de sécurité importante qui garantit que les clients ne peuvent pas utiliser les tâches planifiées pour compromettre le fonctionnement du serveur ou accéder aux fichiers appartement à l’administrateur Plesk ou à d’autres clients.

Note: ce paramètre affecte tous les abonnements sur le serveur, y compris ceux qui sont détenus par l’administrateur Plesk. Il n’affecte pas les tâches planifiées créées par l’administrateur Plesk dans Outils & Paramètres > Tâches planifiées qui sont configurées pour s’exécuter sous l’utilisateur root.

La raison principale pour laquelle vous pourriez souhaiter modifier le shell par défaut pour les tâches planifiées est de donner à tout le monde sur le serveur la possibilité d’exécuter des commandes via des tâches planifiées qui aient accès à l’ensemble du système de fichiers du serveur.

Si vous ne partagez le serveur avec personne, ou si vous faites confiance aux autres titulaires, vous pouvez sélectionner un shell non chrooté pour les tâches planifiées. Si vous souhaitez utiliser un shell non chrooté pour les tâches planifiées, mais avez des doutes sur celui que vous devez choisir, sélectionnez « /bin/bash ».

Sur un serveur d’hébergement partagé, nous vous conseillons de laisser le shell par défaut pour les tâches planifiées configuré sur « /bin/bash (chrooted) ». Si un de vos clients a besoin d’un shell non chrooté pour ses tâches planifiées, vous pouvez le lui accorder pour un abonnement, sur une base par abonnement.

Avertissement: accorder à un client l’accès à un autre shell que « /bin/bash (chrooted) » lui donne la possibilité d’exécuter des fichiers binaires et des fichiers d’accès ainsi que des données qui ne lui appartiennent pas. C’est un risque pour la sécurité qui peut conduire le serveur à faire l’objet d’une attaque.

Paramétrer le shell par défaut pour les tâches planifiées

Pour paramétrer le shell qui sera utilisé pour exécuter toutes les tâches planifiées « Exécuter une commande » par défaut, allez sous Outils & Paramètres > Tâches planifiées > Paramètres et sélectionnez le shell souhaité dans le menu.

image 78099

Sinon, vous pouvez aussi vous connecter au serveur via ssh et exécuter la commande suivante :

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

<shell> représente le shell souhaité. Par exemple :

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

Empêcher l’utilisation de tâches planifiées « Exécuter une commande »

Si vous pensez qu’un de vos clients a créé une tâche planifiée réalisant une activité malveillante sur le serveur (par exemple qui envoie des spams), vous pouvez désactiver toutes les tâches planifiées « Exécuter une commande » pendant que vous faites des recherches.

Connectez-vous au serveur Plesk via ssh et exécutez la commande suivante

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

pour configurer le shell par défaut pour les tâches planifiées sur « /bin/false ». Cela provoque l’échec de toutes les tâches planifiées « Exécuter une commande » créées par les clients.

Note: les clients qui ont la permission de sélectionner un shell différent peuvent contourner cette fonction pour leurs abonnements en sélectionnant un shell différent dans Sites Web & Domaines > Accès à l’hébergement Web.

Configurer un shell personnalisé pour un abonnement spécifique

Pour configurer un shell personnalité pour un abonnement spécifique, suivez ces étapes :

  1. Allez sous Abonnements, cliquez sur l’abonnement souhaité, puis cliquez sur Accès à l’hébergement Web.
  2. Sélectionnez le shell souhaité dans le menu « Accès SSH au shell » et cliquez sur Ok.

Toutes les tâches planifiées « Exécuter une commande » pour cet abonnement utiliseront le shell sélectionné.

Permettre à un client de configurer un shell personnalisé pour son abonnement

Pour permettre à un client de configurer un shell personnalisé pour un de ces abonnements, suivez ces étapes :

  1. Allez sous Abonnements, cliquez sur l’abonnement souhaité, puis cliquez sur Personnaliser.
  2. Sur l’onglet « Droits », cochez les cases « Gestion des paramètres d’hébergement » et « Configuration des options des scripts Web potentiellement dangereux qui vont à l’encontre de la politique du fournisseur », puis cliquez sur Ok.

Cela va donner au client la possibilité de sélectionner un shell différent dans Sites Web & Domaines > Accès à l’hébergement Web. S’il le fait, toutes les tâches planifiées « Exécuter une commande » pour cet abonnement utiliseront le shell sélectionné.

Trouver quel shell est utilisé par un abonnement

Pour trouver quel shell est utilisé pour les tâches « Exécuter une commande » d’un abonnement, suivez ces étapes :

  1. Recherchez le nom d’utilisateur de l’utilisateur système de l’abonnement. Allez sous Abonnements, cliquez sur l’abonnement souhaité, cliquez sur Accès à l’hébergement Web puis recherchez le champ « Nom d’utilisateur ».
  2. Connectez-vous au serveur Plesk via ssh et exécutez la commande suivante :
crontab -u <system user name> -l | grep SHELL