Article ID: 115842, created on Mar 13, 2015, last review on Aug 11, 2015

  • Applies to:
  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux
  • Plesk 10.1 for Linux/Unix

Instructions d'utilisation

Exécutez les commandes suivantes pour télécharger, dézipper, rendre exécutable et exécuter un script sur votre serveur :

# wget http://kb.odin.com/Attachments/kcs-19590/chroot_update.zip
# unzip chroot_update.zip
# chmod +x chroot_update.sh
# ./chroot_update.sh --help

Cette commande affiche ce message "d'aide" :

# ./chroot_update.sh --help
Manage chrooted template in /var/www/vhosts/chroot and apply it to domains.

Usage:
  ./chroot_update.sh --install
  ./chroot_update.sh --update
    Create default chrooted environment or update existing one
    using actual libraries from the system.

  ./chroot_update.sh --add <path>
    Add program to chrooted environment. All linked libraries
    will be copied as well. Program will always be put in /bin
    directory of chrooted environment.

  ./chroot_update.sh --devices
    Add additional devices to chrooted environment template. List
    of devices added includes: /dev/tty, /dev/urandom, /dev/ptmx
    and /dev/zero. Useful for some commands like 'rsync', 'ssh' etc.

  ./chroot_update.sh --remove <domain,...>
  ./chroot_update.sh --remove all
    Remove chrooted environment from specific domains (comma-separated
    list) or all domains with enabled chrooted shell if no domains are
    given. Useful if full re-initialization of chrooted shell environment
    on domain is needed.

  ./chroot_update.sh --apply <domain,...>
  ./chroot_update.sh --apply all
    Apply new chrooted template to specific domains (comma-separated
    list) or all domains with enabled chrooted shell if no domains
    are given. This operation is necessary to apply changes done by
    '--install', '--add' and '--devices' commands to specific or all
    domains.

Exemple 1 : Ajouter la commande SSH

Pour ajouter la commande SSH à un template d'environnement chrooté, suivez ces étapes :

  1. Ajoutez des périphériques standards dans le template d'environnement chrooté. Sans accès à /dev/tty, SSH ne pourra pas fonctionner :

    # ./chroot_update.sh --devices  
    
  2. Ajoutez l'utilitaire SSH lui-même :

    # ./chroot_update.sh --add `which ssh`
    
  3. Copiez manuellement le fichier /etc/resolv.conf dans le template d'environnement chrooté (étant donné que le script est conçu seulement pour ajouter des fichiers binaires et les bibliothèques ou scripts shell qui en dépendent) :

    # cp /etc/resolv.conf /var/www/vhosts/chroot/etc/
    
  4. Appliquez les modifications aux domaines sélectionnés (fournis sous forme de liste séparée par des virgules) ou à tous les domaines simultanément :

    # ./chroot_update.sh --apply all
    

Vous pouvez désormais utiliser le SSH pendant que vous êtes connecté en tant qu'utilisateur de domaine.

Exemple 2 : Ajouter PHP à un environnement chrooté

Certains programmes requièrent non seulement des bibliothèques associées au fichier binaire principal, mais aussi des fichiers de configuration et des plug-ins. Par exemple, le PHP.

Même si l'ajout de PHP à un environnement chrooté n'est pas un avantage pour la sécurité des scripts PHP sur le site Web (étant donné que les scripts PHP sont exécutés dans un contexte non chrooté par Apache ou les processus FastCGI/CGI), il peut être utile pour le développement et le débogage de scripts PHP.

Pour ajouter PHP à un template d'environnement chrooté, suivez ces étapes :

  1. Ajoutez le fichier binaire lui-même :

    # ./chroot_update.sh --add `which php`
    
  2. Ajoutez les définitions des fuseaux horaires. Sans ces définitions, PHP génère l'erreur * glibc detected php: free(): invalid pointer: 0x00007f11249fccd8 lorsque les fonctions dates/heures sont utilisées :

    # mkdir /var/www/vhosts/chroot/usr/share
    # cp -a /usr/share/zoneinfo /var/www/vhosts/chroot/usr/share
    
  3. Ajoutez les modules PHP. Ils ne sont pas ajoutés à la première étape, car le fichier binaire n'est pas associé dynamiquement à ces bibliothèques. De plus, l'ajout de modules les placera dans le répertoire bin du template d'environnement chrooté. Ils doivent être supprimés par la suite :

    # for f in /usr/lib64/php/modules/*.so ; do ./chroot_update.sh --add $f ; done
    # rm -f /var/www/vhosts/chroot/bin/*.so
    

    Remarque : le chemin d'accès vers le répertoire des modules peut être différent sur votre système. Pour découvrir où les modules PHP sont stockés sur le serveur, exécutez la commande suivante :

    # php -i | grep extension_dir
    
  4. Copiez les modules PHP dans le bon répertoire dans le template d'environnement chrooté :

    # mkdir /var/www/vhosts/chroot/usr/lib64
    # cp -a /usr/lib64/php /var/www/vhosts/chroot/usr/lib64
    
  5. Copiez la configuration PHP :

    # cp -a /etc/php.ini /etc/php.d /var/www/vhosts/chroot/etc
    

    Remarque : les chemins d'accès aux fichiers de configuration peuvent être différents en fonction de votre système d'exploitation. Par exemple, dans une installation Plesk par défaut sur Debian, le fichier de configuration chargé est enregistré dans /etc/php5/cli/php.ini. D'autres fichiers .ini sont stockés dans /etc/php5/cli/conf.d au lieu de /etc/php.d.

    Remarque : si le domaine est configuré pour utiliser PHP comme application CGI/FastCGI, il est préférable d'ignorer cette étape, étant donné que le fichier "php.ini" est géré par Plesk. Pour ajuster les paramètres PHP, allez sous Sites Web & Domaines > domaine > Paramètres PHP.

  6. Appliquez les modifications :

    # ./chroot_update.sh --apply all
    

    Vous pouvez exécuter la commande suivante si les modifications ne sont pas requises pour tous les domaines :

    # ./chroot_update.sh --apply <domain,...>
    

    Remarque : les modifications ne seront pas appliquées si le type d'accès shell pour un utilisateur particulier est défini sur /bin/false ("Interdit" dans l'interface de Plesk).

Remarque importante :

L'accès chrooté pour les propriétaires de domaine n'est pas forcément identique à l'accès complet au serveur. En effet, il est conçu pour être un outil pratique pour exécuter des opérations simples comme changer les droits, copier et déplacer des fichiers, faire des recherches de test sur les fichiers. Si vous remarquez que vous avez un ou plusieurs logiciels dans un template d'environnement chrooté pour un petit nombre de clients, vous pouvez envisager de leur proposer une mise à niveau pour leur hébergement vers un serveur dédié ou virtuel.

Attachments

29d1e90fd304f01e6420fbe60f66f838 56797cefb1efc9130f7c48a7d1db0f0c a914db3fdc7a53ddcfd1b2db8f5a1b9c def31538ba607bde27398f48ab5956be dd0611b6086474193d9bf78e2b293040 01bc4c8cf5b7f01f815a7ada004154a2 0a53c5a9ca65a74d37ef5c5eaeb55d7f aea4cd7bfd353ad7a1341a257ad4724a 2a5151f57629129e26ff206d171fbb5f e335d9adf7edffca6a8af8039031a4c7 742559b1631652fadd74764ae8be475e

Email subscription for changes to this article
Save as PDF