SFTP: symlink ไฟล์ในไดเรกทอรี jailed (chrooted)


22

ฉันกำลังพยายามตั้งค่า SFTP เพื่อให้บางคนที่เชื่อถือได้สามารถเข้าถึง / แก้ไข / สร้างไฟล์บางไฟล์ได้ ฉันจำผู้ใช้ไว้ในโฮมไดเร็กตอรี่ (/ home / name) แต่เจอปัญหา ฉันต้องการให้พวกเขาสามารถเข้าถึงส่วนอื่น ๆ ของ VPS ได้เพราะมันเป็นเซิร์ฟเวอร์เกมเว็บโฮสติ้งและอื่น ๆ และฉันต้องการให้พวกเขาสามารถควบคุมไฟล์ได้อย่างเต็มที่นอกไดเรกทอรีที่ถูกจำคุก

ฉันพยายามสร้าง symlink (ln -s) ไปยังไดเรกทอรีที่ต้องการ แต่มันไม่ทำงานตามที่คาดไว้ ฉันพยายาม (cp -rl) กับไฟล์ที่ฉันต้องการให้เข้าถึงและใช้งานได้ - พวกเขาสามารถแก้ไขไฟล์ในไดเรกทอรีของพวกเขาและเปลี่ยนไฟล์ที่เก็บไว้นอกคุก แต่พวกเขาไม่สามารถสร้างไฟล์ใหม่ได้ (สามารถทำได้ แต่จะไม่อัปเดตนอกคุก) ฉันรู้ว่าฉันคงไม่ทำแบบนี้ "ถูกต้อง" แต่ฉันจะทำอย่างไรเพื่อทำสิ่งที่ฉันต้องการ

คำตอบ:


40

Symlinks เป็นสัญลักษณ์อย่างหมดจด: มันไม่มีอะไรนอกจากพา ธ ดังนั้นเมื่อคุณเปิด symlink ระบบปฏิบัติการจะอ่านพา ธ และใช้มันแทน ในสภาพแวดล้อมที่ chroot การเชื่อมโยง (โดยเฉพาะอย่างยิ่งที่มีเส้นทางที่แน่นอน) โดยทั่วไปจะไม่ชี้ไปที่เดียวกับที่พวกเขาชี้ไปในสภาพแวดล้อมปกติ

หากเซิร์ฟเวอร์ OS เป็น Linux วิธีที่ดีที่สุดของคุณคือผูกไฟล์ทั้งหมดไว้ในไดเรกทอรี chroot เมื่อใช้สิ่งนี้สิ่งสำคัญคือต้องจำไว้ว่านี่ไม่ใช่สำเนาของไดเรกทอรีสิ่งที่ถูกลบที่นี่จะถูกลบออกจากไดเรกทอรีอื่น (สำคัญหากผู้ใช้สามารถใช้mvไฟล์หรือrm -rf) เพื่อทำสิ่งนี้:

mount --bind /some/directory /somewhere/else

ไฟล์ในไดเรกทอรีควรเป็นไฟล์จริง Symlink ที่นี่อาจจะมีปัญหาแบบเดียวกันกับที่คุณพยายามลิงค์ไปยังไฟล์ในตอนแรก


ขอบคุณสำหรับคำตอบ. คุณช่วยอธิบายหรือชี้ให้ฉันดูการสอนเกี่ยวกับวิธีการใช้งานได้อย่างไร ฉันปิดใช้งาน ssh สำหรับแขกดังนั้นพวกเขาจึงมีสิทธิ์เข้าถึง sftp เท่านั้น ไฟล์อะไรที่ฉันใส่คำสั่งนี้?
dukevin

แม้ว่าจะไม่แนะนำให้ใช้กันอย่างแพร่หลาย แต่คุณสามารถสร้างไดเรกทอรีลิงก์ได้เช่นกันซึ่งจะง่ายกว่า แต่หากไฟล์ทั้งหมดอยู่ในอุปกรณ์เดียวกัน
Falcon Momot

อะไรคือคำสั่งสำหรับสิ่งนั้น
dukevin

@KevinDuke นี่ไม่ใช่สิ่งที่ผู้ใช้สามารถทำได้ด้วยตนเองเท่านั้นที่รูทสามารถใช้mountวิธีนี้ได้ อาจจะมีวิธีการที่จะระบุว่าใน/etc/fstabเพื่อให้มันทำโดยอัตโนมัติในการบูต แต่ผมไม่แน่ใจว่าวิธีการ
DerfK

1
ขอขอบคุณ. ฉันอ่านบทช่วยสอนและคิดออก คำตอบของคุณช่วยชี้ฉันในทิศทางที่ถูกต้อง ขอบคุณ! สำหรับผู้ที่ต้องการความรู้เหล่านี้ช่วย: aplawrence.com/Linux/mount_bind.html freebsd.org/doc/en_US.ISO8859-1/books/handbook/... redbottledesign.com/...
dukevin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.