Настраиваем proftpd сервер

Russian

Установка proftpd (Debian)

Eсли мы устанавливали пакеты из более старого дистрибутива то проверим версии
apt-cache showpkg proftpd

1.3.1-17lenny9 - proftpd-basic
VERSION="1.3.1-17lenny9"

apt-get install proftpd-basic=$VERSION;

proftpd conf-настройка

После установки открываем любым редактором конфигурационный файл, который обычно живёт по адресу /etc/proftpd/proftpd.conf и в самый его конец добавляем строчку

  1. # # AllowAll
  2. # # </Limit>
  3. # # </Directory>
  4. #
  5. # </Anonymous>
  6. AuthUserFile /etc/proftpd/ftpd.passwd

Также я обычно сразу же раскомментирую строчку:

  1. # Use this to jail all users in their homes
  2. DefaultRoot ~
  3.  
  4. # Users require a valid shell listed in /etc/shells to login.
  5. # Use this directive to release that constrain.
  6. # RequireValidShell off

Строчка "DefaultRoot ~" нужна для того, чтобы FTP-пользователи не шастали по всему серверу (хоть они и не смогут скачать, но смогут увидеть каталоги-имена-файлов, что часто тоже недопустимо).

Сохраняем и выходим из редактора.

proftpd настройка пользователей

Чаще всего требуется настройка пользователей для возможности работы через FTP с каким-то сайтом, обычно живущим в подкаталоге /var/www/. Соответственно, закачанное по фтп должен "мочь" использовать и Apache. Простым решением будет тогда создание пользователя, который будет в группе апача и иметь уид самого фтп-сервера. Группа апача это обычно 33 (gid=33), а группа созданного ftp-юзера (ftp - имя в системе) можно было видеть при установке (см. выше), вот кусок лога из конца:

  1. Adding system user `ftp' (UID 105) ...
  2. Adding new user `ftp' (UID 105) with group `nogroup' ...
  3. Creating home directory `/home/ftp' ...

Теперь у нас есть всё нужное, чтобы не "просто создать ftp-пользователя", который может что-то заливать-скачивать из домашней директории, а такого, который бы мог заливать своё на работающий сайт (домашняя директория - и есть конкретный сайт, его месторасположение).

Выполняем команду:

ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=siteadmin --shell=/bin/false --home=/var/www/linuxcmd.ru --uid=105 --gid=33

Вводим-повторяем пароль и пользователь готов.
530 login incorrect и /bin/false

По умолчанию /bin/false отсутствует в /etc/shells дебияна - добавим (иначе профтпд будет колбасить):

Потому в файл /etc/shells дописываем строчку /bin/false:

  1. /etc/shells: valid login shells
  2. /bin/csh
  3. /bin/sh
  4. /usr/bin/es
  5. /usr/bin/ksh
  6. /bin/ksh
  7. /usr/bin/rc
  8. /usr/bin/tcsh
  9. /bin/tcsh
  10. /usr/bin/esh
  11. /bin/dash
  12. /bin/bash
  13. /bin/rbash
  14. /bin/false

Настройка доступа

Даём соответствующие права ранее упомянутыму ftp-пользователю (созданному при установке proftpd), добавляя его в группу www-data (то бишь Apache):
addgroup ftp www-data

Всё, теперь пользователь siteadmin, подключаясь по фтп сможет напрямую "заливать на сайт". А если "до этого" там уже были файлы, то, чтобы они также были доступны нашему сайтадмину, просто выполним следующую команду:

chown -R ftp:www-data /var/www
.которую можно-нужно повторять, если после придётся заливать из-под других пользователей (например, рутом) информацию в папку сайта.

Категория: 
The code has been tested and works
Мультитег: 

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Target Image