สิทธิ์ไดเรกทอรีที่แนะนำคืออะไร


145

ฉันกำลังเตรียมที่จะปรับใช้ไซต์ Drupal 7 และฉันไม่สามารถหาเอกสารใด ๆ เกี่ยวกับสิ่งที่ควรคำนึงถึงความปลอดภัยของแฟ้มและการอนุญาตไดเรกทอรีที่แนะนำ

โดยเฉพาะdefault/files/(ยังไดเรกทอรีย่อย?) settings.php, .htaccessและสิ่งอื่นที่ฉันควรจะตระหนักถึง


1
นอกจากนี้ยังมีคำตอบที่นี่: drupal.stackexchange.com/questions/52695/…
ฟรี Radical

มีบล็อกที่อธิบายสิ่งนี้ได้อย่างสวยงามและครอบคลุมทุกแง่มุมของมันด้วยวิธีที่เป็นนามธรรม technologymythbuster.blogspot.com/2018/06/…
Kalpesh Popat

คำตอบ:


69

เว็บเซิร์ฟเวอร์ของคุณควรจะสามารถอ่านไฟล์ทั้งหมด แต่ไม่สามารถเขียนลงไปได้ หากไซต์ของคุณเกี่ยวข้องกับการอัปโหลดไฟล์ให้อนุญาตเซิร์ฟเวอร์เพื่อเขียนไปยังโฟลเดอร์เดียวเท่านั้น

ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตั้งค่าที่ขึ้นเช่นเดียวกับบางสิ่งบางอย่างที่สามารถเกิดขึ้นได้หากคุณไม่ได้มีอยู่ในเอกสาร Drupal


13
สิ่งนี้ไม่เป็นความจริงของไดเรกทอรีไซต์ / default / files ซึ่งต้องเขียนโดยเว็บเซิร์ฟเวอร์ไม่เช่นนั้นคุณจะมีปัญหามากมาย
rooby

3
@rooby ประโยคที่สองชี้แจงว่า
kenorb

14
แม้ว่าจะมีข้อความว่า "หากเว็บไซต์ของคุณเกี่ยวข้องกับการอัปโหลดไฟล์" แต่นั่นไม่ใช่เหตุผลเดียวที่คุณอาจต้องมีสิทธิ์ในการเขียนเพื่อเข้าถึงไฟล์ไดเรกทอรี ตัวอย่างที่พบบ่อยมากคือการรวม js / css ซึ่งเป็นผู้ใช้ที่ไม่เกี่ยวข้องกับการอัพโหลดไฟล์ โมดูลอื่นอาจคาดว่าไดเรกทอรีนั้นสามารถเขียนได้
rooby

91

นั่นDrupalหน้าเช่นจำนวนมากเป็นเวลานานมากและทำให้เกิดความสับสน แต่มันมีโพสต์นี้โดยเจสันผู้ตีตะปูหัว:

โพสต์โดย Jason Sale เมื่อวันที่ 1 พฤศจิกายน 2010 เวลา 12:40 น

ขอบคุณที่เขียนสิ่งนี้และทุกสิ่ง แต่สิ่งที่ฉันและ 99% ของคนที่อ่านหน้านี้ต้องการจริงๆคือรายการของตัวเลขถัดจากรายการโฟลเดอร์

  • /default ใน 755
  • /default/files รวมถึงโฟลเดอร์ย่อยและไฟล์ทั้งหมดใน 744 (หรือ 755)
  • /default/themes รวมถึงโฟลเดอร์ย่อยและไฟล์ทั้งหมดใน 755
  • /default/modules รวมถึงโฟลเดอร์ย่อยและไฟล์ทั้งหมดใน 755
  • /default/settings.phpและ/default/default.settings.phpใน 444

7
หัวข้อยาวและสับสน หน้าเหมาะกับความเป็นจริงของสถานการณ์
greggles

17
... ของเอกสาร Drupal! และนั่นเป็นเหตุผลที่มันจำเป็นต้องเปลี่ยนเป็นสิ่งที่ง่ายและเข้าใจได้ทันที! โดยเฉพาะเมื่อพูดถึงเรื่องความปลอดภัย เพียงเพราะความปลอดภัย! เพราะมันเป็นของเราทุกคน เซิร์ฟเวอร์ที่ติดไวรัสไม่เพียง แต่เป็นปัญหาของผู้ใช้ Drupal ที่ไม่มีประสบการณ์ มันเป็นปัญหาของพวกเราทุกคนแล้ว ดังนั้นจึงไม่มีประโยชน์มากนักในการติดตามเอกสารที่ซับซ้อนและเขียนไม่ดีซึ่งได้รับแรงบันดาลใจจากนักพัฒนาที่หลงตัวเองเพื่อแสดงความซับซ้อนและความซับซ้อนและวิธีที่พวกเขาสามารถจัดการกับมันได้ดีเพียงใด ฉันไม่เห็นจุดที่จะออกกราฟิกต้นไม้สิทธิ์ไฟล์ที่เรียบง่าย webchick เห็นด้วยกับสิ่งนั้น
nilsun

3
เหตุใดจึงมี 755 เปิด / เริ่มต้น / ไฟล์? นี่ควรจะเป็น 744 เสมอในกรณีที่มีคนจัดการอัพโหลดสิ่งที่เป็นอันตรายโดยแฮ็คส่วนหน้า (หรือผ่านการกำหนดค่าที่ไม่ดี) มีเหตุผลใดบ้างที่มี 755 เกี่ยวกับ / tmp
webdrips

1
ไฟล์ settings.php ควรเป็น 440 "อื่น ๆ " ไม่ควรเห็น settings.php 740 ถ้าคุณต้องการที่จะเขียนโดยไม่ต้องใช้คำสั่ง sudo
Bryden

แค่อยากรู้ว่าทำไมไฟล์. htaccess ในไฟล์และโฟลเดอร์ tmp จำเป็นต้องเขียนโดยเว็บเซิร์ฟเวอร์? ไม่ปลอดภัยที่จะทำเครื่องหมาย 444 เช่นเดียวกับ settings.php เหตุผลที่ฉันถามคือถ้าแฮกเกอร์สามารถอัปโหลดโดยแฮกเกอร์ไปยังโฟลเดอร์ไฟล์ผ่านเว็บเซิร์ฟเวอร์จากนั้นไฟล์. htaccess จะถูกแทนที่ ฉันถูกไหม?
kiranking

82

แนวปฏิบัติของฉันเกี่ยวกับการสร้างไซต์ Drupal ใหม่บนเซิร์ฟเวอร์คือการมีผู้ใช้ที่เป็นส่วนหนึ่งของเว็บเซิร์ฟเวอร์ (โดยทั่วไปคือ Apache) และมีผู้ใช้นั้นเป็นเจ้าของไฟล์ Drupal ทั้งหมด บน Ubuntu คำสั่งเหล่านี้คือการตั้งค่า:

# 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

ต่อไปเราจะตั้งค่าการอนุญาตเพื่อให้เว็บเซิร์ฟเวอร์สามารถเขียนไฟล์ใด ๆ ที่อยู่ในไดเรกทอรีนี้ได้เสมอ เราทำสิ่งนี้โดยใช้ 2775 ในคำสั่ง chmod ของเรา 2 หมายถึงรหัสกลุ่มจะถูกสงวนไว้สำหรับไฟล์ใหม่ใด ๆ ที่สร้างขึ้นในไดเรกทอรีนี้ สิ่งที่หมายถึงคือ www - data จะเป็นกลุ่มในไฟล์ใด ๆ ดังนั้นจึงมั่นใจได้ว่าเว็บเซิร์ฟเวอร์และผู้ใช้จะมีสิทธิ์ในการเขียนไปยังไฟล์ใหม่ใด ๆ ที่อยู่ในไดเรกทอรีนี้เสมอ 7 แรกหมายความว่าเจ้าของ (ตัวอย่าง) สามารถ R (อ่าน) W (เขียน) และ X (ดำเนินการ) ไฟล์ใด ๆ ที่นี่ 7 ที่สองหมายความว่ากลุ่ม (www-data) สามารถ RW และ X ไฟล์ใด ๆ ในไดเรกทอรีนี้ ในที่สุด 5 หมายความว่าผู้ใช้รายอื่นสามารถไฟล์ R และ X แต่ไม่ได้เขียน

 chmod 2775 sites/default/files

หากมีไฟล์ใด ๆ ที่มีอยู่ในไดเรกทอรีนี้ตรวจสอบให้แน่ใจว่าเว็บเซิร์ฟเวอร์มีการเขียน perms บนพวกเขา

 chmod g+w -R sites/default/files

ตอนนี้ Drupal พร้อมติดตั้งแล้ว เมื่อเสร็จแล้วก็เป็นอย่างที่สำคัญที่จะกลับมา settings.php และให้แน่ใจว่าผู้ใช้ทุกคนมีเพียงสิทธิ์ในการอ่าน

 chmod 444 sites/default/settings.php

แค่นั้นแหละ! การตั้งค่านี้ช่วยให้คุณหลีกเลี่ยงสถานการณ์ใด ๆ ที่ผู้ใช้ที่เป็นเจ้าของไดเรกทอรีหรือเว็บเซิร์ฟเวอร์ไม่สามารถเขียน / เปลี่ยน / ลบไฟล์ในไดเรกทอรีไฟล์


การตั้งค่า. htacess เป็น 444 jsut เป็นการตั้งค่าที่ปลอดภัยหรือไม่ อย่างไรก็ตามไฟล์นั้นไม่ค่อยมีการอัพเดทใน drupal core
kiranking

คุณสามารถตั้งค่า. htaccess เป็น 444 แต่จะเพิ่มความปวดหัวเป็นพิเศษเมื่ออัปเกรด Drupal และไม่ทำให้ไซต์ของคุณปลอดภัยอีกต่อไป
q0rban

30

เว็บเซิร์ฟเวอร์ควรเขียนโฟลเดอร์แฟ้ม 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
คำตอบนี้ถือว่า: คุณอยู่ใน Ubuntu ไซต์ของคุณเป็นเซิร์ฟเวอร์เดียวที่ทำงานบนเซิร์ฟเวอร์นั้น นอกจากนี้ยังแก้ปัญหาเพียงครั้งเดียวแทนที่จะทำให้มันเกิดขึ้นโดยอัตโนมัติ (เช่นโดยการเปลี่ยน umask)
greggles

ไม่จำเป็นว่าจะต้องใช้ Ubuntu และยังคงเป็นประโยชน์อยู่แม้ว่าจะมีหลายไซต์ที่ทำงานบนเซิร์ฟเวอร์เดียวกันก็ตาม การเปลี่ยน umask (ซึ่งหวังว่าจะมีการตั้งค่าเหล่านี้อยู่แล้ว) ไม่ใช่สิ่งที่ฉันแนะนำให้คนที่ไม่ชำนาญใน Linux ฉันรู้ว่านี่ไม่ใช่การรักษาความปลอดภัยที่สมบูรณ์แบบ แต่อย่าปล่อยให้ความสมบูรณ์แบบมาเป็นศัตรูของความดีที่นี่
mikl

ในหลายไซต์ฉันเรียกใช้chgrp -R www-data sites/*/filesและchmod -R g+w sites/*/filesกำจัดข้อผิดพลาดของหน้าสถานะ
leymannx

20

คำแนะนำใด ๆ สำหรับ "chmod blah" หรือ "chown X" นั้นไร้ความหมายโดยไม่ทราบว่าสิ่งที่ผู้ใช้เริ่มต้น: กลุ่มอยู่ในไฟล์และผู้ใช้และกลุ่มที่เว็บเซิร์ฟเวอร์ของคุณทำงาน

เอกสารอื่น ๆ ที่ Drupal เชื่อมโยงนั้นค่อนข้างดีในหัวข้อนี้ แต่อีกแหล่งข้อมูลหนึ่งคือโมดูลตรวจสอบความปลอดภัยซึ่งช่วยให้แน่ใจว่าคุณได้ตั้งค่าทุกอย่างถูกต้อง


9

ฉันจะตอบกลับให้พิจารณากรณีที่ไฟล์ถูกสร้างขึ้นบนเซิร์ฟเวอร์โดยใช้ FTP โดยใช้ข้อมูลประจำตัวที่แตกต่างจากที่อยู่ภายใต้ซึ่งเป็นเว็บเซิร์ฟเวอร์ทำงาน (ปกติ Apache ทำงานเป็นไม่มีใคร / ไม่มีใคร) ซึ่งหมายความว่าผู้ใช้ที่เป็นเจ้าของไฟล์ที่สร้างขึ้นด้วยตนเองก่อนที่จะรันตัวติดตั้ง 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>)

หลังจากอ่านเธรดที่drupal.org/node/244924และโดยเฉพาะdrupal.org/node/244924#comment-8186447ไม่มีวิธีการต่าง ๆ ที่ให้วิธีอัปโหลดไฟล์ที่มีเพียง 660 RW-RW เท่านั้น โดยไม่ต้องดำเนินการบิต ไม่ใช่ปัญหาด้านความปลอดภัยที่สำคัญใช่หรือไม่
kiranking

8

สิทธิ์ไฟล์ / ไดเรกทอรีที่แนะนำ:

  • Drupal webroot ควรจะอ่านได้ทั่วโลก (ดู: updater.inc ): 0755
  • สำหรับไดเรกทอรีอัพโหลดสาธารณะ: 0755 หรือ 0775
  • สำหรับไดเรกทอรีอัพโหลดส่วนตัว: 0750 หรือ 0770
  • สำหรับไฟล์ที่อัพโหลดสู่สาธารณะ: 0644 หรือ 0664
  • สำหรับไฟล์ที่อัพโหลดส่วนตัว: 0640 หรือ 0660
  • สำหรับ. htaccess ในไดเรกทอรีที่อัปโหลด (ดู: file_create_htaccess () ): 0444 (ค่าเริ่มต้น) หรือ 0644
  • สำหรับ settings.php อ่านอย่างเดียวสำหรับทุกคน (และไฟล์ลับอื่น ๆ ): 0440
  • สำหรับสารบบเว็บอื่น ๆ ทั้งหมด: 0755
  • สำหรับไฟล์เว็บอื่น ๆ ทั้งหมด: 0644

การเป็นเจ้าของไฟล์ / ไดเรกทอรีที่แนะนำ:

  • เจ้าของไดเรกทอรี / ไฟล์อัพโหลดทั้งหมดควรตั้งค่าเป็นผู้ใช้ Apache
  • เจ้าของเว็บ / แหล่งไดเรกทอรี / ไฟล์ทั้งหมดควรตั้งค่าเป็นผู้ใช้ที่ไม่ใช่ของ Apache
  • (ทางเลือก) กลุ่มของแหล่งที่มาทั้งหมดควรตั้งค่าเป็นกลุ่ม Apache

นี่คือตัวแปรที่ควบคุมการอนุญาต dir / file เริ่มต้นสำหรับรายการใหม่:

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.

2

นอกจากนี้หากคุณใช้งาน 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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.