it-swarm.com.de

Richtige Berechtigung für Site-, Standard- und Dateiordner?

Ich muss nur wissen, ob diese Erlaubnis korrekt ist:

site --> 775
site/default -->775
site/default/files --> 775
site/default/setting.php --> 555
10
chefnelone

Eigentlich sollten die Berechtigungen sein

sites -> 755
sites/default -> 755
sites/default/files -> 775
sites/default/settings.php -> 444

In den Top 3 Antworten auf diese Frage finden Sie einige wichtige Details.

13
keithm

Aus Drupals offizielles Handbuch :

Kopieren Sie dies in eine Datei und nennen Sie es "fix-permissions.sh".

#!/bin/bash
if [ $(id -u) != 0 ]; then
        printf "This script must be run as root.\n"
        exit 1
fi
drupal_path=${1%/}
drupal_user=${2}
httpd_group="${3:-www-data}"
# Help menu
print_help() {
cat <<-HELP
This script is used to fix permissions of a Drupal installation
you need to provide the following arguments:
1) Path to your Drupal installation.
2) Username of the user that you want to give files/directories ownership.
3) HTTPD group name (defaults to www-data for Apache).
Usage: (Sudo) bash ${0##*/} --drupal_path=PATH --drupal_user=USER --httpd_group=GROUP
Example: (Sudo) bash ${0##*/} --drupal_path=/usr/local/Apache2/htdocs --drupal_user=john --httpd_group=www-data
HELP
exit 0
}
# Parse Command Line Arguments
while [ $# -gt 0 ]; do
        case "$1" in
                --drupal_path=*)
drupal_path="${1#*=}"
;;
--drupal_user=*)
drupal_user="${1#*=}"
;;
--httpd_group=*)
httpd_group="${1#*=}"
;;
--help) print_help;;
*)
printf "Invalid argument, run --help for valid arguments.\n";
exit 1
esac
shift
done
if [ -z "${drupal_path}" ] || [ ! -d "${drupal_path}/sites" ] || [ ! -f "${drupal_path}/core/modules/system/system.module" ] && [ ! -f "${drupal_path}/modules/system/system.module" ]; then
printf "Please provide a valid Drupal path.\n"
print_help
exit 1
fi
if [ -z "${drupal_user}" ] || [ $(id -un ${drupal_user} 2> /dev/null) != "${drupal_user}" ]; then
printf "Please provide a valid user.\n"
print_help
exit 1
fi
cd $drupal_path
printf "Changing ownership of all contents of "${drupal_path}":\n user => "${drupal_user}" \t group => "${httpd_group}"\n"
chown -R ${drupal_user}:${httpd_group} .
printf "Changing permissions of all directories inside "${drupal_path}" to "rwxr-x---"...\n"
find . -type d -exec chmod u=rwx,g=rx,o= '{}' \;
printf "Changing permissions of all files inside "${drupal_path}" to "rw-r-----"...\n"
find . -type f -exec chmod u=rw,g=r,o= '{}' \;
printf "Changing permissions of "files" directories in "${drupal_path}/sites" to "rwxrwx---"...\n"
cd sites
find . -type d -name files -exec chmod ug=rwx,o= '{}' \;
printf "Changing permissions of all files inside all "files" directories in "${drupal_path}/sites" to "rw-rw----"...\n"
printf "Changing permissions of all directories inside all "files" directories in "${drupal_path}/sites" to "rwxrwx---"...\n"
for x in ./*/files; do
find ${x} -type d -exec chmod ug=rwx,o= '{}' \;
find ${x} -type f -exec chmod ug=rw,o= '{}' \;
done
echo "Done settings proper permissions on files and directories"

Führen Sie dieses Skript nun wie folgt aus: Sudo bash fix-permissions.sh --drupal_path = Ihr/drupal/Pfad --drupal_user = Ihr_Benutzername

Viola! Ihre Berechtigungen werden automatisch festgelegt.

5
InspiredCoder

So habe ich beschlossen, Berechtigungen für meine Drupal Instanz:

mkdir sites/default/files
chgrp -Rv Apache sites/default/files
chmod 2775 sites/default/files

Wir tun dies, indem wir 2775 in unserem Befehl chmod verwenden. Die 2 bedeutet, dass die Gruppen-ID für alle neuen Dateien, die in diesem Verzeichnis erstellt wurden, beibehalten wird. Dies bedeutet, dass Apache immer die Gruppe aller Dateien ist, wodurch sichergestellt wird, dass sowohl der Webserver als auch der Benutzer immer über Schreibberechtigungen für alle neuen Dateien verfügen, die in diesem Verzeichnis abgelegt werden. Die erste 7 bedeutet, dass der Eigentümer (Beispiel) hier alle Dateien R (Lesen) W (Schreiben) und X (Ausführen) kann. Die zweite 7 bedeutet, dass die Gruppe (www-Daten) auch alle Dateien in diesem Verzeichnis R W und X kann. Schließlich bedeutet die 5, dass andere Benutzer R- und X-Dateien können, aber nicht schreiben.

Ein weiterer Punkt ist das Festlegen der richtigen Berechtigungen für Ihre settings.php

chmod 444 sites/default/settings.php

Andere Berechtigungen sind Standard.

Vollständig Drupal Installationsanleitung: http://itvictories.com/node/21

3
Aleks

Die ausgewählte Antwort ist nicht ganz richtig, besonders wenn es dort nur wenige Unbekannte gibt. Aleks hat sie jedoch ziemlich ausführlich erklärt, und es ist ein sehr ähnlicher Ansatz, den ich Drupal Websites.

Außerdem dachte ich, ich würde mein Skript auch hier freigeben, aber als Drupal Modul, das ich vor einiger Zeit erstellt habe. Sie können es im Unterverzeichnis ~/.drush Und platzieren Führen Sie einfach drush file-permissions aus, während Sie sich in einem beliebigen Drupal Site-Unterverzeichnis) befinden.

Es bootstraps Ihre Drupal Site, sucht nach file_private_path, file_public_path Und setzt sie so, dass Apache-Benutzer und -Gruppe korrigiert werden. Apache-Benutzer/Gruppe werden also automatisch ermittelt Es ist nicht darauf angewiesen, dass der Benutzer sie manuell angibt oder sie in einer Skriptdatei fest codiert.

Modulseite: https://www.drupal.org/project/file_permissions

2
Turek

Wie die anderen Jungs sagten ist die richtige Erlaubnis

Alle Drectories -> 755
Alle Dateien -> 755
sites/default -> 755 (diese Überschreibungsregel dieses Verzeichnisses)
sites/default/files -> 775 (diese Überschreibungsregel für dieses Verzeichnis und seinen Inhalt)
sites/default/settings.php -> 444 (diese Überschreibungsregel für diese Datei)

Die entsprechenden Befehle zum Erreichen der genannten Regeln finden Sie im Folgenden im Stammverzeichnis Ihrer Drupal Website)

find . -type f | xargs chmod 644
find . -type d | xargs chmod 755
chmod 444 sites/default/settings.php
chmod 775 -R sites/default/files
0
Yusef