(Plesk pour Linux) Paramètres du shell des tâches planifiées

Résumé

Vous pouvez proposer aux clients de créer des tâches planifiées qui exécutent des commandes sur le serveur. Dans Plesk pour Linux, 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.

Dans cette section, vous découvrirez comment définir le shell par défaut pour les tâches planifiées, comment définir un shell personnalisé pour un abonnement individuel, et également comment permettre à un client de définir un shell personnalisé pour son abonnement. Vous découvrirez aussi comment empêcher les clients d’utiliser les tâches planifiées « Exécuter une commande ».

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

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 (Tâches cron) (sous « Outils & Ressources ») 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é par défaut pour exécuter toutes les tâches planifiées « Exécuter une commande », allez sous Outils & Paramètres > Tâches planifiées (Tâches cron) (sous « Outils & Ressources ») > Paramètres et sélectionnez le shell souhaité dans le menu.

image-select-shell

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 l’autorisation de sélectionner un autre shell peuvent remplacer cela pour leurs abonnements en sélectionnant un autre shell.

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 et cliquez sur l’abonnement souhaité. Ensuite, allez sous l’onglet « Hébergement et DNS », puis cliquez sur Hébergement.
  2. Sélectionnez le shell souhaité dans le menu « Accès SSH » et cliquez sur Enregistrer.

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 Mettre à jour & Verrouiller.

Le client pourra ainsi sélectionner un shell différent dans Sites Web & Domaines > onglet Hébergement et DNS > Hébergement. Dans ce cas, 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 et cliquez sur l’abonnement souhaité. Ensuite, cliquez sur l’onglet Hébergement et DNS, puis sur Hébergement et 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