Cara menambahkan pointer ke sistem file di luar lingkungan chroot - menggunakan SFTP chroot via OpenSSH

8

Jadi, saya cukup yakin ini benar, tetapi saya belum menemukan referensi independen khusus yang secara langsung menjawab pertanyaan saya. Pertanyaan menjadi:

Bagaimana saya bisa menambahkan akses ke sumber daya yang berada di luar lingkungan chroot?

Saya telah mengatur chroot SFTP menggunakan direktif ChrootDirectory yang agak baru dari OpenSSH.

Sayangnya, di lingkungan saya, saya tidak dapat secara langsung membatasi chroot ke direktori utama tempat sumber daya pengguna tertentu tinggal. Jadi saya membuat area chroot terpisah, dan menghubungkan di sumber daya yang diperlukan.

Saya mencoba menggunakan symlink untuk melakukan ini. misalnya

ln -s /path/to/resource /chroot/dir/resource

Tapi itu mendapat kesalahan "tidak bisa mengkanonik direktori tidak ditemukan"

Jadi solusi saya adalah menggunakan bind mount:

mount --bind /path/to/resource /chroot/dir/resource

Itu berhasil.

Sungguh, saya hanya ingin konfirmasi umum bahwa symlinks tidak akan berfungsi. Tautan ke referensi yang baik menggambarkan hal ini akan menyenangkan juga.

JDS
sumber

Jawaban:

7

Anda tidak dapat menggunakan symlink, itu benar. Tautan simbolis relatif terhadap direktori root ( /), dan dalam chroot yang merupakan root chroot, bukan root sistem file Anda.

Inilah halaman dokumentasi proftpd yang menjelaskan hal yang sama.

Olli
sumber