$sudo aptitude install profptd-basic proftpd-mod-sqlite
нам еще понадобятся sqlite3 libsqlite3-0 и libsqlite3-dev (если будем пересобирать из исходников)
Возможно, при запуске proftpd получаем примерно такой ворнинг:
mod_sql_sqlite/0.3: compiled using SQLite version '3.6.16' headers, but linked to SQLite version '3.6.22' library
В принципе, это не критическая ошибка, но если захотите исправить, то можно пересобрать proftpd из исходников.
Качаем сорцы, распаковываем, заходим в директорию.
В моем случае конфигурация сборки была такая:
$./configure '--with-modules=mod_sql:mod_sql_sqlite' '--prefix=/usr'
'--sysconfdir=/etc/proftpd' '--libexecdir=/usr/lib/proftpd'
'--enable-dso' '--enable-ctrls' '--enable-facl'
'--with-shared=mod_ctrls_admin:mod_ban'
$make -j5
$make install
заходим в директорию, где будет хранится ваша база с пользователями.
$ sqlite3 proftpd.db
CREATE TABLE users (
userid character varying(30) NOT NULL,
passwd character varying(80) NOT NULL,
uid integer,
gid integer,
homedir character varying(255),
shell character varying(255)
);
CREATE TABLE groups (
groupname character varying(30) NOT NULL,
gid integer NOT NULL,
members character varying(255)
);
INSERT INTO users (userid, passwd, uid, gid, homedir, shell)
VALUES (
'myUser',
'myPass',
3001,
3001,
'/home/ftp/myUser/',
'/usr/sbin/nologin'
);
Вместо myUser и myPass прописываем логин/пароль фтп пользователя.
Вместо 3001/3001 задаем uid/gid пользователя системы, правами которого мы наделяем фтп-пользователя.
Uid/gid существующего пользователя можно узнать командой id в консоли.
/home/ftp/myUser/ - директория, корень, куда попадает фтп-юзер.
proftpd.conf
UseIPv6 on
IdentLookups off
ServerName "BolgenOS"
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
DefaultRoot ~
RequireValidShell off
Port 21
MaxInstances 30
User proftpd
Group nogroup
Umask 022 022
AllowOverwrite on
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
<IfModule mod_quotatab.c>
QuotaEngine on
</IfModule>
Include /etc/proftpd/sql.conf
sql.conf
<IfModule mod_sql.c>
SQLBackend sqlite
SQLEngine on
SQLAuthenticate users
# Если пароль хранится в базе в открытом виде - Plaintext.
# Вообще рекомендую криптовать пароли, потому что сама база sqlite не имеет подобной защиты.
SQLAuthTypes Plaintext Crypt
SQLLogFile /var/log/proftpd/sql.log
# Путь до вашей базы должен быть указан верно.
SQLConnectInfo /etc/proftpd/proftpd.db
SQLUserInfo users userid passwd uid gid homedir shell
SQLGroupInfo groups groupname gid members
</IfModule>
Ну и напоследок, убедитесь, что эти модули подключены:
modules.conf
LoadModule mod_sql.c
LoadModule mod_sql_sqlite.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_file.c
LoadModule mod_quotatab_sql.c
LoadModule mod_quotatab_radius.c
---
br,
grio.
Комментарии (2)
В конфиг proftpd необходимо добавить строчку, без нее модули не подключаются и ничего работать не должно:
Include /etc/proftpd/modules.conf
А теперь еще надо дописать как использовать веб админку к этому серверу proFTPd Admin именно с sqlite. Может быть и нет ничего сложного, а может это и сложно сделать. Надо рыться...
Отправить комментарий