Это старая версия документа!


PureFTPd conf

  #MYSQLServer     localhost
  #MYSQLPort       3306
  MYSQLSocket     /var/run/mysqld/mysqld.sock
  MYSQLUser       pureftpd-user
  MYSQLPassword   DasistunserPW!
  MYSQLDatabase   pureftpd
  #  "cleartext", "crypt", "md5" или "password"
  MYSQLCrypt      crypt
  MYSQLGetPW      SELECT Password FROM users WHERE User="\L"
  MYSQLGetUID     SELECT Uid FROM users WHERE User="\L"
  MYSQLGetGID     SELECT Gid FROM users WHERE User="\L"
  MYSQLGetDir     SELECT Dir FROM users WHERE User="\L"
  MySQLGetQTAFS   SELECT QuotaFiles FROM users WHERE User="\L"
  MySQLGetQTASZ   SELECT QuotaSize FROM users WHERE User="\L"
  MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L"
  MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L"
Это обязательные настройки на ранее созданного пользователя ftp и группу ftp
Пользователю ftp ранее был присвоен uid - 1002 и группе ftp тоже было присвоено gid - 1002. Их и указываем в ниже следующих параметрах.
MYSQLDefaultUID 1002
MYSQLDefaultGID 1002

или используем SQL запросы для их получения по login

MYSQLDefaultUID SELECT Uid FROM users WHERE User="\L" AND Status="1"   AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MYSQLDefaultGID SELECT Gid FROM users WHERE User="\L" AND Status="1"   AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
############################################################################
#                                                                          #
# PureFTPd MySQL configuration file.                                       #
# Generated by the installation wizard for the 'User manager for PureFTPd' #
# See http://machiel.generaal.net for more info                            #
# or read the README.MySQL for explanations of the syntax.                 #
#                                                                          #
############################################################################

# Optional : MySQL server name or IP. Don't define this for unix sockets.  
MYSQLServer     127.0.0.1

# Optional : MySQL port. Don't define this if a local unix socket is used. 
# MYSQLPort       3306

# Optional : define the location of mysql.sock if the server runs on this host.  
MYSQLSocket     /var/run/mysqld/mysqld.sock

# Mandatory : user to bind the server as.  
MYSQLUser      ftpuser

# Mandatory : user password. You must have a password.  
MYSQLPassword   rootpw

# Mandatory : database to open.  
MYSQLDatabase  ftp

# Mandatory : how passwords are stored
# Valid values are : "cleartext", "crypt", "md5" and "password"
# ("password" = MySQL password() function)
# You can also use "any" to try "crypt", "md5" *and* "password"  
MYSQLCrypt      md5

# In the following directives, parts of the strings are replaced at
# run-time before performing queries :
#
# \L is replaced by the login of the user trying to authenticate.
# \I is replaced by the IP address the user connected to.
# \P is replaced by the port number the user connected to.
# \R is replaced by the IP address the user connected from.
# \D is replaced by the remote IP address, as a long decimal number.
#
# Very complex queries can be performed using these substitution strings,
# especially for virtual hosting.

# Query to execute in order to fetch the password  
MYSQLGetPW      SELECT Password FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")

# Query to execute in order to fetch the system user name or uid
MYSQLGetUID     SELECT Uid FROM users WHERE User="\L" AND Status="1"    AND (Ipaddress = "*" OR Ipaddress LIKE "\R")

# Optional : default UID - if set this overrides MYSQLGetUID
MYSQLDefaultUID 1002

# Query to execute in order to fetch the system user group or gid
MYSQLGetGID     SELECT Gid FROM users WHERE User="\L" AND Status="1"   AND (Ipaddress = "*" OR Ipaddress LIKE "\R")

# Optional : default GID - if set this overrides MYSQLGetGID
MYSQLDefaultGID 1002

# Query to execute in order to fetch the home directory
MYSQLGetDir     SELECT Dir FROM users WHERE User="\L" AND Status="1"   AND (Ipaddress = "*" OR Ipaddress LIKE "\R")

# Optional : query to get the maximal number of files
# Pure-FTPd must have been compiled with virtual quotas support.  
MySQLGetQTAFS  SELECT QuotaFiles FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")

# Optional : query to get the maximal disk usage (virtual quotas)
# The number should be in Megabytes.
# Pure-FTPd must have been compiled with virtual quotas support.  
MySQLGetQTASZ  SELECT QuotaSize FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")

# Optional : ratios. The server has to be compiled with ratio support.  
MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")

# Optional : bandwidth throttling.
# The server has to be compiled with throttling support.
# Values are in KB/s .  
MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L"  AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L"  AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")

# Enable ~ expansion. NEVER ENABLE THIS BLINDLY UNLESS :
# 1) You know what you are doing.
# 2) Real and virtual users match.

# MySQLForceTildeExpansion 1

# If you upgraded your tables to transactionnal tables (Gemini,
# BerkeleyDB, Innobase...), you can enable SQL transactions to
# avoid races. Leave this commented if you are using the
# traditionnal MyIsam databases or old (< 3.23.x) MySQL versions.

# MySQLTransactions On