Paquet Garradin (gestion d'association)

Bonjour,
J’ai essayé de “packager” Garradin, logiciel de gestion d’association. Il semble fonctionner… le travail fut minime car j’ai juste copié quelques fichiers du paquet Zerobin en les adaptant un petit peu. C’est pour cela que j’ai deux problèmes :

  • Je n’arrive pas à sauvegarder la base de donnée sqlite3 qu’utilise Garradin.
  • Je voudrais avoir de l’aide pour la sécurité du paquet.

Merci d’avance,
frju365

A priori la base sqlite devrait être un simple fichier .sqlite ou .db que tu dois pouvoir simplement copier.

Par défaut, ce fichier semble être dans /var/lib/sqlite/garradin.sqlite
A mon avis, il ne serait pas inutile que ton script adapte le fichier de conf aux besoins du package.

Sur quel aspect tu as besoin d’aide en matière de sécurité? Le package de manière générale? Ou Garradin en particulier?

Ce serait la sécurité au niveau de SSOwhat peut-être. Il faudrait tester le paquet auparavant.

Niveau ssowat il n’y a pas grand chose à faire, par défaut c’est privé. Donc l’accès n’est autorisé qu’après identification.
Dans ton script d’install tu gères déjà l’accès public en autorisant un accès non sécurisé par le sso.

La seule chose éventuellement, c’est si tu souhaites limiter un accès à une page d’admin même en public par exemple.

Par contre, tu peux améliorer la sécurité sur le droit des fichiers, l’usage d’un pool fpm dédié ainsi qu’un user dédié pour éviter des débordements en cas de compromission.
Mais si cela t’intéresse, on en parle demain :sweat_smile:

C’est une mauvaise idée de copier le fichier pendant que l’application tourne, il peut y avoir des écritures dessus. Il vaut mieux utiliser les outils de backup natif. Par exemple : http://stackoverflow.com/a/25684912

Bien vu Bram, je n’utilise pas de base sqlite, je ne connaissais pas. C’est beaucoup mieux !

Merci beaucoup. Je vais essayer de configurer tout ça. Comment puis-je tester mon paquet et peut-être l’intégrer dans Yunohost-App sur github ?

Pour tester ton paquet, je te conseille l’usage de Package check.

Tu peux transférer ton app sur Yunohost-Apps dés maintenant, en faisant un Transfer ownership.

J’ai essayé le paquet check mais ça me demande qqch que je ne comprends pas : "pchecker@10.1.4.2’s password: "
Or je n’ai pas mis de mot de passe…
:frowning:

Si vous avez une idée… ?
Merci d’avance

Tu l’as utilisé avec package_check.sh TON_APP_ynh et il te demande un mot de passe ?

Peux-tu me donner un log plus complet, pour avoir le contexte dans lequel il te demande cela?
Cet utilisateur n’a pas de mot de passe, et il ne devrait pas t’en demander un.

J’ai tapé ces commande dans mon terminal :
git clone https://github.com/YunoHost/package_check
package_check/sub_scripts/lxc_build.sh
–>> Il installe les paquet et là il me demande un mot de passe :
`
> Renseigne /etc/hosts sur l’invité
> Ajoute l’user pchecker
> Autorise pchecker à utiliser sudo sans mot de passe
> Mise en place de la connexion ssh vers l’invité.
# Host 10.1.4.2 found: line 6
# Host 10.1.4.2 found: line 7
# Host 10.1.4.2 found: line 8
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old
# 10.1.4.2:22 SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u3
# 10.1.4.2:22 SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u3
# 10.1.4.2:22 SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u3
pchecker@10.1.4.2’s password:
Authentication failed.
pchecker@10.1.4.2’s password:
Permission denied, please try again.
pchecker@10.1.4.2’s password:
Permission denied, please try again.
pchecker@10.1.4.2’s password:
Permission denied (publickey,password).
pchecker@10.1.4.2’s password:
pchecker@10.1.4.2’s password:

j’ai essayé tout les Mot de passe de mes utilisateur mais rien ne fonctionne.

J’ai ensuite essayé : package_check/package_check.sh https://github.com/frju365/garradin_ynh
et là c’est la même chose :
Chargement des fonctions de lxc_launcher.sh
Chargement des fonctions de testing_process.sh
Chargement des fonctions de log_extractor.sh
package_check/package_check.sh: ligne 69: /usr/share/yunohost/helpers: Aucun fichier ou dossier de ce type
Le fichier /home/abld/package_check/pcheck.lock est présent. Package check est déjà utilisé.
Souhaitez-vous continuer quand même et ignorer le lock ? (Y/N) :Y
cat: /var/lib/lxc/pchecker_lxc/rootfs/etc/yunohost/current_host: Aucun fichier ou dossier de ce type
Arrêt du conteneur LXC
Restauration du snapshot de la machine lxc
Arrêt du réseau pour le conteneur.
Récupération du package à tester.
Clonage dans ‘/home/abld/package_check/garradin_ynh_check’…
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (67/67), done.
remote: Total 75 (delta 30), reused 0 (delta 0), pack-reused 0
Dépaquetage des objets: 100% (75/75), fait.
Initialisation du réseau pour le conteneur.
ifup: interface lxc-pchecker already configured
Parsing du fichier check_process

Scénario de test: Nom du test


>> Package linter... [Test 1/11]
YUNOHOST APP PACKAGE LINTER
  App packaging documentation: https://yunohost.org/#/packaging_apps
 App package example: https://github.com/YunoHost/example_ynh
 Checking /home/abld/package_check/garradin_ynh_check package

>>>> MISSING FILES <<<<
✔ manifest.json 
✔ scripts/install 
✔ scripts/remove 
✔ scripts/upgrade 
✔ scripts/backup 
✔ scripts/restore 
✘ LICENSE 
✔ README.md 

>>>> MANIFEST <<<<
✔ Manifest syntax is good. 
✔ "name" field is present 
✔ "id" field is present 
✔ "packaging_format" field is present 
✔ "description" field is present 
✔ "url" field is present 
✘ "license" field is missing 
✔ "maintainer" field is present 
✔ "requirements" field is present 
✔ "multi_instance" field is present 
✔ "services" field is present 
✔ "arguments" field is present 
✔ "packaging_format" field is good 
✘ "multi_instance" field must be boolean type values 'true' or 'false' and not string type 

>>>> INSTALL SCRIPT <<<<
✔ All commands are prefix with "sudo". 
✘ Line 44: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Line 47: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Helpers documentation: https://yunohost.org/#/packaging_apps_helpers
code: https://github.com/YunoHost/yunohost/…helpers 
✘ Line 16: 'exit' command shouldn't be used. Use 'ynh_die' helper instead. 
✔ Verifications (with 'ynh_die' or 'exit' commands) are done before any system modification. 
✘ set -eu is missing at beginning of file. For details, look at https://dev.yunohost.org/issues/419 

>>>> REMOVE SCRIPT <<<<
✔ All commands are prefix with "sudo". 
✘ Line 5: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Helpers documentation: https://yunohost.org/#/packaging_apps_helpers
code: https://github.com/YunoHost/yunohost/…helpers 
✔ no 'exit' command found: 'ynh_die' helper is possibly used 
✔ Verifications (with 'ynh_die' or 'exit' commands) are done before any system modification. 
✘ set -u is missing at beginning of file. For details, look at https://dev.yunohost.org/issues/419 

>>>> UPGRADE SCRIPT <<<<
✔ All commands are prefix with "sudo". 
✘ Line 8: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Line 9: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Line 10: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Line 43: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Line 44: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Helpers documentation: https://yunohost.org/#/packaging_apps_helpers
code: https://github.com/YunoHost/yunohost/…helpers 
✔ no 'exit' command found: 'ynh_die' helper is possibly used 
✔ Verifications (with 'ynh_die' or 'exit' commands) are done before any system modification. 
✘ set -eu is missing at beginning of file. For details, look at https://dev.yunohost.org/issues/419 

>>>> BACKUP SCRIPT <<<<
✔ All commands are prefix with "sudo". 
✘ Line 23: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Helpers documentation: https://yunohost.org/#/packaging_apps_helpers
code: https://github.com/YunoHost/yunohost/…helpers 
✔ no 'exit' command found: 'ynh_die' helper is possibly used 
✔ Verifications (with 'ynh_die' or 'exit' commands) are done before any system modification. 
✘ set -eu is missing at beginning of file. For details, look at https://dev.yunohost.org/issues/419 

>>>> RESTORE SCRIPT <<<<
✔ All commands are prefix with "sudo". 
✘ Line 22: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Line 25: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Line 26: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Line 27: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Line 28: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Line 65: 'yunohost app setting' command is deprecated, please use helpers ynh_app_setting_(set,get,delete). 
✘ Helpers documentation: https://yunohost.org/#/packaging_apps_helpers
code: https://github.com/YunoHost/yunohost/…helpers 
✘ Line 34: 'exit' command shouldn't be used. Use 'ynh_die' helper instead. 
✘ Line 41: 'exit' command shouldn't be used. Use 'ynh_die' helper instead. 
✘ Line 47: 'exit' command shouldn't be used. Use 'ynh_die' helper instead. 
✔ Verifications (with 'ynh_die' or 'exit' commands) are done before any system modification. 
✘ set -eu is missing at beginning of file. For details, look at https://dev.yunohost.org/issues/419 

>>>> _COMMON SCRIPT <<<<
✔ All commands are prefix with "sudo". 
✔ Only helpers are used 
✔ no 'exit' command found: 'ynh_die' helper is possibly used 
--- FAIL ---


>> Installation en sous-dossier... [Test 2/11]
wc: /var/lib/lxc/pchecker_lxc/rootfs/var/log/yunohost/yunohost-cli.log: Aucun fichier ou dossier de ce type
..pchecker@10.1.4.2's password:

Je vais jeter un coup d’oeil, il n’y a pas de mot de passe pour cet utilisateur, il doit utiliser la clé SSH.

Je l’install sur une machine virtuelle pour voir si il y a un problème avec le script build.

Après un test d’installation de Package check, aucun problème avec la clé SSH. Il ne m’a pas demandé de mot de passe.

Tu dois avoir un log complet du build dans package_check/sub_scripts/Build_lxc.log
Peux-tu nous l’envoyer?

Merci beaucoup. Je suis en train de réessayer. Je vous envoie les logs si j’ai de nouveau ce problème.

Étant donné le problème que tu as eu, je pense que tu devrais au préalable utiliser le script lxc_remove.sh pour nettoyer la précédente tentative.

Merci beaucoup. J’ai réinstallé et cela fonctionne… mais j’ai un autre problème maintenant :
*
Chargement des fonctions de lxc_launcher.sh
Chargement des fonctions de testing_process.sh
Chargement des fonctions de log_extractor.sh
cat: /var/lib/lxc/pchecker_lxc/rootfs/etc/yunohost/current_host: Aucun fichier ou dossier de ce type
Restauration du snapshot de la machine lxc
Arrêt du réseau pour le conteneur.
Récupération du package à tester.
Clonage dans ‘/home/pi/package_check/garradin_ynh_check’…
remote: Counting objects: 158, done.
remote: Compressing objects: 100% (150/150), done.
remote: Total 158 (delta 89), reused 0 (delta 0), pack-reused 0
Réception d’objets: 100% (158/158), 30.40 KiB | 0 bytes/s, fait.
Résolution des deltas: 100% (89/89), fait.
Vérification de la connectivité… fait.
Initialisation du réseau pour le conteneur.
Sending network state change signal to nslcd…done.
Parsing du fichier check_process

Scénario de test: Nom du test


>> Package linter... [Test 1/11]
YUNOHOST APP PACKAGE LINTER
  App packaging documentation: https://yunohost.org/#/packaging_apps
 App package example: https://github.com/YunoHost/example_ynh
 Checking /home/pi/package_check/garradin_ynh_check package

>>>> MISSING FILES <<<<
✔ manifest.json 
✔ scripts/install 
✔ scripts/remove 
✔ scripts/upgrade 
✔ scripts/backup 
✔ scripts/restore 
✔ LICENSE 
✔ README.md 

>>>> MANIFEST <<<<
✔ Manifest syntax is good. 
✔ "name" field is present 
✔ "id" field is present 
✔ "packaging_format" field is present 
✔ "description" field is present 
✔ "url" field is present 
✔ "license" field is present 
✔ "maintainer" field is present 
✔ "requirements" field is present 
✔ "multi_instance" field is present 
✔ "services" field is present 
✔ "arguments" field is present 
✔ "packaging_format" field is good 
✔ "multi_instance" field is good 

>>>> INSTALL SCRIPT <<<<
✔ All commands are prefix with "sudo". 
✔ Only helpers are used 
✔ no 'exit' command found: 'ynh_die' helper is possibly used 
✔ Verifications (with 'ynh_die' or 'exit' commands) are done before any system modification. 
✔ set -eu is present at beginning of file 

>>>> REMOVE SCRIPT <<<<
✔ All commands are prefix with "sudo". 
✔ Only helpers are used 
✔ no 'exit' command found: 'ynh_die' helper is possibly used 
✔ Verifications (with 'ynh_die' or 'exit' commands) are done before any system modification. 
✔ set -u is present at beginning of file 

>>>> UPGRADE SCRIPT <<<<
✔ All commands are prefix with "sudo". 
✔ Only helpers are used 
✔ no 'exit' command found: 'ynh_die' helper is possibly used 
✔ Verifications (with 'ynh_die' or 'exit' commands) are done before any system modification. 
✔ set -eu is present at beginning of file 

>>>> BACKUP SCRIPT <<<<
✔ All commands are prefix with "sudo". 
✔ Only helpers are used 
✔ no 'exit' command found: 'ynh_die' helper is possibly used 
✔ Verifications (with 'ynh_die' or 'exit' commands) are done before any system modification. 
✔ set -eu is present at beginning of file 

>>>> RESTORE SCRIPT <<<<
✔ All commands are prefix with "sudo". 
✔ Only helpers are used 
✔ no 'exit' command found: 'ynh_die' helper is possibly used 
✔ Verifications (with 'ynh_die' or 'exit' commands) are done before any system modification. 
✔ set -eu is present at beginning of file 

>>>> _COMMON SCRIPT <<<<
✔ All commands are prefix with "sudo". 
✔ Only helpers are used 
✔ no 'exit' command found: 'ynh_die' helper is possibly used 
--- SUCCESS ---


>> Installation en sous-dossier... [Test 2/11]
wc: /var/lib/lxc/pchecker_lxc/rootfs/var/log/yunohost/yunohost-cli.log: Aucun fichier ou dossier de ce type
lxc-start: The container failed to start.
lxc-start: To get more details, run the container in foreground mode.
lxc-start: Additional information can be obtained by setting the --logfile and --logpriority options.
..........pchecker_lxc  STOPPED  -              
Le conteneur n'a pas démarré correctement...
Redémarrage du conteneur...
Restauration du snapshot de la machine lxc
lxc-start: The container failed to start.
lxc-start: To get more details, run the container in foreground mode.
lxc-start: Additional information can be obtained by setting the --logfile and --logpriority options.
..........pchecker_lxc  STOPPED  -              
Le conteneur n'a pas démarré correctement...
Redémarrage du conteneur...
Restauration du snapshot de la machine lxc
lxc-start: The container failed to start.
lxc-start: To get more details, run the container in foreground mode.
lxc-start: Additional information can be obtained by setting the --logfile and --logpriority options.
..........pchecker_lxc  STOPPED  -              
Le conteneur n'a pas démarré correctement...
Restauration du snapshot de la machine lxc
Le conteneur a rencontré des erreurs 3 fois de suite...
Si le problème persiste, utilisez le script lxc_check.sh pour vérifier et réparer le conteneur.Installation échouée. (1)
tail: impossible d'ouvrir « /var/lib/lxc/pchecker_lxc/rootfs/var/log/yunohost/yunohost-cli.log » en lecture: Aucun fichier ou dossier de ce type

Accès par l'url...
curl: (6) Could not resolve host: sous
Erreur de connexion...
Adresse de test: sous./check/
Adresse de la page: HTTP://sous./check/
Code HTTP: 000
Le code HTTP indique une erreur.
grep: /home/pi/package_check/url_output: Aucun fichier ou dossier de ce type
Titre de la page: 
Extrait du corps de la page:

grep: /home/pi/package_check/url_output: Aucun fichier ou dossier de ce type

--- FAIL ---

À la vue de cette ligne, je pense que ton conteneur n’est pas sain

cat: /var/lib/lxc/pchecker_lxc/rootfs/etc/yunohost/current_host: Aucun fichier ou dossier de ce type

Peux-tu nous envoyer le log de build, que je vérifie que tu n’as pas eu d’erreurs durant la construction du conteneur ?

Et n’hésite pas à venir sur le salon apps, ce sera plus simple pour discuter rapidement :wink:
apps@conference.yunohost.org

voilà : https://framabin.org/?bc5d7046a93b9f22#4OmyamAFpsoOeqDE6ZT4C9aMTyzboepDhnSJmMimrck=

Alors déjà je constate que tu installes sur un Raspberry, c’est la première fois que c’est tenté je crois.
Mais le log ne semble pas indiquer que c’est un problème.

Toutefois, le conteneur ne démarre après sa création initiale.
Pour en savoir plus, démarre le conteneur manuellement en loguant son démarrage:
sudo lxc-start -n pchecker_lxc -d --logfile boot.log

boot.log :
pi@yunohost:~ $ cat boot.log
lxc-start 1485709131.839 ERROR lxc_seccomp - Error loading the seccomp policy
lxc-start 1485709131.839 ERROR lxc_sync - invalid sequence number 1. expected 4
lxc-start 1485709131.839 ERROR lxc_start - failed to spawn 'pchecker_lxc’
lxc-start 1485709131.841 ERROR lxc_cgfs - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/net_cls/lxc/pchecker_lxc-33
lxc-start 1485709131.842 ERROR lxc_cgfs - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/freezer/lxc/pchecker_lxc-33
lxc-start 1485709131.842 ERROR lxc_cgfs - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/devices/lxc/pchecker_lxc-33
lxc-start 1485709131.843 ERROR lxc_cgfs - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/memory/lxc/pchecker_lxc-33
lxc-start 1485709131.844 ERROR lxc_cgfs - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/blkio/lxc/pchecker_lxc-33
lxc-start 1485709131.844 ERROR lxc_cgfs - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/cpu,cpuacct/lxc/pchecker_lxc-33
lxc-start 1485709136.846 ERROR lxc_start_ui - The container failed to start.
lxc-start 1485709136.846 ERROR lxc_start_ui - To get more details, run the container in foreground mode.
lxc-start 1485709136.846 ERROR lxc_start_ui - Additional information can be obtained by setting the --logfile and --logpriority options.
lxc-start 1485709146.280 ERROR lxc_seccomp - Error loading the seccomp policy
lxc-start 1485709146.280 ERROR lxc_sync - invalid sequence number 1. expected 4
lxc-start 1485709146.280 ERROR lxc_start - failed to spawn 'pchecker_lxc’
lxc-start 1485709146.281 ERROR lxc_cgfs - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/net_cls/lxc/pchecker_lxc-34
lxc-start 1485709146.282 ERROR lxc_cgfs - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/freezer/lxc/pchecker_lxc-34
lxc-start 1485709146.282 ERROR lxc_cgfs - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/devices/lxc/pchecker_lxc-34
lxc-start 1485709146.283 ERROR lxc_cgfs - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/memory/lxc/pchecker_lxc-34
lxc-start 1485709146.284 ERROR lxc_cgfs - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/blkio/lxc/pchecker_lxc-34
lxc-start 1485709146.284 ERROR lxc_cgfs - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/cpu,cpuacct/lxc/pchecker_lxc-34
lxc-start 1485709151.285 ERROR lxc_start_ui - The container failed to start.
lxc-start 1485709151.285 ERROR lxc_start_ui - To get more details, run the container in foreground mode.
lxc-start 1485709151.285 ERROR lxc_start_ui - Additional information can be obtained by setting the --logfile and --logpriority options.