Поиск по этому блогу

пятница, 5 февраля 2010 г.

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

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

1) Устанвка vsftpd:

sudo apt-get install vsftpd

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

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

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

3) Скрипт на монтирование папок:
#!/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

5) И что б это всё заработало нужно дать следующее права файлам:
В директории где были созданы эти файлы (.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------------------------------------------------->

Несколько модифицировал скрипт для монтирования папок на фтп.
Изменения:
1) Монтируются папки с именами содержащие пробелы
2) Графическая оболочка
3) Всё помещено в один скрипт-файл.

Применение!
Сохранить под любым именем, например "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

Комментариев нет:

Отправить комментарий