Diese Frage kann nicht beantwortet werden, ohne zu wissen, welche Standardbenutzergruppe in den Dateien enthalten ist und als welche Benutzer und Gruppen Ihr Webserver ausgeführt wird. Es sollte als "unklar, was Sie fragen" geschlossen werden. Alternativ als Duplikat von: drupal.stackexchange.com/questions/373/…
Obwohl dies positiv bewertet und akzeptiert wurde, ist dies keine gute Antwort. Die Frage ist unvollständig und es gibt keine Möglichkeit zu wissen, ob diese Antwort für die OP-Konfiguration (oder für andere Personen) richtig ist. Das einzig Gute daran ist der Link.
Free Radical
Ganz zu schweigen davon, dass es sich bei dem Verzeichnis um Sites handelt, nicht um Sites. : D
Kopieren Sie dies in eine Datei und nennen Sie es "fix-permissions.sh".
#!/bin/bashif[ $(id -u)!=0];then
printf "This script must be run as root.\n"exit1fi
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)Usernameof the user that you want to give files/directories ownership.3) HTTPD group name (defaults to www-data forApache).Usage:(sudo) bash ${0##*/} --drupal_path=PATH --drupal_user=USER --httpd_group=GROUPExample:(sudo) bash ${0##*/} --drupal_path=/usr/local/apache2/htdocs --drupal_user=john --httpd_group=www-data
HELP
exit0}# Parse Command Line Argumentswhile[ $# -gt 0 ]; docase"$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";exit1esac
shift
doneif[-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
exit1fiif[-z "${drupal_user}"]||[ $(id -un ${drupal_user}2>/dev/null)!="${drupal_user}"];then
printf "Please provide a valid user.\n"
print_help
exit1fi
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.
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-data) auch alle Dateien in diesem Verzeichnis RW 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
Die ausgewählte Antwort ist nicht ganz richtig, besonders wenn es dort nur wenige Unbekannte gibt, aber Aleks hat sie ziemlich ausführlich erklärt, und es ist ein sehr ähnlicher Ansatz, den ich auf Drupal-Sites verfolge.
Außerdem dachte ich, ich würde mein Skript auch hier teilen, aber als Drupal-Modul, das ich vor einiger Zeit erstellt habe. Sie können es im ~/.drushUnterverzeichnis ablegen und einfach ausführen, drush file-permissionswährend Sie sich in einem beliebigen funktionierenden Unterverzeichnis der Drupal-Site befinden.
Es Schopf aus dem Sumpf Ihre Drupal - Website, überprüft file_private_path, file_public_pathund setzt sie korrekt Apache Benutzer- und Gruppen. Der Apache-Benutzer / die Apache-Gruppe wird automatisch ermittelt, sodass der Benutzer sie nicht manuell angeben oder in einer Skriptdatei fest codieren muss.
Das Modul ändert die Berechtigung für den Ordner tmp nicht. Ist das beabsichtigt? In meiner Konfiguration ist tmp auf site / default / tmp gesetzt und es wird keine Berechtigungsänderung auf dieses Verzeichnis angewendet.
Kiranking
0
Wie die anderen Jungs sagten ist die richtige Erlaubnis
Alle Drectories -> 755
Alle Dateien -> 755
Sites / Standard -> 755 (diese Überschreibungsregel dieses Verzeichnis)
Sites / Standard / Dateien -> 775 (diese Überschreibungsregel für dieses Verzeichnis und seinen Inhalt)
Sites / Standard / Einstellungen. 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
Antworten:
Eigentlich sollten die Berechtigungen sein
In den drei wichtigsten Antworten auf diese Frage finden Sie einige wichtige Details.
quelle
Aus Drupals offiziellem Handbuch :
Kopieren Sie dies in eine Datei und nennen Sie es "fix-permissions.sh".
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.
quelle
So habe ich beschlossen, Berechtigungen für meine Drupal-Instanz festzulegen:
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-data) auch alle Dateien in diesem Verzeichnis RW 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
Andere Berechtigungen sind Standard.
Vollständige Drupal-Installationsanleitung: http://itvictories.com/node/21
quelle
Die ausgewählte Antwort ist nicht ganz richtig, besonders wenn es dort nur wenige Unbekannte gibt, aber Aleks hat sie ziemlich ausführlich erklärt, und es ist ein sehr ähnlicher Ansatz, den ich auf Drupal-Sites verfolge.
Außerdem dachte ich, ich würde mein Skript auch hier teilen, aber als Drupal-Modul, das ich vor einiger Zeit erstellt habe. Sie können es im
~/.drush
Unterverzeichnis ablegen und einfach ausführen,drush file-permissions
während Sie sich in einem beliebigen funktionierenden Unterverzeichnis der Drupal-Site befinden.Es Schopf aus dem Sumpf Ihre Drupal - Website, überprüft
file_private_path
,file_public_path
und setzt sie korrekt Apache Benutzer- und Gruppen. Der Apache-Benutzer / die Apache-Gruppe wird automatisch ermittelt, sodass der Benutzer sie nicht manuell angeben oder in einer Skriptdatei fest codieren muss.Modulseite: https://www.drupal.org/project/file_permissions
quelle
Wie die anderen Jungs sagten ist die richtige Erlaubnis
Die entsprechenden Befehle zum Erreichen der genannten Regeln finden Sie im Folgenden im Stammverzeichnis Ihrer Drupal-Website
quelle