Tâche #14030
Scénario #13756: Assistance aux utilisateurs (45-47)
répertoire /tmp/zephir_temp manquant
Associated revisions
Force le propriétaire de zephir_temp à nobody/nogroup.
- appel à os.chown à la création du dossier dans une fonction
susceptible d'être appelée par le backend.
ref #14030 @30m
creolewrap.py : import de NOBODY_UID/GID depuis zephir.config
- évite de faire un import dans zephir.web au niveau de utils
ref #14030 @5m
chown ajouté aussi sur CreoleWrap.save
ref #14030 @15m
History
#1 Updated by Thierry Bertrand almost 8 years ago
Sur 2 zephirs 2.5.1 le répertoire /tmp/zephir_temp est absent, ça empêche le frontend de se lancer.
Ce problème reapparait aussi au reboot.
A noter que ce sont 2 zephirs 2.5.0 "upgradés" en 2.5.1
#2 Updated by Scrum Master almost 8 years ago
- Status changed from Nouveau to En cours
#3 Updated by Scrum Master almost 8 years ago
- Assigned To set to Lionel Morin
#4 Updated by Bruno Boiget almost 8 years ago
Le problème n'a pas pu être reproduit de notre côté.
J'ai détecté deux fonctions susceptibles d'être appelées depuis le backend dans lesquelles le répertoire est créé si il n'existe pas.
Dans ce cas, le répertoire appartient à root/root au lieu de nobody/nogroup, ce qui le rend inaccessible à l'application web.
Je n'ai pas reperé de cas concret d'utilisation pouvant aboutir à une utilisation par le backend avant création du répertoire par l'application web, mais dans le doute j'ai forcé le propriétaire du répertoire après création dans les fonctions en question.
#5 Updated by Bruno Boiget almost 8 years ago
méthode pour tester 'manuellement' le comportement avec création du répertoire par le backend :
en tant que root sur un serveur aca.zephir-2.5.1-avecConf (mis à jour en candidate) :
* service zephir stop * service zephir_web stop * rm -rf /tmp/zephir_temp
lancer un prompt python:
>>> from zephir.backend.dictpool import init_dictpool; from zephir.backend.lib_backend import serveur_pool;s=serveur_pool(); d=init_dictpool(s); >>> serv=s[76];serv.check_dict('modif_config') --> (récupère le serveur 76 et initialise sa configuration) >>> serv.dico.save('/tmp/zephir_temp/maconf.eol')Sortir du prompt python et verifier :
- que le répertoire /tmp/zephir_temp existe
- qu'il appartient bien à nobody/nogroup
#6 Updated by Bruno Boiget almost 8 years ago
- Estimated time set to 1.00 h
- Remaining (hours) set to 1.0
La modification indiquée a été publiée en version candidate, mais il n'a pas été validé que cela corresponde au problème remonté à l'origine (thierry n'étant pas sur place ces derniers jours, il n'a pas pu donner plus de détails).
#7 Updated by Scrum Master almost 8 years ago
- Status changed from En cours to Résolu
#8 Updated by Lionel Morin almost 8 years ago
- Status changed from Résolu to Fermé
- Remaining (hours) changed from 1.0 to 0.0
#9 Updated by Daniel Dehennin almost 8 years ago
- % Done changed from 0 to 100