ลิงก์สัญลักษณ์และ filezilla มากกว่า sftp


15

ฉันค่อนข้างใหม่สำหรับเดเบียนและฉันพยายามตั้งค่าเซิร์ฟเวอร์

ฉันสร้างผู้ใช้ที่สามารถเข้าถึงโฟลเดอร์ของเขาได้/home/username(และไดเรกทอรีย่อยเท่านั้น)

ตอนนี้ฉันต้องการใช้ผู้ใช้นั้นสำหรับเว็บเซิร์ฟเวอร์ที่ฉันตั้งค่าและให้สิทธิ์การเข้าถึงแก่เขา/var/wwwแต่ฉันไม่สามารถดู/var/wwwผ่าน sftp และฉันได้ทำลิงก์สัญลักษณ์ดังนี้:

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

ตอนนี้ด้วย filezilla ฉันสามารถเห็นโฟลเดอร์ www ดังนี้:

filezilla

แต่เมื่อฉันพยายามที่จะเปิดฉันได้รับ:

เปิด

ฉันทำอะไรผิด

คำตอบ:


22

เป็นไปได้ว่า SFTP กำลังถูก chrooted ดังนั้นไดเรกทอรี / var / www จะไม่พร้อมใช้งานสำหรับผู้ใช้ในคุก chroot

ดู/etc/ssh/sshd_configและตรวจสอบคำสั่ง SFTP คุณเห็นอะไรไหม:

Match group sftp
  ChrootDirectory /home/%u
  AllowTcpForwarding no
  ForceCommand internal-sftp

หน้าคน sshd_config เป็นที่นี่

โดยทั่วไปเมื่อผู้ใช้อยู่ใน/home/usernameSFTP ไดเรกทอรีนั้นจะกลายเป็น/และการอ้างอิงภายนอก/home/usernameไม่สามารถใช้ได้ ในความเป็นจริง symlink like ln -s /var/www /home/username/wwwจะดูเหมือนว่าคุณพยายามเข้าถึง/home/username/var/www(เช่น/home/usernameตอนนี้/ดังนั้นลิงก์ใด ๆ ที่การอ้างอิง/var/wwwต้องเป็นไดเรกทอรีย่อย/home/usernameในบริบทของ chroot)

คุณสามารถปิด chroot ได้ (แต่จะมีผลกระทบด้านความปลอดภัยอื่น ๆ โดยส่วนใหญ่คือผู้ใช้ SFTP ที่มีระบบไฟล์ของคุณเต็มแล้ว) คุณสามารถทำการวนลูปของ / var / www เป็น / home / ชื่อผู้ใช้ / www (สิ่งที่ต้องการmount --bind /var/www /home/username/www(ตรวจสอบเอกสารของคุณสำหรับmount) ซึ่งควรทำงานตามที่คุณคาดหวังภายใต้ chroot) นอกจากนี้คุณยังสามารถโคลนด้วยไฟล์ sshd_config เพื่อแยกผู้ใช้รายใดรายหนึ่งออกจาก chroot (แม้ว่าอีกครั้งด้วยผลกระทบด้านความปลอดภัย)

ฉันจะลองผูกภูเขาก่อน


2
+1 สำหรับการเมา - ผูกเคล็ดลับ!
Helge Klein

1
หากคุณต้องการให้มันขัดขืนในการรีบูตให้แก้ไข/etc/fstabด้วยบรรทัดเช่น/home/username/www /var/www none bind 0 0
pzkpfw

0

ฉันแก้ไขการยกเลิกการเชื่อมโยง symlink ที่ฉันทำด้วย

root@server:/home/username# mkdir www
root@server:/home/username# mount --bind /home/username/www /var/www

(แม้ว่าฉันจะสูญเสียทุกสิ่งทุกอย่างใน / var / www แต่ฉันไม่สนใจ)

ขอบคุณทุกคน!


คุณไม่ได้สูญเสียอะไรเลย เพียงยกเลิกการต่อเชื่อมและคัดลอกไฟล์ของคุณก่อนที่จะติดตั้งใหม่
Zoredache

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