SFTP: file symlink di direktori yang dipenjara (chroot)

22

Saya mencoba mengatur sftp sehingga beberapa orang tepercaya dapat mengakses / mengedit / membuat beberapa file. Saya telah memenjarakan pengguna ke direktori home mereka (/ home / name) tetapi telah mengalami masalah. Saya ingin mereka juga dapat mengakses bagian lain dari VPS karena itu juga server permainan, hosting, dll, dan saya ingin mereka dapat memiliki kontrol penuh terhadap file di luar direktori yang dipenjara.

Saya mencoba membuat symlink (ln -s) ke direktori yang diinginkan tetapi tidak berfungsi, seperti yang diharapkan. Saya mencoba (cp -rl) ke file yang ingin saya akses dan berhasil - mereka dapat mengedit file di direktori mereka dan itu mengubah yang disimpan di luar penjara. TETAPI mereka tidak dapat membuat file baru (mereka bisa tetapi tidak memperbarui di luar penjara). Saya tahu saya mungkin tidak melakukan ini dengan "cara yang benar" tetapi apa yang dapat saya lakukan untuk melakukan apa yang saya inginkan?

dukevin
sumber

Jawaban:

40

Symlinks murni simbolis: mereka tidak mengandung apa pun kecuali path, jadi ketika Anda membuka symlink, OS membaca path dan menggunakannya sebagai gantinya. Dalam lingkungan chroot, tautan (terutama yang memiliki jalur absolut) biasanya tidak menunjuk ke tempat yang sama dengan yang mereka tunjukkan di lingkungan normal.

Jika OS server adalah Linux, taruhan terbaik Anda adalah untuk mengikat-mount seluruh direktori di suatu tempat di dalam direktori chroot. Saat menggunakan ini, penting untuk diingat bahwa ini bukan salinan direktori, apa pun yang dihapus di sini akan dihapus dari direktori lain (penting jika pengguna dapat mvfile atau rm -rf). Untuk melakukan ini:

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

File dalam direktori harus berupa file nyata. Symlinks di sini mungkin akan memiliki masalah yang sama dengan Anda mencoba menautkan ke file di tempat pertama.

DerfK
sumber
Terima kasih atas jawaban anda. Bisakah Anda menjelaskan atau mengarahkan saya ke tutorial tentang bagaimana saya bisa membuatnya bekerja? Saya telah menonaktifkan ssh untuk para tamu sehingga mereka hanya memiliki akses sftp. File apa yang saya berikan perintah ini?
dukevin
Meskipun tidak banyak disarankan, Anda dapat membuat hardlink direktori juga, yang akan lebih sederhana, tetapi hanya jika semua file berada di perangkat yang sama.
Falcon Momot
Apa perintah untuk itu
dukevin
@KevinDuke Ini bukan sesuatu yang bisa dilakukan sendiri oleh pengguna, hanya root yang bisa menggunakan mountcara ini. Mungkin ada cara untuk menentukannya /etc/fstabjadi itu dilakukan secara otomatis saat boot tapi saya tidak yakin bagaimana
DerfK
1
Terima kasih. Saya membaca beberapa tutorial dan menemukan jawabannya. Jawaban Anda benar-benar membantu mengarahkan saya ke arah yang benar. Terima kasih! Bagi yang ingin tahu, ini membantu: aplawrence.com/Linux/mount_bind.html freebsd.org/doc/en_US.ISO8859-1/books/handbook/… redbottledesign.com/…
dukevin