Установка/настройка vsftpd (FTP-SERVER) (мой вариант настройки на раздачу)

Предлагаю свой пример настройки ftp-сервера vsftpd.

Установка vsftpd:

sudo apt-get install vsftpd

После установки появится папка ftp в папке /home/

Отредактируем конфигурационный файл:

sudo gedit /etc/vsftpd.conf

Пример моего конфига:

#возможность работы в автономном режиме
listen=YES
#позволяем анонимных пользователей, учетки anonymous и ftp являются синонимами
anonymous_enable=YES
#разрешаем локальных пользователей (локальные пользователи - это те, которые
#зарегестрированы в системе, то есть на них есть учетные записи)
local_enable=YES
#права
local_umask=077
#запрещаем анонимным пользователям upload
anon_upload_enable=NO
#запрещаем  анонимным пользователям создавать директории
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
#разрешаем соединение по 20 порту
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

И два небольших скрипта для монтирования папок Nautilus:

Набираем в терминале:

mkdir .gnome2/nautilus-scripts/ftp
gedit .gnome2/nautilus-scripts/ftp

Скрипт на монтирование папок:

#!/bin/bash
#mount_folder_ftp
#Только названия одним словом (без пробелов)!!!
gksudo -k /bin/echo "got r00t?"
BASENAME=`basename $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS`
sudo mkdir "/home/ftp/$BASENAME"
sudo mount -o bind $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS "/home/ftp/$BASENAME"
done

Сохраняем файл с названием Mount_folder

gedit .gnome2/nautilus-scripts/ftp

4) Скрипт на размонтирование папок:

#!/bin/bash
#umount_folder_ftp
#Только названия одним словом (без пробелов)!!!
gksudo -k /bin/echo "got r00t?"
BASENAME=`basename $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS`
sudo umount $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
sudo rm -r "/home/ftp/$BASENAME"
done

Сохраняем файл с названием Umount_folder

И что б это всё заработало нужно дать следующее права файлам:

В директории где были созданы эти файлы (.gnome2/nautilus-scripts/ftp) выполнить:

chmod +x Mount_folder
chmod +x Umount_folder

Теперь кликая на папку правой кнопкой в секции сценарии /ftp:

  • Mount_folder - монтирование папки в /home/ftp/$BASENAME //$BASENAME - имя папки
  • Umount_folder - размонтирование указанной папки!

Это пример настройки указанного фтп сервера на раздачу. Для настройки на приём следует править файл /etc/vsftpd.conf.

Монтируются и размонтируются папки с цельными именами (без пробелов).

Если папки были примонтированы, то после перезагрузки они отмонтируются, так как они не прописываются в /etc/fstab.

Папки примонтированные в директорию /home/ftp после перезагрузки не удаляются.

<-------------------------------------------------18.07.09------------------------------------------------->

Несколько модифицировал скрипт для монтирования папок на фтп.
Изменения:

  • Монтируются папки с именами содержащие пробелы
  • Графическая оболочка
  • Всё помещено в один скрипт-файл.

Применение!

Сохранить под любым именем, например "FTP.sh"

Выдать права chmod +x Имя_скрипта, например "chmod +x FTP.sh"

Поместить в .gnome2/nautilus-scripts/

Вот собственно скрипт:

#!/bin/bash
#Монтирование/демонтирование папок на FTP
 
Item=$(zenity --title "FTP 1.5" --list --text "Выберите один из пунктов" \
--radiolist --column "#" --column "Операция" True "Монтировать папку" False "Демонтировать папку")
 
if [ "$Item" == "Монтировать папку" ]; then
 
gksudo -k /bin/echo "Got root?"
 
BASENAME=`basename "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"`
 
sudo mkdir /home/ftp/"$BASENAME"
 
sudo mount -o bind "$BASENAME" /home/ftp/"$BASENAME"
 
exit 1
fi
 
if [ "$Item" == "Демонтировать папку" ]; then
 
gksudo -k /bin/echo "Got root?"
 
BASENAME=`basename "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"`
 
sudo umount "$BASENAME"
 
sudo rm -r /home/ftp/"$BASENAME"
 
exit 1
fi