PureFTPd mysql.conf - Примеры

MYSQLServer     127.0.0.1
MYSQLPort       3306
MYSQLSocket    /var/run/mysqld/mysqld.sock
MYSQLUser ftp
MYSQLPassword 884088
MYSQLDatabase timephoto_loc
MYSQLCrypt       cleartext
MYSQLGetPW       SELECT ftp_password FROM camera LEFT OUTER JOIN `user` ON user.id = camera.user_id WHERE camera.ftp_login='\L' AND camera.enabled=1 AND user.active=1 AND camera.deleted=0
#MYSQLGetUID     SELECT Uid FROM users WHERE User='\L'
MYSQLDefaultUID 1002
#MYSQLGetGID     SELECT Gid FROM users WHERE User='\L'
MYSQLDefaultGID 1002
MYSQLGetDir      SELECT ftp_home_dir FROM camera WHERE ftp_login='\L' AND enabled=1
# MySQLGetQTAFS  SELECT QuotaFiles FROM users WHERE User='\L'
MySQLGetQTASZ    SELECT memory_limit FROM camera WHERE ftp_login='\L'
# MySQLGetRatioUL SELECT ULRatio FROM users WHERE User='\L'
# MySQLGetRatioDL SELECT DLRatio FROM users WHERE User='\L'
# MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User='\L'
# MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User='\L'
# MySQLForceTildeExpansion 1
# MySQLTransactions On
#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