Предоставьте пользователям ftp доступ к каталогам вне их корня с помощью символических ссылок

8

Я попытался предоставить виртуальным пользователям proftpd доступ к каталогам вне их домашних путей, используя символические ссылки, которые я создал как root через консоль.

/var/ftp/users/test является домом пользователя по имени test.
/var/ftp/files/documents каталог, в котором хранятся документы, и /var/ftp/users/test/documents символическая ссылка, указывающая на него.

Но когда пользователь подключается к FTP и пытается перейти по символической ссылке, он видит только эту ошибку:

documents: No such file or directory

Что я делаю неправильно?

Себастьян Гриньоли
источник

Ответы:

21

Симлинки заблокированы в тюрьме так же, как пользователь; в противном случае пользователь мог бы выйти из тюрьмы cd documents. (Нет, созданные с помощью root символические ссылки не могут быть обработаны специально, по той же причине, по которой cd -P symlink-to-dir; cd ..вы оказались не в том месте; внешний вид их работы, как и следовало ожидать, является иллюзией, созданной оболочкой.) Вместо этого используйте связывающее монтирование ( mount --bind /var/ftp/files/documents /var/ftp/users/test/documents).

geekosaur
источник
Это нужно делать каждый раз, когда сервер перезагружается, верно?
Себастьян Гриньоли
1
Да; Вы захотите вставить это /etc/fstab.
geekosaur
7
Вот, например, чтобы помочь кому-то еще, вот quivelants mount и fstab: mount mount --bind /path/to/original/directory /path/to/mountpoint fstab /path/to/original/directory /path/to/mountpoint none bind 0 0
Бенджамин Кайзер