නිර්දේශිත නාමාවලි අවසර මොනවාද?


146

මම Drupal 7 වෙබ් අඩවියක් යෙදවීමට සුදානම් වන අතර නිර්දේශිත ආරක්ෂක සවි conscious ානික ගොනුව සහ නාමාවලි අවසරයන් කුමක් සඳහා සැකසිය යුතුද යන්න පිළිබඳ කිසිදු ලේඛනයක් මට සොයාගත නොහැක.

විශේෂයෙන් default/files/(උප නාමාවලි ද?) settings.php, .htaccessසහ මා දැන සිටිය යුතු වෙනත් ඕනෑම දෙයක්.


1
මෙහි පිළිතුරක් ද ඇත: drupal.stackexchange.com/questions/52695/…
නිදහස් රැඩිකල්

මෙය ලස්සනට පැහැදිලි කරන සහ එහි සෑම අංශයක්ම වියුක්ත ආකාරයකින් ආවරණය කරන බ්ලොග් අඩවියක් ඇත. technologymythbuster.blogspot.com/2018/06/…
කල්පේෂ් පොපට්

Answers:


68

ඔබේ වෙබ් සේවාදායකය සියලුම ගොනු කියවීමට නමුත් කිරීමට හැකි විය යුතුය නොවේ ඔවුන්ට ලියන්න. ඔබේ වෙබ් අඩවියට ගොනු උඩුගත කිරීම සම්බන්ධ නම්, එම එක් ෆෝල්ඩරයකට පමණක් ලිවීමට සේවාදායකයාට අවසර දෙන්න.

එය සකසා ගන්නේ කෙසේද යන්න පිළිබඳ වැඩි විස්තර මෙන්ම ඔබ එසේ නොකළහොත් සිදුවිය හැකි සමහර දේ ද්‍රුපාල් ලියකියවිලි වලින් ලබා ගත හැකිය .


13
වෙබ් අඩවි / පෙරනිමි / ලිපිගොනු නාමාවලිය සම්බන්ධයෙන් මෙය සත්‍ය නොවේ, එය වෙබ් සේවාදායකයා විසින් ලිවිය යුතු අතර ඔබට විශාල කරදර ඇති වේ.
rooby

3
දෙවන වාක්‍යයෙන් එය පැහැදිලි වේ.
kenorb

14
එය "ඔබේ වෙබ් අඩවියට ගොනු උඩුගත කිරීම සම්බන්ධ වේ" යැයි පැවසුවද ඔබට ගොනු නාමාවලියට ලිවීමේ ප්‍රවේශය අවශ්‍ය විය හැකි එකම හේතුව එය නොවේ. ඉතා පොදු උදාහරණයක් වන්නේ js / css එකතුව, සම්බන්ධයක් නැති පරිශීලකයින් ගොනු උඩුගත කිරීමයි. වෙනත් මොඩියුලයන් ද එම නාමාවලිය ලිවිය හැකි යැයි අපේක්ෂා කළ හැකිය.
රූබි

91

බොහෝ දේ වැනි එම ඩ්‍රැපල් පිටුව ඉතා දිගු හා ව්‍යාකූල ය. නමුත් නියපොතු හිසට පහර දුන් ජේසන් විසින් මෙම ලිපිය අඩංගු වේ:

පලකරන්නා ජේසන් සේල් on නොවැම්බර් 1, 2010 at 12:40 ප.ව.

මෙය සහ සියල්ල ලිවීමට ස්තූතියි, නමුත් මෙම පිටුව කියවන මට සහ 99% කට සැබවින්ම අවශ්‍ය වන්නේ ෆෝල්ඩර ලැයිස්තුවක් අසල ඇති සංඛ්‍යා ලැයිස්තුවකි.

  • /default 755 මත
  • /default/files 744 (හෝ 755) හි ඇති සියලුම උප ෆෝල්ඩර සහ ගොනු ඇතුළුව
  • /default/themes 755 හි ඇති සියලුම උප ෆෝල්ඩර සහ ගොනු ඇතුළුව
  • /default/modules 755 හි ඇති සියලුම උප ෆෝල්ඩර සහ ගොනු ඇතුළුව
  • /default/settings.phpසහ /default/default.settings.php444 දී

7
මාතෘකාව දිගු හා අවුල් සහගත ය. පිටුව යථාර්ථයේ යථාර්ථයට ගැලපේ.
greggles

17
... Drupal ලියකියවිලි! එය වහාම සරල හා තේරුම් ගත හැකි දෙයකට වෙනස් කළ යුත්තේ එබැවිනි! විශේෂයෙන්ම ආරක්ෂාව සම්බන්ධයෙන්. එය ආරක්ෂාව ගැන පමණක් නිසා! මන්ද එය අප සැමට අයත් බැවිනි. ආසාදිත සේවාදායකයක් යනු අද්දැකීම් අඩු Drupal භාවිතා කරන්නාගේ ගැටළුවක් පමණක් නොවේ. එය අප සියලු දෙනාගේ ගැටලුවකි. එබැවින් සංකීර්ණ හා අයහපත් ලෙස ලියන ලද ලියකියවිලි සංවර්ධකයින්ගේ ආනුභාවයෙන් සංකීර්ණ හා සංකීර්ණ බව පෙන්වීමට සහ එය කෙතරම් හොඳින් හැසිරවිය හැකිද යන්න පෙන්වීම එතරම් ප්‍රයෝජනවත් නොවේ. සරල ගොනු අවසර රුක් ග්‍රැෆික් අතහැර දැමීමේ කාරණය මට නොපෙනේ. වෙබ්චික් ඒ සඳහා එකඟ වේ.
nilsun

3
755 සක්‍රිය / පෙරනිමි / ගොනු ඇත්තේ ඇයි? යමෙකු ඉදිරිපස කෙළවර අනවසරයෙන් (හෝ දුර්වල වින්‍යාසය හරහා) අනිෂ්ට දෙයක් උඩුගත කිරීමට සමත් වුවහොත් මෙය සැමවිටම 744 විය යුතු නොවේද? 755 ක් තිබීමට හේතුවක් තිබේද? / Tmp ගැන කුමක් කිව හැකිද?
වෙබ්ඩ්‍රිප්ස්

1
Setting.php ගොනුව 440 විය යුතුය. "අනෙක් අයට" settings.php බැලීමට නොහැකි විය යුතුය. 740 ඔබට sudo විධානයන් නොමැතිව එය ලිවීමට අවශ්‍ය නම්.
බ්‍රයිඩන්

කුතුහලයෙන් යුතුව .htaccess ගොනුවල සහ tmp ෆෝල්ඩරයේ වෙබ් සේවාදායකය ලිවිය යුත්තේ ඇයි? settings.php ලෙස 444 ලෙස සලකුණු කිරීම ආරක්ෂිත නොවේද? මම අසන හේතුව නම් වෙබ් සේවාදායකය හරහා ගොනු ෆෝල්ඩරයට හැකර් විසින් junkfile.php උඩුගත කළ හැකිද යන්නයි .htaccess ගොනුව ප්‍රතිස්ථාපනය කළ හැකිය. මම හරිද?
කිරන්කින්

81

සේවාදායකයක නව Drupal වෙබ් අඩවියක් නිර්මාණය කිරීම පිළිබඳ මගේ පුරුද්ද වන්නේ වෙබ් සේවාදායකයේ (සාමාන්‍යයෙන් Apache) කණ්ඩායමේ කොටසක් වන පරිශීලකයෙකු සිටීම සහ එම පරිශීලකයාට සියළුම Drupal ගොනු අයිති කර ගැනීමයි. උබුන්ටු හි, මෙම සැකසුම ලබා ගැනීම සඳහා වන විධානයන් මේවා ය:

# Create a new example user, setting up /var/www/example as their home dir.
useradd -s /bin/bash -d /var/www/example -m example

# Now add that user to the Apache group. On Ubuntu/Debian this group is usually
# called www-data, on CentOS it's usually apache.
usermod -a -G www-data example

# Set up a password for this user.
passwd example

මා එය සැකසූ පසු, මම එම පරිශීලකයා ලෙස ලොග් වී Drupal / var / www / example / docroot හෝ ඊට සමාන ලෙස ස්ථාපනය කර ගොනු නාමාවලිය අතින් සාදාගෙන settings.php ගොනුව හරහා පිටපත් කරන්නෙමි. Drupal හි පිටපත් කිරීමට පෙර අපි අපගේ උදාහරණ පරිශීලකයා ලෙස ලොග් වී ඇති හෙයින්, අපගේ මූලික Drupal ලිපිගොනු සහ ස්ක්‍රිප්ට් (.htaccess ගොනු ඇතුළුව) මත අපගේ ගොනු හිමිකම සහ අවසරයන් ස්වයංක්‍රීයව නිසි ලෙස වින්‍යාසගත කළ යුතුය.

su - example
cd docroot
cp sites/default/default.settings.php sites/default/settings.php

# Temporarily give the web server write permissions to settings.php
chgrp www-data sites/default/settings.php
chmod g+w sites/default/settings.php

දැන් අපි ගොනු නාමාවලිය සකස් කරමු.

# Create the directory.
mkdir sites/default/files

# Now set the group to the Apache group. -R means recursive, and -v means 
# verbose mode.
chgrp -Rv www-data sites/default/files

ඊළඟට අපි අවසර ලබා දෙන්නෙමු එවිට වෙබ් සේවාදායකයාට මෙම නාමාවලියෙහි ඇති ඕනෑම ගොනුවකට ලිවිය හැකිය. අපි මෙය කරන්නේ අපගේ chmod විධානයෙහි 2775 භාවිතා කිරීමෙනි. 2 යනු මෙම නාමාවලිය තුළ සාදන ලද ඕනෑම නව ලිපිගොනු සඳහා කණ්ඩායම් හැඳුනුම්පත සුරැකෙනු ඇති බවයි. එයින් අදහස් කරන්නේ www - දත්ත සෑම විටම ඕනෑම ලිපිගොනු සමූහයක් වන අතර එමඟින් වෙබ් සේවාදායකයට සහ පරිශීලකයාට මෙම නාමාවලියෙහි තැන්පත් කර ඇති ඕනෑම නව ලිපිගොනු සඳහා ලිඛිත අවසරයන් ඇති බව සහතික කිරීමයි. පළමු 7 යන්නෙන් අදහස් කරන්නේ මෙහි ඇති ඕනෑම ලිපිගොනු හිමිකරුට (උදාහරණ) R (කියවීම) W (ලිවීම) සහ X (ක්‍රියාත්මක කිරීම) කළ හැකි බවයි. දෙවන 7 හි අර්ථය වන්නේ කණ්ඩායමට (www-data) මෙම නාමාවලියෙහි ඇති ඕනෑම ලිපිගොනු RW සහ X ද කළ හැකි බවයි. අවසාන වශයෙන්, 5 යන්නෙන් අදහස් කරන්නේ අනෙක් පරිශීලකයින්ට R සහ X ගොනු කළ හැකි නමුත් ලිවිය නොහැකි බවයි.

 chmod 2775 sites/default/files

මෙම නාමාවලියෙහි දැනට පවතින ලිපිගොනු තිබේ නම්, වෙබ් සේවාදායකයට ඒවා ලිවීමේ අවසර පත්‍ර ඇති බවට වග බලා ගන්න.

 chmod g+w -R sites/default/files

දැන් Drupal ස්ථාපනය කිරීමට සූදානම්. අවසන් වූ පසු, settings.php වෙත නැවත පැමිණීම ඉතා වැදගත් වන අතර සියලුම පරිශීලකයින්ට කියවීමේ අවසර පමණක් ඇති බව සහතික කරන්න.

 chmod 444 sites/default/settings.php

ඒක තමයි! මෙම සැකසුම මඟින් නාමාවලිය හිමි පරිශීලකයාට හෝ වෙබ් සේවාදායකයාට ගොනු නාමාවලියෙහි ලිපිගොනු ලිවීමට / වෙනස් කිරීමට / ඉවත් කිරීමට නොහැකි අවස්ථාවන් මඟහරවා ගත හැකිය.


.Htacess 444 jsut ලෙස settings.php ලෙස සැකසීම ආරක්ෂිත නොවේද? කෙසේ වෙතත්, එම ගොනුව Drupal core හි යාවත්කාලීන වන්නේ කලාතුරකිනි.
කිරාන්ක්

ඔබට .htaccess 444 ලෙස සැකසිය හැකිය, නමුත් එය Drupal හරය යාවත්කාලීන කිරීමේදී අමතර හිසරදයක් එක් කරන අතර ඔබේ වෙබ් අඩවිය තවදුරටත් ආරක්ෂිත නොවේ.
q0rban

31

Drupal ගොනු ෆෝල්ඩරය වෙබ් සේවාදායකය විසින් ලිවිය යුතුය. එය කළ හැකි ආරක්ෂිතම ක්‍රමය නම් කණ්ඩායම වෙනස් කර එය ලිවිය හැකි කණ්ඩායම් බවට පත් කිරීමයි.

chgrp www-data sites/default/files
chmod g+w sites/default/files

ලිපිගොනු උඩුගත කරන ෆෝල්ඩරය පසෙකට දමා, ආරක්ෂිත වන්නේ සියලුම ගොනු සඳහා chmod 644, නාමාවලි සඳහා 755 ය.

මෙය මේ ආකාරයට කළ හැකිය (Drupal-site ෆෝල්ඩරයේ ක්‍රියාත්මක වන විට, .එය වත්මන් මාර්ගය සඳහා වේ):

find . -type f | xargs chmod 644
find . -type d | xargs chmod 755

chmod g+wඉහත විධානය ක්‍රියාත්මක කිරීමෙන් පසු ඔබට නැවත සැකසීමට අවශ්‍ය බව මතක තබා ගන්න , මන්ද ඒවා සියලු ගොනු සහ ෆෝල්ඩර වල chmod යලි සකසනු ඇත.


2
මෙම පිළිතුර උපකල්පනය කරයි: ඔබ සිටින්නේ උබුන්ටු වලය. එම සේවාදායකයේ ක්‍රියාත්මක වන එකම වෙබ් අඩවිය ඔබේ වෙබ් අඩවියයි. එය ස්වයංක්‍රීයව සිදුවීම වෙනුවට ගැටළුව විසඳන්නේ එක් වරක් පමණි (උදා: උමාස්ක් වෙනස් කිරීමෙන්).
greggles

එකම සේවාදායකයේ බහුවිධ අඩවි ක්‍රියාත්මක වුවද උබුන්ටු අවශ්‍ය නොවන අතර එය තවමත් ප්‍රයෝජනවත් පියවරකි. උමාස්ක් වෙනස් කිරීම (දැනටමත් මෙම සැකසුම් තිබිය යුතුය) ලිනක්ස් ගැන මනා දැනුමක් නැති අයට මම නිර්දේශ කරන දෙයක් නොවේ. මම දන්නවා මෙය පරිපූර්ණ ආරක්ෂාවක් නොවන බව, නමුත් අපි මෙහි පරිපූර්ණ සතුරා වීමට ඉඩ නොදෙමු.
mikl

එය multisite මම දුවන chgrp -R www-data sites/*/filesහා chmod -R g+w sites/*/filesතත්ත්වය පිටුව දෝෂ ඉවත් කිරීම.
leymannx

20

"Chmod blah" හෝ "chown X" සඳහා වන ඕනෑම උපදෙසක් නොදැන අර්ථ විරහිත ය: පෙරනිමි පරිශීලකයා: කණ්ඩායම ලිපිගොනු වල සිටින්නේ කුමක් ද සහ ඔබේ වෙබ් සේවාදායකය ක්‍රියාත්මක වන්නේ කුමන පරිශීලකයා සහ කණ්ඩායම් ද යන්න.

අනෙක් අය සම්බන්ධ කර ඇති Drupal Docs මාතෘකාව පිළිබඳ හොඳ ය, නමුත් තවත් එක් සම්පතක් වන්නේ ආරක්ෂක සමාලෝචන මොඩියුලය වන අතර එය ඔබට සියල්ල නිසි ලෙස සකසා ඇති බව සහතික කිරීමට උපකාරී වේ.


9

වෙබ් සේවාදායකය ක්‍රියාත්මක වන ඒවාට වඩා වෙනස් අක්තපත්‍ර භාවිතා කරමින් FTP භාවිතා කරමින් සේවාදායකයේ ලිපිගොනු නිර්මාණය කර ඇති අවස්ථාව සැලකිල්ලට ගනිමින් මම පිළිතුරු දෙන්නෙමි (සාමාන්‍යයෙන් අපාචේ කිසිවෙකු / කිසිවෙකු ලෙස ක්‍රියාත්මක නොවේ). මෙයින් අදහස් කරන්නේ Drupal ස්ථාපකය ක්‍රියාත්මක කිරීමට පෙර අතින් සාදන ලද ලිපිගොනු හිමිකරු (Drupal සංරක්ෂිතයෙන් සේවාදායකයේ උඩුගත කරන ලද ලිපිගොනු ද ඇතුළුව) වෙබ් සේවාදායකය ක්‍රියාත්මක කිරීමට භාවිතා කළ පරිශීලකයා නොවන බවයි (පරිශීලක නාමය හෝ කණ්ඩායම් ගැලපීම නොවේ) . SSH භාවිතයෙන් එම ලිපිගොනු නිර්මාණය කරන ලද අවස්ථාව සඳහා ද මෙම තත්වය අදාළ වේ.

  • Settings.php ගොනුව Drupal ස්ථාපකයෙන් ලිවිය හැකි නමුත් ස්ථාපනය කළ පසු එය කියවීමට පමණක් සෑදීමට යෝජනා කරයි (ස්ථාපකය යෝජනා කරයි, සහ Drupal වරින් වර ගොනුව කියවීමට පමණක් දැයි පරීක්ෂා කරයි). මා විස්තර කරන අවස්ථාවෙහිදී, මෙම ගොනුවේ අවසරය අවම වශයෙන් 644 ක් විය යුතුය.
  • .Htaccess ලිපිගොනු (අවම වශයෙන් ස්ථාන දෙකකවත් තිබිය යුතුය) අවසරය 644 තිබිය යුතුය. ගොනුව නිර්මාණය කළ පරිශීලකයාට තවමත් ගොනුව නැවත ලිවීමට හැකි විය යුතුය. එසේ නම්, Drupal හි ඊළඟ අනුවාදය .htaccess ගොනුවක් සමඟ පැමිණේ. යාවත්කාලීන කර ඇත (ආරක්ෂක ගැටළුවක් වළක්වා ගැනීම සඳහා එම ගොනුවට පේළියක් එක් කළ විට එය දැනටමත් වරක් සිදුවිය). අවසර 444 ලෙස සැකසීමට ද හැකිය, නමුත් එවැනි අවස්ථාවකදී, ගොනුව යාවත්කාලීන කිරීමට අවශ්‍ය වූ විට අවසර 644 දක්වා වෙනස් කළ යුතුය.
  • මොඩියුල ( default/filesඩිරෙක්ටරිය) විසින් සාදන ලද ලිපිගොනු අඩංගු නාමාවලිය විය යුතුය (වෙබ් සේවාදායක ක්‍රියාවලීන් සඳහා පවරා ඇති පරිශීලකයා සඳහා, එම වෙබ් සේවාදායකයේ ක්‍රියාත්මක වන PHP ස්ක්‍රිප්ට් සඳහා පරිශීලකයා පවරනු ලැබේ):
    • කියවිය හැකි
    • ලිවිය හැකි
    • ගමන් කළ හැකි (මොඩියුල වෙත ළඟා විය හැකි විය යුතුය default/files/<directory-used-by-the-module>/<sub-directory-used-by-the-module>)

7

නිර්දේශිත ගොනු / නාමාවලි අවසර:

  • Drupal වෙබ් රූට් ලෝකයට කියවිය හැකි විය යුතුය (බලන්න: updateater.inc ): 0755
  • පොදු උඩුගත නාමාවලි සඳහා: 0755 හෝ 0775
  • පුද්ගලික උඩුගත නාමාවලි සඳහා: 0750 හෝ 0770
  • පොදු උඩුගත කරන ලද ගොනු සඳහා: 0644 හෝ 0664
  • පුද්ගලික උඩුගත කරන ලද ගොනු සඳහා: 0640 හෝ 0660
  • උඩුගත කළ නාමාවලි තුළ .htaccess සඳහා (බලන්න: file_create_htaccess () ): 0444 (සුපුරුදු) හෝ 0644
  • settings.php සඳහා සියල්ලන්ටම කියවීමට පමණි (සහ වෙනත් රහස්‍ය ලිපිගොනු): 0440
  • අනෙකුත් සියලුම වෙබ් නාමාවලි සඳහා: 0755
  • අනෙකුත් සියලුම වෙබ් ගොනු සඳහා: 0644

නිර්දේශිත ගොනු / නාමාවලි හිමිකම:

  • සියලුම උඩුගත කළ නාමාවලි / ගොනු වල හිමිකරු අපාචේ පරිශීලකයාට සැකසිය යුතුය,
  • සියලුම වෙබ් / ප්‍රභව නාමාවලි / ලිපිගොනු වල හිමිකරු අපාචී නොවන පරිශීලකයා ලෙස සැකසිය යුතුය,
  • (විකල්පයක් ලෙස) සියලු ප්‍රභවයන් සමූහය අපාචේ කණ්ඩායමට සැකසිය යුතුය,

නව අයිතම සඳහා පෙරනිමි dir / ගොනු අවසරයන් පාලනය කරන විචල්‍යයන් මෙන්න:

file_chmod_directory: 0775
file_chmod_file: 0664

අවසර නිවැරදි කිරීම සඳහා ස්ක්‍රිප්ට් කිහිපයක් මෙන්න: fix-permissions.sh


වැඩිදුර කියවන්න:


රාජ්‍ය / පෞද්ගලික නාමාවලි සඳහා දුරස්ථ ධාරකයේ අවසරයන් නිවැරදි කිරීමට මම භාවිතා කරන ස්ක්‍රිප්ට් මෙන්න:

#!/bin/sh -e
# Script to correct public/private directory and files permissions.
[ -z "$1" ] && { echo Usage: $0 @remote.dst; exit 1; }

DST="$1" && shift
GET_HTTP_GROUP='ps axo user,group,comm | egrep "(apache|httpd)" | grep -v ^root | uniq | cut -d\  -f 1'

drush $* $DST ssh 'PUB=$(drush dd %files) && PRIV=$(drush dd %private) && AGROUP=$('"$GET_HTTP_GROUP"') && chgrp -vR $AGROUP $PUB $PRIV && chmod -vR u+rwX,g+rwX,o+rX $PUB $PRIV'

සටහන: ඉහත කේතය Apache සමූහය ලබාගෙන එය GET_HTTP_GROUPවිචල්‍යයට සැකසීමට උත්සාහ කරයි .


ඉතා හොඳ වංචා පත්‍රිකාව, පිටු සලකුණු කර ඇත. හොඳ වැඩක් ..
kiranking

4

මෙම කවචයේ පිටපත මෙම පිටුවේ පහළින් දක්නට ලැබේ: https://www.drupal.org/node/244924

මගේ අවසරයන් නිවැරදිව සකසා ඇති බව සහතික කිරීම සඳහා මම ඉඳහිට එය ක්‍රියාත්මක කරමි.

#!/bin/bash
# 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
}
if [ $(id -u) != 0 ]; then
  printf "**************************************\n"
  printf "* Error: You must run this with sudo. *\n"
  printf "**************************************\n"
  print_help
  exit 1
fi
drupal_path=${1%/}
drupal_user=${2}
httpd_group="${3:-www-data}"
# 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 "***********************************************************\n"
      printf "* Error: Invalid argument, run --help for valid arguments. *\n"
      printf "***********************************************************\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 "*********************************************\n"
  printf "* Error: Please provide a valid Drupal path. *\n"
  printf "*********************************************\n"
  print_help
  exit 1
fi
if [ -z "${drupal_user}" ] || [[ $(id -un "${drupal_user}" 2> /dev/null) != "${drupal_user}" ]]; then
  printf "*************************************\n"
  printf "* Error: Please provide a valid user. *\n"
  printf "*************************************\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 setting proper permissions on files and directories"
Copy the code above to a file, name it "fix-permissions.sh" and run it as follows:
sudo bash fix-permissions.sh --drupal_path=your/drupal/path --drupal_user=your_user_name

Note: The server group name is assumed "www-data", if it differs use the --httpd_group=GROUP argument.

3

එසේම ඔබ fastcgi ධාවනය කරන්නේ නම්, php පරිශීලකයා ලෙස ක්‍රියාත්මක වන අතර ඔබ හිතාමතාම මෙය වළක්වා ගැනීමට උත්සාහ නොකරන්නේ නම් පරිශීලකයාට ප්‍රවේශ විය හැකි සියලුම ලිපිගොනු වෙත ප්‍රවේශය ඇත.


1

මෙය මගේ OSX අවසර ගැටළු සමඟ මට උදව් විය. මම එය https://www.drupal.org/node/244924#comment-3741738 හි ප්‍රෝටෝප්ලාස්ම් පරිශීලකයා විසින් සොයාගත්තා . මම සංක්‍රමණයකින් පසු ඔහුට ප්‍රශ්න ඇති කළා වගේ.

[root@localhost]cd /path_to_drupal_installation/sites
[root@localhost]find . -type d -name files -exec chmod ug=rwx,o= '{}' \;
[root@localhost]find . -name files -type d -exec find '{}' -type f \; | while read FILE; do chmod ug=rw,o= "$FILE"; done
[root@localhost]find . -name files -type d -exec find '{}' -type d \; | while read DIR; do chmod ug=rwx,o= "$DIR"; done

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.