Skip to content

Instantly share code, notes, and snippets.

@Koala
Last active July 29, 2023 09:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Koala/8876daf6bcd820b19fefdcfdb44cab07 to your computer and use it in GitHub Desktop.
Save Koala/8876daf6bcd820b19fefdcfdb44cab07 to your computer and use it in GitHub Desktop.
Rechteanpassung fuer Redaxo ab und getestet mit Version 5.15.x
#!/bin/sh
#
# Zugriffrechteanpassung fuer Redaxo ab und getestet mit Version 5.15.x
#
# Ausführen im Hauptverzeichnis (also dort, wo sich bereits die
# Verzeichnisse assets, media und redaxo befinden):
#
# ./change_rights_rex5.x.sh
#
# Redaxo liest beim Starten des Setup die Verzeichnis- und Dateirechte
# aus der "redaxo/src/core/default.config.yml" aus.
# Siehe dort bei "fileperm" und "dirperm" nach, welche Zugriffsrechte als
# Standard hinterlegt sind.
# Das Anpassen der Zugriffsrechte in der default.config.yml übernimmt
# dieses Script für dich und überschreibt evtl. vorgenommene Änderungen!
#
# -----------------
# ---> Achtung <---
# -----------------
#
# Alle Dateien im Rootverzeichnis deines Redaxo (.htaccess, index.php etc.)
# werden NICHT angetastet! Ausschließlich die Verzeichnisse selbst und
# alles was sich unterhalb der Verzeichnisse befindet, wird angepasst.
#
# Wenn das Setup von Redaxo durchgelaufen ist, befindet sich die
# verwendete Konfiguration in "redaxo/data/core/config.yml"
# Diese wird mit diesem Script hier NICHT verändert!
# Nachträgliche Änderungen der Zugriffsrechte müssen dort evtl.
# selbst durchgeführt werden!!!
#
# 29.07.2023 - Koala
VERZEICHNIS_RECHTE=770
DATEI_RECHTE=660
echo 'assets'
find assets -type f -exec chmod $DATEI_RECHTE {} \;
find assets -type d -exec chmod $VERZEICHNIS_RECHTE {} \;
echo 'media'
find media -type f -exec chmod $DATEI_RECHTE {} \;
find media -type d -exec chmod $VERZEICHNIS_RECHTE {} \;
echo 'redaxo/cache'
find redaxo/cache -type f -exec chmod $DATEI_RECHTE {} \;
find redaxo/cache -type d -exec chmod $VERZEICHNIS_RECHTE {} \;
echo 'redaxo/data'
find redaxo/data -type f -exec chmod $DATEI_RECHTE {} \;
find redaxo/data -type d -exec chmod $VERZEICHNIS_RECHTE {} \;
echo 'redaxo/src'
find redaxo/src -type f -exec chmod $DATEI_RECHTE {} \;
find redaxo/src -type d -exec chmod $VERZEICHNIS_RECHTE {} \;
# Wird von diversen Demo-Addons angelegt/benötigt
if [ -d resources ]; then
echo 'resources'
find resources -type f -exec chmod $DATEI_RECHTE {} \;
find resources -type d -exec chmod $VERZEICHNIS_RECHTE {} \;
fi
# Wird vom Theme-Addon angelegt/benötigt
if [ -d themes ]; then
echo 'themes'
find themes -type f -exec chmod $DATEI_RECHTE {} \;
find themes -type d -exec chmod $VERZEICHNIS_RECHTE {} \;
fi
# Passe die Config an: Verzeichnis- und Dateirechte + Debug: true (volle Fehlerausgabe)
PFAD_CONFIG=redaxo/src/core/default.config.yml
if [ -f $PFAD_CONFIG ]; then
echo $PFAD_CONFIG
sed -i 's/0664/0'"$DATEI_RECHTE"'/g' $PFAD_CONFIG
sed -i 's/0775/0'"$VERZEICHNIS_RECHTE"'/g' $PFAD_CONFIG
sed -i 's/enabled: false/enabled: true/g' $PFAD_CONFIG
sed -i 's/throw_always_exception: false/throw_always_exception: true/g' $PFAD_CONFIG
fi
# ändere die Verzeichnisrechte in der Tar- und Zip-Klasse
PFAD_TAR=redaxo/src/addons/backup/vendor/splitbrain/php-archive/src/Tar.php
PFAD_ZIP=redaxo/src/addons/backup/vendor/splitbrain/php-archive/src/Zip.php
if [ -f $PFAD_TAR ]; then
echo $PFAD_TAR
sed -i 's/0777/0'"$VERZEICHNIS_RECHTE"'/g' $PFAD_TAR
fi
if [ -f $PFAD_ZIP ]; then
echo $PFAD_ZIP
sed -i 's/0777/0'"$VERZEICHNIS_RECHTE"'/g' $PFAD_ZIP
fi
echo "Rechte erfolgreich geaendert."
@Koala
Copy link
Author

Koala commented Jul 28, 2023

Die Verzeichnis- und Dateirechte müssen NICHT in der redaxo/src/core/default.config.yml vor dem Setup gesetzt werden. Das macht das Script hier.

Leider setzen einige Vendor-Einbindungen die Rechte an einigen Stellen auf 777 oder 666. Das läßt sich aber nicht im Vorfeld beeinflussen. Aber das Script kann jederzeit wieder gestartet werden :)

Achtung

Das Debug wird durch das Script angeschaltet. Wird das nicht benötigt, dann die Zeilen auskommentieren oder löschen:

    sed -i 's/enabled: false/enabled: true/g' $PFAD_CONFIG
    sed -i 's/throw_always_exception: false/throw_always_exception: true/g' $PFAD_CONFIG

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment