Berikan pengguna ftp akses ke direktori di luar root mereka menggunakan symlink

8

Saya mencoba memberi pengguna virtual proftpd akses ke direktori di luar jalur rumah mereka menggunakan symlink yang saya buat sebagai root melalui konsol.

/var/ftp/users/test adalah rumah dari pengguna yang bernama test.
/var/ftp/files/documents adalah direktori yang menyimpan dokumen, dan /var/ftp/users/test/documents merupakan symlink yang menunjuk ke sana.

Tetapi ketika pengguna terhubung ke FTP dan mencoba mengikuti symlink, ia hanya melihat kesalahan ini:

documents: No such file or directory

Apa yang saya lakukan salah?

Sebastián Grignoli
sumber

Jawaban:

21

Symlink dikunci ke dalam penjara dengan cara yang sama seperti pengguna; jika tidak, akan memungkinkan bagi pengguna untuk keluar dari penjara dengan cd documents. (Tidak, symlink yang dibuat root tidak dapat diperlakukan secara khusus, karena alasan yang sama yang cd -P symlink-to-dir; cd ..membuat Anda berada di tempat yang salah; penampilannya berfungsi seperti yang Anda harapkan adalah ilusi yang dibuat oleh shell.) Gunakan bind mount sebagai gantinya ( mount --bind /var/ftp/files/documents /var/ftp/users/test/documents).

geekosaurus
sumber
Ini perlu dilakukan setiap kali server restart, kan?
Sebastián Grignoli
1
Iya; Anda ingin memasukkannya ke dalam /etc/fstab.
geekosaur
7
Sebagai contoh untuk membantu orang lain, berikut adalah tunggangan gunung dan fstab: mount mount --bind /path/to/original/directory /path/to/mountpoint fstab /path/to/original/directory /path/to/mountpoint none bind 0 0
Benjamin Kaiser