Linux, FTP и виртуальные каталоги

7 октября 2008

В жизни почти любого линуксоида был момент, когда он жирной линией крест-накрест решительно перечеркнул виндовое прошлое. Было-было, и нефиг кривиться. И в комменты насрать не получится.

Так вот, помнится, когда-то в винде я юзал приятный FTP-сервер по имени Gene6. И была там такая фишка (которая, впрочем, присутствует, наверно, почти во всех FTP-серверах под Windows) — виртуальные каталоги. Например, есть папка D:\myfolder\stuff\the-best-music\, а её нужно открыть её по FTP как ftp://host/music/. Никаких проблем: пару движений мышкой и готово. После переезда в линукс папка с музыкой оказалась в каком-нибудь /mnt/myfolder/stuff/the-best-music/, а хочется, чтобы извне она была доступна как всё тот же ftp://host/music/.

Ваши действия? Поставить PureFTPd, не найти даже конфига, отправить в утиль. Поставить vsftpd, конфиг найти, но счастья не обрести. Снести. Поставить ProFTPd, поковыряться в апачеобразных директивах, погуглить, не найти. Сидеть потом с перекошенным лицом и думаеть: «Фигасе, обосраццо! Это вот под этим вот работает тьма-тьмущая тех же FTP-серверов, а тут, оказывается, даже таких элементариных вещей нету!»

Поискать в другом месте. Это вполне можно сделать, но например, не средствами FTP-сервера. Создаём папку с нужным именем в домашней директории FTP-сервера и монтируем туда то, что нужно:

# mount --bind /mnt/myfolder/stuff/the-best-music/ /home/ftp/music/

Ну да, всего и делов.

P.S.: одна только данная команда действует, разумеется, до первой перезагрузки, если ее конечно, не разместить где-нибудь в нужном месте.

P.P.S.: нужное место — /etc/fstab. Например, это делается так (строка из /etc/fstab):

/mnt/myfolder/stuff/the-best-music/	/home/ftp/music/	none	defaults,bind	0	0


В начало начал