Problèmes de droits d’accès BlueOnyx
Suite à de nombreux retours concernant des problèmes de droits d’accès à l’arborescence des sites créés sur des serveurs BlueOnyx, via les consoles d’administration des CMS (WordPress, Joomla, Drupal …) et/ou via FTP, Kogyte, notre hébergeur web à Poitiers, a recherché la meilleure solution auprès de la communauté BlueOnyx.
A l’issue de ces recherches, il ressort qu’il est possible de gérer simultanément les droits APACHE et FTP sur un serveur BlueOnyx. Ce post vous décrira la marche à suivre.
Accès serveur FTP ou APACHE ?
Lorsqu’on crée un « Virtual Host » via l’interface BlueOnyx, l’arborescence et notamment le répertoire « /web » appartiennent à l’utilisateur « nobody« , et à un groupe créé spécifiquement pour ce Virtual host, par exemple « site3 » pour le 3e site.
L’utilisateur « admin » de BlueOnyx appartient par défaut à tous ces groupes « site* », c’est pourquoi il peut gérer tous ces sites par l’interface BlueOnyx en étant connecté en tant qu’« admin », et, entre autres, y modifier les droits propriétaires des fichiers et répertoires.
Accès serveur via utilisateur FTP
La plupart du temps, on crée un utilisateur dans chacun de ces VirtualHosts, pour pouvoir s’y connecter en FTP. L’avantage est qu’on n’a accès dans ce cas qu’à l’arborescence du site dans lequel l’utilisateur a été créé, ce qui évite de faire de grosses bêtises ailleurs (supprimer ou modifier les répertoires d’un site par erreur…)
Pour que cet utilisateur acquière les droits d’écrire sur l’ensemble du répertoire « /web », il suffira de le déclarer « Site administrator » lors de sa création (ou après). Il héritera alors des droits inhérents au propriétaire du site.
Comment déclarer l’utilisateur FTP sur BlueOnyx ?
Rendez-vous dans le menu « Services / Web Ownership » du virtualhost, il apparaît dans la liste, il suffit de le sélectionner l’utilisateur que vous avez créé puis de sauvegarder.
Accès serveur via interface d’administration du CMS (utilisateur Apache)
D’un autre côté il y a plus simple. La plupart des CMS récents (et dignes de ce nom) embarquent des modules de gestion qui autorisent les transferts d’images, la mise à jour des fichiers du CMS, l’installation de modules ou de thèmes (Template), directement depuis l’interface d’administration du site (tableau de bord).
Mais dans ce cas, puisqu’on passe par http, c’est l’utilisateur Apache qui, à l’autre bout sur le serveur, exécute ces actions. Il doit donc être lui-même propriétaire de l’arborescence…
Peut-on déclarer l’utilisateur Apache sur BlueOnyx ?
Alors, oui : on peut, via la fonctionnalité « Web Ownership », donner à Apache l’appartenance du site.
Mais dans ce cas, l’utilisateur FTP cité ci-dessus perd l’ensemble de ses droits. Il ne peut donc plus transférer ou modifier les fichiers du site par ftp !
Or, quand on gère un site avec un CMS, on utilise régulièrement FTP pour gérer certaines tâches (uploader un grand nombre d’images ou d’extensions, réaliser certaines mises à jour…) qui ne sont pas (encore) permises via l’interface d’administration des CMS.
Existe-t-il une solution ?
En fait, ce problème est si récurrent et pas seulement sur les serveurs BlueOnyx, que les éditeurs de CMS (WordPress et Joomla en tête) ont intégré la possibilité de passer par FTP pour les tâches d’administration plutôt que par des transferts HTTP.
Je vous rassure, cette solution ne consiste pas à faire des allers et retours sur le serveur, pour déclarer à tour de rôle l‘utilisateur FTP puis l’utilisateur Apache, comme propriétaire du site.
Donner les droits à l’utilisateur FTP et à l’utilisateur Apache simultanément
Les discussions entamées par Franck Soyer avec la communauté des développeurs BlueOnyx ont porté leurs fruits. La solution qui suit nous est fournie par le principal développeur de la distribution, elle est, à priori, la solution « universelle » attendue. Elle fait appel à une fonctionnalité nommée « suPHP », que les développeurs PHP connaissent peut-être. Elle est activable sur un Virtual Host dans le menu « Services/Web », au niveau des paramètres « Enable PHP Scripting » (oui : elle est bien cachée).
« SuPHP » indique tout simplement à Apache d’exécuter les scripts (.php, en l’occurrence) sous le même nom que le propriétaire du site.
Il suffit donc d’activer ce paramètre, de créer un utilisateur administrateur du site, de lui donner l’appartenance des fichiers (Web Ownership). Étant propriétaire de l’arborescence, il aura donc tous les accès par FTP, et lorsqu’on passera par les consoles d’administration des CMS, Apache lancera les transferts, et autres mises à jour, sous son nom, donc sans restriction d’accès non plus.
Ping : Mise à jour WordPress via tableau de bord | GRACIET EIRL