vsFTPd การอนุญาตเริ่มต้นของไฟล์ที่อัพโหลดใน Ubuntu ไม่ทำงาน


14

ฉันมีเซิร์ฟเวอร์ที่ใช้Ubuntu 12.10 x64และ vsFTPd เวอร์ชันล่าสุด

ผู้ใช้ของฉัน example.com มีบ้านชุดโฟลเดอร์บน/var/www/example.com,

ฉันสร้างโฟลเดอร์ public_html ข้างในและให้777อนุญาตและลบสิทธิ์การเขียนของโฟลเดอร์ผู้ใช้ตามบ้าน ทุกอย่างทำงานได้ดี แต่:

ทุกไฟล์ที่ฉันอัพโหลดด้วย FTP (โดยใช้ SmartFTP) จะได้รับ chmod เป็น 0

ฉันvsftpd.confมีเพียงหนึ่งบรรทัดที่เกี่ยวข้อง:

local_umask=022.

ฉันพยายามเปลี่ยนเป็น:

file_open_mode=777
local_umask=002

ดังนั้นไฟล์ของฉันจะได้รับ775ทันทีที่อัพโหลด

แต่มีเพียงโฟลเดอร์ที่อัปโหลดของฉันเท่านั้นที่ได้รับ775อนุญาต

ไฟล์ที่ฉันอัพโหลดได้รับ 1411 permissions

มีคนช่วยฉันแก้ปัญหาเหรอ?


คุณต้องให้สิทธิ์แก่ผู้ใช้ FTP
Gex

คำตอบ:


11

ฉันลงเอยด้วยการใช้

file_open_mode=0777
local_umask=022

บน vsftpd.conf ปัญหาคือทั้งผู้ใช้ FTP และผู้ใช้ www-data ต้องการสิทธิ์ในการเขียนดังนั้นฉันจึงต้องเข้าร่วม www-data และ ftpuser กับกลุ่มผู้ใช้ข้อมูล www-data และ CHMOD -R 775 ไฟล์ทั้งหมดใน / var / www - วิธีนั้น ด้วย 775 CHMOD กลุ่มจะได้รับอนุญาตให้อ่านเขียนและดำเนินการ ตอนนี้มันทำงานได้อย่างสมบูรณ์แบบ


1
อย่าลืมรีสตาร์ทเซิร์ฟเวอร์ FTP: sudo service vsftpd restart
Nahid

7

มีคำตอบของฉัน:

เนื่องจาก www-data เป็นผู้ใช้ที่รับผิดชอบต่อเว็บเซิร์ฟเวอร์และผู้ใช้ปกติของคุณรับผิดชอบเซิร์ฟเวอร์ ftp คุณต้องทำให้ทั้งคู่เป็นสมาชิกกลุ่มเดียวกันนั่นคือกลุ่ม www-data

การสร้างผู้ใช้ที่กำหนดเอง:

useradd –d /var/www/asasd.com -g www-data -m yourusername วิธีนี้โฮมไดเร็กตอรี่จะเป็น/var/www/asasd.comและผู้ใช้ของคุณจะอยู่ใน www ข้อมูลกลุ่ม

หลังจากนี้ให้เปลี่ยนผู้ใช้ผ่านโดยพิมพ์ passwdหลังจากนี้เปลี่ยนผ่านของผู้ใช้โดยการพิมพ์

จากนั้นคุณต้องสร้างโฟลเดอร์public_htmlภายในของคุณ yourusernameโฟลเดอร์บ้านเป็น FTP เคยชินจะสามารถที่จะเขียนในรากของโฟลเดอร์บ้านของคุณคุณต้องสร้างโฟลเดอร์ย่อย

นำสิทธิ์ในการเขียนของคุณyourusernameโฟลเดอร์ chmod a-w /var/www/asasd.com

จากนั้นใช้สิทธิ์ใหม่สำหรับโฟลเดอร์ย่อย: chmod -R 775 /var/www/asasd.com/public_html (โปรดทราบว่าคุณต้องใช้ 775 chmod เพราะคุณต้องการสิทธิ์ในการเขียนแบบกลุ่มไม่ใช่สิทธิ์การเขียนของผู้ใช้ตามที่คุณต้องการให้ทั้งกลุ่ม (ftp และ www-data) สามารถเขียนได้) จากนั้นให้เป็นเจ้าของ โฟลเดอร์สำหรับข้อมูล www chown -R www-data:www-data /var/www/asasd.com/public_html

ด้วยวิธีนี้คุณจะต้องสามารถใช้ FTP และใช้งานเว็บเซิร์ฟเวอร์ได้

โชคดี!

ขำขันข้อมูลนี้หายากมาก คนไม่แบ่งปันความรู้อีกต่อไปหรือไม่


"คุณต้องทำให้ทั้งคู่เป็นสมาชิกกลุ่มเดียวกัน: กลุ่ม www-data" จะทำให้ผู้ใช้ ftp ของฉันอยู่ในกลุ่ม www-data ได้อย่างไร?
Black

ทำงานได้สมบูรณ์แบบ ขอบคุณ @lucasmx
Enrique Becerra

0

ฉันมีปัญหาเช่นการเปลี่ยนแปลงการอนุญาตไฟล์เมื่อฉันอัพโหลดไฟล์ผ่าน ftp ของฉัน นี่คือการแก้ไขด้วยการเปลี่ยนแปลงหนึ่งบรรทัดในของฉันvsftpd.conf

local_umask=val(like 022,007,etc.,)


สนใจที่จะปรับปรุงและเปิดนี่สักหน่อย? นี่คือเหตุผลที่ดีขึ้นกว่าทางเลือกก่อนหน้านี้และสิ่งที่ไม่เป็นจริงไม่เนื่องจากชนิดของรูปแบบนี้ไม่ได้อธิบายไว้ในหน้าคู่มือที่ทั้งหมด: local_umaskจะเป็นค่าเดียวได้และจะต้องมี0เป็นคำนำหน้าสำหรับค่าฐานแปด
Esa Jokinen

-4

คุณต้องเปลี่ยนความเป็นเจ้าของไฟล์นั้น:

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