diff --git a/scripts/_common.sh b/scripts/_common.sh index 9747461..bfde399 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -72,6 +72,17 @@ myynh_add_fpm_config () { sudo systemctl reload php5-fpm } +myynh_set_permissions () { + [ $(sudo find "$final_path" -type f | wc -l) -gt 0 ] && sudo find "$final_path" -type f | xargs sudo chmod 0644 + [ $(sudo find "$final_path" -type d | wc -l) -gt 0 ] && sudo find "$final_path" -type d | xargs sudo chmod 0755 + [ $(sudo find "$data_path" -type f | wc -l) -gt 0 ] && sudo find "$data_path" -type f | xargs sudo chmod 0644 + [ $(sudo find "$data_path" -type d | wc -l) -gt 0 ] && sudo find "$data_path" -type d | xargs sudo chmod 0755 + sudo chown -R root:"$app" "$final_path" + sudo chown -R "$app": "$final_path/private" + sudo chown -R "$app": "$data_path" + sudo chown root: "$data_path" +} + # Remove the dedicated php-fpm config myynh_remove_fpm_config () { ynh_secure_remove "$phpfpm_conf" diff --git a/scripts/install b/scripts/install index 943ae70..adbeb9b 100644 --- a/scripts/install +++ b/scripts/install @@ -74,13 +74,7 @@ sudo ln -s "$data_path/uploads" "$final_path/uploads" sudo ln -s "$data_path/thumbs" "$final_path/thumbs" # set permissions -sudo find "$final_path" -type f | xargs sudo chmod 0644 -sudo find "$final_path" -type d | xargs sudo chmod 0755 -sudo find "$data_path" -type d | xargs sudo chmod 0755 -sudo chown -R root:"$app" "$final_path" -sudo chown -R "$app": "$final_path/private" -sudo chown -R "$app": "$data_path/uploads" -sudo chown -R "$app": "$data_path/thumbs" +myynh_set_permissions # configure nginx settings myynh_add_nginx_config diff --git a/scripts/restore b/scripts/restore index d74b573..2055b36 100644 --- a/scripts/restore +++ b/scripts/restore @@ -25,11 +25,10 @@ backup_core_only=$(ynh_app_setting_get "$app" backup_core_only) final_path="/var/www/$app" data_path="/home/yunohost.app/$app" nginx_conf="/etc/nginx/conf.d/$domain.d/$app.conf" -phpfpm_conf="/etc/php5/fpm/pool.d/$app}.conf" +phpfpm_conf="/etc/php5/fpm/pool.d/$app.conf" # check domain/path availability ynh_webpath_available "$domain" "$path_url" -ynh_webpath_register "$app" "$domain" "$path_url" myynh_check_path "$final_path" # add required packages @@ -42,26 +41,24 @@ ynh_system_user_create "$app" ynh_restore_file "$nginx_conf" ynh_restore_file "$phpfpm_conf" -# restore source & their permissions +# restore source ynh_restore_file "$final_path" -sudo chown -R "$app": "$final_path" -sudo chmod 755 "$final_path" -# restore data & their permissions only if there is no data +# restore data only if there is no data if [ ! -d "$data_path" ]; then if [ $backup_core_only -eq 0 ]; then ynh_restore_file "$data_path" - sudo chown -R "$app": "$data_path" else myynh_create_dir "$data_path/uploads" - sudo chown -R "$app": "$data_path/uploads" myynh_create_dir "$data_path/thumbs" - sudo chown -R "$app": "$data_path/thumbs" fi else echo "$data_path already exists and will not be overwritten" >&2 fi +# set permissions +myynh_set_permissions + # restart services sudo systemctl reload php5-fpm sudo systemctl reload nginx diff --git a/scripts/upgrade b/scripts/upgrade index 871179c..916176d 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -74,14 +74,7 @@ sudo cp -a "$TMPDIR/." "$final_path" sudo rm -R "$TMPDIR" # set permissions -sudo find "$final_path" -type f | xargs sudo chmod 0644 -sudo find "$final_path" -type d | xargs sudo chmod 0755 -sudo find "$data_path" -type f | xargs sudo chmod 0644 -sudo find "$data_path" -type d | xargs sudo chmod 0755 -sudo chown -R root:"$app" "$final_path" -sudo chown -R "$app": "$final_path/private" -sudo chown -R "$app": "$data_path/uploads" -sudo chown -R "$app": "$data_path/thumbs" +myynh_set_permissions # configure nginx settings myynh_add_nginx_config