Настройка авторизации: файл паролей
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 не указан, то возможно будет зайти по любому из двух паролей для этого пользователя.
Если 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 можно скачать отсюда (если её нет в поставке вашего дистрибутива).