Настройка авторизации: файл паролей
AuthUserFile - позволяет задать альтернативный файл с пользователями и паролями (вместо /etc/passwd)
Что позволит использовать: отличающиеся логин/пароль от системных, заводить ftp аккаунты без создания реальных пользователей в системе и т.п. и т.д.
Соответственно так же есть параметр AuthGroupFile, который переопределит /etc/group (пока это не так важно)
Создание файла
sudo touch /etc/proftpd/ftp.passwd sudo chmod 600 /etc/proftpd/ftp.passwd
В конфиг сервера
proftpd.conf
... ## Файл авторизации # default = /etc/passwd AuthUserFile /etc/proftpd/ftp.passwd ## Порядок запроса авторизации # default = none AuthOrder mod_auth_file.c mod_auth_unix.c ## Авторизовать пользователя только если он имеет основной shell из списка /etc/shells # default = on RequireValidShell off ...
Так же присутствует параметр AuthOrder. В данном примере аутентификация пользователя сначала проверяется в ftp.passwd, а потом в /etc/passwd.
Если один и тот же пользователь присутствует и обоих файлах, то аутентификация будет проходить по данным ftp.passwd.
Если AuthOrder не указан, то возможно будет зайти по любому из двух паролей для этого пользователя.
Теперь добавление пользователей
# с интерактивным вводом пароля ftpasswd --file /etc/proftpd/ftp.passwd --name user1 --shell /bin/false --passwd --home /home/ftp/user1 --uid 222 --gid 65534 # пароль подается через stdin echo pAsSwoRd | ftpasswd --file /etc/proftpd/ftp.passwd --name user2 --shell /bin/false --passwd -- stdin --home /home/ftp/user2 --uid 223 --gid 65534
Отключение RequireValidShell позволит указывать оболочку /bin/false для пользователей
Создание их домашних каталогов
mkdir /home/ftp/user1 ; chown 222:nogroup /home/ftp/user1
Удаление выглядит весьма странно и требует наличие параметров passwd home shell uid, но их можно указать произвольно
ftpasswd --file /etc/proftpd/ftp.passwd --delete-user --name user1 --passwd --home /home --shell /bin/false --uid 9999
Обсуждение
Утилиту ftpasswd можно скачать отсюда (если её нет в поставке вашего дистрибутива).