#!/usr/bin/env bash # Fix ownership/permissions for the Bitrix webroot after deploy or update. set -euo pipefail SITE_DIR="${1:-/home/bitrix/www}" WEB_USER="bitrix" [[ -d "$SITE_DIR" ]] || { echo "no $SITE_DIR"; exit 1; } echo "==> chown -R $WEB_USER:$WEB_USER on writable trees" for d in upload local bitrix/cache bitrix/managed_cache bitrix/stack_cache \ bitrix/tmp bitrix/backup bitrix/updates .; do [[ -e "$SITE_DIR/$d" ]] && chown -R "$WEB_USER:$WEB_USER" "$SITE_DIR/$d" done echo "==> chmod core skeleton" find "$SITE_DIR" -type d \( -path "$SITE_DIR/bitrix/modules" -o -path "$SITE_DIR/bitrix/themes" \ -o -path "$SITE_DIR/upload" \) -prune -exec chmod {} 755 \; chmod 755 "$SITE_DIR" echo "==> ensure runtime dirs exist and are writable" mkdir -p "$SITE_DIR"/upload/{,1c_exchange,import_files} \ "$SITE_DIR"/bitrix/{cache,managed_cache,stack_cache,tmp} \ /tmp/php_sessions/www /tmp/php/upload chown -R "$WEB_USER:$WEB_USER" "$SITE_DIR"/upload \ "$SITE_DIR"/bitrix/{cache,managed_cache,stack_cache,tmp} \ /tmp/php_sessions/www /tmp/php/upload chmod -R u=rwX,g=rX,o= "$SITE_DIR"/bitrix/tmp 2>/dev/null || true echo "==> done. sessions dir is 700/$WEB_USER."