PureFTPd mysql.conf - Примеры
Пример 1
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
Пример 2
#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. Их и указываем в ниже следующих параметрах.
Пользователю 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