ฉันจะตรวจสอบกลุ่ม Apache ที่ฉันสามารถใช้เพื่อให้เว็บเซิร์ฟเวอร์เขียนได้อย่างไร


13

ฉันพยายามทำให้ Wordpress ทำงาน ฉันมีข้อความแสดงข้อผิดพลาด:

Could not create directory. /var/www/html/wp-content/upgrade/theme_name

เมื่อพยายามอัพโหลดธีม นี่คือการอนุญาตที่กำหนดให้/var/www/html/wp-content/upgrade/

drwxrwxr-x 3 ec2-user apache 4096 Jun 21 00:30 upgrade

chmod 777 upgradeทำให้ข้อผิดพลาดหายไป แต่นั่นก็ไม่ถือว่าเป็นแนวปฏิบัติที่ดีที่สุด อย่างไรก็ตามฉันคิดว่ามันควรจะทำงานเช่นกัน ... ทำไมล่ะ?

ฉันเดาว่าเว็บเซิร์ฟเวอร์อาจไม่รวมอยู่ในการอนุญาตข้างต้น ฉันควรใช้กลุ่มใดในการอนุญาตให้เว็บเซิร์ฟเวอร์เขียน

(การตั้งค่าของฉันคือ Amazon EC2, Amazon Linux AMI พร้อม httpd)

คำตอบ:


16

ฉันไม่รู้อะไรเกี่ยวกับ Amazon EC2 แต่คุณควรจะสามารถ:

  1. ดึงชื่อของผู้ใช้ที่เรียกใช้ Apache ด้วยคำสั่งที่คล้ายกับสิ่งนี้:

    ps aux | grep apache # The username should be in the first column.
    
  2. ดึงกลุ่มผู้ใช้นี้เป็นส่วนหนึ่งของgroups(1)คำสั่ง:

    groups [USERNAME]
    

คอลัมน์แรกคือ apache และกลุ่ม apache คืนค่า apache: apache บรรทัดจากเครื่องหมายจุลภาคแรกมีลักษณะดังนี้: apache 11171 0.0 3.4 39984 21516? S Jun20 0:02 / usr / sbin / httpd

1
Apache ผู้ใช้อย่างชัดเจนมีสิทธิ์ในการเขียนในไดเรกทอรี คุณพูดว่าchmod 777แก้ปัญหาได้ดังนั้นฉันเดาว่าคุณกำลังใช้ผู้ใช้รายอื่นเพื่ออัปโหลดธีมของคุณ ฉันไม่รู้จัก Wordpress ดีนัก ตามคำตอบนี้www-dataลองเปลี่ยนความเป็นเจ้าของให้กับผู้ใช้
rahmu

ขอบคุณที่สละเวลาค้นหาบทความและทุกสิ่ง แน่นอนว่ามันเป็นผู้ใช้ที่แตกต่างกันเพราะฉันรู้ว่า Wordpress ใช้ FTP เพื่อทำงาน ฉันพบผู้ใช้รายนั้นจากสิ่งที่แนะนำด้านล่างจากนั้นเพิ่ม apache กลุ่มซึ่งพบตามขั้นตอนที่ 1 ลงไป นั่นแก้ไขได้

2

คุณอาจลองใช้วิธีบรรทัดคำสั่งต่อไปนี้เพื่อค้นหาชื่อกลุ่ม Apache ของคุณ:

WWW_GROUP=`ps axo user,group,comm | egrep '(apache|httpd)' | grep -v ^root | cut -d\  -f 2| uniq`
echo Apache group is: $WWW_GROUP

ในการรับผู้ใช้ให้ตรวจสอบ: วิธีการกำหนดผู้ใช้ Apache จากบรรทัดคำสั่ง?


1

การอัพเกรด chmod 777 ทำให้ข้อผิดพลาดหายไป

ในกรณีนี้ls -ld /var/www/html/wp-content/upgrade/theme_nameควรเปิดเผยข้อมูลประจำตัวของผู้สร้างซึ่งคุณสามารถใช้สำหรับการอนุญาตการเข้าถึงที่แม่นยำ

และควรใช้1777( /tmpอย่างน้อย) เนื่องจากดีกว่าเพราะรับประกันได้ว่ามีเพียงเจ้าของไฟล์เท่านั้นที่สามารถยกเลิกการเชื่อมโยงได้


1
ทำให้ข้อผิดพลาดหายไป! วิธีแก้ปัญหาที่น่าสนใจ นี่ไม่ใช่ทางออกมันเป็นเรื่องโกหก
iharob

สิ่งที่คุณเรียกว่า "โกหก" - อ้างถึงข้อความของผู้เขียนต้นฉบับ? :) หรือคำแนะนำให้ใช้อย่างน้อย 1777 แทนที่จะเป็น 777? :) หรือค้นหาความเป็นเจ้าของผู้สร้างและใช้มันเพื่อ "อนุญาตการเข้าถึงที่แม่นยำ" หรือไม่
poige

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