Raspberry Pi:Настройка/Удалённый доступ/FTP
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
FTP[1]
FTP (означает File Transfer Protocol и переводится как «протокол передачи данных») — это протокол, с помощью которого можно осуществить передачу данных между Raspberry Pi и другим компьютером. На Raspbian для этого используется установленная по умолчанию программа под названием sftp-server. С ее помощью привилегированные пользователи могут передавать файлы и даже целые директории, однако обычным пользователям тоже зачастую необходим доступ к файловой системе. Для этого потребуется настроить FTP-сервер, о чем и будет рассказано в этой статье.
Установка pure-ftpd
Для начала устанавливаем Pure-FTPd, для чего в терминал нужно ввести следующую команду:
sudo apt-get install pure-ftpd
Базовые настройки
Теперь создаем новую группу пользователей (ftpgroup) и нового пользователя, который будет находиться в этой группе (ftpuser). Кроме того, нужно сделать так, чтобы этот «пользователь» не имел домашней директории и залогинивался безо всяких привелегий.
groupadd ftpgroup;
useradd ftpuser -g ftpgroup -s /sbin/nologin –d /dev/null
Домашняя директория, виртуальный пользователь и группа пользователей (для FTP)
Начнем с самого первого пользователя — pi. Создадим для него новую домашнюю директорию под названием FTP:
sudo mkdir /home/pi/FTP
Далее делаем так, чтобы эта директория была доступна для пользователя ftpuser:
sudo chown -R ftpuser:ftpgroup /home/pi/FTP
Создаем виртуального пользователя с именем upload, привязываем его к ftpuser и ftpgroup, задаем ему домашнюю директорию /home/pi/FTP и записываем в базу данных пароль для этого пользователя:
sudo pure-pw useradd upload -u ftpuser -g ftpgroup -d /home/pi/FTP -m
После введения этой команды вам потребуется пароль для этого виртуального пользователя. Далее настраиваем базу данных для виртуального пользователя.
sudo pure-pw mkdb
Теперь задаем метод аутентификации, делая привязку к файлу /etc/pure-ftpd/conf/PureDB. Число 60 здесь просто для наглядности — сделайте его как можно меньше.
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60puredb
Перезапускаем программу:
sudo service pure-ftpd restart
Теперь тестируем ее при помощи какого-нибудь FTP-клиента (вроде FileZilla).
Продвинутые настройки
Настройка Pure-FTPd проста и интуитивна. Для того, чтоб задать нужные настройки, администратору нужно лишь создать файлы с названиями опций (вроде ChrootEveryone), вписать yes, а затем сохранить их в директорию /etc/pure-ftpd/conf (если все FTP-пользователи будут «заперты» в их домашней FTP-директории /home/pi/FTP). Ниже — несколько рекомендованных настроек.
Впишите
sudo nano /etc/pure-ftpd/conf/ChrootEveryone
, затем yes, а после этого нажмите Ctrl + X , Y и ↵ Enter .
Аналогично:
- создайте файл NoAnonymous и впишите yes;
- создайте файл AnonymousCantUpload и впишите yes;
- создайте файл AnonymousCantCreateDirs и впишите yes;
- создайте файл DisplayDotFiles и впишите yes;
- создайте файл DontResolve и впишите yes;
- создайте файл ProhibitDotFilesRead и впишите yes;
- создайте файл ProhibitDotFilesWrite и впишите yes;
- создайте файл FSCharset и впишите UTF-8.
...
Еще раз перезапустите pure-ftpd и примените вышеуказанные настройки:
sudo service pure-ftpd restart
Более подробно о программе Pure-FTPd читайте на ее официальном сайте.