pure-ftp

The configuration of the 'User manager for PureFTPd' is completed. Before you can use this user manager in conjunction with the FTP server you must configure PureFTPd. For this goal you have to change two configuration files of PureFTPd.

The first one is pure-ftpd.conf , this file contains the main configuration of the FTP server for example: Maximum number of clients or the location of the LOG files.

The second one called pureftpd-mysql.conf tells the PureFTPd server how to handle the database.

The location of both files is depending on your operation system, for FreeBSD for example this is '/usr/local/etc/'. When you can't find those files you probably still have to copy the two example files of PureFTPd called: pure-ftpd.conf.sample and pureftpd-mysql.conf.sample . In this step we will tell you how configure those two files so that the PureFTPd server and this user manager can work together with the same database.

 
Step A)
  Edit the configuration file pure-ftpd.conf and make sure that following line with the attribute 'MySQLConfigFile' is enabled and points to the right location.
# MySQL configuration file (see README.MySQL)
MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf
Step B)
  The entire content for the file pureftpd-mysql.conf you can find below, just copy and past the content to a new pureftpd-mysql.conf file. The red color text marks the changes that are made based on the values you choused in step 4 of this configuration process.

 
############################################################################
# #
# 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 /tmp/mysql.sock


# Mandatory : user to bind the server as.

MYSQLUser ftp


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

MYSQLPassword tmppasswd


# Mandatory : database to open.

MYSQLDatabase ftpusers


# 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 1000


# 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 1000


# 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
Step C)
  Start or restart your FTP server to activate those changes.

你可能感兴趣的:(pure-ftp)