การตั้งค่าการอนุญาต VSFTPD ด้วยเซิร์ฟเวอร์ Apache


8

ฉันมี VM ที่ใช้ Ubuntu 10.10 ฉันใช้ Netbeans และอัปโหลดไฟล์ไปยัง ftp บนเครื่องเสมือน ฉันใช้ vsftpd

ปัญหาที่ฉันมีคือเจ้าของโฟลเดอร์/var/wwwคือผู้ใช้apacheเพื่อให้เซิร์ฟเวอร์ apache สามารถอ่านไฟล์ได้ จนถึงตอนนี้ดีมาก

แต่เมื่อฉันพยายามอัปโหลดไฟล์จากผู้ใช้ ftp user1ฉันไม่สามารถทำได้ ฉันรู้ว่าปัญหาคืออะไร คำถามของฉันคือฉันจะตั้งค่าการอนุญาตอย่างถูกต้องสำหรับผู้ใช้อย่างไรapacheและuser1จะสามารถเขียน / อ่านไฟล์ทั้งหมดในไดเรกทอรี / var / www ได้อย่างไร

คำตอบ:


17

สร้างกลุ่มและทำให้เจ้าของกลุ่มwww-users /var/wwwจากนั้นกำหนดให้ผู้ใช้apacheและuser1ไปยังกลุ่มและการตั้งค่าการอนุญาตใน/var/wwwไดเรกทอรีไป 775 นี้จะช่วยให้user1และผู้ใช้คนอื่น ๆ ในwww-usersกลุ่มการอ่านและการเขียนไปยัง/var/www; นอกจากนี้ยังจะทำให้การอนุญาตให้ผู้ใช้รายอื่นเขียนง่ายขึ้น/var/www- เพียงกำหนดผู้ใช้ให้กับwww-usersกลุ่ม

แก้ไข:สิทธิ์ที่ถูกต้องบน/var/wwwเป็น 2775 ซึ่งรวมถึงเพื่อให้ setgid ว่าไฟล์และไดเรกทอรีภายในสืบทอดการเป็นเจ้าของกลุ่ม/var/www/var/www


คำตอบที่ดี ยกเว้น Apache จะไม่สามารถอ่านไฟล์หลังจากที่ผมอัปโหลดอะไรกับฉันวิ่งคำสั่งต่อไปนี้:user1 , , , ฉันพลาดอะไรไปรึเปล่า? chown -R apache:www-users /var/wwwusermod -g www-users apacheusermod -g www-users user1chmod 775 /var/www
Tek

umask อาจถูกตั้งค่าให้ปฏิเสธการอ่านการอนุญาตจากผู้อื่น ดูว่าการเปลี่ยน umask ช่วย
bwDraco

อ๋อ นั่นเป็นส่วนหนึ่งของมัน
Tek

10
นี่คือขั้นตอนในกรณีที่ผู้ใช้ Google ทุกคนต้องการคำใบ้ 1) set up vsftpd for umask 0027 (/etc/vsftpd.conf) [local_umask=0027] 2) create www-users group (groupadd www-users) 3) add user to group (usermod -a -G group user) 4) Set apache to run as www-users group (httpd.conf) 5) chgrp www-users /var/www 6) chmod 2775 /var/www
Tek

2
นอกจากนี้ยังได้รับอนุญาตให้ลองเพิ่ม setgid chmod g+s /var/wwwไดเรกทอรี: เพื่อให้มั่นใจว่าไฟล์และไดเรกทอรีที่สร้างขึ้นภายในไดเรกทอรีนั้นเป็นของกลุ่มที่เป็นเจ้าของไดเรกทอรี
bwDraco
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.