Debian+Pure-ftpd+MySQL+User manager for PureFTPd

1. 安装pure-ftpd、MySQL

apt-get purge vsftpd
apt-get purge pure-ftpd
apt-get purge pure-ftpd-common
apt-get purge pure-ftpd-mysql
apt-get purge pure-ftpd-ldap
apt-get install pure-ftpd-mysql mysql-server

 

2. 配置pure-ftpd

echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir

 

3. 添加FTP组、用户

groupadd ftpusers
useradd -s /bin/false -d /var/ftp -c "pure ftpd user" -g ftpusers ftpuser

 

4. 获取User manager for PureFTPd

wget http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz
tar xvzf ftp_v2.1.tar.gz
mv ftp /var/www/
http://192.168.x.x/ftp

 

5. 配置pure-ftpd-mysql

vi /etc/pure-ftpd/db/mysql.conf

############################################################################

#                                                                          #

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





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



MYSQLPassword   *****





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



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





# Optional : ratios. The server has to be compiled with ratio support.



# MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L"

# MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L"





# 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

 

6. 重启pure-ftpd-mysql

 /etc/init.d/pure-ftpd-mysql restart

 

 

你可能感兴趣的:(manager)