ผู้ใช้ CentOS7 ไม่ได้รับอนุญาตจากกลุ่ม


0

ฉันติดตามการกวดวิชาที่https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-on-centos-7 (พร้อมด้วยบทเรียนทั้งหมดก่อน) เพื่อติดตั้ง WordPress บน CentOS7 ใหม่ของฉัน เซิร์ฟเวอร์ ทุกอย่างทำงานได้ดีจนถึงจุดนี้

sudo chown -R apache:apache /var/www/html/*

ฉันเข้าใจว่าคำสั่งด้านบนกำหนดความเป็นเจ้าของให้กับผู้ใช้ apache และกลุ่ม อย่างไรก็ตามโดยปกติฉันเชื่อมต่อผ่าน putty และ Filezilla โดยใช้myuserบัญชีของฉันเองและต้องการเปิดใช้งานการอนุญาตสำหรับบัญชีนั้น

ดังนั้นนอกเหนือไปจากคำสั่งข้างต้นผมยังได้เพิ่มmyuserให้กับapacheกลุ่มและการออกจากระบบและเข้าสู่ระบบกลับมาใน แต่ฉันยังคงได้รับอนุญาตปฏิเสธข้อผิดพลาดเมื่อฉันพยายามที่จะดำเนินการ CRUD ในโฟลเดอร์ของ html อย่างไรก็ตามถ้าฉันยกระดับคำสั่งด้วยการsudoทำงานดังนั้นฉันจึงนิ่งงันเล็กน้อยเกี่ยวกับวิธีการอนุญาตให้myuserบัญชีดำเนินการไฟล์ ความคิดใด ๆ


1
โปรดสังเกตว่าการอนุญาตของเจ้าของและการอนุญาตกลุ่มมีความเป็นอิสระ ตัวอย่างเช่นหากไฟล์มีการอนุญาต 644 ผู้ใช้apacheสามารถเขียนลงไฟล์ แต่ผู้ใช้ในapacheกลุ่มสามารถอ่านได้เท่านั้น
Tom Yan

คำตอบ:


2

คุณจะต้องตรวจสอบทั้งความเป็นเจ้าของสิทธิ์และบริบท selinux

ความเป็นเจ้าของ - ดูเหมือนคุณมีสิทธิ์นี้ เจ้าของ: กลุ่มบน CentOS7 ควรเป็น apache: apache สำหรับผู้ใช้ของคุณคุณจะต้องเพิ่ม apache เป็นกลุ่มเสริม คุณสามารถตรวจสอบเรื่องนี้ด้วยid myuserถ้า Apache usermod -a -G apache myuserไม่ปรากฏขึ้นในรายการของกลุ่มแล้วใช้

สิทธิ์ - พวกเขากำลังจดทะเบียนเป็น rwxrwxrwx ชุดกลางของ rwx เป็นส่วนสำคัญในการควบคุมการเข้าถึงผ่านกลุ่ม (ดังนั้นสิ่งที่สำคัญสำหรับ myuser) คุณอาจต้องการสิทธิ์อ่าน / เขียนเท่านั้นดังนั้นchmod -R 664 directorynameอาจเป็นไปได้ว่าพอเพียง (อ่าน / เขียนสำหรับผู้ใช้และกลุ่ม apache อ่านอย่างเดียวสำหรับคนอื่น ๆ ) ls -lคุณสามารถตรวจสอบสิทธิ์ด้วย

หมายเหตุ: WordPress มักจะมีไฟล์ '.htaccess' ที่ซ่อนอยู่คุณจะต้องใช้ chmod ด้วยตนเองและไฟล์อื่น ๆ ที่ซ่อนอยู่เนื่องจาก chmod / chown ที่เรียกซ้ำจะข้ามไป

บริบทของ SELinux - สิ่งเหล่านี้คุณสามารถตรวจสอบls -Zได้ หากต้องการปิดการบังคับใช้ SELinux คุณสามารถเรียกใช้setenforce 0- นี้เป็นสิ่งที่ดีสำหรับการแก้จุดบกพร่องไม่ว่า SELinux เป็นผู้ร้ายหรือไม่ setenforce 1แต่คุณควรหันกลับไปเมื่อเสร็จสิ้นการทดสอบโดยใช้ หาก SELinux เป็นปัญหาแสดงว่าสิ่งที่คุณต้องทำคือเปลี่ยนบริบทของไฟล์ด้วยบางสิ่งchcon -R -t httpd_sys_rw_content_t directoryname

หมายเหตุ: chcon ที่เรียกซ้ำจะข้ามไฟล์ที่ซ่อนอยู่ (ไฟล์ใด ๆ ที่ขึ้นต้นด้วย '.')

หมายเหตุด้านข้าง: หากคุณใช้ symlink คุณควรตรวจสอบให้แน่ใจว่าทั้งไดเรกทอรีที่ลิงก์และ symlink จริงนั้นมีความเป็นเจ้าของ / สิทธิ์ที่เหมาะสม หากต้องการกำหนดเป้าหมาย symlink ด้วย chmod / chown ให้ใช้-hแฟล็กและหากกำหนดเป้าหมายไดเรกทอรีให้แน่ใจว่าไม่มีเครื่องหมายสแลชต่อท้าย (เช่น/var/www/html/linked_dirและไม่/var/www/html/linked_dir/- ระวังด้วยการใช้แท็บเสร็จเนื่องจากจะเพิ่มสแลชต่อท้ายโดยอัตโนมัติ)

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