From 546b5b3e7ae52af223d64f585b0d70a3c7c1a0ac Mon Sep 17 00:00:00 2001
From: CodeShakingSheep <19874562+CodeShakingSheep@users.noreply.github.com>
Date: Tue, 8 Aug 2023 16:51:51 +0200
Subject: [PATCH] Add permission check for hooks directory
---
.../50.hooks/packaging_apps_hooks.md | 50 +++++++++++--------
1 file changed, 30 insertions(+), 20 deletions(-)
diff --git a/pages/06.contribute/10.packaging_apps/60.advanced/50.hooks/packaging_apps_hooks.md b/pages/06.contribute/10.packaging_apps/60.advanced/50.hooks/packaging_apps_hooks.md
index acd155d6..00355c8e 100644
--- a/pages/06.contribute/10.packaging_apps/60.advanced/50.hooks/packaging_apps_hooks.md
+++ b/pages/06.contribute/10.packaging_apps/60.advanced/50.hooks/packaging_apps_hooks.md
@@ -12,13 +12,23 @@ YunoHost includes a hook mechanism triggered on a lot of operation changing the
The most obvious case is adding a user. If you had a `post_user_create` hook, this hook will be triggered as soon as a user is added.
## How to add a custom hook on a specific instance
-!!! Bellow we imagine we want to run a command after each user creation to add the user to samba user.
+!!! Below we imagine we want to run a command after each user creation to add the user to samba user.
You should create a directory with the name of the hooks into `/etc/yunohost/hooks.d/`:
```
mkdir -p /etc/yunohost/hooks.d/post_user_create
```
+After creating the directory check the permissions:
+```
+stat -c "%a" /etc/yunohost/hooks.d/post_user_create
+```
+
+The directory needs to have `777` permissions. Otherwise the hooks inside the directory won't be executed. If the command above doesn't print `777` modify permissions:
+```
+chmod 777 /etc/yunohost/hooks.d/post_user_create
+```
+
Next create a bash script inside this directory prefixed by 2 numbers and a dash:
```bash
nano /etc/yunohost/hooks.d/post_user_create/05-add-user-to-samba
@@ -40,7 +50,7 @@ In the hooks dir, create a bash script called with the type of hook you want to
#### post_user_create
[details summary="Triggered after user creation" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost user create` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost user create` or equivalent action in webadmin.
##### Environment variables
@@ -80,7 +90,7 @@ echo $message | mail -s "Welcome on $domain !" $YNH_USER_MAIL
#### post_user_delete
[details summary="Triggered at the end of user deletion" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost user delete` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost user delete` or equivalent action in webadmin.
##### No environment variables
@@ -104,7 +114,7 @@ This hooks is run at the end of the command `yunohost user delete` or equivalent
### post_user_update
[details summary="Triggered at the end of the user update" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost user update` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost user update` or equivalent action in webadmin.
##### Environment variables
@@ -143,7 +153,7 @@ echo $message | mail -s "Your password has been changed on $domain !" $YNH_USER_
### post_app_addaccess
[details summary="Triggered after adding a permission to users or groups " class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost user permission add` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost user permission add` or equivalent action in webadmin.
##### No environment variables
@@ -164,7 +174,7 @@ This hooks is run at the end of the command `yunohost user permission add` or eq
### post_app_removeaccess
[details summary="Triggered after removing a pemission to users or groups" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost user permission remove` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost user permission remove` or equivalent action in webadmin.
##### No environment variables
@@ -190,7 +200,7 @@ This hooks is run at the end of the command `yunohost user permission remove` or
### post_domain_add
[details summary="Triggered at the end of the domain add operation" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost domain add` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost domain add` or equivalent action in webadmin.
##### No environment variable
@@ -214,7 +224,7 @@ This hooks is run at the end of the command `yunohost domain add` or equivalent
### post_domain_remove
[details summary="Triggered after removing the domain" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost domain remove` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost domain remove` or equivalent action in webadmin.
##### No environment variable
@@ -233,7 +243,7 @@ This hooks is run at the end of the command `yunohost domain remove` or equivale
### post_cert_update
[details summary="Triggered after Let's encrypt certificate update" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost domain cert update` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost domain cert update` or equivalent action in webadmin.
##### No environment variable
@@ -258,9 +268,9 @@ systemctl restart gemserv
### custom_dns_rules
[details summary="Customized your DNS rules for your domains" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost domain dns suggest` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost domain dns suggest` or equivalent action in webadmin.
-Thanks to this hooks you can customize
+Thanks to This hook you can customize
##### No environment variable
@@ -309,7 +319,7 @@ fi
### post_app_change_url
[details summary="Triggered after an app has changed of URL" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost app change-url` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost app change-url` or equivalent action in webadmin.
##### Environment variables
@@ -328,7 +338,7 @@ This hooks is run at the end of the command `yunohost app change-url` or equival
### post_app_upgrade
[details summary="Triggered on app upgrade" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost app upgrade` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost app upgrade` or equivalent action in webadmin.
##### Environment variables
@@ -366,7 +376,7 @@ fi
### post_app_install
[details summary="Triggered at the end of an app installation" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost app install` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost app install` or equivalent action in webadmin.
##### Environment variables
@@ -388,7 +398,7 @@ This hooks is run at the end of the command `yunohost app install` or equivalent
### post_app_remove
[details summary="Triggered after removing an app" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost app remove` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost app remove` or equivalent action in webadmin.
##### Environment variables
@@ -410,7 +420,7 @@ This hooks is run at the end of the command `yunohost app remove` or equivalent
### backup
[details summary="Add some files to backup" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost backup create` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost backup create` or equivalent action in webadmin.
##### Environment variables
@@ -455,7 +465,7 @@ ynh_backup "/etc/yunohost/hooks.d/restore/99-conf_custom"
### restore
[details summary="Restore some files" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost backup restore` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost backup restore` or equivalent action in webadmin.
##### Environment variables
@@ -500,7 +510,7 @@ ynh_restore_file "/etc/yunohost/hooks.d/restore/99-conf_custom"
### backup_method
[details summary="Define a new way to backup and restore files" class="helper-card-subtitle text-muted"]
-This hooks is run during the command `yunohost backup create` or equivalent action in webadmin.
+This hook is run during the command `yunohost backup create` or equivalent action in webadmin.
This hook is called several times with different action keywords.
@@ -564,7 +574,7 @@ exit 0
### post_iptable_rules
[details summary="Triggered after reloaded the firewall rules" class="helper-card-subtitle text-muted"]
-This hooks is run at the end of the command `yunohost firewall reload` or equivalent action in webadmin.
+This hook is run at the end of the command `yunohost firewall reload` or equivalent action in webadmin.
##### No environment variables
@@ -589,7 +599,7 @@ iptables -A OUTPUT -p tcp --dport 25 -m tcp -j REJECT --reject-with icmp-port-un
### conf_regen
[details summary="Change configuration suggested as default config in regen-conf mechanism" class="helper-card-subtitle text-muted"]
-This hooks is run during the command `yunohost tools regen-conf` or equivalent action in webadmin.
+This hook is run during the command `yunohost tools regen-conf` or equivalent action in webadmin.
This hook is called several times with different actions keywords (pre and post operations).