LINUX.ORG.RU
ФорумAdmin

ProFTPd и хождение по симлинкам через mod_vroot

 , , ,


0

2

Есть ProFTPd 1.3.4a с mod_vroot 0.9.2 Хочу, чтобы у некоторых полезователей в их домашней папке была папка с симлинками (музыка фильмы программы на сервере), у некоторых в этой папке чтобы были симлинки только на некоторые ресурсы. Создал значит такую папку нужным пользователям, подключаюсь, а он не пускает. Аа, там же chroot'ятся все пользователи, поэтому не пускает. В гуглах есть одно решение:

mount --bind /path/to/real/folder /destination/path
Мне оно вполне подходит, вот только учитывая количество пользователей, выхлоп простой команды mount будет очень большим, да и не знаю, как оно себя поведет при нагрузке. Пробовал также mod_vroot. В конфиге что-то вроде:
<IfModule mod_vroot.c>
VRootEngine on
VRootLog /var/log/proftpd/vroot.log
VRootAlias /home/FilesAtServer /files
VRootOptions allowSymlinks
</IfModule>
Создал у пользователя папку files, захожу в нее, радуюсь, там все симлинки на папки. Но как оказалось, дольше них никуда не пускает. Дело в чем? Ведь опция указано явно - allowSymlinks

Уже думаю, создать виртуальный хост чисто с расшаренными папками, но там же данные разнесены по 3-4 HDD, так тоже не получится. Как быть, у кого есть мысли?

Но как оказалось, дольше них никуда не пускает. Дело в чем?

Быть может в chroot'е?

Deleted ()
Ответ на: комментарий от Deleted

То есть, надо отдельно для каждого каталога прописать в конфиге vrootalias, так? Вместо симлинка

/books -> /home/ftp/user/books
Написать
VRootAlias /books /home/ftp/user/books
Так?

leader32 ()
Ответ на: комментарий от leader32

В твоём случае возможно будет достаточно просто сделать нормальные симлинки с относительными путями вместо абсолютных. Вообще, симлинки с абсолютными путями - зло.

Deleted ()
Ответ на: комментарий от Deleted

А как я укажу относительный путь, да ещё и в chroot'е, если пользователь чрутится в свою директорию? Там уже разницы никакой нету же - относительный или абсолютный путь.

Твой первый пост немного прояснил ситуацию. Думаю, воспользоваться двумя способами - mount --bind и mod_vroot

leader32 ()
Ответ на: комментарий от leader32

А как я укажу относительный путь, да ещё и в chroot'е, если пользователь чрутится в свою директорию? Там уже разницы никакой нету же - относительный или абсолютный путь.

Насколько я помню, proftpd при запуске сбрасывает привилегии и начинает работать от имени непривелигированного пользователя, следовательно настоящий chroot он может сделать всего один раз - при инициализации. А mod_vroot обеспечивает «ненастоящий chroot» средствами внутреннего proftpd'шного слоя абстракции над файловой системой. Так вот, работоспособность симлинков в твоём случае будет зависеть от того, куда chroot'ится proftpd при запуске (если он вообще это делает), и от настроек mod_vroot.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.