Nie można odpowiedzieć na to pytanie, nie wiedząc, jaki domyślny użytkownik: grupa znajduje się w plikach i jaki użytkownik i grupy działa jako serwer. Powinien być zamknięty jako „niejasne, o co pytasz”. Alternatywnie jako duplikat: drupal.stackexchange.com/questions/373/…
Mimo że został przyjęty i zaakceptowany, nie jest to dobra odpowiedź. Pytanie jest niekompletne i nie ma możliwości ustalenia, czy ta odpowiedź jest odpowiednia dla konfiguracji PO (lub dla kogokolwiek innego). Jedyną dobrą rzeczą jest link.
Bezpłatny Radical
Nie wspominając o tym, że katalog to strony, a nie strona. : D
Skopiuj to do pliku i nadaj mu nazwę „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"
Teraz uruchom ten skrypt jako: sudo bash fix-permissions.sh --drupal_path = your / drupal / path --drupal_user = twoja_nazwa_użytkownika
Altówka! Twoje uprawnienia są automatycznie ustalane.
Robimy to za pomocą 2775 w naszym poleceniu chmod. 2 oznacza, że identyfikator grupy zostanie zachowany dla wszystkich nowych plików utworzonych w tym katalogu. Oznacza to, że apache zawsze będzie grupą na dowolnych plikach, zapewniając w ten sposób, że serwer WWW i użytkownik zawsze będą mieć uprawnienia do zapisu do wszystkich nowych plików umieszczonych w tym katalogu. Pierwsze 7 oznacza, że właściciel (przykład) może R (odczyt) W (zapis) i X (wykonać) dowolne pliki tutaj. Druga 7 oznacza, że grupa (www-data) może również RW i X dowolne pliki w tym katalogu. Wreszcie 5 oznacza, że inni użytkownicy mogą R i X plików, ale nie mogą pisać.
Kolejnym punktem jest ustawienie poprawnych uprawnień dla pliku settings.php
Wybrana odpowiedź nie jest całkiem poprawna, szczególnie gdy jest tam niewiele niewiadomych, jednak Aleks wyjaśnił ją dość obszernie i jest to bardzo podobne podejście, jakie mam na stronach Drupala.
Pomyślałem też, że podzielę się tutaj moim skryptem, ale jako Moduł Drupala, który stworzyłem jakiś czas temu. Możesz umieścić go w ~/.drushpodkatalogu i po prostu wykonać drush file-permissions, będąc w dowolnym działającym podkatalogu strony Drupal.
To siłach swój Drupal witryny, czeków file_private_path, file_public_pathoraz zestawy je do właściwego użytkownika Apache i grupy. Użytkownik / grupa Apache jest określana automatycznie, więc nie polega ona na tym, że użytkownik określi go ręcznie lub nie zapisa na stałe w pliku skryptu.
moduł nie zmienia uprawnień do folderu tmp. Czy to celowe? W mojej konfiguracji tmp jest ustawione na site / default / tmp i do tego katalogu nie są stosowane żadne zmiany uprawnień.
kiranking
0
Jak wspomnieli inni, prawidłowe pozwolenie to
Wszystkie Drectories -> 755
Wszystkie pliki -> 755
witryn / domyślne -> 755 (to przesłonięcie reguły dla tego katalogu)
witryny / domyślne / pliki -> 775 (to przesłonięcie reguły dla tego katalogu i jego zawartości)
witryny / domyślne / ustawienia. php -> 444 (ta zasada zastępowania tego pliku)
Odpowiednie polecenia do osiągnięcia wspomnianych Reguł podano poniżej w katalogu głównym witryny Drupal
find .-type f | xargs chmod 644
find .-type d | xargs chmod 755
chmod 444 sites/default/settings.php
chmod 775-R sites/default/files
Odpowiedzi:
Właściwie uprawnienia powinny być
Zobacz 3 najlepsze odpowiedzi na to pytanie, aby uzyskać wspaniałe szczegóły.
źródło
Z oficjalnego podręcznika Drupala :
Skopiuj to do pliku i nadaj mu nazwę „fix-permissions.sh”
Teraz uruchom ten skrypt jako: sudo bash fix-permissions.sh --drupal_path = your / drupal / path --drupal_user = twoja_nazwa_użytkownika
Altówka! Twoje uprawnienia są automatycznie ustalane.
źródło
W ten sposób postanowiłem ustawić uprawnienia dla mojej instancji Drupal:
Robimy to za pomocą 2775 w naszym poleceniu chmod. 2 oznacza, że identyfikator grupy zostanie zachowany dla wszystkich nowych plików utworzonych w tym katalogu. Oznacza to, że apache zawsze będzie grupą na dowolnych plikach, zapewniając w ten sposób, że serwer WWW i użytkownik zawsze będą mieć uprawnienia do zapisu do wszystkich nowych plików umieszczonych w tym katalogu. Pierwsze 7 oznacza, że właściciel (przykład) może R (odczyt) W (zapis) i X (wykonać) dowolne pliki tutaj. Druga 7 oznacza, że grupa (www-data) może również RW i X dowolne pliki w tym katalogu. Wreszcie 5 oznacza, że inni użytkownicy mogą R i X plików, ale nie mogą pisać.
Kolejnym punktem jest ustawienie poprawnych uprawnień dla pliku settings.php
Inne uprawnienia mają być domyślne.
Kompletny przewodnik instalacji Drupal: http://itvictories.com/node/21
źródło
Wybrana odpowiedź nie jest całkiem poprawna, szczególnie gdy jest tam niewiele niewiadomych, jednak Aleks wyjaśnił ją dość obszernie i jest to bardzo podobne podejście, jakie mam na stronach Drupala.
Pomyślałem też, że podzielę się tutaj moim skryptem, ale jako Moduł Drupala, który stworzyłem jakiś czas temu. Możesz umieścić go w
~/.drush
podkatalogu i po prostu wykonaćdrush file-permissions
, będąc w dowolnym działającym podkatalogu strony Drupal.To siłach swój Drupal witryny, czeków
file_private_path
,file_public_path
oraz zestawy je do właściwego użytkownika Apache i grupy. Użytkownik / grupa Apache jest określana automatycznie, więc nie polega ona na tym, że użytkownik określi go ręcznie lub nie zapisa na stałe w pliku skryptu.Strona modułu: https://www.drupal.org/project/file_permissions
źródło
Jak wspomnieli inni, prawidłowe pozwolenie to
Odpowiednie polecenia do osiągnięcia wspomnianych Reguł podano poniżej w katalogu głównym witryny Drupal
źródło