Поднимаем FTP-сервер
Всем привет.
Очередная порция компьютерных изысканий.
Недавно понадобилось перекинуть довольно большой объем данных с компьютера на ноутбук. Между собой они связаны Wi-Fi сетью. Флешку, как средство переноса файлов отбросил сразу, так как долго и не комильфо. Немного поискав в интернете на эту тему, остановился на FTP.
Основным критерием выбора ftp стал несложный процесс установки и настройки FTP-сервера. А для клиента так вообще ничего настраивать не нужно, ввел в адресной строке ip-адрес FTP-сервера и готово.
Сервер решил устанавливать на ноутбук, чтобы не ограничивать себя стационарным компьютером в возможности его перемещения. В арче есть несколько FTP-серверов, я выбрал vsftpd:
Эта и последующие команды выполняются от рута.
Сервер установлен. Теперь приступим к его настройке. Первым делом сделаем бэкап конфигурационного файла сервера:
А потом приведем его к такому виду:
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=<имя пользователя>
listen=YES
Поясню по некоторым строкам:
write_enable=YES - разрешаем запись в расшариваемую папку. По умолчанию это /srv/ftp. Кстати, задать можно любую директорию, которая будет корневой для пользователей FTP-сервера, но с некоторыми ограничениями, о которых чуть позже;
anonymous_enable=YES - разрешаем вход анонимным пользователям;
anon_upload_enable=YES - разрешаем анонимным пользователям загружать файлы;
anon_mkdir_write_enable=YES - разрешаем анонимным пользователям создавать каталоги;
anon_other_write_enable=YES - разрешаем анонимным пользователям удалять файлы и каталоги;
anon_umask=022 - маска по умолчанию для загружаемых анонимными пользователями файлов;
chown_uploads=YES - менять владельца всех загружаемых файлов;
chown_username=<имя пользователя> - установить <пользователя> владельцем файлов. В этом параметре ради обеспечения безопасности не стоит прописывать пользователем root'а;
listen=YES - позволить запуск vsftpd напрямую, минуя посредника в лице xinetd.
Теперь в папке /srv/ftp создаем папку share и разрешаем всем запись в нее:
Папка share нужна даже несмотря на разрешающие запись настройки в vsftpd.conf. Так как с недавних пор в пакете vsftpd ужесточили требования к безопасности, то теперь сервер будет выдавать ошибку при указании в качестве директории по умолчанию, директории, в которую разрешена запись непривилигированному пользователю. Поэтому считаю эту опцию бесполезной на данный момент. А для удобства пользования FTP-сервером предлагаю воспользоваться командой mount:
То есть монтировать расшариваемую папку в /srv/ftp/share.
Теперь к вашей общей папке будет беспарольный анонимный доступ из общей подсети.
Все, сервер настроен. Осталось его запустить и добавить в автозапуск, если необходимо:
systemctl enable vsftpd
Чтобы войти на FTP-сервер с другого компьютера/ноутбука/планшета и т. д. достаточно просто ввести в адресной строке браузера или файлового менеджера, если он поддерживает ftp-соединения, IP-адрес компьютера, с запущенным FTP-сервером.
На этом все, надеюсь статья будет вам полезной.