ฉันมีปัญหาเดียวกันกับในหัวข้อนี้
https://serverfault.com/questions/576143/how-to-hide-folders-for-ftp-user-jailed-to-user-home
แต่วิธีนี้ใช้ไม่ได้สำหรับฉัน
ขั้นตอนของฉัน:
เพิ่มผู้ใช้
userเพิ่ม someftpuser
เพิ่มรหัสผ่านให้กับผู้ใช้
รหัสผ่าน ผู้ใช้บางคน
ผู้ใช้ที่แก้ไข
sudo usermod -d /var/www/html/someftpuser -m -s /bin/bash someftpuser
ติดตั้ง vsftpd และแก้ไข config ตามที่กล่าวไว้ข้างต้น:
# ตัวอย่างไฟล์ปรับแต่ง /etc/vsftpd.conf
#
# ค่าเริ่มต้นที่คอมไพล์ในการตั้งค่าค่อนข้างหวาดระแวง ไฟล์ตัวอย่างนี้
# คลายสิ่งต่าง ๆ เล็กน้อยเพื่อให้ ftp daemon ใช้งานได้มากขึ้น
# โปรดดู vsftpd.conf.5 สำหรับการคอมไพล์ทั้งหมดในค่าเริ่มต้น
#
# อ่านสิ่งนี้: ไฟล์ตัวอย่างนี้ไม่ใช่รายการตัวเลือก vsftpd ที่ครบถ้วนสมบูรณ์
# โปรดอ่านหน้าคู่มือ vsftpd.conf.5 เพื่อรับทราบแนวคิดทั้งหมดของ vsftpd
#ความสามารถ.
#
#
#รันสแตนด์อโลน? vsftpd สามารถเรียกใช้จาก inetd หรือแบบสแตนด์อโลน
# daemon เริ่มต้นจาก initscript
ฟัง = ไม่
#
# คำสั่งนี้เปิดใช้งานการฟังบนซ็อกเก็ต IPv6 โดยค่าเริ่มต้น การฟัง
# บนที่อยู่ IPv6 "ใดๆ" (::) จะยอมรับการเชื่อมต่อจากทั้ง IPv6
# และลูกค้า IPv4 ไม่จำเป็นต้องฟังบน *ทั้ง* IPv4 และ IPv6
#ซ็อกเก็ต. ถ้าคุณต้องการ (อาจเป็นเพราะคุณต้องการฟังเฉพาะ
ที่อยู่ #) คุณต้องเรียกใช้ vsftpd สองชุดพร้อมการกำหนดค่าสองชุด
# ไฟล์
Listen_ipv6=ใช่
#
# อนุญาต FTP ที่ไม่ระบุตัวตน? (ปิดใช้งานโดยค่าเริ่มต้น)
anonymous_enable=ไม่
#
# ยกเลิกความคิดเห็นนี้เพื่ออนุญาตให้ผู้ใช้ในพื้นที่เข้าสู่ระบบ
local_enable=ใช่
#
# ยกเลิกความคิดเห็นนี้เพื่อเปิดใช้งานคำสั่งเขียน FTP รูปแบบใดก็ได้
write_enable=ใช่
#
# umask เริ่มต้นสำหรับผู้ใช้ในเครื่องคือ 077 คุณอาจต้องการเปลี่ยนค่านี้เป็น 022
# หากผู้ใช้ของคุณคาดหวัง (022 ถูกใช้โดย ftpd อื่น ๆ ส่วนใหญ่)
local_umask=022
#
# ยกเลิกความคิดเห็นนี้เพื่ออนุญาตให้ผู้ใช้ FTP ที่ไม่ระบุตัวตนสามารถอัปโหลดไฟล์ได้ นี้เท่านั้น
# มีผลหากมีการเปิดใช้งานการเปิดใช้งานการเขียนส่วนกลางด้านบน นอกจากนี้คุณจะ
# เห็นได้ชัดว่าจำเป็นต้องสร้างไดเร็กทอรีที่ผู้ใช้ FTP เขียนได้
#anon_upload_enable=ใช่
#
# ยกเลิกการแสดงความคิดเห็นหากคุณต้องการให้ผู้ใช้ FTP ที่ไม่ระบุชื่อสามารถสร้างได้
# ไดเร็กทอรีใหม่
#anon_mkdir_write_enable=ใช่
#
# เปิดใช้งานข้อความไดเรกทอรี - ข้อความที่มอบให้กับผู้ใช้ระยะไกลเมื่อพวกเขา
# เข้าไปในไดเร็กทอรีที่แน่นอน
dirmessage_enable=ใช่
#
# หากเปิดใช้งาน vsftpd จะแสดงรายชื่อไดเร็กทอรีพร้อมเวลา
# ในเขตเวลาท้องถิ่นของคุณ ค่าเริ่มต้นคือการแสดง GMT เดอะ
# ครั้งที่ส่งคืนโดยคำสั่ง MDTM FTP ก็ได้รับผลกระทบเช่นกัน
# ตัวเลือก.
use_localtime=ใช่
#
# เปิดใช้งานการบันทึกการอัพโหลด / ดาวน์โหลด
xferlog_enable=ใช่
#
# ตรวจสอบให้แน่ใจว่าการเชื่อมต่อการถ่ายโอน PORT เริ่มต้นจากพอร์ต 20 (ftp-data)
connect_from_port_20=ใช่
#
# ถ้าคุณต้องการ คุณสามารถจัดการไฟล์ที่ไม่ระบุชื่อที่อัพโหลดให้เป็นของเจ้าของ
#ผู้ใช้อื่น บันทึก! ไม่ได้ใช้ "รูท" สำหรับไฟล์ที่อัพโหลด
# ที่แนะนำ!
#chown_uploads=ใช่
#chown_username=ใครก็ตาม
#
# คุณสามารถแทนที่ตำแหน่งที่ไฟล์บันทึกจะไปได้หากต้องการ ค่าเริ่มต้นจะแสดงขึ้น
# ด้านล่าง.
#xferlog_file=/var/log/vsftpd.log
#
# ถ้าคุณต้องการ คุณสามารถมีไฟล์บันทึกของคุณในรูปแบบมาตรฐาน ftpd xferlog
# โปรดทราบว่าตำแหน่งไฟล์บันทึกเริ่มต้นคือ /var/log/xferlog ในกรณีนี้
#xferlog_std_format=ใช่
#
# คุณสามารถเปลี่ยนค่าเริ่มต้นสำหรับการหมดเวลาเซสชันที่ไม่ได้ใช้งาน
#idle_session_timeout=600
#
# คุณสามารถเปลี่ยนค่าเริ่มต้นสำหรับการหมดเวลาการเชื่อมต่อข้อมูล
#data_connection_timeout=120
#
# ขอแนะนำให้คุณกำหนดผู้ใช้เฉพาะในระบบของคุณซึ่ง
# เซิร์ฟเวอร์ ftp สามารถใช้เป็นผู้ใช้ที่โดดเดี่ยวและไม่มีสิทธิพิเศษโดยสิ้นเชิง
#nopriv_user=ftpsecure
#
# เปิดใช้งานสิ่งนี้และเซิร์ฟเวอร์จะรับรู้คำขอ ABOR แบบอะซิงโครนัส ไม่
# แนะนำเพื่อความปลอดภัย (รหัสไม่สำคัญ) ไม่เปิดใช้งาน
# อย่างไรก็ตาม อาจทำให้ไคลเอ็นต์ FTP รุ่นเก่าสับสนได้
#async_abor_enable=ใช่
#
# โดยค่าเริ่มต้น เซิร์ฟเวอร์จะแสร้งทำเป็นอนุญาตโหมด ASCII แต่แท้จริงแล้วเพิกเฉย
#คำขอ. เปิดใช้ตัวเลือกด้านล่างเพื่อให้เซิร์ฟเวอร์ทำ ASCII จริง
# จัดการไฟล์เมื่ออยู่ในโหมด ASCII
# ระวังว่าในเซิร์ฟเวอร์ FTP บางตัว การสนับสนุน ASCII อนุญาตให้ปฏิเสธบริการได้
# โจมตี (DoS) ผ่านคำสั่ง "SIZE /big/file" ในโหมด ASCII vsftpd
# ทำนายการโจมตีนี้และปลอดภัยเสมอโดยรายงานขนาดของ
#ไฟล์ดิบ.
# ASCII mangling เป็นคุณสมบัติที่น่ากลัวของโปรโตคอล
#ascii_upload_enable=ใช่
#ascii_download_enable=ใช่
#
# คุณสามารถปรับแต่งสตริงแบนเนอร์เข้าสู่ระบบได้อย่างเต็มที่:
#ftpd_banner=ยินดีต้อนรับสู่บริการ FTP
#
# คุณสามารถระบุไฟล์ของที่อยู่อีเมลที่ไม่ระบุตัวตนที่ไม่ได้รับอนุญาต เห็นได้ชัดว่า
# มีประโยชน์สำหรับการต่อสู้กับการโจมตี DoS บางอย่าง
#deny_email_enable=ใช่
# (ค่าเริ่มต้นดังต่อไปนี้)
#banned_email_file=/etc/vsftpd.banned_emails
#
# คุณอาจจำกัดผู้ใช้ในเครื่องไว้ที่โฮมไดเร็กทอรีของพวกเขา ดูคำถามที่พบบ่อยสำหรับ
# ความเสี่ยงที่เป็นไปได้ในเรื่องนี้ก่อนที่จะใช้ chroot_local_user หรือ
# chroot_list_enable ด้านล่าง
chroot_local_user=ไม่
#
# คุณอาจระบุรายชื่อผู้ใช้ในเครื่องอย่างชัดเจนให้ chroot() ไปที่บ้านของพวกเขา
#ไดเร็กทอรี ถ้า chroot_local_user เป็น YES รายการนี้จะกลายเป็นรายการของ
# ผู้ใช้ไม่ chroot ()
# (คำเตือน chroot'ing อาจเป็นอันตรายมาก หากใช้ chroot ตรวจสอบให้แน่ใจว่า
# ผู้ใช้ไม่มีสิทธิ์เขียนไปยังไดเร็กทอรีระดับบนสุดภายใน
chroot_list_file=/etc/vsftpd.chroot_list
#
# คุณสามารถเปิดใช้งานตัวเลือก "-R" ในตัว ls สิ่งนี้ถูกปิดใช้งานโดย
# เริ่มต้นเพื่อหลีกเลี่ยงไม่ให้ผู้ใช้ระยะไกลสามารถทำให้เกิด I/O มากเกินไปในขนาดใหญ่
# ไซต์ อย่างไรก็ตาม ไคลเอนต์ FTP ที่เสียหายบางตัว เช่น "ncftp" และ "มิเรอร์" ถือว่า
# การมีอยู่ของตัวเลือก "-R" ดังนั้นจึงมีกรณีที่แข็งแกร่งสำหรับการเปิดใช้งาน
#ls_recurse_enable=ใช่
#
#ปรับแต่ง
#
# การตั้งค่าบางอย่างของ vsftpd ไม่พอดีกับเลย์เอาต์ของระบบไฟล์
# ค่าเริ่มต้น.
#
# ตัวเลือกนี้ควรเป็นชื่อของไดเร็กทอรีที่ว่างเปล่า อีกทั้ง
# ไดเร็กทอรีไม่ควรเขียนโดยผู้ใช้ ftp ไดเร็กทอรีนี้ใช้
# เป็นคุก chroot() ที่ปลอดภัยในบางครั้ง vsftpd ไม่ต้องการระบบไฟล์
# เข้าไป.
secure_chroot_dir=/var/run/vsftpd/empty
#
# สตริงนี้เป็นชื่อของบริการ PAM vsftpd ที่จะใช้
pam_service_name=vsftpd
#
# ตัวเลือกนี้ระบุตำแหน่งของใบรับรอง RSA เพื่อใช้สำหรับ SSL
# การเชื่อมต่อที่เข้ารหัส
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=ไม่
#
# ยกเลิกการแสดงความคิดเห็นเพื่อระบุว่า vsftpd ใช้ระบบไฟล์ utf8
#utf8_filesystem=ใช่
สร้างไฟล์ด้วยผู้ใช้ chrooted:
นาโน /etc/vsftpd.chroot_list
ด้วยเนื้อหาชื่อผู้ใช้เท่านั้น
ผู้ใช้บางคน
รีสตาร์ท vsftpd
sudo /etc/init.d/vsftpd รีสตาร์ท
เข้าสู่ระบบเป็น someftpuser บนไคลเอนต์ ftp (filezilla)
เอฟเฟกต์ -> ผู้ใช้ someftpuser สามารถดูไฟล์ในไดเร็กทอรีอื่นและดาวน์โหลดได้
จะบล็อกผู้ใช้ที่อยู่เหนือโครงสร้างไดเร็กทอรีและป้องกันไม่ให้เห็นสิ่งอื่นใดนอกจากผู้อำนวยการบ้านของเขาได้อย่างไร
/var/www/html/someftpuser
เซิร์ฟเวอร์: Debian 11, apache2